◆林建洪 翟建桐 徐 菁
?
融合LDA與Word2vector的垃圾郵件過濾方法研究
◆林建洪1翟建桐2徐 菁1
(1.浙江鵬信信息科技股份有限公司 浙江鵬信 310000;2.中國移動通信集團浙江有限公司 中國移動 310000)
在傳統垃圾郵件過濾技術的基礎上,提出一種融合LDA主題模型和Word2vector模型的文檔向量,并將LDA主題模型得到的不同維度的文檔——主題矩陣、Word2vector模型得到的詞向量以及融合的文檔向量作為支持向量機和邏輯回歸的特征輸入,通過8組對照實驗的效果分析得到:融合的文檔向量結合支持向量機模型的準確率最高,能夠對垃圾郵件進行精準過濾,降低了垃圾郵件對個人以及社會的危害。
LDA主題模型;Word2vector;垃圾郵件;支持向量機
隨著互聯網的發展,電子郵件成為人們日常生活、工作必不可少的應用。電子郵件由于其便捷、經濟等特點成為互聯網最廣泛的應用之一,但也因為其成本低廉、傳播快速的特點反而被垃圾郵件的制作者所利用。垃圾郵件廣義上來講就是未經收件人允許而發送的帶有商業廣告等不良信息的郵件。垃圾郵件不僅會使受害人遭受財產損失,更會造成計算機網絡資源的浪費,危害互聯網的發展。有鑒于此,需要一種精準、高效的方法對垃圾郵件進行判斷并過濾,為電子郵件用戶提供一個安全、純凈的環境。
垃圾郵件是指收件人事先沒有提出請求或無法拒絕或隱藏發件人個人信息的含有虛假信息、不良信息、營銷廣告等對收件人有害的郵件[1]。
國內外對于垃圾郵件過濾技術的研究較早,主要的過濾方法有:基于黑白名單的過濾、基于郵件頭的過濾以及基于內容的過濾。其中,基于內容的過濾主要是指對郵件文本內容進行分析與判斷,相較于其他兩種過濾方法有較高的準確率。隨著研究的深入,基于內容的過濾技術被劃分為兩類:基于規則的過濾器以及基于機器學習的算法過濾。基于規則的過濾器主要采用決策樹輸出的規則或粗糙集等對郵件頭、郵件內容進行分析,判斷郵件是否為垃圾郵件,該方法簡單、高效,但是垃圾郵件的規則變化多且快,該方法不能實時適應垃圾郵件的變化,不夠靈活。基于機器學習的算法過濾方法本質上是文本二分類的方法,對文本量化后采用機器學習分類方法對文本進行分類,該方法相較于基于規則的過濾方法有更高的準確率,能夠通過學習不斷變化的垃圾郵件的特征對判斷模型進行優化更新。表1為國內外學者對于基于內容的垃圾郵件過濾技術的研究,分別從研究視角、過濾技術兩個方面進行的總結。

