彭毅 姜昕宇



摘要:近年來,研究表明垃圾郵件已經出現在私人郵箱中,嚴重擾亂了用戶體驗。這也已成為各大通信公司的優先研究事項。基于傳統的機器學習算法垃圾郵件過濾模型已經得到了充分的研究。隨著研究人員在自然語言處理方面的深入研究,深度學習算法及其構建的模型表現效果遠強于傳統機器學習模型。本文基于現有的各類分類模型進行了研究及比較,討論了如何對垃圾郵件數據集進行識別,并建立了BERT_DPCNN模型,以改進對電子郵件這種具有獨特特征文本的識別方法。本文使用DPCNN作為垃圾郵件分類器,使用BERT預訓練模型得到的文本向量作為DPCNN模型的輸入,以此加強模型的分類效果,有助于提取到更多的語義信息,以此避免出現深度神經網絡梯度消失所帶來的問題。根據模型的召回率、準確率和F1指數,BERT_DPCNN模型可以比其他模型更有效地識別垃圾郵件。此外,從實驗數據中可以看出,一些涉及深度模型的特征提取方法,如本文中的BERT模型,比基于word2vec的特征提取方法具有更明顯的優勢。本文構建的BERT_DPCNN模型可以存儲更多的語義環境信息,為文本分類提供更多的基礎,并提取更深層次的文本特征。它是一個具有最佳整體性能的模型,對垃圾郵件過濾具有重要價值。
關鍵詞:垃圾郵件;分類;BERT;DPCNN
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)22-0066-04
1 引言
電子郵件是一種通過電子方式提供信息交換的交流形式,用戶可以在世界上任何地方以非常低的成本聯系任何互聯網用戶。但是由于缺乏足夠的監督,大量垃圾郵件的產生和大規模傳播,垃圾郵件攔截軟件的高速發展迫不及待[1]。因此本文基于最新的語言處理模型BERT提出更加高效的過濾方法。
文本分類是一項重要任務。拋開傳統的機器學習算法K-近鄰算法、決策樹算法等來說,CNN最初是用于文本分類的神經網絡模型[2],它是前饋網絡,卷積層將每個小數據塊轉換為向量[3],并且可以并行處理。RNN雖具有循環的連接,但對并行處理不友好。Johnson[4]基于 RNN提出了 LSTM算法,解決了長文本序列中容易出現梯度消失的問題。Merrienboer[5]提出了 Gated Recur-rent Unit (GRU),它是一個簡化的 LSTM,但是既保持了LSTM的效果,又節省了訓練時間。雖然CNN和RNN都可以使用詞序信息,但CNN因其簡單性和并行性而更受歡迎,尤其是在訓練集比較大時,與字符級CNN相比,詞級CNN的層數更淺。雖然字符級CNN的優點是不需要處理大量不同的詞,但詞級CNN往往更有效。這證實了“單詞”的知識可以產生更好的表示。Kalchbrenner[6]提出了一種稱為Deep Pyramid CNN的模型,整個模型的計算被限制在小于卷積塊范圍的兩倍。同時,其金字塔的獨特結構也讓模型能夠發現文本中的長距離依賴,因此模型提取全局特征的能力得到了極大的提升。
因此,本文圍繞垃圾郵件過濾問題,在NLP中通用的文本分類處理方法上提出了 BERT預訓練與 DPCNN相連接來構造效果更高、結果更好的分類器。在詞向量方面,以往的神經網絡語言模型通常都使用word2vec生成詞向量。word2vec由詞義的分布式假設出發,最終得到一個look-up table,每一個單詞被映射到一個唯一的稠密向量,因此也注定了它無法處理一詞多義的問題。而 BERT使用的是 Transformer(中的編碼器)作為特征抽取器,這種方法對上下文有很好的利用,不需要像 BiLSTM那樣雙向堆疊。配合 MLM這樣的降噪目標在大規模語料庫上進行訓練,它的詞表示更加動態(相對于word2vec) ,對于一詞多義的問題理解上升了一個新高度。
隨著深度學習以及遷移學習的發展,研究者開始更多地把深度學習模型應用到自然語言處理領域上去解決實際問題。通過大量查閱文獻可以發現構造的模型除了在訓練速度上大大縮短了時間,更在模型的準確率上有很大的提升,但是,隨著垃圾郵件種類的層出不窮,應用于垃圾郵件的模型還有很大的創新空間。
2 模型構建
本節主要介紹BERT_DPCNN垃圾郵件過濾模型的設計構建。
2.1 模型介紹
首先,本報告中使用的BERT是在傳統Transformer模型基礎上的改進版本。它采用多頭注意力機制,同時添加殘差連接;擴展模型關注不同位置的能力,解決了隨著網絡加深而出現的梯度耗散問題。其次,本文創新提出了用BERT模型代替了DPCNN中的 region embedding,以抓捕更遠距離的依賴關系,實現模型質的飛躍。
2.2 BERT框架
BERT模型的輸入是一個單一的句子或句子對,每個詞都是由相應的3個嵌入特征組成。這三個嵌入特征是:標記嵌入、片段嵌入和位置嵌入。詞嵌入是指將一個句子劃分為有限的共同子詞單元;片段嵌入用于區分兩個句子,如兩個句子是否為上句和下句;位置嵌入是指將一個詞的位置信息編碼為一個向量。該模型用[CLS]標記分類模型,非分類模型可以省略;用[SEP]作為句子符號,斷開輸入語料的前后句子的聯系。BERT模型將這3個嵌入式特征作為模型輸入。
而它的網絡架構使用的是多層 Transformer結構,其最大的特點是拋棄了傳統的RNN和CNN,通過Attention機制將任意位置的兩個單詞的距離轉換成1,有效地解決了NLP中棘手的長期依賴問題。Transformer由6個Encoder和6個Decoder堆疊而成,它接收序列數據,同樣輸出處理后的序列數據。同時采用了多頭注意力機制,相較于自注意力機制,它能為 attention 層提供了多個表示子空間,拓展了模型關注不同位置的能力。每個注意力頭都分配一個Query、Key和 Value 權重矩陣;對于每個注意力頭,計算其相應的關照程度向量,將得到的向量拼接之后乘以矩陣,就得到最終的注意力矩陣 Z;它的完整計算過程如圖1所示:
與傳統的自然語言詞向量編碼不同,BERT模型是一個預訓練模型,它采用上下文敏感的句子級向量編碼,可以更準確地量化詞的含義和同一詞在文本中的不同語境。同時,它還可以實現對長文中句子之間的關系進行編碼。在使用BERT模型時,需要針對具體任務進行微調,以獲得更好的性能。為了實現這一目標,BERT模型通過聯合訓練屏蔽式LM和下句預測任務,可以獲得更全面的詞向量表示;這可以更準確地描述輸入文本的語義信息。當使用BERT時,不需要改變其核心架構,只需要添加一個新的層即可將BERT模型用于特定任務。
2.3 DPCNN 網絡結構
在深度金字塔卷積神經網絡中,其結構是卷積層和下采樣層的交替;減少了神經網絡內部的數據量和每層的計算量,并呈金字塔形狀減少,這就是DPCNN得名的原因。DPCNN使用兩層等長卷積來提高詞匯嵌入表示的豐富性。在每次卷積之后,它將進行最大限度地池化,以此將序列的長度壓縮到原始序列的一半;以便于它所能感知的文本段比之前更長。隨著網絡的深化,該模型可以在文本中發現更長距離的關聯和全局語義信息。因此,DPCNN比使用短距離關聯的淺層卷積神經網絡有更高的準確性。其主要特點如下。
1) 含有一個region嵌入層,即含有多尺寸卷積濾波器的卷積層。具體操作是對文本區域進行卷積運算,得到區域文本的特征圖作為嵌入向量。
2) 使用固定數量的特征圖進行下采樣,這樣在進行池化操作時可以降低總的計算復雜性。
3) 等長卷積。這個特征可以壓縮每個詞組的上下文信息及其左右相鄰詞的上下文信息,使每個詞組的含義更加豐富。DPCNN通過適當地使用雙層等長卷積來提高詞嵌入的語義豐富性。
4) 殘差連接。在DPCNN中,具體的操作是將區域嵌入直接連接到每個區塊上;也就是說,直接將區域嵌入連接到最終的池化層或輸出層。這使得梯度可以忽略卷積層權重的影響,并將其直接傳遞給每個區塊而沒有損失,大大緩解了梯度耗散的問題。
傳統的 DPCNN網絡結構如圖2所示:
2.4? BERT_DPCNN模型
在DPCNN的實際應用中,一般使用region embedding作為模型的詞向量;它是TextCNN的包含多尺寸卷積濾波器卷積層的卷積結果,其本質使用的也是N-gram,模型不能很好地理解語義。因此,本文選擇了將DPCNN中的region embedding進行替換,正因為BERT使用了Transformer來提高模型效率以捕獲更遠距離的依賴,因而可以捕獲真正雙向的基于上下文的信息。本論文使用基于PyTorch框架的BERT base uncase模型。該模型有 12 個Transformer層、768個隱藏單元、12個self-attention Header和1.1億個參數。
BERT的預訓練模型使用維基百科等數據進行無監督學習(Unsupervised Learning) ,以此提高學習能力。模型BERT_DPCNN首先使用BERT將文本中的每個詞在輸入層轉化為詞向量,該過程由語義提取層中的Transformer編碼器處理,然后對每個詞向量進行拼接,得到向量矩陣X,公式如下:
X1:n= x1⊕x2⊕...⊕xn
卷積過程生成特征使用等長的卷積。h是卷積核W的大小,特征Ci可用以下公式表示:
Ci= f (W *Xi:i+h-1+ b)
上述公式中,f :非線性變換函數,它的過程是先進行矩陣乘法,得到結果后使用激活函數“Relu”來進行非線性變換,最后進行最大池化操作。經過以上步驟,模型獲得了電子郵件的高級特征,最終通過連接全連接網絡+Softmax層實現了對電子郵件的分類。本模型的結構如圖3所示:
3 模型結果
3.1 模型表現
為了更好地觀察訓練過程以及優化模型參數,本文以100個batch來觀察模型的擬合情況以及準確率,通過對訓練集以及驗證集的圖形觀察評估,確定了最終的模型效果,如圖4所示,能達到準確率為99%的郵件過濾效果。
在整個訓練過程中,通過跟蹤訓練集和驗證集的accuracy、recall、F1等參數[7]來監控模型的學習進度。性能評估依照分類報告(見表1) 。從下面的分類報告可以清楚地看出,正常郵件中的召回指數證明99.79% 的郵件可以準確識別。此外,每個類別的F1分數非常相似。換句話說,本文提出的模型在大多數情況下幾乎完美地對電子郵件進行了分類。
另一種方式是描述分類器在測試集上的表現。筆者使用的是混淆矩陣(如表2 所示) 或也稱為誤差矩陣[8],它能計算正確和不正確的預測。在每個類別中進行匯總和分布,這是混淆矩陣的主要特征。通常情況下,混淆矩陣代表分類模型在預測時的“混淆”程度。因此,它可以檢查分類器的錯誤。
3.2 與其他先進模型的比較
眾所周知,分類模型中使用的算法從早期的樸素貝葉斯、SVM、LR等經歷了長時間的研究和討論,再到當前的神經網絡算法。神經網絡模型包括TextCNN、BiLSTM、BiLSTM-Attention和BERT_DPCNN模型。其中BiLSTM是雙向LSTM,包括前向LSTM和后向LSTM。
由于時間原因,本文無法構建所有算法的模型進行比較,因此參考了其他學者基于其他算法構建的模型的性能。該模型的性能可以通過該模型的準確率等各項指標進行比較來粗略判斷,但是由于使用的數據集存在一定的差異,效果也略有不同。下面將介紹提出的垃圾郵件過濾算法的性能[9]。
該模型結合了基于自注意力的 ALBERT 和 Bi-LSTM 網絡。同時他還對比了word2vec和bert詞向量,一眼就能看出BERT的優秀表現,表3是其模型結果表。
綜上而言,BERT_DPCNN 模型的實驗結果在上述各項指標上都取得了較好的效果,BERT_DPCNN的垃圾郵件過濾模型與傳統的垃圾郵件過濾算法性能相比具有顯著的優勢。從理論上分析,特別是與word2vec特征提取方法相比,本文的垃圾郵件過濾模型可以在詞向量環節提取到更多的語義環境信息,因此也可以提供更多的依據實現最大化的文本分類。通過訓練結果的對比也可以顯示出本文提出的模型具有明顯優勢,這也說明了本文所提出的基于BERT_DPCNN的垃圾郵件過濾模型值得擴展到實際的垃圾郵件過濾系統中。
4 總結
4.1 討論與未來工作
盡管已經有很多優秀的垃圾郵件過濾算法,但在現實應用中,垃圾郵件的識別和分類方面還有諸多的問題需要解決。雖然本文提出BERT_DPCNN算法能根據垃圾郵件數據集的特點有效分類和過濾垃圾郵件。但也有一些不足:
1) 本文使用中等規模的數據集進行實驗,數據集中正負樣本的數量不是很均衡,會在一定程度上影響模型的訓練和效果。未來應該考慮使用更真實的大數據集進行訓練,實現精準過濾。
2) 本文的識別和分類對象主要以英文字符內容為主。與傳統算法比較,在識別的有效性上有一定的提升;未來為了提升模型的準確率,降低分類錯誤的概率,可以增加郵件發件人、發送頻率等信息綜合考慮,進一步增強信息的維度。
此外,由于時間的限制,筆者不能探索所有的算法。因此,在未來的工作中,需要進行更多的實驗,以與其他模型的性能進行比較。另外,筆者還發現也有一些新的訓練前模型,如LXnet可以有更好的性能,這些都值得在未來研究和討論。
4.2 結論
互聯網信息時代的到來,人們身處異地就可以輕松地從用戶終端獲取信息,但是伴隨著出現的惡意信息也給人們帶來了巨大的困擾,誕生于這個互聯網時代的電子郵件也是如此。一方面,人們可以不受地域限制地隨時發送電子郵件進行交流。另一方面,各式各樣的垃圾郵件也破壞了綠色健康的通信環境。由于垃圾郵件過濾模型的出現,使這個問題變得迎刃而解,垃圾郵件的識別和過濾將逐漸走向標準化。高效的垃圾郵件過濾系統可以幫助郵件服務提供商更準確地攔截一些騷擾用戶、危害用戶信息安全的郵件。然而,仍然清楚的是,即使對垃圾郵件識別進行了大量研究,仍然需要優化算法以不斷提高用戶滿意度。主流的垃圾郵件識別方法主要有關鍵字過濾和后臺人工審核,這帶來了識別效率低、維護成本高、效率低等諸多問題。為了解決這個問題,本文創新性地提出了一種新的模型識別方法,并通過使用特定數據集來訓練提出的模型來進行論證分析,證明該模型具有優秀的垃圾郵件識別效果。
綜合全文,本文主要完成了以下研究工作:
1) 首先確定研究方向,查閱該方向的研究現狀以及不足,正式提出課題進行可行性分析。通過對相關文獻的研究調查,詳細了解了電子郵件文本的特點以及垃圾郵件分類技術的現狀問題,郵件文字雜亂、特征復雜、語言具有相當程度的獨特性。同時,已有文章指出,對于郵件這種類型的文本信息,可以利用BERT模型的詞向量來針對性地提取文本特征。
2) 隨著遷移學習的發展,BERT模型逐漸流行起來,其在文本分類方面的優越性能也備受關注。因此,為了解決這個問題,本文創新性地提出了BERT_DPCNN垃圾郵件識別模型,在充分學習語義的基礎上,通過對有效郵件數據集的訓練,得到的模型能夠準確有效地提取郵件的特征,并實現垃圾郵件的有效過濾。
3) 評估本文算法的性能。本文使用可信度極高的 kaggle 郵件數據集對模型進行訓練和評估。最后的結果表明,本文提出的創新算法在accuracy、recall和F1等方面都表現出色。
參考文獻:
[1] Goodman J,Yih W.Online discriminative Spam filter training[C]//. InProceedings of the 3rd conference on email and anti-spam (CEAS),2006.
[2] Konstas I,Keller F,Demberg V,et al.Convolutional Neural Networks for Sentence Classification[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Doha, Qatar, October 2014: 1746-1751.
[3] Sanghani G,Kotecha K.Incremental personalized E-mail Spam filter using novel TFDCR feature selection with dynamic feature update[J].Expert Systems With Applications,2019,115:287-299.
[4] Johnson R,Zhang T.Effective use of word order for text categorization with convolutional neural networks[C]//Proceedings of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies.Denver,Colorado.Stroudsburg,PA,USA:Association for Computational Linguistics,2015: 103–112.
[5] Cho K,van Merrienboer B,Gulcehre C,et al.Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL].2014:arXiv:1406.1078.https://arxiv.org/abs/1406.1078.
[6] Kalchbrenner N,Grefenstette E,Blunsom P.A convolutional neural network for modelling sentences[EB/OL].2014:arXiv:1404.2188.https://arxiv.org/abs/1404.2188.
[7] ANGUITA D, GHIO A, RIDELLA S, et al. Kfold cross validation for error rate estimate in support vector machines [C]// DMIN 2009: Proceedings of the 2009 International Conference on Data Mining. Las Vegas: CSREA Press, 2009: 291-297.
[8] Vieira J P A,Moura R S.An analysis of convolutional neural networks for sentence classification[C]//2017 XLIII Latin American Computer Conference (CLEI).Cordoba,Argentina.IEEE,2017:1-5.
[9] VISA S, RAMSAY B, RALESCU A L, et al. Confusion matrix-based feature selection (2011). [C]//Proceedings of The 22nd Midwest Artificial Intelligence and Cognitive Science Conference 2011, Cincinnati, Ohio, USA. April 16–17, 2011:120–127.
【通聯編輯:唐一東】