劉浩然,丁攀,郭長江,常金鳳,崔靜闖
(1. 燕山大學(xué)信息科學(xué)與工程學(xué)院,河北 秦皇島 066004; 2. 河北省特種光纖與光纖傳感重點實驗室,河北 秦皇島 066004;3. 燕山大學(xué)里仁學(xué)院,河北 秦皇島 066004)
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,垃圾郵件在互聯(lián)網(wǎng)上急速蔓延,其內(nèi)容往往是廣告或虛假信息,甚至是電腦病毒等不良信息。大量垃圾郵件的傳播不僅給人們工作和生活帶來極大的困擾,而且還造成了網(wǎng)絡(luò)資源的浪費。
目前垃圾郵件過濾技術(shù)主要可分3類:黑白名單過濾、基于規(guī)則過濾和基于內(nèi)容統(tǒng)計過濾。其中,基于內(nèi)容統(tǒng)計過濾常見算法有樸素貝葉斯(NB,naive Bayesian)、支持向量機(SVM, support vector machine)、最近鄰(KNN, k-nearest neighbor)等。
早期研究對垃圾郵件過濾奠定了良好基礎(chǔ)。1998年Sahami首次將樸素貝葉斯算法應(yīng)用到垃圾郵件過濾中[1]。2000年Androutsopoulos等[2]證明樸素貝葉斯算法明顯優(yōu)于基于關(guān)鍵字的過濾器方法。2002年Drucker等[3]將SVM用于垃圾郵件過濾中,并證明SVM算法優(yōu)于貝葉斯和其他基于規(guī)則過濾的方法。2005年Healy等使用k-NN算法過濾垃圾郵件,2008年Wu等使用貝葉斯學(xué)習(xí)提取關(guān)鍵詞的方法過濾垃圾郵件,且都通過實驗證明了各自算法的有效性[4]。
近年來,研究者在對傳統(tǒng)算法做改進的同時,其他算法也被應(yīng)用,如lazy learning、C5.0、J48和隨機森林等[5]。文獻[6]將粗糙集理論應(yīng)用于垃圾郵件過濾,并證明其性能優(yōu)于當下其他方法。文獻[7]將特征加權(quán)應(yīng)用于垃圾郵件過濾,并在計算概率的過程中定義了2個風(fēng)險因素以提升過濾準確率。文獻[8]采用支持向量機和 k-mean聚類混合算法來增強SVM,提高了垃圾郵件分類的準確率。
不同分類模型適用于不同的文本特征,無論是根據(jù)特征尋求分類模型改進還是直接對模型改進都可提升過濾性能。文獻[9]采用基于信息熵和增量學(xué)習(xí)的方法分析各種特征如何影響基于RBF(radial basis function)的SVM垃圾郵件分類器的性能,從而通過提取有意義的特征來提高垃圾郵件過濾性能;類似地,文獻[10]采用CN2-SD(CN2-subgroup discovery)算法對每個領(lǐng)域提取語義特征,分別建立適合于每個領(lǐng)域的分類器來提高垃圾郵件過濾性能,二者都根據(jù)特征屬性建立模型。文獻[11]提出的TSVM-NB(twin support vector machine-naive Bayesian)算法先用NB對樣本初次訓(xùn)練后用SVM構(gòu)造最優(yōu)分類超平面,再用NB訓(xùn)練生成分類模型;文獻[12]表明基于生成分類模型的 RNN對數(shù)據(jù)分布的變化更具有頑健性,證明了生成模型優(yōu)于判別模型,二者都對分類模型做分析和改進。文獻[13]對SVM、gradient boosting、神經(jīng)網(wǎng)絡(luò)和隨機森林分類器進行性能比較,實驗結(jié)果顯示,不同分類模型對不同特征集的分類性能具有差異性。
垃圾郵件過濾算法各有優(yōu)缺點,有的提高了過濾速度卻犧牲了準確率,有的則犧牲過濾速度來提高準確率。文獻[14]對NB、SVM、J48、KNN、NB-M(multinomial naive Bayes)、NB-MU(updatable naive Bayes)、NB-C(cost sensitive naive Bayes)和隨機森林8種算法進行對比,結(jié)果表明NB與SVM的過濾性能相當,在速度和準確率上表現(xiàn)更好;隨機森林在建模和過濾上速度緩慢,但準確率高;其余算法速度快但準確率低。從正確率、準確率、查全率和F1-Measure這4項過濾性能來看,文獻[15]表明其提出的語義長短期記憶網(wǎng)絡(luò)(SLSTM, semantic long short term memory)的過濾性能最佳,NB、SVM、隨機森林和人工神經(jīng)網(wǎng)絡(luò)表現(xiàn)相當,但明顯優(yōu)于KNN。
與其他方法相比,貝葉斯方法具有數(shù)學(xué)基礎(chǔ)堅實、分類效率穩(wěn)定、模型清晰等優(yōu)點,但也存在屬性之間的獨立性假設(shè)不成立的缺點[16]。通過放松條件獨立性的假設(shè)可做出改進,如結(jié)構(gòu)擴展、局部學(xué)習(xí)、特征選擇、特征加權(quán)等[17]。為提高垃圾郵件過濾效果,本文首先提出一種基于中心詞擴展的TF-IDF特征提取算法,以增加特征節(jié)點的表達能力,達到特征降維;其次,采用3層的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型,以增加特征多樣性,避免分類模型中特征局限的缺陷;再次,在訓(xùn)練3層的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型時,提出一種 GWO_GA結(jié)構(gòu)學(xué)習(xí)算法,旨在放松屬性間的條件獨立性假設(shè),使得數(shù)據(jù)與模型結(jié)構(gòu)更好地擬合;最后,通過實驗驗證基于中心詞擴展的 TF-IDF特征提取及GWO_GA結(jié)構(gòu)學(xué)習(xí)的 3層貝葉斯算法的可行性和有效性。
針對特征提取時因中文文本稀疏性導(dǎo)致特征維度過高的問題,本文提出一種基于中心詞擴展的TF-IDF特征提取算法,選擇高頻特征詞作為中心詞,設(shè)置權(quán)重閾值向其周邊做特征擴展,可增加網(wǎng)絡(luò)中特征節(jié)點的表達能力,實現(xiàn)特征降維。
向量空間模型(VSM, vector space model)是一種不考慮特征詞出現(xiàn)的位置、次序及上下文關(guān)系的詞袋模型,將特征詞在文本中出現(xiàn)的頻率作為文本分類的依據(jù)[18]。
定義 1中心詞擴展。設(shè)定某個單詞作為中心詞,以一定的方式搜尋文本中與其相關(guān)的詞作為擴展詞,并將這些詞放在同一個詞袋中,這種擴展詞袋的方法叫做中心詞擴展。
中心詞擴展是為了增加詞袋的表達能力,降低特征維度。凡包含在中心詞詞袋內(nèi)的單詞都可表示該中心詞屬性。假如以 word作為中心詞,經(jīng)過中心詞擴展后,以word作中心詞的詞袋中就包含x1、x2、x3等單詞,則只要x1、x2、x3等中至少一個單詞出現(xiàn),即認為word屬性出現(xiàn)。如圖1所示,若“蘋果”“華為”“三星”等中至少一詞出現(xiàn),就可表征“手機”屬性。
在貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)中,以一個中心詞詞袋作為特征節(jié)點,當越來越多的單詞被視為與中心詞同屬性而加入詞袋中時,該特征節(jié)點可以表示的特征詞增多,表達能力自然得以提升。
圖1 中心詞擴展模型
經(jīng)過文本特征統(tǒng)計發(fā)現(xiàn),在所有詞性中,對文本分類貢獻最大的是名詞,選用名詞作為特征詞最具優(yōu)勢。然而,不同名詞對文本分類的貢獻不盡相同,因此,名詞特征需要做加權(quán)處理。
特征加權(quán)是根據(jù)某種標準對特征子集內(nèi)的特征詞賦予一定的權(quán)重,特征詞對分類越有利,被賦予的權(quán)值越大。特征加權(quán)使同類文本的空間結(jié)構(gòu)更緊湊,異類文本的空間結(jié)構(gòu)更稀疏[19],這有助于改善文本稀疏性帶來的特征高維問題。
TF-IDF是目前應(yīng)用較多的一種特征加權(quán)算法,由詞頻(TF, term frequency)和逆文檔頻(IDF, inverse document frequency)兩部分組成,用W表示特征詞x的權(quán)重,可計算TF-IDF權(quán)重如式(1)所示。
其中,N為文本集T={T1,T2,…,Tn}中的文本總數(shù),n為文本集中包含特征詞x的文檔數(shù)量,Ti表示文本集中第i個文本,f(Ti,x)表示單詞x在文本Ti中出現(xiàn)的頻率。
為了增強網(wǎng)絡(luò)結(jié)構(gòu)中特征節(jié)點的表達能力,降低特征維度,本文提出基于中心詞擴展的 TF-IDF特征提取算法,選擇高頻特征詞作為中心詞,設(shè)置權(quán)重閾值向其周邊做特征擴展。
采用詞關(guān)聯(lián)方式為特征做中心詞擴展,以某個詞作為中心詞向外做詞意擴展,將與之相關(guān)聯(lián)的特征詞放在同一詞袋中作為一個特征集。文本在分詞和去停用詞的文本預(yù)處理后,遍歷所有文本,找出權(quán)值高于閾值g(權(quán)值的平均值)的詞作為關(guān)聯(lián)詞,加入到中心詞詞袋中擴充詞袋詞量。
算法1是基于中心詞擴展的TF-IDF特征提取算法。首先,統(tǒng)計文本集T中所有單詞的詞頻f(T,x),用詞頻最高的前m(高于詞頻數(shù)學(xué)期望值的單詞量)個單詞組成中心詞集C= {C1,C2, …,Cm};其次,統(tǒng)計每一個文本Ti中單詞x的詞頻f(Ti, x),并統(tǒng)計含有單詞x的文本在文本集T中的數(shù)量n;然后,通過式(1)計算每個單詞的權(quán)重W(x);最后,遍歷所有文本,若第j個中心詞Cj在文本Ti中出現(xiàn),則將文本Ti中權(quán)值大于閾值g的所有單詞加入到該中心詞詞袋中,作為特征集X={X1,X2, … ,Xm}中第j個特征子集Xj的特征詞
采用基于中心詞擴展的TF-IDF算法提取特征,使得特征節(jié)點具有更大的多樣性,達到一詞多意的效果,在增加貝葉斯網(wǎng)絡(luò)特征節(jié)點表達能力的同時特征詞也得以降維。
余弦相似度用向量空間中2個向量夾角的余弦值來衡量2個文本間差異,計算測試文本特征A與貝葉斯網(wǎng)絡(luò)中第j個特征子集Xj的余弦相似度,如式(2)所示。
在提取到測試文本特征并進行歸一化處理后,使用余弦相似度s(i)作為測試文本特征與類特征相似度量方式,比較所有相似值,選用相似值最大的特征節(jié)點來表征測試文本。
針對分類模型存在特征局限的缺陷,本文采用3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型建立分類器。3層貝葉斯網(wǎng)絡(luò)模型的本質(zhì)是對特征詞層次式的組織,在類與特征節(jié)點之間增加細分類層,旨在提高特征覆蓋面,改善文本特征局限的缺陷。提出一種GWO_GA結(jié)構(gòu)學(xué)習(xí)算法,混合灰狼算法的頭狼引導(dǎo)和遺傳算法的選擇、交叉及變異算子進行結(jié)構(gòu)尋優(yōu),通過結(jié)構(gòu)學(xué)習(xí)算法放松屬性間的條件獨立假設(shè)。
定義 2 特征局限。假設(shè)中文郵件中包含有n種類型的垃圾郵件,由于某類郵件數(shù)量較多、特征詞出現(xiàn)頻次高和敏感詞多等因素,在特征層選定特征詞時,大量該類特征詞被標記為垃圾郵件特征而其他類特征詞未被標記,把這種特征過于偏向或局限于某類的現(xiàn)象稱為特征局限。
從結(jié)構(gòu)上分析,直接由類節(jié)點連接特征節(jié)點的結(jié)構(gòu)模型容易導(dǎo)致特征局限,特征局限使得某些垃圾郵件的特征無法與類特征匹配,從而將垃圾郵件誤判為正常郵件,這對多領(lǐng)域郵件過濾不利。針對分類模型特征局限的缺陷,本文采用3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型以效彌補該缺陷,在類節(jié)點與特征節(jié)點中間加入一個細分類層,對特征詞層次式的組織,讓中文郵件類下存在更多細分類以保證每個細分類的特征都被覆蓋,從而避免了特征局限的問題。
基于3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,根據(jù)本文收集郵件的具體情況,將郵件大體分成3個細分類:廣告類(ad)、工作類(work)、財務(wù)類(finance)。當然,根據(jù)郵件過濾需要,細分類數(shù)量可增多。
圖2 3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型
貝葉斯分類算法需要通過適度放松其所需條件獨立性假設(shè)的方法對其做出改進。本文根據(jù)3層貝葉斯網(wǎng)絡(luò)模型的結(jié)構(gòu)特點,結(jié)合垃圾郵件過濾的具體需求,提出一種混合灰狼和遺傳的結(jié)構(gòu)學(xué)習(xí)算法——GWO_GA算法,用以對分類器模型進行結(jié)構(gòu)學(xué)習(xí),并只對特征層到細分類層做結(jié)構(gòu)學(xué)習(xí)訓(xùn)練。
3.2.1 遺傳算法
遺傳算法(GA, genetic algorithm)中包含3個核心算子——選擇、交叉和變異,本文參考文獻[20]中所采用的方法,用于對垃圾郵件過濾系統(tǒng)中的分類器篩選結(jié)構(gòu)和增加結(jié)構(gòu)的多樣性,并使評分高的結(jié)構(gòu)被留下,保證訓(xùn)練垃圾郵件分類器的迭代過程中出現(xiàn)更多的繼承父代基因且優(yōu)于父代的新結(jié)構(gòu),以獲取全局最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。
垃圾郵件分類器中,分類器結(jié)構(gòu)為GA算法的種群個體,對分類器網(wǎng)絡(luò)結(jié)構(gòu)評分為GA算法的個體的適應(yīng)度。
分類器結(jié)構(gòu)選擇。采用輪盤賭選擇可提高選中次優(yōu)結(jié)構(gòu)的機會,增加分類器結(jié)構(gòu)的多樣性,避免陷入局部最優(yōu)[20]。輪盤賭選擇中,將對所有分類器網(wǎng)絡(luò)結(jié)構(gòu)的評分置于同一圓盤中,隨機轉(zhuǎn)動圓盤,停止后指針所指區(qū)域為所選結(jié)構(gòu)。圖3為輪盤賭選擇操作,由于評分越高的結(jié)構(gòu)在輪盤中所占面積越大,在分類器結(jié)構(gòu)選擇操作中,選到評分高的結(jié)構(gòu)的可能大于評分低的結(jié)構(gòu),但評分低的結(jié)構(gòu)仍有選中的機會,因此在評分高的結(jié)構(gòu)得以保留的同時又增加了結(jié)構(gòu)的多樣性,避免搜索像 HC(hill climbing)算法那樣陷入局部最優(yōu)。
圖3 輪盤賭選擇操作
分類器結(jié)構(gòu)交叉。采用行(列)間交換進行分類器結(jié)構(gòu)的隨機交換,2個父代網(wǎng)絡(luò)結(jié)構(gòu)的部分結(jié)構(gòu)交換重組以產(chǎn)生新結(jié)構(gòu)[20]。圖4為行交換交叉操作,將2個父代網(wǎng)絡(luò)結(jié)構(gòu)Ga和Gb的同行進行交換(可一行交換,也可多行交換),如行a1—a4與行b1—b4交換。分類器網(wǎng)絡(luò)結(jié)構(gòu)在通過交叉操作后,結(jié)構(gòu)不斷更新,提高了分類器的搜索能力。
分類器結(jié)構(gòu)變異。對分類器網(wǎng)絡(luò)中細分類與特征間互信息值較大的邊做加邊操作,互信息值較小的邊做減邊操作[20]。依據(jù)細分類與特征間的互信息對結(jié)構(gòu)向量中的邊進行變動,由于細分類與特征間的互信息是表征2個節(jié)點存在因果關(guān)系的量度,在變異過程中,隨機選擇結(jié)構(gòu)列進行變異操作,若選中邊的節(jié)點間互信息值較高,則對該邊做加邊操作,反之則對該邊做減邊操作。
圖4 行交換交叉操作
3.2.2 GWO_GA算法
在對垃圾郵件過濾分類器進行結(jié)構(gòu)學(xué)習(xí)時,受灰狼優(yōu)化算法(GWO, grey wolf optimizer)[21]中3只頭狼引導(dǎo)種群更新位置的思想啟發(fā),迭代中,在分類器網(wǎng)絡(luò)結(jié)構(gòu)更新后,選出3個評分最高的結(jié)構(gòu),并將它們的交集作為下次迭代的初始結(jié)構(gòu)。3個結(jié)構(gòu)都存在各自的缺陷,需找出3個最優(yōu)結(jié)構(gòu)的共同列作為最終的分類器結(jié)構(gòu),即求交集。
算法2為GWO_GA結(jié)構(gòu)學(xué)習(xí)算法,先通過計算分類器的細分類與特征節(jié)點間的互信息,來構(gòu)建最大支撐樹G0。給僅能表示節(jié)點間有無關(guān)系的無向圖隨機定向會降低搜索效率,故采用節(jié)點間輪流當父子節(jié)點做BIC評分,將評分高的作為分類網(wǎng)絡(luò)中邊的方向,以獲取初始化結(jié)構(gòu)G。獲得初始化結(jié)構(gòu)后,算法進入迭代尋優(yōu),搜索最優(yōu)的分類器結(jié)構(gòu)。
迭代中,首先通過隨機加邊、減邊和轉(zhuǎn)邊的方式獲得分類器的初始結(jié)構(gòu),并對其BIC評分。其次采用轉(zhuǎn)盤賭選擇,從初始結(jié)構(gòu)中選出10個結(jié)構(gòu)(依據(jù)為GWO算法的狼群數(shù)量)作為父代結(jié)構(gòu);每2個結(jié)構(gòu)間進行交換交叉操作產(chǎn)生子代結(jié)構(gòu);對子代結(jié)構(gòu)中互信息值大的進行加邊操作,小的進行減邊操作,并對新結(jié)構(gòu)BIC評分。最后,對新結(jié)構(gòu)中最優(yōu)的前3個結(jié)構(gòu)求交集,將3個最優(yōu)結(jié)構(gòu)的共同邊作為下次迭代的初始結(jié)構(gòu)。在滿足迭代停止條件前,重復(fù)以上迭代過程,多次迭代直至搜索到最優(yōu)結(jié)構(gòu),并將評分最優(yōu)的結(jié)構(gòu)作為最終分類器結(jié)構(gòu)。
在垃圾郵件過濾系統(tǒng)中,使用GWO_GA算法訓(xùn)練分類器結(jié)構(gòu),通過對已標記的郵件數(shù)據(jù)進行結(jié)構(gòu)學(xué)習(xí),擬合出較貼合實際數(shù)據(jù)的分類器結(jié)構(gòu)。
本垃圾郵件過濾系統(tǒng)可分為特征提取和貝葉斯分類兩大部分,其中,貝葉斯分類部分需經(jīng)過結(jié)構(gòu)學(xué)習(xí)、參數(shù)學(xué)習(xí)和推理3個過程,這是貝葉斯網(wǎng)絡(luò)研究的一個完整過程。首先,通過結(jié)構(gòu)學(xué)習(xí)建立拓撲網(wǎng)絡(luò);然后,通過參數(shù)學(xué)習(xí)為計算條件概率;最后,通過貝葉斯推理進行文本分類。
在使用以上算法完成特征提取、建立模型和結(jié)構(gòu)學(xué)習(xí)后,在已知網(wǎng)絡(luò)拓撲結(jié)構(gòu)的情況下,用最大期望算法(EM, expectation maximization)[22]對節(jié)點進行參數(shù)學(xué)習(xí),通過給定文本數(shù)據(jù),學(xué)習(xí)整個貝葉斯網(wǎng)絡(luò)的概率分布。用聯(lián)合樹推理算法[23]進行類別推理,將待測文本特征作為證據(jù),去除與文本特征及類無關(guān)的所有節(jié)點后,求其屬于某類的后驗概率,即利用條件概率推出聯(lián)合概率后,計算出最終類別的邊緣概率。
圖5為垃圾郵件過濾系統(tǒng)流程,在特征提取部分,經(jīng)過文本分詞和去除停用詞等文本預(yù)處理后,采用基于中心詞擴展的 TF-IDF特征提取算法對文本做特征提取,并將特征向量化。在貝葉斯網(wǎng)絡(luò)部分,首先,使用GWO_GA結(jié)構(gòu)學(xué)習(xí)算法訓(xùn)練3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型,構(gòu)建拓撲結(jié)構(gòu);其次,通過EM參數(shù)學(xué)習(xí)訓(xùn)練樣本數(shù)據(jù),計算節(jié)點的先驗概率,并保存到條件概率表(CPT, conditional probability table)中;最后,在給出待測文本d提供證據(jù)的情況下,結(jié)合CPT采用聯(lián)合樹推理算法進行推理,使用垃圾郵件與正常郵件的概率比是否高于均值給出類別判定,并標定垃圾郵件。
圖5 垃圾郵件過濾系統(tǒng)流程
垃圾郵件過濾系統(tǒng)過濾流程可以分為如下5個步驟。
步驟1文本預(yù)處理。先使用NLPIR漢語分詞系統(tǒng)對文本進行分詞處理,將非名詞單詞以及英文詞作為停用詞去除,做去停用詞處理。
步驟 2特征提取。依據(jù)本文提出的基于中心詞擴展的 TF-IDF特征提取算法,對訓(xùn)練樣本做特征提取,并將所提取特征向量化。
步驟3結(jié)構(gòu)學(xué)習(xí)。手動建立本文提出的3層貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)模型,同時,使用本文提出的GWO_GA算法對該模型進行結(jié)構(gòu)訓(xùn)練。
步驟4參數(shù)學(xué)習(xí)。使用EM參數(shù)學(xué)習(xí)算法對樣本數(shù)據(jù)進行參數(shù)學(xué)習(xí),計算節(jié)點發(fā)生的先驗概率,并保存到CPT中。
步驟 5推理。將待測文本與特征集做相似度量,選擇相似度最高的特征節(jié)點作為證據(jù),采用聯(lián)合樹推理算法進行推理,計算出給定證據(jù)是否為垃圾郵件類的后驗概率,并對郵件進行類別標定。
本文實驗部分首先對本文算法和原始GA算法進行收斂性分析,證明本文算法的可行性。其次,對本文算法與樸素貝葉斯算法的性能進行比較,以證明3層結(jié)構(gòu)模型的可行性和有效性。然后,將本文算法與使用經(jīng)典HC算法、GA算法和本實驗室已有的SHC(simplify hill climbing)算法[24]貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練后的中文垃圾郵件過濾效果同時進行性能對比,以證明本文算法對經(jīng)典算法改進的有效性和優(yōu)越性。最后,為使本文算法更具有普遍意義,實驗還增加了TREC公共垃圾郵件語料庫中文版 trec06c數(shù)據(jù)集下,當前新的過濾算法與本文算法的對比結(jié)果。
在互聯(lián)網(wǎng)科技迅速更新的環(huán)境下,網(wǎng)絡(luò)用語也在不斷更新。由于網(wǎng)絡(luò)上大多數(shù)開源的郵件數(shù)據(jù)庫相對老舊,大多數(shù)郵件不符合當下郵件過濾的實際需求,故本文選擇自己收集郵件。根據(jù)筆者個人工作環(huán)境,本文收集了3 000封郵件文本作為數(shù)據(jù)來源,其中包括廣告、工作和財務(wù)的3類郵件,而這3類郵件文本中,正例文本(垃圾郵件)占比 60%,反例文本(正常郵件)占比 40%。同時,為使結(jié)果更具普遍意義,實驗還使用2006年TREC公共垃圾郵件語料庫中文版 trec06c作為實驗樣本,選用trec06c前10 000封郵件作數(shù)據(jù)來源,其中,垃圾郵件6 631封,正常郵件3 369封。
在樸素貝葉斯郵件過濾中,沒有將郵件文本分為廣告、工作和財務(wù)的3類郵件,而是只分正例文本和反例文本。本文收集的3 000封郵件文本中,2 000封為訓(xùn)練樣本,其余1 000封為待測樣本。
在3層貝葉斯網(wǎng)絡(luò)郵件過濾系統(tǒng)中,則將郵件文本分為廣告、工作和財務(wù)3類郵件,每類郵件分正例文本和反例文本。同樣,3 000封郵件文本中,2 000封為訓(xùn)練樣本,其余1 000封為待測樣本。
收斂(收斂性)是指函數(shù)或數(shù)列是否存在極限,設(shè)數(shù)列{Li},若存在常數(shù)a,對于給定任意小的正數(shù)b,總存在正整數(shù)I,使得i>I時,|Li-a| <b恒成立,則稱數(shù)列{Li}收斂。
本文把GWO_GA算法和原始GA算法迭代過程中對最優(yōu)結(jié)構(gòu)的BIC評分作為判斷依據(jù),將每次得到的評分放在同一數(shù)列中,并通過繪制數(shù)列曲線圖來判斷算法的迭代是否收斂。由于BIC評分結(jié)果為負值,為方便繪圖,對評分取絕對值,因此,繪制數(shù)列曲線圖中評分值越小,實際評分越高。
使用正確率(accuracy)、準確率(precision)、查全率(recall)和 F1-Measure作為垃圾郵件過濾的性能評價指標。設(shè)判斷正確的郵件量記為at,判斷錯誤的郵件量記為af,全部測試郵件量記為at+af。將垃圾郵件判定為垃圾郵件的總量記為tp,將正常郵件判定為垃圾郵件的總量記為fp,將垃圾郵件判定為正常郵件的總量記為fn。
正確率A表示為
準確率P表示為
查全率R表示為
F1-Measure表示為
如5.2小節(jié)所述,曲線評分值越小,實際評分越高。圖6中,隨著迭代次數(shù)的不斷增加,本文GWO_GA算法和原始GA算法的BIC評分在10次以內(nèi)曲線急劇下降,表示實際評分值急劇上升,20次到30次以內(nèi)優(yōu)勢減緩,而后則維持在一定值上下小幅度波動。由此可證明,本文算法具有收斂性,且本文算法的收斂效果優(yōu)于原始GA算法,說明本文算法具有可行性。
圖6 BIC評分曲線
圖7中,隨著訓(xùn)練樣本量的增多,樸素貝葉斯算法的正確率先是基本維持在60%左右,后有所下降;而本文算法的正確率則穩(wěn)定在75%左右。
圖7 分類正確率對比
對樸素貝葉斯算法而言,由于訓(xùn)練文本的不斷增加,提取到的特征基本穩(wěn)定。而由于中文文本特征具有稀疏性,文本特征具有一定噪聲,樣本基數(shù)不斷上升,導(dǎo)致先驗概率變小,故分類效果出現(xiàn)穩(wěn)定到下滑的變化,當測試文本中有用的特征達到飽和時,訓(xùn)練樣本的增多就成為負擔(dān),反而導(dǎo)致先驗概率變小,分類效果下降。然而,對本文算法而言,3層結(jié)構(gòu)使得特征覆蓋面增大,特征多樣性增加,在細分類與特征節(jié)點的關(guān)系確定的情況下,盡管訓(xùn)練文本在不斷增加,分類效果也保持穩(wěn)定。由此可證明,本文算法比樸素貝葉斯算法具有更強的頑健性,3層結(jié)構(gòu)模型具有可行性和有效性。
圖8為4種算法在不同數(shù)據(jù)集下的正確率、準確率、查全率和F1-Measure的表現(xiàn)。從圖8中可以看出本文GWO_GA算法和原始GA算法在正確率、準確率、查全率和F1-Measure這4個分類指標上都比較穩(wěn)定,而經(jīng)典HC算法和SHC算法波動較大,尤其是在查全率上,遺傳算法穩(wěn)定性優(yōu)于HC算法。隨著訓(xùn)練樣本數(shù)據(jù)量的上升,本文算法整體上呈現(xiàn)上升的趨勢,說明隨著訓(xùn)練學(xué)習(xí)的增加,分類性能也在上升;同時,本文算法各項性能都明顯優(yōu)于其他算法,可見本文算法的性能優(yōu)越性。
正確率高說明將正常郵件和垃圾郵件判定正確的數(shù)量多,準確率高說明將正常郵件判定為垃圾郵件的數(shù)量少,查全率高說明將垃圾郵件判定為正常郵件的數(shù)量少,F(xiàn)1-Measure值則是綜合表現(xiàn)。從各項數(shù)值來看,本文算法相較于其他算法分類性能提升近10%。而所有算法的查全率高說明算法對垃圾郵件的特征把握得較好,原因可能是選取郵件樣本中,正例文本偏多。
圖8 4種算法分類性能指標
表1為使用2006年TREC公共垃圾郵件語料庫中文版 trec06c作為實驗樣本的情況下本文算法與當前新算法分類性能的比較,從表1可看出,用RBF-SVM 算法表示文本向量的加權(quán)分布特征算法,PTw2v算法[25]對垃圾郵件有較優(yōu)的分類性能,相比之下,本文算法與逐層添加注釋語義特征提取的C4.5算法[26]相當,而優(yōu)于SHC算法。
表1 trec06c語料庫4種算法分類性能對比
使用公開垃圾郵件語料庫實驗的分類性能比自己收集的實驗數(shù)據(jù)集優(yōu),說明該公開語料庫更適合進行實驗。與當前新的過濾算法相比,本文算法在查全率上凸顯出優(yōu)勢,說明層次式特征細化類別可降低誤判率。本文算法在準確率上略顯不足,原因可能是本文在特征選擇上將高頻詞作為中心詞,會將某些對特征不明顯的詞當成特征并擴展,將普通詞作為特征會使正常郵件的特征與垃圾郵件特征關(guān)聯(lián)性增加,從而使正常郵件誤判為垃圾郵件,降低準確率,下一步將針對此問題做出改進。
3層結(jié)構(gòu)模型這種層次式特征在單一類別垃圾郵件過濾中并不能使分類性能提升,但對于多領(lǐng)域分類而言,層次式特征的3層結(jié)構(gòu)模型降低了誤判率。真正對分類性能有提升作用的是新的分類器,新的結(jié)構(gòu)學(xué)習(xí)算法對分類器結(jié)構(gòu)進行了優(yōu)化,相比根據(jù)專家知識做出的屬性間條件獨立性假設(shè),GWO_GA算法訓(xùn)練的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)對數(shù)據(jù)擬合得更好。
本文基于GWO_GA結(jié)構(gòu)學(xué)習(xí)算法和3層貝葉斯網(wǎng)絡(luò)模型建立了中文垃圾郵件過濾的系統(tǒng),通過GWO算法的頭狼引領(lǐng)和GA算法選擇、交叉和變異算子的混合實現(xiàn)了網(wǎng)絡(luò)結(jié)構(gòu)的遺傳迭代尋優(yōu),使得數(shù)據(jù)與結(jié)構(gòu)充分擬合。而基于中心詞擴展的TF-IDF算法則極大降低特征維度,直接增加了特征節(jié)點的表達能力。在貝葉斯網(wǎng)絡(luò)的3層結(jié)構(gòu)模型改善特征覆蓋面局限缺陷的同時,使用GWO_GA結(jié)構(gòu)學(xué)習(xí)算法放松模型結(jié)構(gòu)屬性之間的獨立性假設(shè)。使得整個垃圾郵件過濾系統(tǒng)具有良好的過濾性能,提高了垃圾郵件過濾的效果。