表1 基于內容的垃圾郵件過濾研究匯總
從已有的研究來看,目前還有以下幾點可進一步深入研究:
(1)當前的研究主要集中于文本分類算法,對文檔向量主要采用TF或者TF-IDF進行量化。由于文本分類涉及到的特征維度過高,因此需要對文檔向量進行降維或者精簡處理,提取有效的特征。
(2)在日常的生活工作中,郵件已是必不可少的一種工具,由于在工作中,用戶每天都需要查收郵件,因此對垃圾郵件過濾技術的準確性以及時效性有更高的要求。
(3)深度學習是模擬人腦分析學習行為的神經網絡,深度學習是目前熱門的算法領域,因此可以將深度學習的算法應用到垃圾郵件過濾中。
本文在已有的研究基礎上,通過融合LDA主題模型以及目前熱門的深度學習算法Word2vector得到能精簡、完整、全面反映郵件文本內容的文檔向量,再通過對比邏輯回歸以及支持向量機的分類效果,選擇最優模型,提高垃圾郵件過濾算法的準確率。
2.1 文檔表達
(1)向量空間模型
向量空間模型(Vector Space Model,VSM)是將所有需要研究的文檔進行分詞后提取關鍵詞,并在同一個向量空間中表示出來。因此每篇文檔就能表示為由一些分量組成的向量,分量具體的取值通常采用TF-IDF值表示。
TF-IDF是由詞頻(Term Frequency)和逆文檔頻率((Inverse Document Frequency)兩部分組成,TF即某一個詞在該文本中出現的頻率,IDF為該詞在整個語料庫中出現的頻率。TF-IDF的計算方法就是將兩部分相乘,具體計算公式如下:
(2)詞向量
本文所指的詞向量主要是指Distributed Representation這種低維度的向量,通過語料庫的訓練將每一個詞表示為形如[0.792,?0.177,?0.107,0.109,?0.542,...]的50至200維的向量。不同于傳統的One-hot Representation詞向量,這種低維詞向量可以使詞義相近的詞在向量距離上更近并且避免了維數災難。
2.2 文檔分類算法
(1)邏輯回歸
邏輯回歸(Logistic Regression)是機器學習中的一種二分類模型,在線性回歸的基礎上運用了sigmoid函數,該函數的表現形式為:。考慮具有p個獨立變量的向量,設條件概率為根據觀測量相對于某事件發生的概率,通過極大似然估計訓練函數的參數值,得到判別模型。
(2)支持向量機
支持向量機(Support Vector Machine,SVM)通過核函數將非線性可分的數據映射到更高維,使得非線性可分變為線性可分。SVM的目的是要找到一個線性分類的最優超平面使得不同類的相鄰點之間的距離最大,距離越大則表示分類效果越好。
3.1 LDA主題模型
LDA是由Blei D M等人于2003年提出的基于三層貝葉斯概率的無監督的主題發現模型,該模型的特點是結構清晰、計算高效,適合大規模的文本建模。該模型包含文檔、主題、詞三層結構,文檔由主題組成,主題又由詞組成,文檔——主題服從Dirichlet分布,主題——詞服從多項式分布。具體的生成步驟為:首先選擇一個主題向量θ,確定每個主題被選擇的概率,接著從主題分布向量θ中選擇一個主題z,根據主題z的詞概率分布生成一個詞,重復上述過程直到遍歷文檔中的每一個詞。
LDA的核心公式見公式(2),其中α、β代表評論與主題、主題與詞的Dirichlet分布的超參數,θ為潛在主題在目標評論文檔中所占的比重,z代表評論的潛在主題,w代表潛在主題z和主題——詞分布條件下的詞向量,N為評論字數的集合,M為評論的集合。
3.2 Word2vector模型
Word2vector于2013年由Google的研究員發布,是一種用于深度學習的詞向量生成工具。Word2vector本質上是利用了神經網絡語言模型并對其進行了簡化,在保證效果沒有特別大的變化的前提下提高了計算復雜度。該模型常用的算法有兩種:CBOW(Continuous Bag-of-Words Model)和Skip-gram(Continuous Skip-gram Model)。文本所利用到的算法為Skip-gram,該算法的主要目的為在已知當前詞Wt的前提下預測該詞的前c個上下文詞Context(Wt),Context(Wt)的公式如下:
3.3 融合LDA與Word2vector的算法
訓練LDA主題模型可得到的文檔——主題矩陣,通過該矩陣將每一篇文檔D用m個潛在主題構成的向量表示,得到LDA文檔向量,形式為:。而通過Word2vector模型訓練可以得到n維詞向量,假設一篇文檔由k個關鍵詞組成,則可以通過求詞向量平均值的方式得到Word2vector文檔向量,的計算公式為:
從LDA以及Word2vector兩種算法的原理中不難發現:LDA主題模型所得到的文檔向量中的取值為潛在主題的分布,反映的是文檔的大致信息,特征粒度較粗;Word2vector模型所得到的文檔向量為詞向量的平均值,反映的是關鍵詞的信息,特征粒度較細。通過兩者的融合可以反映一篇文檔“粗”和“細”兩方面的特征,使得文檔的信息更加全面。文本采用向量串聯的方式進行融合,將m維的LDA文檔向量與n維的Word2vector文檔向量進行串聯,最終得到m+n維融合的文檔向量,具體表現形式為:
進一步,將文檔向量中的分量作為n+m個特征,這些特征為第3節中提到的邏輯回歸以及支持向量機的輸入,通過對兩個模型的訓練效果的評估,得到最優分類模型。
4.1 實驗設計
本文的實驗數據來源于開源數據網站——數據堂,共獲取1300條郵件文本數據,其中800條數據被標注為正常郵件,500條數據被標注為垃圾郵件。通過編寫scala程序對郵件文本進行分詞、去停用詞處理。
在構建LDA模型前首先將分詞抽取出構建詞袋,然后通過使用向量空間模型(Vector Space Model,VSM)將評論文檔轉化為文本向量,再對詞袋中的特征詞使用常用的TF-IDF函數進行轉換量化,從而構造出由郵件文本形成的文檔-詞頻矩陣。將該矩陣作為LDA模型的輸入,得到文檔——主題矩陣,該矩陣中,每一個文檔都有對應的主題向量,在本文中統一稱為LDA文檔向量。
不同于LDA建模,Word2vector建模前不需要對文檔的分詞進行TF-IDF量化,可直接賦予每個關鍵詞一個隨機數,通過Skip-gram算法的計算得到每個分詞的詞向量,將文檔對應的分詞的詞向量的均值作為文檔向量的具體取值,在本文中統計稱為Word2vector文檔向量。
在得到兩個文檔向量后,通過串聯的方式將文檔向量融合,作為邏輯回歸以及支持向量機的特征輸入,分別對比兩個分類模型的準確率以及特征融合后的效果,評估融合算法的合理性并得到最優分類模型。準確率的計算公式如下:
其中a代表被準確分為垃圾郵件的樣本數,b代表被錯誤分為垃圾郵件的樣本數。
4.2 實驗結果分析與總結
在LDA以及Word2vector建模過程中,將主題數的維度分別設置為100和200,將詞向量的維度設置為100。為了能夠更好地對比實驗效果,本文共設置了8組實驗,分別為:100維LDA文本向量+支持向量機、100維LDA文本向量+邏輯回歸、100維Word2vector文本向量+支持向量機、100維Word2vector文本向量+邏輯回歸、200維融合的文本向量+支持向量機、200維融合的文本向量+邏輯回歸、200維LDA文本向量+支持向量機、200維LDA文本向量+邏輯回歸。
通過LDA建模得到的文檔——主題矩陣如下表所示:

表2 前5個100維LDA主題分布
通過Word2vector建模得到的文檔向量如下表所示:

表3 前5個100維Word2vector文檔向量
將兩個模型得到的文檔向量進行融合,得到200維的融合文檔向量,如下表所示:

表4 前5個經過融合的文檔向量
8組實驗的準確率如下表所示,可以得到以下結論:
(1)從兩個文本分類模型的效果來看,支持向量機模型都優于邏輯回歸,這與邏輯回歸的特點一致,當特征空間很大時,邏輯回歸的性能會變差,而支持向量機的優點就在于能夠處理大型特征空間。因此本文選擇支持向量機為最佳文本分類模型。
(2)從LDA與Word2vector兩個模型的支持向量機分類效果來看,100維的Word2vector文本向量構建的模型準確率為91.66%其效果優于100維的LDA文本向量構建的模型的準確率(88.88%)。由此可以得出特征維度更細的Word2vector模型具有更準確的分類效果。
(3)由于融合后的文本向量變為200維,因此本文設置了200維的LDA文本向量與之對比。從實驗效果來看,融合后的模型在準確率上有顯著的提升,達到了97.22%,效果遠優于200維LDA文本向量以及Word2vector文本向量構建的模型,由此可以得出結論:LDA+Word2vector+支持向量機為最優模型,在垃圾郵件過濾上有很好的效果。

表5 8組對照實驗準確率
本文在已有的垃圾郵件過濾技術研究的基礎上,對LDA主題模型得到的文檔——主題向量和Word2vector得到的詞向量進行串聯,得到融合后的文檔向量,將文檔向量分別作為支持向量機和邏輯回歸分類模型的輸入,對比兩者的效果。經過8組對照實驗準確率的對比,最終選擇LDA(100)+ Word2vector(100)+支持向量機為垃圾郵件過濾的最優模型。該模型不僅對傳統研究遇到的高維特征向量進行了精簡,還融合了機器學習和深度學習算法,提高了算法的準確率,為后續垃圾郵件過濾方法的研究提供了新的思路。
由于郵件的定性具有一定的主觀性,某些郵件對于一些用戶是垃圾郵件,但對于另一些用戶不是垃圾郵件,因此在判斷是否為垃圾郵件時還需要結合用戶的歷史郵件數據、郵件的主題等信息,而本文在這方面還有不足之處,尚需更進一步的研究。
[1]馮禹.基于內容的垃圾郵件檢測特征降維算法研究[D].浙江大學,2013.
[2]Cohen W W. Learning rules that classify e-mail[C]// AAAI spring symposium on machine learning in information access,1996.
[3]Carreras X,Marquez L. Boosting trees for anti-spam email filtering[J]. arXiv preprint cs/0109015,2001.
[4]劉洋,杜孝平,羅平等.垃圾郵件的智能分析,過濾及Rough集討論[C]//武漢:第十二屆中國計算機學會網絡與數據通信學術會議,2002.
[5]Androutsopoulos I,Koutsias J,Chandrinos K V,et al. An experimental comparison of naive Bayesian and keyword-based anti-spam filtering with personal e-mail messages[C]//Proceedings of the 23rd annual international ACM SIGIR conference on Research and development in information retrieval. ACM,2000.
[6]Tretyakov K. Machine learning techniques in spam filtering[C]//Data Mining Problem-oriented Seminar,MTAT, 2004.
[7]周璐.基于內容的垃圾郵件過濾系統的研究[D].吉林大學,2011.
[8]趙靜.基于內容特征分析的垃圾郵件過濾關鍵技術研究[D].山東師范大學,2012.
[9]方鵬.基于內容分析的垃圾郵件過濾技術的設計與實現[D].電子科技大學,2013.
[10]羅常泳.基于內容的垃圾郵件檢測方法研究[D].浙江大學,2014.
[11]阮光冊.基于LDA的網絡評論主題發現研究[J].情報雜志,2014.
[12]Blei D M,Ng A Y,Jordan M I. Latent dirichlet allocation[J]. the Journal of machine Learning research,2003.
[13]張建華.基于LDA和詞性句法規則的用戶評論情感分析研究[D].廣西大學,2014.
[14]董文.基于LDA和Word2Vec的推薦算法研究[D].北京郵電大學,2015.
[15]姜南.基于SVM的垃圾郵件在線過濾新方法[D].吉林大學,2013.
[16]唐明,朱磊,鄒顯春.基于Word2Vec的一種文檔向量表示[J].計算機科學,2016.