• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于BiGRU-Attention-CNN模型的垃圾郵件檢測方法

    2021-04-23 02:10:04趙宇軒胡懷湘
    計算機與現代化 2021年4期
    關鍵詞:垃圾郵件分詞郵件

    趙宇軒,胡懷湘

    (華北計算技術研究所基礎一部,北京 100083)

    0 引 言

    電子郵件自從20世紀70年代誕生以來距今已有50年,它已成為人們日常生活、工作中最常用的通信工具之一。然而隨著郵件技術的普及,垃圾郵件也變得越發(fā)猖獗。根據奇安信和Coremail聯合編撰的2019中國企業(yè)郵箱安全性研究報告[1]顯示,2019年全國企業(yè)郵箱用戶收到的各類垃圾郵件約占企業(yè)級用戶郵件收發(fā)總量的47.2%,是企業(yè)級用戶正常郵件數量的1.2倍。垃圾郵件已經成為困擾企業(yè)郵件安全的重大問題,因此如何快速準確地識別垃圾郵件是一個重要的研究課題。

    目前識別垃圾郵件主要有2類方法:一類是基于郵件特征的識別,比如發(fā)件人的發(fā)信頻率,發(fā)件地址黑名單RBL[2]、DBL等;另一類是基于郵件內容的識別,傳統(tǒng)方法包括字符匹配、詞頻統(tǒng)計(TF-IDF、LDA[3]、樸素貝葉斯等算法)。近年來隨著深度學習網絡的不斷發(fā)展,卷積神經網絡(Convolutional Neural Network, CNN)、循環(huán)神經網絡(Recurrent Neural Network, RNN)等技術也逐漸應用在垃圾郵件識別領域。CNN模型通過“端到端”的學習,能夠有效地學習并提取數據樣本特征,在圖像處理、人臉識別、自動駕駛等領域有著廣泛的應用。RNN模型是一種序列模型,研究人員在RNN的基礎上提出了變體模型:雙向門控循環(huán)單元(BiGRU)。BiGRU更適合對文本建模、獲取文本全局的結構信息。對于郵件文本的分類,郵件中的關鍵詞提取也非常重要。注意力機制(Attention)可以對郵件中重要的詞賦予更高的權重,可以更好提取關鍵信息。本文綜合3種模型的優(yōu)點,提出基于BiGRU-Attention-CNN模型的垃圾郵件檢測方法。

    1 相關工作

    研究人員在垃圾郵件識別領域已經做了很多改進、研究和探索。這其中包括對傳統(tǒng)文本分類算法的改進,也包括對CNN、RNN模型的優(yōu)化。

    王鹿等人[4]應用樹結構的思想,對特征詞的條件概率進行開方處理,改進了樸素貝葉斯算法的分類效果,并減少了訓練需要消耗的資源。吳小晴等人[5]在TF-IDF算法里加入卡方統(tǒng)計量CHI以及位置影響因子,并且結合逆向最大匹配算法的郵件文本分詞和類中心向量算法的特征選擇,解決了TF-IDF算法未能很好分配詞的權重的問題。黃鶴等人[6]在CNN的基礎上,引用Skip-gram以及Highway,將郵件文本轉換成更低維度的特征向量,提高了郵件分類模型的準確率。周枝凝等人[7]針對垃圾郵件分類中詞向量學習不充分的問題,引入了ALBERT動態(tài)詞向量生成模型,并提出一種將ALBERT動態(tài)詞向量與循環(huán)神經網絡相結合的ALBERT-RNN模型來進行垃圾郵件的識別。

    雖然目前已經有了很多垃圾郵件識別方法,但是在識別速度、識別準確率等方面依然有很大的改進空間。本文研究基于BiGRU-Attention-CNN模型的垃圾郵件檢測方法,并在Trec06c郵件數據集上進行實驗,與其他模型進行對比,取得了更好的效果。

    2 模型架構

    Kim[8]在2014年提出了將CNN應用在文本分類領域的方法且取得了一定的效果。本文在其研究基礎上,針對下述3個問題,引入雙向門控循環(huán)單元BiGRU和注意力機制Attention。BiGRU可以更好地獲得上下文依賴關系和文本特征,CNN可以提取文本的局部特征,而Attention機制可以凸顯文本的重要特征,提高模型的準確率和效率。上述3個問題是:1)傳統(tǒng)文本分類算法大都存在數據稀疏、矩陣維度高而性能并不高等情形;2)CNN模型在卷積、池化操作時會丟失文本序列中詞匯的位置以及順序信息,不能很好地捕捉文本全局結構信息;3)RNN模型存在無法解決長時依賴、文本重要特征無法凸顯作用等情形。

    如圖1所示,模型包括文本預處理、BiGRU、Attention、CNN共4大部分。文本預處理將郵件轉換為格式化的特征向量,BiGRU提取上下文信息,Attention對特定詞語增加權重,CNN最終對郵件進行分類。

    圖1 模型架構

    2.1 郵件文本預處理

    郵件文本并非格式化數據,要想讓計算機能夠“讀懂”郵件文本內容,需要將郵件文本進行數據清理與處理,將其轉換為格式化信息。

    2.1.1 去除非文本部分

    許多郵件文本為了渲染顯示效果會使用HTML等前端技術。毫無疑問,HTML標簽對于訓練模型來說并不是有效信息,它與郵件文本想要表達的信息沒有任何關系。除了HTML標簽,無用的非文本部分還包括:CSS、JavaScript代碼、URL地址、標點符號、特殊字符、表情符號等。

    為了更有效地挖掘郵件文本的重要信息,去除非文本部分帶來的影響,本文采用Python的BeautifulSoup[9]庫以及正則表達式、黑白名單等技術對郵件中的非文本部分進行清洗去除。

    2.1.2 去除停用詞

    停用詞屬于可以忽略的詞,它們對句子的分類并無幫助,去除它們可以節(jié)省存儲空間并且提高模型效率。停用詞包括虛詞、語氣助詞、形容詞、副詞、連接詞、介詞等,它們自身并沒有特定的含義,只有在完整的語句中才有作用,如“乃”“此外”“的”“在”等詞。本文整合了“哈爾濱工業(yè)大學停用詞表”“百度停用詞表”“四川大學機器學習實驗室停用詞表”[10],并對它們進行去重操作,形成一個比較完善且準確的停用詞表用來對郵件文本進行去除停用詞的操作。

    2.1.3 中文文本分詞

    在去除郵件的非文本部分以及停用詞后,還需要對郵件文本進行分詞處理,這樣才能更容易獲得郵件文本的特征。英文文本分詞非常簡單,只需按照英文單詞之間的空格分詞就可以了,但是中文文本是連續(xù)的,并沒有天然的分隔符,所以中文文本分詞更加困難。

    本文模型采用詞典與統(tǒng)計相結合的方式對中文文本進行分詞。具體使用了“結巴[11](Jieba)”中文分詞庫,對Jieba庫不能處理的分詞語句,使用自定義的字典來提高郵件文本分詞的準確率。

    2.1.4 詞向量轉換

    在經過上述步驟處理后,郵件文本已經變得“規(guī)整”。如圖2的數據已經轉換成了圖3的結構。

    圖2 原始郵件文本

    圖3 郵件文本初步處理結果

    然而,為了讓計算機能夠“讀懂”,仍需將郵件文本繼續(xù)轉換為實數向量[12]。傳統(tǒng)的轉換方式是采用詞袋模型,詞袋模型通過對文本進行分詞,分詞后統(tǒng)計詞典中每個詞出現的頻率,并將頻率作為該詞的特征值,最后將詞和詞頻一一對應,形成詞向量的轉換。如果將詞的權重替換為是否出現該詞,則是one-hot[13]的表達形式。但是one-hot有明顯的缺點,它無法判斷出詞與詞之間的“相似度”,也稱為“語義鴻溝”,one-hot的基本假設是詞與詞之間的語義和語法關系是相互獨立的,僅僅靠2個向量是無法看出2個詞之間的關系的,而且所產生的向量是高維稀疏向量。

    Word2vec[14]模型可以改進one-hot的缺點。它將每個詞表示成一個定長的向量,并使得這些向量能較好地表達不同詞之間的相似和類比關系。Word2vec模型訓練過程包含2個模型:跳字模型(Skip-gram)和連續(xù)詞袋模型(Continuous Bag Of Words, CBOW)[15]。跳字模型假設基于某個詞來生成它在文本序列周圍的詞。連續(xù)詞袋模型假設基于某中心詞在文本序列前后的背景詞來生成該中心詞。

    如圖4所示,本文采用Word2vec中的Skip-gram模型,Skip-gram模型訓練時間短且訓練效果好[6]。Skip-gram模型的具體目標是:給定一個訓練詞序列w1,w2,…,wt,使公式(1)中Jθ的值最大。其中c是訓練上下文的大小,T是樣本個數,訓練樣本越多,Skip-gram模型準確率越高。

    圖4 Skip-gram模型

    (1)

    2.2 BiGRU

    RNN是一種用來處理序列數據的神經網絡,它能夠提取上下文的關系,但是RNN在訓練長序列時存在梯度消失以及梯度爆炸的問題。為了解決RNN的這些問題,Hochreiter等人[16]提出了一種特殊的RNN-長短期記憶(Long Short-Term Memory, LSTM)網絡,后來Cho等人[17]在LSTM的基礎上又提出了門控循環(huán)單元(Gated Recurrent Unit, GRU)網絡,GRU與LSTM相比模型效果相似但是GRU訓練所需的資源更少[18]。BiGRU模型包含前向傳播、后向傳播2個GRU模型,相比GRU具有更高的分類精度。綜上考慮,本文采用BiGRU模型。

    GRU輸入輸出結構如圖5所示,它會將當前輸入xt與包含前面節(jié)點信息的ht-1結合,得出當前輸出yt以及傳遞給后續(xù)節(jié)點的隱狀態(tài)ht。

    圖5 GRU輸入輸出結構

    2.3 注意力機制

    郵件的特征向量經過BiGRU層之后,郵件的前后文信息已經得到了充分的提取,但是郵件中的關鍵信息、關鍵詞并沒有被突出表示。

    注意力機制Attention Mechanism的原理和人眼看圖片的邏輯很相似,無需看清圖片的全部細節(jié),而是將注意力聚集在了圖片上的焦點區(qū)域。本文引入注意力機制,為郵件文本中的關鍵詞賦予更大的權重,以達到突出關鍵信息的目的。注意力機制實現過程如圖6所示。

    圖6 Attention實現過程

    Attention機制將Query和Key進行相似度計算,得到權值,之后將得到的權值進行歸一化操作,得到權重,最后將權重和Value進行加權求和得到Attention Value。

    2.4 卷積神經網絡

    卷積神經網絡CNN,是一種前饋神經網絡,它廣泛應用于圖像識別領域,且由于它優(yōu)秀的局部特征提取能力,也可以應用在文本分類領域。

    CNN包括卷積、池化、全連接等操作。在卷積層中,通過不同的卷積核可以得到語句中不同特征的列向量,卷積核的大小等于詞向量的維數與卷積核縱向詞個數的乘積;在池化層中,通過pooling操作一方面可以將從卷積層中獲得列向量的最大值提取出來,另一方面可以消除由于句子之間長度不同帶來的差異;在全連接層中,通過softmax操作可以整合池化數據并獲得最終的分類結果。本文利用CNN模型進一步處理包含權重信息的郵件文本特征向量,并得到最終的垃圾郵件分類結果。

    3 實驗與結果

    3.1 實驗環(huán)境與超參數設置

    實驗環(huán)境與模型的超參數如表1、表2所示,模型超參數的選取方法借鑒了Zhang等人[19]的調參實驗,首先找到最佳的region_size,然后通過對不同參數進行調整與實驗對比,找到最優(yōu)的模型超參數。

    表1 實驗環(huán)境

    表2 模型超參數

    3.2 實驗數據

    實驗數據來源于公開的垃圾郵件語料庫Trec06c(數據集鏈接:https://plg.uwaterloo.ca/~gvcormac/treccorpus06/),總共包含64620封郵件,其中正常郵件21766封,垃圾郵件42854封。本文對實驗數據進行十折交叉驗證,即選出10%的數據作為驗證數據集,90%的數據作為訓練數據集。

    3.3 評價指標

    本文對模型進行了準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值4個維度[20]的評價,具體的評價指標如下:

    (2)

    (3)

    (4)

    (5)

    其中:TP為數據集標記為垃圾郵件且模型檢測結果也為垃圾郵件的郵件數量;TN為數據集標記為正常郵件且模型檢測結果也為正常郵件的郵件數量;FP為數據集標記為正常郵件但模型檢測結果為垃圾郵件的郵件數量;FN為數據集標記為垃圾郵件但模型檢測結果為正常郵件的郵件數量。

    3.4 對比實驗

    為了驗證基于BiGRU-Attention-CNN模型在垃圾郵件分類領域的有效性,本文總共設置了5組對比實驗,分別是SVM模型[21]、CNN模型、BiGRU-CNN模型[22]、BiLSTM-Attention-CNN模型[23]、BiGRU-Attention-CNN模型。其中SVM模型使用TF-IDF算法提取郵件文本中關鍵詞的統(tǒng)計特征對郵件進行分類。為了保證實驗的公平,5組對比實驗采用了一致的數據集和實驗環(huán)境。

    3.5 實驗結果

    5組對比實驗結果如表3所示。

    表3 實驗結果

    實驗結果表明,傳統(tǒng)的文本分類模型如SVM等準確率最低只有70.20%,卷積神經網絡模型對比傳統(tǒng)模型準確率有了很大的提高,準確率數值提高到了82.33%。在引入BiGRU以及注意力機制后,準確率又有了進一步的提高,準確率分別提高到88.88%和91.62%。BiLSTM和BiGRU在實驗中雖然準確率等數值區(qū)別不大(BiGRU比BiLSTM準確率提高了0.30個百分點),但是在對郵件數據集的十折交叉驗證過程中,BiLSTM-Attention-CNN模型的訓練時間為3206 s, BiGRU-Attention-CNN模型的訓練時間為2897 s,實驗表明BiGRU的訓練速度比BiLSTM快。

    4 結束語

    本文采用基于BiGRU-Attention-CNN模型進行垃圾郵件的檢測,實驗結果表明,該模型方法對比傳統(tǒng)的文本分類模型方法以及其他垃圾郵件檢測方法有了很大的提升,訓練速度與準確率等指標也表現出色。

    本次實驗在選取郵件數據集進行模型訓練與檢測時,只選取了郵件的正文(Content)部分,并沒有考慮郵件的其他部分(Mail-From、MIME-From、Subject、Sender等字段),然而這些非正文部分也對垃圾郵件的識別有很大的幫助,所以下一步的研究內容是針對郵件頭部的相關檢測。

    猜你喜歡
    垃圾郵件分詞郵件
    基于James的院內郵件管理系統(tǒng)的實現
    從“scientist(科學家)”到“spam(垃圾郵件)”,英語單詞的起源出人意料地有趣 精讀
    英語文摘(2021年10期)2021-11-22 08:02:36
    一種基于SMOTE和隨機森林的垃圾郵件檢測算法
    結巴分詞在詞云中的應用
    智富時代(2019年6期)2019-07-24 10:33:16
    一封郵件引發(fā)的梅賽德斯反彈
    車迷(2018年12期)2018-07-26 00:42:32
    值得重視的分詞的特殊用法
    基于支持向量機與人工免疫系統(tǒng)的垃圾郵件過濾模型
    石器部落
    高考分詞作狀語考點歸納與疑難解析
    將當前郵件快速轉發(fā)到QQ群
    電腦迷(2012年21期)2012-04-29 22:16:01
    开原市| 绵竹市| 乌兰察布市| 玉屏| 临洮县| 方山县| 罗田县| 新田县| 云安县| 龙里县| 平安县| 永宁县| 额济纳旗| 丽江市| 宜宾县| 鄂托克前旗| 启东市| 天祝| 丁青县| 安宁市| 靖远县| 牟定县| 思南县| 广宁县| 依安县| 唐海县| 山阳县| 信宜市| 泗洪县| 威宁| 本溪市| 普安县| 五指山市| 白山市| 商南县| 中卫市| 余江县| 库尔勒市| 阿勒泰市| 宁陕县| 甘德县|