寇曉淮,程華
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海200237)
基于主題模型的垃圾郵件過(guò)濾系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
寇曉淮,程華
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海200237)
垃圾郵件過(guò)濾技術(shù)在保證信息安全、提高資源利用、分揀信息數(shù)據(jù)等方面都發(fā)揮著重要作用。然而,垃圾郵件的出現(xiàn)影響了用戶(hù)的體驗(yàn),并且會(huì)造成不必要的經(jīng)濟(jì)與時(shí)間損失。針對(duì)現(xiàn)有的垃圾郵件過(guò)濾技術(shù)的不足,基于多個(gè)主題詞理論,構(gòu)建了基于樸素貝葉斯的垃圾郵件分類(lèi)方法。在郵件主題獲取中,采用主題模型LDA得到郵件的相關(guān)主題及主題詞;并進(jìn)一步采用Word2Vec尋找主題詞的同義詞和關(guān)聯(lián)詞,擴(kuò)展主題詞集合。在郵件分類(lèi)中,對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)學(xué)習(xí)得到詞語(yǔ)的先驗(yàn)概率;基于擴(kuò)展的主題詞集合及其概率,通過(guò)貝葉斯公式推導(dǎo)得到某個(gè)主題和某封郵件的聯(lián)合概率,以此作為垃圾郵件判定的依據(jù)。同時(shí),基于主題模型的垃圾郵件過(guò)濾系統(tǒng)具有簡(jiǎn)潔易應(yīng)用的特點(diǎn)。通過(guò)與其他典型垃圾郵件過(guò)濾方法的對(duì)比實(shí)驗(yàn),證明基于主題模型的垃圾郵件分類(lèi)方法及基于Word2Vec的改進(jìn)方法均能有效提高垃圾郵件過(guò)濾的準(zhǔn)確度。
文本分類(lèi);垃圾郵件;主題模型;貝葉斯原理
伴隨著互聯(lián)網(wǎng)的發(fā)展和普及,電子郵件已經(jīng)成為人們?nèi)粘9ぷ?、生活中通信、交流的重要手段。但由于早期的SMTP缺乏發(fā)件人認(rèn)證、大量開(kāi)放式郵件中轉(zhuǎn)服務(wù)器以及互聯(lián)網(wǎng)分布式管理性質(zhì)等原因,垃圾郵件已經(jīng)成為亟待解決的問(wèn)題。從電子郵件出現(xiàn)以來(lái),研究者就在垃圾郵件攔截方面做出了大量的研究工作。然而,垃圾郵件制造者總會(huì)找到更加隱蔽且混淆的手段來(lái)躲避相關(guān)算法的檢測(cè)。對(duì)于此類(lèi)研究工作,目前仍然存在兩個(gè)重要的問(wèn)題:郵件是一種快速且便捷的通信方式,而大面積的廣告推廣動(dòng)機(jī)促成了大量為非正當(dāng)利益而開(kāi)發(fā)的反過(guò)濾技術(shù);中文詞語(yǔ)的豐富性和特殊性導(dǎo)致垃圾郵件與正常郵件區(qū)分難度較大,很多國(guó)外的優(yōu)秀算法在移植過(guò)程中將遭遇新的挑戰(zhàn)。
針對(duì)以上問(wèn)題,本文深入分析和比較傳統(tǒng)垃圾郵件處理方法,指出了現(xiàn)有垃圾郵件過(guò)濾方法的不足,對(duì)主題模型算法及其在自然語(yǔ)言處理中的應(yīng)用進(jìn)行了研究,指出了主題模型算法應(yīng)用于垃圾郵件過(guò)濾的可行性與能夠解決的問(wèn)題;提出了基于主題模型的垃圾郵件過(guò)濾算法;設(shè)計(jì)并實(shí)現(xiàn)了一種基于主題模型的垃圾郵件過(guò)濾模型,通過(guò)與其他方法的對(duì)比實(shí)驗(yàn),證明本文基于主題模型的垃圾郵件過(guò)濾方法及基于Word2Vec[1]的改進(jìn)方法均明顯提升了過(guò)濾準(zhǔn)確度,具有較高的應(yīng)用價(jià)值。
常見(jiàn)的郵箱對(duì)于垃圾郵件的過(guò)濾策略中,基于內(nèi)容對(duì)郵件過(guò)濾的方法有黑白名單、手工建立過(guò)濾規(guī)則等。手工建立規(guī)則的方法通過(guò)用戶(hù)建立一系列規(guī)則來(lái)判定垃圾郵件。顯然,這些方法的主觀性會(huì)造成大量合法郵件的誤判和垃圾郵件的漏判,并且很難做到實(shí)時(shí)的手工維護(hù),對(duì)郵件服務(wù)商的人力及經(jīng)濟(jì)造成很大壓力。因此,垃圾郵件工具逐漸傾向于引入基于內(nèi)容的機(jī)器學(xué)習(xí)判別方法[2,3]。
基于內(nèi)容垃圾郵件判別的機(jī)器學(xué)習(xí)方法,一般步驟如下。
步驟1獲取訓(xùn)練數(shù)據(jù)集合,通過(guò)多種手段渠道獲取各類(lèi)電子郵件,并備注該電子郵件是否是垃圾郵件。
步驟2建立模型,使用訓(xùn)練集合訓(xùn)練模型,更新模型中的參數(shù)。
步驟3使用訓(xùn)練好的模型,對(duì)新的電子郵件進(jìn)行過(guò)濾。
總結(jié)起來(lái)就是通過(guò)已有的訓(xùn)練集合(正例、反例)訓(xùn)練出相應(yīng)的垃圾郵件規(guī)則(包括顯式規(guī)則或隱式規(guī)則),然后將規(guī)則應(yīng)用到新的郵件判別中。
最近幾年,國(guó)內(nèi)外研究者在此領(lǐng)域已經(jīng)取得了大量的研究成果。Sheu等人[4]利用決策樹(shù)模型構(gòu)建了三步法垃圾郵件過(guò)濾模式。Feng等人[5]提出了基于樸素貝葉斯分類(lèi)器的訓(xùn)練集分類(lèi)方法,提升了數(shù)據(jù)處理的頑健性,提出的SVM-NB方法能夠達(dá)到較高的垃圾郵件檢測(cè)精度。而B(niǎo)ansal等人[6]構(gòu)建了基于穿梭判定算法的垃圾詞語(yǔ)檢測(cè)方法,并且在谷歌郵件系統(tǒng)中做了初步的應(yīng)用。另外,廣告產(chǎn)業(yè)的發(fā)展為垃圾郵件攔截與過(guò)濾提出了新的要求,Chan等人[7]在此方向上做了針對(duì)性研究,推出了廣告環(huán)境下的垃圾郵件過(guò)濾方法。除此之外,一些其他的研究成果也引起了學(xué)術(shù)界和 IT產(chǎn)業(yè)界的廣泛關(guān)注[8-10]。曹玉東等人[11]基于改進(jìn)的局部敏感散列算法實(shí)現(xiàn)了圖像型垃圾郵件過(guò)濾,將垃圾郵件過(guò)濾方法的應(yīng)用范圍擴(kuò)大。
(1)Decision Tree方法
決策樹(shù)利用熵的概念對(duì)每次決策產(chǎn)生的結(jié)果進(jìn)行分類(lèi)[4]。決策樹(shù)使用樹(shù)狀結(jié)構(gòu)對(duì)目標(biāo)分類(lèi),樹(shù)中每個(gè)節(jié)點(diǎn)表示某個(gè)對(duì)象,每個(gè)分叉路徑代表某個(gè)可能的屬性值,而每個(gè)葉節(jié)點(diǎn)則對(duì)應(yīng)從根節(jié)點(diǎn)到該葉節(jié)點(diǎn)所經(jīng)歷的路徑所表示的對(duì)象的值。
決策樹(shù)也可以被稱(chēng)為分類(lèi)樹(shù),它是非常常用的分類(lèi)方法。從另一個(gè)角度來(lái)說(shuō),決策樹(shù)是一種監(jiān)督學(xué)習(xí)方法。在給定樣本機(jī)器類(lèi)別屬性后,決策樹(shù)通過(guò)學(xué)習(xí)能夠得到一個(gè)固定的分類(lèi)器,從而給出新進(jìn)數(shù)據(jù)的具體類(lèi)別。
(2)AdaBoost方法
自適應(yīng)增強(qiáng)(adaptive boosting,AdaBoost)是加權(quán)組合多個(gè)弱分類(lèi)器分類(lèi)結(jié)果,進(jìn)而得到更好的分類(lèi)器的方法。Carreras和 Nicholas[12,13]將AdaBoost引入垃圾郵件過(guò)濾,獲得了很高的性能。AdaBoost方法的自適應(yīng)在于:后面的分類(lèi)器會(huì)在那些被之前分類(lèi)器分錯(cuò)的樣本上訓(xùn)練。AdaBoost方法對(duì)于噪聲數(shù)據(jù)和異常數(shù)據(jù)很敏感。但在一些問(wèn)題中,相比于大多數(shù)學(xué)習(xí)算法,AdaBoost方法對(duì)于過(guò)擬合問(wèn)題不夠敏感。AdaBoost方法中使用的分類(lèi)器可能很弱(比如出現(xiàn)很大錯(cuò)誤率),但其分類(lèi)效果只要比隨機(jī)好一點(diǎn)(比如它的二分類(lèi)錯(cuò)誤率略小于 0.5),就能夠改善最終模型。
(3)Rough Sets方法
Rough Sets算法是一種比較新穎的算法,粗糙集理論對(duì)于數(shù)據(jù)的挖掘提供了一個(gè)新的概念和
研究方法。將Rough Sets引入垃圾郵件過(guò)濾,采用11種非文本屬性(包括收信人數(shù)、中繼個(gè)數(shù)等)來(lái)進(jìn)行郵件分類(lèi)(正常、廣告和反動(dòng))。
具體來(lái)說(shuō),所有屬性分為2種屬性:1類(lèi)為條件屬性,1類(lèi)為決策屬性。本文姑且把決策屬性設(shè)置在數(shù)據(jù)列的最后一列,算法的步驟依次判斷條件屬性是否能被約簡(jiǎn),如果能被約簡(jiǎn),此輸出約簡(jiǎn)屬性后的規(guī)則,規(guī)則的形式大體類(lèi)似于IF-THEN的規(guī)則。
(4)kNN方法
k-近鄰方法(k-nearest neighbour,kNN)在線(xiàn)性模型中是最常見(jiàn)的方法,通過(guò)選擇特征與數(shù)據(jù)集合中所有特征對(duì)比最近的幾個(gè)樣本的標(biāo)簽平均值表示。
對(duì)于郵件的垃圾分類(lèi),一方面郵件就是文本,屬于文本分類(lèi)領(lǐng)域。另一方面,由郵件中的某些關(guān)鍵詞來(lái)推斷是否是垃圾郵件,就是一種貝葉斯條件概率方法的應(yīng)用。數(shù)據(jù)挖掘領(lǐng)域主要使用兩種貝葉斯方法,即樸素貝葉斯方法和貝葉斯網(wǎng)絡(luò)方法。貝葉斯方法的一個(gè)顯著特點(diǎn),就是在知道結(jié)果的情況下了解假設(shè)的情況,也就是說(shuō),當(dāng)對(duì)某些知識(shí)知之甚少,或者毫不知情的時(shí)候,貝葉斯方法具有獨(dú)特優(yōu)勢(shì)。
在垃圾郵件檢測(cè)過(guò)程中,其主要依據(jù)正常郵件與垃圾郵件的先驗(yàn)概率。而貝葉斯分類(lèi)模型能夠通過(guò)適當(dāng)?shù)莫?dú)立性假設(shè)來(lái)簡(jiǎn)化分布,也就是樸素貝葉斯假設(shè)。在這樣的假設(shè)條件下,能夠形成樸素貝葉斯網(wǎng)絡(luò)。
貝葉斯分類(lèi)算法是基于概率統(tǒng)計(jì)原理的一種分類(lèi)方法,它具有運(yùn)算速度快、方法簡(jiǎn)單、分類(lèi)精度高等優(yōu)點(diǎn),因而被廣泛應(yīng)用在文本分類(lèi)領(lǐng)域,并表現(xiàn)出非常好的效果。
目前,貝葉斯過(guò)濾算法被廣泛使用于智能和概率系統(tǒng)中,它具有單詞學(xué)習(xí)的模式和頻率,而不需要提前預(yù)設(shè)任何規(guī)則。具體來(lái)說(shuō),貝葉斯過(guò)濾技術(shù)能夠根據(jù)垃圾郵件與正常郵件的聯(lián)系與特點(diǎn)進(jìn)行判斷。與傳統(tǒng)的關(guān)鍵詞檢測(cè)過(guò)濾技術(shù)相比,貝葉斯過(guò)濾算法更加復(fù)雜且智能,而反過(guò)濾方法不能破解過(guò)濾器內(nèi)部的配置,從而提升了安全性與頑健性。
樸素貝葉斯分類(lèi)器是垃圾郵件內(nèi)容過(guò)濾中智能應(yīng)用的分類(lèi)方法。利用這種方法,可以根據(jù)訓(xùn)練集自動(dòng)訓(xùn)練,訓(xùn)練的結(jié)果反映了訓(xùn)練集的性質(zhì)。因此訓(xùn)練者可以利用一定數(shù)量的垃圾郵件和非垃圾郵件,訓(xùn)練郵件過(guò)濾器,從而達(dá)到高效、準(zhǔn)確過(guò)濾垃圾郵件的目的。
樸素貝葉斯分類(lèi)的流程如圖1表示。
圖1 樸素貝葉斯分類(lèi)流程
然而,樸素貝葉斯分類(lèi)也有缺陷,它的假設(shè)是基于“各特征項(xiàng)相互條件獨(dú)立”。在很多的實(shí)際問(wèn)題中,如果此下設(shè)表現(xiàn)不夠明顯,甚至出現(xiàn)不成立時(shí),錯(cuò)誤的分類(lèi)將會(huì)出現(xiàn),從而影響算法的最終表現(xiàn)。在本文中,貝葉斯模型的使用將會(huì)被改善,而具體的內(nèi)容將會(huì)在第3節(jié)中被介紹。
3.1.1 算法思想
主要算法思想是基于關(guān)鍵詞技術(shù),采用樸素貝葉斯分類(lèi)方法得到關(guān)鍵詞,分析郵件內(nèi)容分類(lèi)到垃圾郵件的置信概率,進(jìn)而產(chǎn)生分類(lèi)結(jié)果。這種方法的優(yōu)勢(shì)在于復(fù)雜度低,且應(yīng)用范圍較廣。3.1.2 基于關(guān)鍵詞的郵件過(guò)濾算法流程
從內(nèi)容上看,郵件過(guò)濾可以看成一個(gè)二值分類(lèi)問(wèn)題,即把郵件分為垃圾郵件類(lèi)和合法郵件類(lèi)。基于關(guān)鍵詞的郵件過(guò)濾算法流程簡(jiǎn)單來(lái)講是樸素貝葉斯方法,貝葉斯過(guò)濾算法大致由以下基本步驟組成。
步驟 1收集大量的垃圾郵件和合法郵件,建立垃圾郵件集和合法郵件集。
步驟 2提取郵件主題和郵件體中的獨(dú)立字符串,例如sale、cash等作為token串并統(tǒng)計(jì)提取出的token串出現(xiàn)的次數(shù)即字頻。按照上述的方法分別處理垃圾郵件集和合法郵件集中的所有郵件。采用貝葉斯文本分類(lèi)法對(duì)訓(xùn)練樣本學(xué)習(xí),得到P(S|W)。
步驟 3每一個(gè)郵件集對(duì)應(yīng)一個(gè)散列表,合法郵件集對(duì)應(yīng)表 hashtable_good,垃圾郵件集對(duì)應(yīng)表hashtable_bad,表中存儲(chǔ)token串到字頻的映射關(guān)系。
步驟 4計(jì)算每個(gè)散列表中 token串出現(xiàn)的概率,可以得到 P1(ti)和 P2(ti), P1(ti)表示 ti在hashtable_good中的值(也就是token串ti在合法郵件中的概率);P2(ti)表示ti在hashtable_bad中的值(也就是token串ti在垃圾郵件中的概率):
步驟 5由步驟 2中貝葉斯文本分類(lèi)法得到的 P(S|W),綜合考慮散列表 hashtable_good和hashtable_bad,推斷出當(dāng)新來(lái)的郵件中出現(xiàn)某個(gè)token串時(shí),該新郵件為垃圾郵件的概率。計(jì)算式為:
其中,A事件表示郵件為垃圾郵件;t1,t2,…,tn代表token串;P(A|ti)表示當(dāng)token串ti出現(xiàn)在所收到的郵件中時(shí),該郵件為垃圾郵件的概率。
假設(shè)該郵件共得到N個(gè) token串t1,t2,…,tn,hashtable_probability中對(duì)應(yīng)的值為 P1,P2,…,Pn,P(A|t1,t2,…,tn)表示在郵件中同時(shí)出現(xiàn)多個(gè)token串t1,t2,…,tn時(shí),該郵件為垃圾郵件的概率。
由聯(lián)合概率公式可得:
當(dāng) P(A|t1,t2,…,tn)超過(guò)預(yù)定閾值(例如 0.95)時(shí),就可以判斷郵件為垃圾郵件。
LDA(latent Dirichlet allocation)的產(chǎn)生和發(fā)展歷經(jīng)TF-IDF、LSA、pLSA等多種主題模型方法,由于LDA模型的良好的數(shù)學(xué)基礎(chǔ)和靈活的擴(kuò)展性,一經(jīng)提出即得到了來(lái)自各個(gè)領(lǐng)域研究者的關(guān)注,被廣泛應(yīng)用在文本挖掘及信息處理的研究中[14]。
LDA模型最初是作為一種文本分類(lèi)和主題聚類(lèi)方法被提出,它將文檔集中每篇文檔的主題以概率分布形式給出,從而通過(guò)分析便能夠得到聚類(lèi)結(jié)果。與此同時(shí),它是一種典型的詞袋模型。也就是說(shuō),每篇文檔將會(huì)被分解為一組詞,而不用考慮先后順序。
LDA是一個(gè)三層的貝葉斯概率生成模型,由“主題—詞語(yǔ)”和“文檔—主題”構(gòu)成。在LDA模型中需要求解“詞語(yǔ)—主題”和“主題—文檔”兩個(gè)模型參數(shù)。LDA假設(shè)文本集D中各文本w有如下生成過(guò)程,如圖2所示,T表示主題的個(gè)數(shù),D表示文檔的個(gè)數(shù),Nd表示第d篇文檔中詞語(yǔ)的個(gè)數(shù)。
圖2 LDA模型
步驟1 確定文檔中的詞語(yǔ)數(shù)N,使之服從參數(shù)為ξ的泊松分布。
步驟3對(duì)于文本中N個(gè)詞中的每一個(gè)wn:確定一個(gè)主題 zn,使之服從參數(shù)為θ的多項(xiàng)式分布;依照概率 p( wn|zn,β)選擇每一個(gè)詞語(yǔ)wn。
基于主題模型抽取垃圾郵件的主題,對(duì)已知的垃圾郵件樣本進(jìn)行訓(xùn)練,提取垃圾郵件的特征,采用貝葉斯估計(jì)分類(lèi)算法,構(gòu)造垃圾郵件的過(guò)濾器。利用得到的垃圾郵件過(guò)濾器,對(duì)新的郵件進(jìn)行分析、判斷,區(qū)分垃圾郵件和合法郵件,實(shí)現(xiàn)垃圾郵件的過(guò)濾。
具體實(shí)現(xiàn)步驟如下。
步驟 1采集一定數(shù)量的垃圾郵件與合法郵件,建立相應(yīng)的垃圾郵件集和合法郵件集,計(jì)算詞頻得到每個(gè)詞語(yǔ)出現(xiàn)的情況下該郵件是垃圾郵件的概率P(S|W)。
步驟 2利用 LDA主題模型對(duì)郵件進(jìn)行主題抽取,分類(lèi)算法對(duì)已知的垃圾郵件樣本進(jìn)行訓(xùn)練,對(duì)垃圾郵件集和合法郵件集中的郵件進(jìn)行解析,并提取郵件的特征,統(tǒng)計(jì)相應(yīng)數(shù)據(jù)。LDA是一種文檔主體生成模型,也成為一個(gè)三層貝葉斯概率模型,包含詞、主體、文檔這三層結(jié)構(gòu)。生成模型,即一篇文章的每個(gè)詞都是通過(guò)以一定的概率選擇了一個(gè)主題,并從這個(gè)主題中以一定的概率選擇這個(gè)詞語(yǔ)的過(guò)程得到的。
步驟 3由聯(lián)合概率公式計(jì)算每個(gè)主題中所有詞語(yǔ)的聯(lián)合概率;得到每個(gè)主題出現(xiàn)的情況下該郵件是垃圾郵件的概率;構(gòu)造郵件分類(lèi)器。
步驟 4采用貝葉斯分類(lèi)器。選取一個(gè)判斷垃圾郵件適當(dāng)?shù)拈撝担盟⒌泥]件分類(lèi)器實(shí)現(xiàn)對(duì)郵件的分類(lèi)。
預(yù)應(yīng)力鋼絲繩的一端直接穿入端部錨具的開(kāi)口,另一端通過(guò)張拉器進(jìn)行張拉。采用對(duì)稱(chēng)張拉的原則,以防結(jié)構(gòu)產(chǎn)生扭轉(zhuǎn)、側(cè)彎。張拉時(shí)從兩側(cè)向中間對(duì)稱(chēng)前進(jìn),鋼絲繩布置如圖5所示。
傳統(tǒng)判斷兩個(gè)文檔相似性的辦法是查看兩個(gè)文檔共同出現(xiàn)的單詞的多少,如TF-IDF等,但這種辦法沒(méi)有考慮到文字背后的語(yǔ)義關(guān)聯(lián),有可能兩個(gè)文檔說(shuō)的是相似的內(nèi)容但并沒(méi)有詞語(yǔ)上的交集。LDA提取出來(lái)的郵件主題關(guān)鍵詞能夠表達(dá)郵件較高級(jí)別的主題內(nèi)容,能夠消除主題關(guān)鍵詞之間的歧義。但是此時(shí)每個(gè)主題關(guān)鍵詞并不是使用向量表達(dá),此時(shí)本文使用Word2Vec方法,將詞語(yǔ)轉(zhuǎn)化為向量空間,有利于計(jì)算詞語(yǔ)之間的相似程度。同時(shí)使用主題詞向量距離計(jì)算方式計(jì)算距離主題最近的詞語(yǔ),即用Word2Vec生成每個(gè)主題中詞語(yǔ)的關(guān)聯(lián)詞,作為主題詞語(yǔ)的擴(kuò)容,在此基礎(chǔ)上再進(jìn)行垃圾郵件判斷。
4.1.1 垃圾郵件過(guò)濾的語(yǔ)料庫(kù)
本文采用的垃圾郵件語(yǔ)料庫(kù)從網(wǎng)上采集,包含正常郵件和垃圾郵件各8 000封。圖3為比較典型的用于廣告的垃圾郵件案例。
用這兩類(lèi)郵件建立垃圾郵件過(guò)濾器中詞的先驗(yàn)概率。過(guò)程如下。
首先,解析所有郵件,提取每一個(gè)詞。然后,計(jì)算每個(gè)詞語(yǔ)在正常郵件和垃圾郵件中的出現(xiàn)頻率。例如,假定“發(fā)票”這個(gè)詞,在8 000封垃圾郵件中,有200封包含這個(gè)詞,那么它的出現(xiàn)頻率就是2.5%;而在8 000封正常郵件中,只有2封包含這個(gè)詞,那么出現(xiàn)頻率就是0.025%。有可能某個(gè)詞在已有的某一類(lèi)郵件語(yǔ)料中未出現(xiàn),為了避免該詞的先驗(yàn)概率出現(xiàn)為0的情況,設(shè)定該詞的出現(xiàn)頻次為 1。假設(shè)某個(gè)詞只出現(xiàn)在垃圾郵件中,正常郵件中沒(méi)有,就設(shè)定它在正常郵件的出現(xiàn)頻率是0.012 5%(1/8 000),反之亦然。隨著郵件數(shù)量的增加,詞的先驗(yàn)概率計(jì)算結(jié)果會(huì)更接近于真實(shí)情況。
4.1.2 垃圾郵件評(píng)價(jià)指標(biāo)
為了對(duì)垃圾郵件過(guò)濾系統(tǒng)的效果做分析,需要一個(gè)評(píng)價(jià)體系來(lái)進(jìn)行評(píng)估,即一個(gè)系統(tǒng)可以判定未知文檔是否屬于某類(lèi)。假定有N個(gè)郵件文檔通過(guò)分類(lèi)器分別分類(lèi),可以用表1來(lái)表示人工與系統(tǒng)對(duì)郵件的評(píng)判情況。A為人工與系統(tǒng)都評(píng)判為垃圾的郵件數(shù);B為人工評(píng)判為正常,而系統(tǒng)評(píng)判為垃圾的郵件數(shù);C為系統(tǒng)評(píng)判為正常,而人工評(píng)判為垃圾的郵件數(shù);D為人工與系統(tǒng)都評(píng)判為正常的郵件數(shù)。
表1 垃圾郵件測(cè)評(píng)
定義如下幾個(gè)指標(biāo)來(lái)檢測(cè)算法對(duì)垃圾郵件的過(guò)濾效果。
(1)召回率(recall)
描述收到一封垃圾郵件時(shí),分類(lèi)器判定為垃圾郵件的概率,召回率越高,表示分類(lèi)器對(duì)郵件分類(lèi)效果越顯著,計(jì)算式為:
(2)正確率(precision)
描述分類(lèi)器對(duì)正常郵件和垃圾郵件都能正確分辨的概率,將垃圾郵件判為垃圾郵件和將非垃圾郵件判為合法郵件的概率,正確率越高表示分類(lèi)器的效果越理想,計(jì)算式為:
(3)誤判率(misjudge)
圖3 垃圾郵件案例
描述正常郵件的誤判率,將非垃圾郵件判為垃圾郵件的概率,這是描述一個(gè)分類(lèi)器是否有效的關(guān)鍵指標(biāo),如果誤判率很高,則說(shuō)明分類(lèi)器沒(méi)有起到很好的分類(lèi)效果,誤判率越低表示正常郵件被判為垃圾郵件的概率越小,計(jì)算式為:
(4)精確率(accuracy)
分類(lèi)器對(duì)正常郵件分類(lèi)的正確性,精確率越高表示郵件對(duì)正常郵件的判別越正確,計(jì)算式為:
在對(duì)實(shí)驗(yàn)結(jié)果的評(píng)估中將會(huì)比較以上數(shù)值。準(zhǔn)確率 P 是郵件被正確分類(lèi)的概率,召回率是指實(shí)驗(yàn)方法將郵件正確分類(lèi)的概率,F(xiàn)1值則是指β=1時(shí)的F值,是最常用的F值之一,可以看作模型準(zhǔn)確率和召回率的一種加權(quán)平均。這3個(gè)值都是數(shù)值越高所代表的分類(lèi)效果越優(yōu)秀。
4.2.1 LDA主題抽取
步驟 1首先用 jieba分詞算法分詞后得到300個(gè)分詞文件,名稱(chēng)如1-seg.txt、2-seg.txt等。例如,“合金”“批發(fā)”“朋友”“爸媽”等詞語(yǔ)。
步驟2再用LDA主題模型算法解析300封郵件,得到20個(gè)主題詞組,如:“0.090*‘交涉’+0.090*‘小白臉’+0.090*‘力阻’+ 0.090*‘撕破臉’+ 0.090*‘私事’”。
步驟3最后得到300×20維的權(quán)值矩陣,300表示300封郵件,20表示20個(gè)主題,即每封郵件和20個(gè)主題之間的相關(guān)度。
采用 LDA主題模型算法,從測(cè)試集中選取300封郵件進(jìn)行主題抽取20個(gè)主題,主題詞確定為10個(gè),選取兩個(gè)具有代表性的主題,結(jié)果見(jiàn)表2。4.2.2 LDA反垃圾郵件過(guò)濾實(shí)驗(yàn)結(jié)果與分析
為了有效地驗(yàn)證該方法的可行性,選用正常郵件和垃圾郵件各8 000封,共16 000封作為訓(xùn)練集;另取正常郵件和垃圾郵件各150封,共300封作為測(cè)試集。用本文基于LDA的垃圾郵件過(guò)濾方法進(jìn)行實(shí)驗(yàn),其中主題數(shù)確定為20個(gè),主題詞為10個(gè),共完成5組實(shí)驗(yàn),結(jié)果見(jiàn)表3。
表2 主題模型結(jié)果
表3 基于LDA的垃圾郵件過(guò)濾方法測(cè)試結(jié)果
在實(shí)驗(yàn)中,把垃圾郵件的概率跟合法郵件的概率做比較,需要選擇判定垃圾郵件概率的閾值。閾值的控制比較重要,如果太大則會(huì)漏掉大量垃圾郵件,通過(guò)實(shí)驗(yàn)確定最佳閾值為0.43左右。
(1)與其他方法比較
為了更好地說(shuō)明本文設(shè)計(jì)算法的有效性,本文選取了積累典型的垃圾郵件過(guò)濾方法進(jìn)行比較,包括基于Na?ve Bayes的郵件過(guò)濾方法[15,16]、基于SVM的郵件過(guò)濾方法[17]、基于kNN的郵件過(guò)濾方法[18]、基于MTM(message topic model)的郵件過(guò)濾方法[3]、基于決策樹(shù)的三步郵件過(guò)濾方法[4]、基于SVM-NB的郵件過(guò)濾方法[5]。其中,前3種方法是以簡(jiǎn)單機(jī)器學(xué)習(xí)為基礎(chǔ)的郵件過(guò)濾方法,MTM方法建立了一種有效的方式,用來(lái)檢測(cè)郵件主題詞,三步郵件過(guò)濾法是以決策樹(shù)為基礎(chǔ)的,而SVM-NB方法是基于樸素貝葉斯分類(lèi)分類(lèi)的方式,對(duì)比見(jiàn)表4。
表4 各種不同方法郵件測(cè)試結(jié)果
由表4可知,本文基于LDA的垃圾郵件過(guò)濾方法使垃圾郵件的召回率相比Na?ve Bayes方法、SVM方法、kNN方法、MTM方法、決策樹(shù)方法有很大提升,分別上升了17%、2%、10%、3%、4%;識(shí)別正確率和Na?ve Bayes相同,而相比SVM方法、kNN方法則分別提高了2%、10%;F1值相比Na?ve Bayes方法、SVM方法、kNN方法、MTM方法、決策樹(shù)方法以及SVM-NB方法分別提高了10%、2%、10%、3%、4%、2%。
在基于決策樹(shù)三步郵件過(guò)濾方法中,它利用決策樹(shù)模型構(gòu)建了三步法垃圾郵件過(guò)濾模式。對(duì)于SVM-NB算法,它提出了基于樸素貝葉斯分類(lèi)器的訓(xùn)練集分類(lèi)方法,提升了數(shù)據(jù)處理的頑健性,此方法能夠達(dá)到較高的垃圾郵件檢測(cè)精度。相比于這兩種方法,本文推出的LDA算法能夠更好地提取文本特征,從而達(dá)到更高的分類(lèi)精度。基于LDA的垃圾郵件過(guò)濾方法在垃圾郵件正確率方面和 Na?ve Bayes方法相同,在垃圾郵件的召回率方面高于這3種方法,并且具有較高的F1測(cè)試值。這說(shuō)明該方法在性能上要優(yōu)于Na?ve Bayes、SVM、kNN方法。
(2)采用不同主題數(shù)的結(jié)果比較
在實(shí)驗(yàn)(1)中,選擇主題數(shù)為20個(gè),主題詞為10個(gè),共完成了5組實(shí)驗(yàn),并且與另外3種郵件過(guò)濾方法進(jìn)行了比較。在本實(shí)驗(yàn)中選擇主題詞仍為10個(gè),分別選擇主題數(shù)為10、15、20、25個(gè)進(jìn)行實(shí)驗(yàn),結(jié)果見(jiàn)表5。
表5 不同主題數(shù)下的測(cè)試結(jié)果
分析實(shí)驗(yàn)結(jié)果如圖4、圖5所示,在選取合適閾值的條件下,系統(tǒng)的召回率和正確率隨著主題數(shù)的增加而提高。其原因是,隨著主題數(shù)的增加,對(duì)測(cè)試集郵件的語(yǔ)義劃分更明確,進(jìn)而使得系統(tǒng)的召回率和正確率明顯提升?;谶@樣的原理,本方法可以取得較好的垃圾郵件過(guò)濾結(jié)果。4.2.3 基于改進(jìn)的主題垃圾郵件過(guò)濾方法實(shí)驗(yàn)結(jié)果與分析
圖4 不同主題數(shù)下的召回率和正確率
圖5 不同主題數(shù)下的閾值
改進(jìn)的方法主要將獲得的主題進(jìn)行擴(kuò)展,用Word2Vec方法得到每個(gè)主題中詞的幾個(gè)相關(guān)的詞,將獲得的詞重新構(gòu)建主題組。
下面列舉幾個(gè)主題詞經(jīng)過(guò) Word2Vec計(jì)算后得到的結(jié)果,如圖6所示。
圖6 主題詞經(jīng)過(guò)Word2Vec計(jì)算后得到的結(jié)果
以其中一個(gè)主題為例,通過(guò)Word2Vec擴(kuò)展原主題詞為12個(gè)詞,見(jiàn)表6。
表6 原主題與擴(kuò)展主題
這里實(shí)驗(yàn)過(guò)程分兩個(gè)步驟。
步驟1 將重建的主題組再次經(jīng)LDA算法獲得權(quán)值矩陣。
步驟2 再用測(cè)試集進(jìn)行測(cè)試,得到最終的實(shí)驗(yàn)結(jié)果。
在本實(shí)驗(yàn)中選擇主題數(shù)為 20個(gè),主題詞由10個(gè)擴(kuò)展為12個(gè),共完成了5組實(shí)驗(yàn)。
測(cè)試結(jié)果見(jiàn)表7。
表7 基于Word2Vec改進(jìn)的垃圾郵件過(guò)濾方法測(cè)試結(jié)果
分析表7,改進(jìn)方法在增加2個(gè)關(guān)聯(lián)主題詞的情況下,在F1值上比原方法改進(jìn)明顯,在5次實(shí)驗(yàn)中有3次獲得了較大的提高,證明了改進(jìn)方法的有效性。
本文對(duì)基于主題模型的垃圾郵件過(guò)濾系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了分析和驗(yàn)證,與傳統(tǒng)的關(guān)鍵詞檢測(cè)過(guò)濾技術(shù)相比,貝葉斯過(guò)濾算法更加有效且智能,從而提升了系統(tǒng)的安全性與頑健性。通過(guò)與其他典型垃圾郵件過(guò)濾方法的對(duì)比及驗(yàn)證,證明基于主題模型的垃圾郵件分類(lèi)方法及基于Word2Vec的改進(jìn)方法均能有效提高垃圾郵件過(guò)濾的準(zhǔn)確度。
在未來(lái)的研究中,基于語(yǔ)義的文本分類(lèi)具有非常大的潛力。針對(duì)自然語(yǔ)言的具體層次結(jié)構(gòu),機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的方式已經(jīng)在其他領(lǐng)域表現(xiàn)出非常強(qiáng)大的處理能力。在這種背景下,郵件攔截方法的設(shè)計(jì)可以參考相關(guān)研究成果進(jìn)行深入探索??傊磥?lái)的郵件攔截系統(tǒng)將會(huì)具有非常大的改進(jìn)空間,因此相關(guān)的研究需要被重點(diǎn)關(guān)注。
[1] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013.
[2] 祝毅鳴, 張波. 實(shí)時(shí)黑名單在垃圾郵件過(guò)濾系統(tǒng)中的應(yīng)用[J].科技資訊,2012(12):33.ZHU Y M, ZHANG B. Application of real time blacklist in spam filtering system[J]. Science & Technology Information,2012(12):33.
[3] MA J, ZHANG Y, WANG Z, et al. A message topic model for multi-grain SMS spam filtering[J]. International Journal of Technology & Human Interaction, 2016, 12(2):83-95.
[4] SHEN J J, CHEN Y K, CHU K T, et al. An intelligent three-phase spam filtering method based on decision tree data mining[J]. Security & Communication Networks, 2016, 9(17):4013-4026.
[5] FENG W, SUN J, ZHANG L, et al. A support vector machine based naive Bayes algorithm for spam filtering[C]// 2016 Performance Computing and Communications Conference, Dec 9-11, 2016, Las Vegas, NV, USA. New Jersey: IEEE Press,2017:1-8.
[6] BANSAL R P, HAMILTON I R A. O'CONNELL B M, et al.System and method to control email whitelists: US, US 8676903 B2[P]. 2014.
[7] CHAN P P K, YANG C, YEUNG D S, et al. Spam filtering for short messages in adversarial environment[J]. Neurocomputing,2015, 155(C):167-176.
[8] DEVI K S, RAVI R. A new feature selection algorithm for Efficient Spam Filtering using Adaboost and Hashing techniques[J].Indian Journal of Science & Technology, 2015, 8(13).
[9] AFZAL H, MEHMOOD K. Spam filtering of bi-lingual tweets using machine learning[C]// International Conference on Advanced Communication Technology, Jan 31-Feb 3, 2016,Pyeongchang, South Korea. New Jersey: IEEE Press, 2016.
[10] DAS M, BHOMICK A, SINGH Y J, et al. A modular approach towards image spam filtering using multiple classifiers[C]//2014 IEEE International Conference on Computational Intelligence and Computing Research. Dec 20, 2014, Coimbatore, India. New Jersey: IEEE Press, 2015:1-8.
[11] 曹玉東, 劉艷洋, 賈旭, 等. 基于改進(jìn)的局部敏感散列算法實(shí)現(xiàn)圖像型垃圾郵件過(guò)濾[J]. 計(jì)算機(jī)應(yīng)用研究, 2016,33(6):1693-1696.CAO Y D, LIU Y Y, JIA X, et al. Image spam filtering with improved LSH algorithm[J]. Application Research of Computers,2016, 33(6):1693-1696.
[12] 徐凱, 陳平華, 劉雙印. 基于 Adaboost-Bayes算法的中文文本分類(lèi)系統(tǒng)[J]. 微電子學(xué)與計(jì)算機(jī), 2016, 33(6):63-67.XU K, CHEN P H, LIU S Y. A Chinese text classification system based on Adaboost-Bayes algorithm[J]. Microelectronics & Computer, 2016, 33(6):63-67.
[13] 周慶良. 一種基于 Adaboost和分類(lèi)回歸樹(shù)的垃圾郵件過(guò)濾算法[D]. 武漢: 華中科技大學(xué), 2016.ZHOU Q L. A spam filtering algorithm based on Adaboost and classification regression tree[D]. Wuhan: Huazhong University of Science and Technology, 2016.
[14] SMITH D A, MCMANIS C. Classification of text to subject using LDA[C]//2015 IEEE International Conference on Semantic Computing (ICSC), Feb 7- Feb 9, 2015, Anaheim, CA, USA.New Jersey: IEEE Press, 2015: 131-135.
[15] 趙治國(guó), 譚敏生, 李志敏. 基于改進(jìn)貝葉斯的垃圾郵件過(guò)濾算法綜述[J]. 南華大學(xué)學(xué)報(bào): 自然科學(xué)版, 2006, 20(1): 33-38.ZHAO Z G, TAN M S, LI Z M. Review of spam filter algorithms based on improved Bayes[J]. Journal of Nanhua University(Science and Technology), 2006, 20(1): 33-38.
[16] 林巧民, 許建真, 許棣華, 等. 基于貝葉斯算法的垃圾郵件過(guò)濾技術(shù)[J]. 南京師范大學(xué)學(xué)報(bào): 工程技術(shù)版, 2005, 5(4):61-64.LIN Q M, XU J Z, XU D H, et al. Research on Bayes-based spam filtering[J]. Journal of Nanjing Normal University(Engineering and Technology), 2005, 5(4): 61-64.
[17] LI L, MAO T, HUANG D. Extracting location names from Chinese texts based on SVM and KNN[C]// 2005 IEEE International Conference on Natural Language Processing and Knowledge Engineering(IEEE NLP-KE'05), Oct 30-Nov 1, Wuhan,China. New Jersey: IEEE Press, 2005: 371-375.
[18] 林文香. 改進(jìn)的KNN算法在過(guò)濾垃圾郵件中的應(yīng)用研究[D].長(zhǎng)沙: 湖南大學(xué), 2010.LIN W X. Application of improved KNN algorithm in spam e-mail filtering[D]. Changsha: Hunan University, 2010.
Design and implementation of spam filtering system based on topic model
KOU Xiaohuai, CHENG Hua
College of Information Science and Engineering, East China University of Science and Technology, Shanghai 200237, China
Spam filtering technology plays a key role in many areas including information security, transmission efficiency, and automatic information classification. However, the emergence of spam affects the user's sense of experience, and can cause unnecessary economic and time loss. The deficiency of spam filtering technology was researched, and a method of spam classification based on naive Bayesian was put forward based on multiple keywords.In the subject of mail, the theme model was used by LDA to get the related subject and keyword of the message, and Word2Vec was further used to search keyword synonyms and related words, extending the keyword collection. In the classification of mails, the transcendental probability of the words in the training dataset was obtained by statistical learning. Based on the extended keyword collection and its probability, the joint probability of a subject and a message was deduced by the Bayesian formula as a basis for the spam judgment. At the same time, the spam filtering system based on topic model was simple and easy to apply. By comparing experiments with other typical spam filtering method, it is proved that the method of spam classification based on theme model and the improved method based on Word2Vec can effectively improve the accuracy of spam filtering.
text classification, spam, topic model, Bayesian theory
TP393
A
10.11959/j.issn.1000?0801.2017313
2017?05?12;
2017?09?16
寇曉淮(1989?),男,華東理工大學(xué)信息科學(xué)與工程學(xué)院碩士生,主要研究方向?yàn)樾畔⒎治雠c處理、智能信號(hào)處理和網(wǎng)絡(luò)與信息安全。
程華(1975?),男,博士,華東理工大學(xué)信息科學(xué)與工程學(xué)院副教授,主要研究方向?yàn)樾畔踩?、信?hào)處理、網(wǎng)絡(luò)行為學(xué)和流量工程。