黃 鶴,荊曉遠(yuǎn),董西偉,吳 飛
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210023;2.南京郵電大學(xué) 自動化學(xué)院,江蘇 南京 210023)
隨著互聯(lián)網(wǎng)廣告技術(shù)的發(fā)展和電子郵件的普及,越來越多的垃圾廣告郵件充斥生活,垃圾郵件可以說是因特網(wǎng)帶給人類最具爭議性的副產(chǎn)品之一。占用網(wǎng)絡(luò)帶寬,造成郵件服務(wù)器擁塞,進(jìn)而降低整個網(wǎng)絡(luò)的運(yùn)行效率;侵犯收件人的隱私權(quán),侵占收件人信箱空間,耗費(fèi)收件人的時間、精力和金錢。有的垃圾郵件還盜用他人的電子郵件地址做發(fā)信地址,嚴(yán)重?fù)p害了他人的信譽(yù);因此,如何快速有效地對這類垃圾郵件進(jìn)行過濾成為了熱門的研究課題,同時也成為了自然語言處理中一個非常重要的研究方向。近年來,深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的驚人表現(xiàn)有目共睹,與此同時,在自然語言處理(natural language processing,NLP)的應(yīng)用也越來越廣泛。對于垃圾郵件分類,國內(nèi)外的很多學(xué)者已經(jīng)做出了很多探索,使用的方法主要包括傳統(tǒng)的機(jī)器學(xué)習(xí)方法和現(xiàn)在流行的深度學(xué)習(xí)方法。
李婷婷等[1]嘗試從文本數(shù)據(jù)中進(jìn)行人工特征構(gòu)建,然后用傳統(tǒng)的機(jī)器學(xué)習(xí)方法進(jìn)行分類,這種方法實(shí)質(zhì)上屬于機(jī)器學(xué)習(xí)范疇,其分類效果嚴(yán)重依賴于特征的構(gòu)建質(zhì)量并且整個過程非常耗時耗力。陳翠平等[2]利用深度置信網(wǎng)絡(luò)從高維的原始特征中抽取高度可區(qū)分的低維特征,最后用深度學(xué)習(xí)的思想來完成分類任務(wù)。這相比于人工構(gòu)建特征的方式,更加高效地完成了特征提取任務(wù),但只有網(wǎng)絡(luò)足夠深時才能夠提取出較好地反映出文本語義信息的特征,使得模型參數(shù)數(shù)量和訓(xùn)練時間大大增加。如果用深度學(xué)習(xí)對文本進(jìn)行預(yù)處理就需要將文本進(jìn)行數(shù)字化表示。以前的詞表示方法主要是獨(dú)熱編碼One-hot,但是這樣做的缺點(diǎn)是維度過高且數(shù)據(jù)稀疏,對于自然語言處理來說,也不能很好地保留詞語前后的語義信息。目前詞嵌入(Word embedding)可以有效地保留詞匯語法、語義信息的詞向量轉(zhuǎn)換方式。借助于詞向量的方法,從而使用深度學(xué)習(xí)提取有效的郵件文本特征成為了可能。
其次對于垃圾郵件分類問題,有機(jī)器學(xué)習(xí)方法,如Shen等[3]用決策樹構(gòu)造三步法進(jìn)行郵件過濾;Feng等[4]提出的SVM-NB方法取得了較高的垃圾郵件檢測精度。2014年,Kim等[5]將Word embedding與CNN相結(jié)合應(yīng)用于情感分析和文本分類等若干自然語言處理任務(wù)中,取得了非常好的效果。
在上述研究的基礎(chǔ)上,文中利用Word embedding將詞分布式映射到一個低維空間,解決傳統(tǒng)的One-hot編碼詞向量維度過高問題,然后結(jié)合CNN進(jìn)行特征提取,其中還加了一層Highway網(wǎng)絡(luò),它是對提取出的特征進(jìn)行優(yōu)化。最后在CCERT數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),通過與其他方法的對比,證明該模型提高了準(zhǔn)確率。
在傳統(tǒng)的自然語言處理問題中,首先要把詞轉(zhuǎn)換為詞向量的形式,這樣計(jì)算機(jī)才可以用各種算法處理自然語言問題。One-hot是一種很經(jīng)典的詞向量表示方法,這個向量的維度是詞表的大小,其中絕大多數(shù)是0,只有一個維度的值為1,這個維度就代表當(dāng)前的詞,如下所示:
“北京”表示為[0 0 0 1 0 0 0 0 0 0…]
“首都”表示為[0 0 0 0 0 0 0 1 0 0…]
這里任意兩個詞之間是獨(dú)立的,且維度過高,這樣構(gòu)成的詞向量非常稀疏,也很難反映出詞語間的語義關(guān)系。為了解決這個問題,Hinto等[6]提出了Word embedding的詞向量表示方法,主要是將詞分布式地映射到低維空間,這樣就解決了向量稀疏問題。并且,該低維空間中詞向量的位置關(guān)系很好地反映了它們在語義上的聯(lián)系,這樣能很好地反映了文本的特征。Mikolov等[7]在Bengio等[8]研究的基礎(chǔ)上提出了CBOW和Skip-gram模型,如圖1所示。
圖1 CBOW和Skip-gram模型
CBOW模型是根據(jù)上下文的詞來預(yù)測目標(biāo)詞,而Skip-gram模型是根據(jù)當(dāng)前詞來預(yù)測上下文的詞。相比其他Word embedding模型,Skip-gram模型訓(xùn)練時間短且效果較好。所以文中使用Skip-gram模型來構(gòu)造Word embedding模型[9]:假定有一組詞序列w1,w2,…,wn,Skip-gram的目標(biāo)是使式1最大化。
(1)
其中,C是前后文的詞數(shù),C越大,最后訓(xùn)練出來的Word embedding越好,但是會增加訓(xùn)練的時間。
當(dāng)談到卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNNs)時,往往會聯(lián)想到計(jì)算機(jī)視覺。CNNs在圖像分類領(lǐng)域做出了巨大貢獻(xiàn),也是當(dāng)今絕大多數(shù)計(jì)算機(jī)視覺系統(tǒng)的核心技術(shù)。Krichevsky等[10]設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)在2012年的ImageNet挑戰(zhàn)賽中獲得冠軍。LeCun等[11]用卷積神經(jīng)網(wǎng)絡(luò)成功解決了手寫體數(shù)字識別問題。由于卷積神經(jīng)網(wǎng)絡(luò)有著諸多優(yōu)點(diǎn),現(xiàn)在越來越多的研究者將其應(yīng)用到各種領(lǐng)域。Honglak等[12]通過卷積深度置信網(wǎng)絡(luò)進(jìn)行音頻特征分析。Collobert等[13]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于自然語言處理,證明其提出的模型在各項(xiàng)任務(wù)中都有出色表現(xiàn)。Shen等[14]利用卷積神經(jīng)網(wǎng)絡(luò)解決了信息檢索中的語義分析問題。Kalchbrenner等[15]利用卷積神經(jīng)網(wǎng)絡(luò)對句子進(jìn)行建模,而且還給出了pooling的一個新方式。而文中利用卷積神經(jīng)網(wǎng)絡(luò)提取文本郵件的特征,再利用Highway網(wǎng)絡(luò)對卷積特征進(jìn)行優(yōu)化,從而提高分類的準(zhǔn)確率。
2.1.1 分 詞
眾所周知,圖像是由一個個的像素點(diǎn)組成,計(jì)算機(jī)在處理圖片時,輸入數(shù)據(jù)是二維矩陣。因此在處理文本郵件時,首先要把文本數(shù)據(jù)做成矩陣形式,但在這之前,還要對文本進(jìn)行分詞。對中文文本分詞,不像對英文文本那樣,只要根據(jù)空格和標(biāo)點(diǎn)符號將詞語分割成數(shù)組即可,因?yàn)橛⒄Z的句子基本上就是由標(biāo)點(diǎn)符號、空格和詞構(gòu)成。但是,中文文本是由連續(xù)的字序列構(gòu)成,詞與詞之間是沒有天然的分隔符,所以中文分詞相對來說困難很多。中文分詞目前來說基本上都還是基于分詞用的詞典來進(jìn)行分詞的,將字和字組成不同的詞然后放入詞典中查找。中文分詞面臨著相當(dāng)多的挑戰(zhàn),首當(dāng)其沖的就是歧義問題,不同的分割方式會導(dǎo)致不同的意思。
如下面兩句話中詞和詞序完全一樣,但是不同的分詞,意思完全不一樣:
結(jié)婚/的/和/尚未/結(jié)婚/的人
結(jié)婚/的/和尚/未/結(jié)婚/的人
還有個重要的挑戰(zhàn)就是未收錄的詞,人名就是最簡單的例子,還有就是網(wǎng)友發(fā)明的詞,諸如:“草泥馬”、“不明覺厲”之類的。所以一個好的分詞詞典是決定中文分詞質(zhì)量的關(guān)鍵,還有就是做中文分詞的話必須經(jīng)常更新、與時俱進(jìn)。文中用的是jieba分詞器,它是基于Python的一個中文分詞模塊,內(nèi)置詞典,詞典有50萬個詞條。另外,對于未登錄詞,jieba采用了基于漢字成詞能力的HMM(hidden markov model)模型,使用了維特比(Viterbi)算法的四種狀態(tài)的模型。
2.1.2 停用詞處理
郵件文本一般都是短文本,包含的詞語少,無關(guān)詞語帶來的影響也會更明顯,其中也包括一些無關(guān)的表情符號,因此去停用詞也是一個重要環(huán)節(jié),這里對“哈工大停用詞詞庫”、“四川大學(xué)機(jī)器學(xué)習(xí)智能實(shí)驗(yàn)室停用詞庫”、“百度停用詞表”進(jìn)行整理,去重,在提取中文詞(而不是大量英文詞和中文標(biāo)點(diǎn)符號)出了一個比較全面的詞表,用于文中郵件數(shù)據(jù)處理。
2.1.3 Word embedding訓(xùn)練
這里用Skip-gram模型進(jìn)行Word embedding訓(xùn)練,它是根據(jù)當(dāng)前詞來預(yù)測上下文的詞。它主要是將詞分布式地映射到低維空間,并且,該低維空間中詞向量的位置關(guān)系很好地反映了它們在語義上的聯(lián)系,這樣能很好地反映文本的特征,如圖2所示。然后再把做好后的詞向量做成二維矩陣,作為卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)。
圖2 詞向量低維空間
從圖2的例子可以發(fā)現(xiàn),華盛頓和紐約聚集在一起,北京和上海聚集在一起,且北京到上海的距離與華盛頓到紐約的距離相近。也就是說模型學(xué)習(xí)到了城市的地理位置,也學(xué)習(xí)到了城市地位的關(guān)系。
在這一步中,首先要找到最大長度的句子,再把其他所有句子都統(tǒng)一填充到這個長度。填充句子到同樣的長度是必須的,因?yàn)榕幚淼拿總€樣本都必須有相同的長度,所以這樣可以高效地把數(shù)據(jù)劃分成批。這里用零填充的方法。
假設(shè)郵件文本中,經(jīng)過數(shù)據(jù)預(yù)處理后,長度最長的郵件包含n個詞,該郵件中的第i個詞所對應(yīng)的詞向量是vi∈Rd,那么卷積神經(jīng)網(wǎng)絡(luò)的輸入就是由n個d維向量組成的n×d的二維矩陣,如圖3所示。
圖3 輸入的二維矩陣
圖3是文本數(shù)據(jù)經(jīng)過預(yù)處理后,一個句子的矩陣表示,它是由句子中的所有詞匯的詞向量縱向拼接在一起,可以表示為:
v=v1?v2?…?vn
(2)
其中,?是縱向拼接操作符;v是一個樣本郵件的矩陣表示。
2.2.1 CNNs
文中進(jìn)行多層卷積操作,卷積核是有三種不同的大小對文本進(jìn)行卷積,分別提取多組特征向量,若卷積核的高是h,維度是d,卷積后的特征向量是ti,有:
ti=f(w·xi:i+h-1+b)
(3)
其中,w是卷積核的權(quán)重參數(shù);b是偏置值;f是激活函數(shù),一般常用的是sigmid函數(shù)或tanh函數(shù),文中為了加快收斂速度用ReLu函數(shù):
f(x)=max(0,x)
(4)
最后對所有的郵件文本進(jìn)行卷積之后得到總特征向量(T∈Rn-h+1):
t=[t1,t2,…,tn-h+1]
(5)
得到卷積后的特征向量之后,再進(jìn)行max-pooling操作,進(jìn)一步提取特征T=max{t},然后把所有的T進(jìn)行拼接,從而獲得最具代表性的特征。在連接全連接層之后,為了防止出現(xiàn)過擬合現(xiàn)象,增加了Dropout操作,禁止一部分的神經(jīng)元參加更新過程,這樣就使得權(quán)重的更新不依賴于固定節(jié)點(diǎn)的作用。
2.2.2 Highway網(wǎng)絡(luò)優(yōu)化層
隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)的深度逐漸加深,網(wǎng)絡(luò)的訓(xùn)練也變得越來越困難。Highway Networks:一種可學(xué)習(xí)的門限機(jī)制,在此機(jī)制下,一些信息流沒有衰減地通過一些網(wǎng)絡(luò)層。一般一個有L層的傳統(tǒng)前向神經(jīng)網(wǎng)絡(luò),每層網(wǎng)絡(luò)對輸入進(jìn)行非線性映射變換,表達(dá)為:
y=H(x,WH)
(6)
其中,H為非線性函數(shù);WH為權(quán)重;x為輸入;y為輸出。
對于Highway CNN網(wǎng)絡(luò),在上述基礎(chǔ)上增加兩個非線性激活函數(shù)T與C,則:
y=H(x,WH)·T(x,WT)+x·C(x,WC)
(7)
一般情況設(shè)置C=1-T,則式7可以改寫為:
y=H(x,WH)·T(x,WT)+x·(1-T(x,WC)) (8)
其中,參數(shù)x,y,H,T的維數(shù)須一致,不夠補(bǔ)零。T被稱作轉(zhuǎn)換門,可以對輸入的信息流進(jìn)行處理,這種方法已經(jīng)被證實(shí)可以解決訓(xùn)練收斂問題,提高模型性能。
實(shí)驗(yàn)環(huán)境如表1所示。
表1 實(shí)驗(yàn)環(huán)境及配置
實(shí)驗(yàn)數(shù)據(jù)來自CCERT中文郵件數(shù)據(jù)集。該數(shù)據(jù)集中包含5 000條正常郵件,5 000條垃圾郵件。垃圾郵件里包含一些廣告,廣告商的電話號碼,地址,等等。數(shù)據(jù)的劃分是打亂所有數(shù)據(jù),90%作為訓(xùn)練集,10%作為測試集;數(shù)據(jù)劃分完成后,就進(jìn)行一系列的數(shù)據(jù)預(yù)處理,處理過程見2.1節(jié)。
文中嘗試用Skip-gram的詞向量模型,對文本郵件進(jìn)行詞向量化作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,用CCERT中文郵件樣本集來完成CNNs-Highway混合郵件分類模型的性能測試,具體實(shí)驗(yàn)設(shè)計(jì)如下:
(1)CNNs+Skip-gram。在Skip-gram模型訓(xùn)練好的詞向量表中查找每條樣本中出現(xiàn)的每個詞的word embedding,并組合成m×k的二維數(shù)據(jù)矩陣作為CNN的輸入。其中m為數(shù)據(jù)集中最長評論所包含的詞數(shù),對于長度小于m的樣本需要補(bǔ)零;k為Word embedding長度。
(2)CNNs+rand。CNNs模型部分保持不變,按高斯分布隨機(jī)初始化Word embedding。實(shí)驗(yàn)?zāi)康氖峭ㄟ^與CNNs+Skip-gram模型的結(jié)果相比較,從而驗(yàn)證Word embedding在描述原始數(shù)據(jù)特征分布方面的性能。
(3)傳統(tǒng)機(jī)器學(xué)習(xí)模型。在相同數(shù)據(jù)集上,利用幾種常用的機(jī)器學(xué)習(xí)模型作為對比來證明基于Skip-gram的CNNs-Highway模型在郵件分類任務(wù)上的性能優(yōu)勢。為了排除由于特征構(gòu)建方式的不同而導(dǎo)致實(shí)驗(yàn)結(jié)果無法比較,傳統(tǒng)模型的特征構(gòu)建方式同樣基于Word embedding,每條樣本的特征為該樣本中所有Word embedding的均值。
表2實(shí)驗(yàn)結(jié)果表明了不同的特征詞向量初始化對最后分類的影響。其中rand與non-static初始化的分類結(jié)果相近,這是因?yàn)樵诰W(wǎng)絡(luò)數(shù)據(jù)中存在大量的新詞、表情、鏈接地址,從而導(dǎo)致該數(shù)據(jù)集的詞典中將近一半的詞都沒有在詞向量中出現(xiàn)過,這也使得隨機(jī)賦值的詞向量在詞典中比重較大,使用隨機(jī)模型CNN-rand也就與詞向量模型CNN-non-static相差甚微。
表2 不同詞向量初始化分類結(jié)果對比
表3的實(shí)驗(yàn)結(jié)果證明了文中的郵件分類模型相比傳統(tǒng)的機(jī)器學(xué)習(xí)方法獲得了出色的性能提升。結(jié)合表2和表3發(fā)現(xiàn),在隨機(jī)初始化的rand+CNNs-Highway基礎(chǔ)上準(zhǔn)確率就已經(jīng)超過了傳統(tǒng)的機(jī)器學(xué)習(xí)算法0.71%,結(jié)合Highway網(wǎng)絡(luò)對卷積神經(jīng)網(wǎng)絡(luò)提取的特征進(jìn)行優(yōu)化后,最終的分類結(jié)果提高到了94.48%。
表3 算法對比
由表4顯示,在同樣的詞向量模型下,加入Highway網(wǎng)絡(luò)優(yōu)化層比沒有加入Highway網(wǎng)絡(luò)的結(jié)果提高了0.47%,提高的不是很明顯。從理論上分析,是因?yàn)镠ighway網(wǎng)絡(luò)對深層神經(jīng)網(wǎng)絡(luò)優(yōu)化比較明顯,對淺層的網(wǎng)絡(luò)優(yōu)化一般。所以這也是下一步需要改進(jìn)的地方,在卷積網(wǎng)絡(luò)層加大深度,從而優(yōu)化文本郵件分類模型。
表4 有無Highway網(wǎng)絡(luò)層的結(jié)果對比
針對如何高效準(zhǔn)確地過濾出垃圾郵件的問題,提出了一種基于Skip-gram的CNNs-Highway文本郵件分類模型。首先對郵件數(shù)據(jù)集進(jìn)行中文分詞,去停用詞,然后用Skip-gram模型訓(xùn)練詞向量作為CNNs的輸入,其中經(jīng)過CNNs提取特征以后,還加入了Highway網(wǎng)絡(luò)優(yōu)化層。實(shí)驗(yàn)結(jié)果表明,該模型在文本郵件分類準(zhǔn)確率上得到了明顯提高。未來的研究工作包括以下幾方面:改進(jìn)CNNs,增加CNNs的深度,使之更適應(yīng)Highway網(wǎng)絡(luò)的優(yōu)化;在郵件分類問題中,考慮垃圾圖片郵件的過濾。