- 相關(guān)推薦
堆疊去噪自編碼器在垃圾郵件過濾中的應(yīng)用
摘要:針對垃圾郵件數(shù)量日益攀升的問題,提出了將堆疊去噪自編碼器應(yīng)用到垃圾郵件分類中。首先,在無標(biāo)簽數(shù)據(jù)集上,使用無監(jiān)督學(xué)習(xí)方法最小化重構(gòu)誤差,對堆疊去噪自編碼器進(jìn)行貪心逐層預(yù)訓(xùn)練,從而獲得原始數(shù)據(jù)更加抽象和健壯的特征表示; 然后,在堆疊去噪自編碼器的最上層添加一個分類器后,在有標(biāo)簽數(shù)據(jù)集上,利用有監(jiān)督學(xué)習(xí)方法最小化分類誤差,對預(yù)訓(xùn)練獲得的網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào),獲得最優(yōu)化的模型; 最后, 利用訓(xùn)練完成的堆疊去噪編碼器在6個不同的公開數(shù)據(jù)集上進(jìn)行測試。將準(zhǔn)確率、召回率、更具有平衡性的馬修斯相關(guān)系數(shù)作為實驗性能評價標(biāo)準(zhǔn),實驗結(jié)果表明,相比支持向量機算法、貝葉斯方法和深度置信網(wǎng)絡(luò)的分類效果,基于堆疊去噪自編碼器的垃圾郵件分類器的準(zhǔn)確率都高于95%,馬修斯相關(guān)系數(shù)都大于0.88,在應(yīng)用中具有更高的準(zhǔn)確率和更好的健壯性。
關(guān)鍵詞:堆疊去噪自編碼器;分類;支持向量機;貝葉斯方法;垃圾郵件
引言
電子郵件因為易于使用、速度快、溝通方便等原因,已經(jīng)成為人們重要的聯(lián)系方式,但與此同時,垃圾郵件的數(shù)量卻急劇地增加:卡巴斯基實驗室的研究發(fā)現(xiàn),2014年第1季度的垃圾郵件數(shù)目占總郵件的66.34%;McAfee實驗室2015年2月的威脅報告表明,2014年,垃圾郵件數(shù)量大概為31.2萬億,占該年郵件總量的69.02%。其中大部分垃圾郵件帶有商業(yè)性質(zhì),但有些郵件可能會包含病毒和其他具有危害性質(zhì)的內(nèi)容,給用戶帶來精力的損耗和財力上的損失,文獻(xiàn)[1]表明,由于垃圾郵件的原因,美國接近360萬用戶的損失高達(dá)32億美元。大量的垃圾郵件同時造成帶寬浪費和郵件系統(tǒng)超載。
垃圾郵件過濾方法用來解決上述問題。垃圾郵件過濾的目的是為了隔離垃圾郵件和合法郵件。一般的過濾方式包括:郵件客戶端擴(kuò)展和郵件服務(wù)終端過濾過程,簡單郵件傳送協(xié)議(Simple Mail Transfer Protocol,SMTP)和基于機器學(xué)習(xí)算法的方法是最常用的垃圾郵件過濾方法。一般來說,基于SMTP的過濾方法通常是指SMTP流量的檢測、電子郵件交換路由驗證和經(jīng)過身份驗證的SMTP會話;趩l(fā)式規(guī)則的方法、黑名單/白名單的方法、協(xié)同垃圾郵件過濾也可以用來過濾垃圾郵件。機器學(xué)習(xí)方法包括郵件的分析和分類算法的部署。
文獻(xiàn)[2]表明在諸多過濾方法中,機器學(xué)習(xí)算法獲得更多的應(yīng)用和更好的性能。貝葉斯過濾器因為計算效率高、過濾性能良好得到了廣泛的應(yīng)用,文獻(xiàn)[3]比較了7個版本的貝葉斯過濾器,得出布爾樸素貝葉斯(Boolean Naive Bayes)、多項式布爾樸素貝葉斯(Multinomial Boolean Naive Bayes)、基本樸素貝葉斯(Basic Naive Bayes)具有較好的性能;文獻(xiàn)[4]提出了一些方法用來改進(jìn)樸素貝葉斯過濾器,提高了過濾器的準(zhǔn)確率; 文獻(xiàn)[5]將不同種類核函數(shù)和數(shù)據(jù)表示的支持向量機應(yīng)用到垃圾郵件過濾中;文獻(xiàn)[6]提出了混合Taguchi方法、Staelin方法來優(yōu)化支持向量機參數(shù)的選擇過程,并且提高了準(zhǔn)確率。其他的諸如隨機隨林、人工神經(jīng)網(wǎng)絡(luò)、提升方法(boosting)和裝袋(bagging)等方法也被應(yīng)用到了垃圾郵件過濾。近年來隨著社交網(wǎng)絡(luò)、云計算、網(wǎng)格計算、語義網(wǎng)絡(luò)等技術(shù)的發(fā)展,出現(xiàn)了許多基于上述技術(shù)的垃圾郵件分類器;隨著垃圾郵件中圖像的增加,出現(xiàn)了基于圖像的垃圾郵件分類器,文獻(xiàn)[7]對新技術(shù)和圖像分類應(yīng)用進(jìn)行了介紹。文獻(xiàn)[8]比較了不同的特征選擇和降維技術(shù)對垃圾郵件過濾的影響。文獻(xiàn)[9]研究表明:相對支持向量機(Support Vector Machine, SVM)、提升方法(boosting)、最大熵方法等“淺層學(xué)習(xí)”方法而言,深度學(xué)習(xí)所學(xué)得的模型中,非線性操作的層級數(shù)更多。 淺層學(xué)習(xí)依靠人工經(jīng)驗抽取樣本特征,網(wǎng)絡(luò)模型學(xué)習(xí)后獲得的是沒有層次結(jié)構(gòu)的單層特征;而深度學(xué)習(xí)通過對原始信號進(jìn)行逐層特征變換,將樣本在原空間的特征表示變換到新的特征空間,自動地學(xué)習(xí)得到層次化的特征表示。
去噪自編碼器(Denoising Autoencoder, DA)是深度學(xué)習(xí)中的變形結(jié)構(gòu),和受限玻爾茲曼機、自編碼器[9](Autoencoder)一樣作為深度學(xué)習(xí)架構(gòu)中的訓(xùn)練模塊,具有良好的學(xué)習(xí)數(shù)據(jù)集特征的能力。通過多個DA的堆疊可形成堆疊去噪自編碼器(Stacked Denoising Autoencoder,SDA) [10]。SDA訓(xùn)練過程中的無監(jiān)督學(xué)習(xí)過程和對數(shù)據(jù)的破壞過程,能進(jìn)一步學(xué)習(xí)到數(shù)據(jù)集中的特征和數(shù)據(jù)結(jié)構(gòu),同時學(xué)習(xí)得到的隱含表示更適用于有監(jiān)督分類。文獻(xiàn)[11]的研究表明,在大部分情況下,SDA要優(yōu)于深度置信網(wǎng)絡(luò)[9](Deep Belief Network, DBN),并且因為SDA不需要吉布斯采樣,所以訓(xùn)練更加容易。
本文將一個5層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的堆疊去噪自編碼器應(yīng)用到垃圾郵件過濾,在6個公開數(shù)據(jù)集上進(jìn)行測試,使用準(zhǔn)確率、召回率和馬修斯相關(guān)系數(shù)作為測量標(biāo)準(zhǔn),與在垃圾郵件過濾中應(yīng)用最為廣泛的支持向量機算法、3種貝葉斯算法和DBN進(jìn)行比較。結(jié)果表明,相對于其他幾種算法:堆疊去噪自編碼具有最好的平均性能和較好的預(yù)測能力。
一、堆疊去噪自編碼器
1.1去噪自編碼器
自編碼器 (Autoencoder) [9]的學(xué)習(xí)只是簡單地保留原始輸入數(shù)據(jù)的信息,并不能確保獲得一種有用的特征表示。因為自編碼器可能僅僅簡單地拷貝原始輸入,或者簡單地選取能夠稍微改變重構(gòu)誤差,卻不包含特別有用信息的特征。為了避免上述情況,并且能夠?qū)W習(xí)更好的特征表示,需要給數(shù)據(jù)表示一定的約束。去噪自編碼器可以通過重構(gòu)含有噪聲的輸入數(shù)據(jù)來解決該問題。
去噪自編碼器所要實現(xiàn)的功能就是學(xué)習(xí)疊加噪聲的原始數(shù)據(jù),而它學(xué)習(xí)到的特征與從未疊加噪聲的數(shù)據(jù)學(xué)到的特征幾乎一樣, 但去噪自編碼器從疊加噪聲的輸入中學(xué)習(xí)得到的特征更具魯棒性,并且可以避免自編碼器遇到的上述問題,簡單地學(xué)習(xí)相同的特征值。
去噪自編碼器通過一個隨機的映射變換x~qD(x′|x),對原始輸入數(shù)據(jù)x進(jìn)行“破壞”,從而得到一個有部分損壞的數(shù)據(jù)x′, 其中D表示數(shù)據(jù)集。
去噪自編碼器由編碼器(encoder)、解碼器(decoder)和隱含層組成。編碼器是輸入x∈[0,1]d 的”破壞”版本x′到隱含表示 y∈[0,1]d′的映射,表示為:
y=fθ(x)=s(Wx′+b)(1
這個映射的參數(shù)集合是θ={W,b},s是一個非線性的函數(shù),例如sigmoid,W是一個的d×d′權(quán)值矩陣, b是一個偏置向量。
解碼器函數(shù)gθ′(y)將隱含表示映射回重構(gòu)表示z∈[0,1]d,表示為:
z=gθ′(y)=s(W′y+b′)(2
這個映射的參數(shù)集合是θ′={W′,b′},逆映射的權(quán)值矩陣W′可被約束為權(quán)值矩陣W的轉(zhuǎn)置:即W′=WT,被稱為去噪自編碼器捆綁權(quán)重。b′是一個偏置向量。
這樣每個訓(xùn)練樣例x(i)被映射成一個y(i)和一個重構(gòu)表示z(i),然后通過不斷地調(diào)準(zhǔn)優(yōu)化這個模型的所有參數(shù),從而獲得最小平均重構(gòu)誤差:
L(x,z)=‖x-z‖2(3)
使z盡可能地接近初始輸入x,并且z是x′的函數(shù)。 定義聯(lián)合分布函數(shù)為:
q0(X,X′,Y)=q0(X)qD(X′X)δfθ(X′)(Y)(4)
其中:X,X′,Y是隨機變量,Y是X′的映射函數(shù), q0(X,X′,Y)以θ為參數(shù)。這時就可以通過梯度下降算法最小化目標(biāo)函數(shù):
arg minθ,θ′ Eq0(X,X′)[L(X,gθ′(fθ(X′)))](5
去噪自編碼器的結(jié)構(gòu)圖如圖1所示。
圖片
圖1去噪自編碼器結(jié)構(gòu)
1.2堆疊去噪自編碼器
深度神經(jīng)網(wǎng)絡(luò)可以分為3類:1)生成性深度結(jié)構(gòu),描述數(shù)據(jù)和相應(yīng)類別的聯(lián)合概率分布,如DBN; 2)區(qū)分性深度結(jié)構(gòu),提供對模式分類的區(qū)分性能力,通常描述數(shù)據(jù)的后驗分布,如卷積網(wǎng)絡(luò)和堆疊去噪自編碼器; 3)混合型結(jié)構(gòu),目標(biāo)是區(qū)分性的,但通常利用生成型結(jié)構(gòu)的輸出會更易優(yōu)化。
通常情況下,由于網(wǎng)絡(luò)權(quán)值的隨機初始化,基于梯度的優(yōu)化容易陷入局部最小值。文獻(xiàn)[12]提出了一種新的貪婪逐層非監(jiān)督算法來初始化深度學(xué)習(xí)網(wǎng)絡(luò),文獻(xiàn)[10]使用此算法來初始化基于降噪自編碼器的堆疊去噪自編碼器。訓(xùn)練整個網(wǎng)絡(luò)的參數(shù)后,在使用基于梯度的算法如梯度下降法來微調(diào)網(wǎng)絡(luò)參數(shù)。SDA初始化方法的有效性[13]在多個數(shù)據(jù)集中得到驗證。正如受限玻爾茲曼機的堆疊形成深度置信網(wǎng)絡(luò),去噪自編碼器的堆疊可形成堆疊去噪自編碼器。用疊加噪聲輸入訓(xùn)練每層網(wǎng)絡(luò)的去噪能力,這樣訓(xùn)練出來的每層編碼器可作為一個具有容錯性能的特征提取器,同時學(xué)習(xí)得到的特征表示具有更好的健壯性。
SDA 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。通過圖1中的步驟首先破壞原始數(shù)據(jù),然后最小化重構(gòu)誤差,訓(xùn)練第1層去噪自編碼器,從而學(xué)習(xí)得到了編碼器函數(shù)fθ。接下來使用此函數(shù)學(xué)習(xí)原始的數(shù)據(jù)(如圖2(a)所示),得到的結(jié)果作為第2層去噪自編碼器的輸入,用來訓(xùn)練第2層的去噪自編碼器(如圖2(b)所示),從而學(xué)習(xí)到第2層的編碼器函數(shù)f(2)θ。然后重復(fù)這一過程(如圖2(c)所示),直至所有的去噪編碼器層都已經(jīng)訓(xùn)練完成為止。
圖片
圖2堆疊去噪自編碼器的結(jié)構(gòu)
為了讓堆疊去噪編碼器具有分類識別的功能,需要在堆疊自編碼器神經(jīng)網(wǎng)絡(luò)的最后一個隱藏層之后加個sigmoid分類器,將整個神經(jīng)網(wǎng)絡(luò)訓(xùn)練成能完成分層特征提取和數(shù)據(jù)分類任務(wù)的多重感知器。然后利用有監(jiān)督學(xué)習(xí)規(guī)則,在監(jiān)督學(xué)習(xí)損失函數(shù)上使用梯度下降算法,實施微調(diào),最小化預(yù)測目標(biāo)的誤差,不斷調(diào)整整個網(wǎng)絡(luò)的參數(shù)。微調(diào)結(jié)構(gòu)如圖3所示。
圖片
圖3分類深度網(wǎng)絡(luò)的微調(diào)結(jié)構(gòu)
二、堆疊去噪自編碼器實現(xiàn)
2.1堆疊去噪自編碼器的參數(shù)更新
去噪自編碼器的最終目的是找出模型最合適的參數(shù),可以按照如下步驟更新參數(shù)。
初始化模型參數(shù):輸入數(shù)據(jù)、可視節(jié)點個數(shù)、隱層節(jié)點個數(shù)、輸入數(shù)據(jù)破壞比例和更新的學(xué)習(xí)率(learning rate),權(quán)值矩陣和偏置向量;根據(jù)數(shù)據(jù)破壞比例,隨機選取原始數(shù)據(jù),將其值設(shè)置為0,達(dá)到破壞數(shù)據(jù)的目的;使用sigmoid函數(shù)計算輸入數(shù)據(jù)的隱藏表示和重構(gòu)表示;計算輸入數(shù)據(jù)的重構(gòu)誤差;對重構(gòu)誤差使用梯度下降算法,更新參數(shù)。具體過程如算法1。
算法1Denoising AutoEncoder。
程序前
輸入: X, n_vis, n_hid, c_r, l_r;
輸出: W, b, b′。
X′=get_corrupted_input(X, c_r)
1
for iter from 1 to iteration
2)
Y=get_hidden_units(X′, W, b)
3)
Z=get_reconstruction_units(Y, W, b′)
4)
cost=get_cost(X, Z)
5)
for param in parameters(W, b, b′)
6)
gparam=get_gradient(cost, param)
7)
param=param-l_r * gparam
8)
end for
9)
end for
程序后
2.2堆疊去噪自編碼器的預(yù)訓(xùn)練
在堆疊去噪自編碼器的預(yù)訓(xùn)練步驟中,首先應(yīng)該確定隱藏層的數(shù)目,一般情況下,使用3層的去噪自編碼器構(gòu)成深度學(xué)習(xí)網(wǎng)絡(luò)來訓(xùn)練堆疊去噪自編碼器;每一層都訓(xùn)練成去噪自編碼器,并且通過最小化重構(gòu)誤差,更新參數(shù)10次以上。第i-1層的輸出即為第i層的輸入,這樣通過自底向上的方式訓(xùn)練堆疊去噪自編碼器。每一層的數(shù)據(jù)破壞比例和隱藏節(jié)點個數(shù)可以互不相同;最后獲取整個網(wǎng)絡(luò)的參數(shù)。訓(xùn)練步驟如算法2。
算法2Pretrain Step。
程序前
輸入:X,n_layers, n_vis, n_hid[n_layers],c_r[n_layers], l_r[n_layers];
輸出:dA_layers[n_layers], Y_out=X。
1
for i from 1 to n_layers
2)
X′=get_corrupted_input(Y_out,c_r[i])
3)
for iter from 1 to iteration
4)
Y=get_hidden_units(X′,W[i],b[i])
5)
Z=get_reconstruction_units(Y,W[i], b′[i])
6)
cost=get_cost(Y_out, Z)
7)
for param in parameters(W[i], b[i], b′[i])
8)
gparam=get_gradient(cost,param)
9)
param=param-l_r[i] * gparam
10)
end for
11)
end for
12)
Y_out=Y
13)
end for
程序后
2.3堆疊去噪自編碼器的微調(diào)
在堆疊去噪自編碼器的微調(diào)過程中,使用有監(jiān)督學(xué)習(xí)方法優(yōu)化從預(yù)訓(xùn)練步驟中獲得的模型參數(shù)。由于最后一個隱含層只能輸出原始數(shù)據(jù)的重構(gòu),因而不具有分類識別功能。為了讓堆疊去噪編碼器具有分類識別的功能,需要在完成微調(diào)的神經(jīng)網(wǎng)絡(luò)的輸出層之后加入sigmoid分類器,將整個神經(jīng)網(wǎng)絡(luò)訓(xùn)練成能完成分層特征提取和數(shù)據(jù)分類任務(wù)的多重感知器。多重感知器的sigmoid層的參數(shù)和預(yù)訓(xùn)練步驟中去噪自編碼器的sigmoid函數(shù)具有相同的參數(shù),因此可以通過最小化多重感知器的預(yù)測錯誤來不斷微調(diào)模型的參數(shù)。微調(diào)步驟作用在整個堆疊去噪自編碼器過程。微調(diào)的過程如算法3。
算法3Fine Tuning Step。
程序前
input: train_batches, test_batches, iteration, l_r
1
while iter < iteration do
2)
for batch in train_batches
3)
cost=get_finetuning_cost(X)
4)
for i from 1 to n_layers
5)
for param in parameters(W[i], b[i], b′[i])
6)
gparam=get_gradient(cost, param)
7)
param=param-l_r[i]*gparam
8)
end for
9)
end for
10)
valid_error=get_valid_error(batch)
11)
if valid_error 12)
update best_valid_error
13)
test_error=get_test_error(test_batches)
14)
if test_error 15)
update best_test_error
16)
end if
17)
end if
18)
end for
19)
end while
程序后
三、實驗與分析
3.1數(shù)據(jù)集
3.1.1數(shù)據(jù)集描述
實驗中使用了6個著名的、數(shù)據(jù)量比較大的、公開的數(shù)據(jù)集Enron[14]。其中Enron1、Enron2和Enron3的合法郵件占多數(shù),而Enron4、Enron5和Enron6的垃圾郵件占多數(shù)。Enron數(shù)據(jù)集中正常郵件是從Enron公司的前員工的郵箱中收集的,垃圾郵件則有不同的來源。6個數(shù)據(jù)集的具體組成如表1。
3.1.2數(shù)據(jù)集預(yù)處理
1)分別從垃圾郵件文件夾和合法郵件文件夾,按照30%的比例隨機選取文件,然后合起來作為測試集,剩余的70%合起來作為訓(xùn)練集。
2)分別對訓(xùn)練集和測試集進(jìn)行分詞處理,字母小寫化和去除停用詞。
3)將訓(xùn)練集和測試集表示為詞頻逆文檔(Term FrequencyInverse Document Frequency, TFIDF)的向量形式。
4)使用特征值提取技術(shù)對特征值進(jìn)行提取,選取3000個特征值作為實驗特征。
3.2實驗性能測量標(biāo)準(zhǔn)
比較出名的性能指標(biāo)有垃圾郵件準(zhǔn)確率(Spamming precision, Spr),垃圾郵件召回率(Spamming recall, Sre),合法郵件準(zhǔn)確率(Legitimate email precision, Lpr),合法郵件召回率(Legitimate email recall, Lre),準(zhǔn)確率(Accuracy, Acc)。在分類時,垃圾郵件的類標(biāo)設(shè)置為1(正例),合法郵件的類標(biāo)設(shè)置為0(負(fù)例)。其中分類的混淆矩陣(confusion matrix)如表2所示,真正例(True Positive, TP),假負(fù)例(False Negtive, FN),假正例(False Positive, FP),真負(fù)例(True Negtive, TN)。
表格(有表名)
文獻(xiàn)[15]的研究表明,在機器學(xué)習(xí)的分類問題中,馬修斯相關(guān)系數(shù)(Matthews Correlation Coefficient,MCC)是最好的性能測試指標(biāo)之一。相比其他的指標(biāo),MCC對于準(zhǔn)確率提供了更為平衡的測量。MCC值的返回值介于-1和+1之間:+1,表明是完美的預(yù)測;0,表明是隨機的預(yù)測;-1,則表明是一個相反的預(yù)測。MCC的計算式如下:
MCC=TP*TN-FP*FN(TP+FP)(TP+FN)(TN+FP)(TN+FN)(6
MCC同時提供了相對合理的評價:現(xiàn)實情況下,垃圾郵件的數(shù)目要比合法郵件的數(shù)目更高,因此MCC可以自動調(diào)整一個假正例(即合法郵件分類為垃圾郵件)錯誤相對于一個假負(fù)例錯誤的嚴(yán)重程度,隨著垃圾郵件相對于合法郵件的比例的上升,一個假正例錯誤會比一個假負(fù)例錯誤更加嚴(yán)重,即MCC值會降低。
3.3實驗結(jié)果與分析
3.3.1隱藏層節(jié)點數(shù)目選擇對實驗的影響
由文獻(xiàn)[10-11]中一系列的參數(shù)實驗可以總結(jié)出,在大部分?jǐn)?shù)據(jù)集上,SDA一般使用三層隱藏層就可以達(dá)到較優(yōu)的效果,因此本文中使用三層的隱藏層。
首先指出,圖4和圖5中的最低點Acc值是0.7101。這種情況是SDA把所有的郵件都分類為垃圾郵件。圖4中,350,650,950是第一層隱藏層的節(jié)點數(shù)目,30表示第三層隱藏層的節(jié)點數(shù)目;圖5中,350,650,950是第一層隱藏層的節(jié)點數(shù)目,500表示第二層隱藏層的節(jié)點數(shù)目。
圖4中,固定第一、三隱藏層的節(jié)點數(shù)目,SDA在數(shù)據(jù)集Enron 5上的Acc值隨著第二層隱藏層節(jié)點數(shù)目的改變而變化。從圖4中可看出,固定第一、三隱藏層節(jié)點數(shù)目時,當(dāng)?shù)诙䦟庸?jié)點個數(shù)過小或者過大時,Acc值會達(dá)到最低點0.7101,而第二層節(jié)點個數(shù)處于兩者之間時,Acc值正常波動。第二、三隱藏層節(jié)點固定時,可以看出,當(dāng)?shù)谝粚拥墓?jié)點數(shù)目越大時,第二層隱藏層節(jié)點的數(shù)目受到的限制更大。
對于圖4中出現(xiàn)的隨著第二層隱藏層節(jié)點數(shù)目的增加,Acc值會降至最低,可以通過改變第三層隱藏層節(jié)點數(shù)目來改變。圖5中,固定第一、二隱藏層節(jié)點的數(shù)目,SDA在數(shù)據(jù)集Enron 5上的Acc值隨著第三層節(jié)點數(shù)目的改變而變化?梢钥闯,為了取得較優(yōu)的結(jié)果,第一層隱藏層的節(jié)點數(shù)越多,第三隱藏層需要的節(jié)點數(shù)也越多。
3.3.2在6個數(shù)據(jù)集上的實驗結(jié)果
為了書寫方便,下面描述中,Basic表示基本樸素貝葉斯方法、Bool表示布爾樸素貝葉斯方法、MN Bool表示多項式布爾樸素貝葉斯方法。
在6個Enron 數(shù)據(jù)集上的實驗結(jié)果如表3~8所示,其中加下劃線的數(shù)據(jù)表示該實驗中最大的MCC值。
表格(有表名)
表3Enron1上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic91.3385.0993.4896.3692.860.831
Bool96.0051.6163.3297.4972.780.540
MN Bool82.6762.0079.3591.8280.310.578
SVM83.3387.4195.1193.7091.700.796
DBN91.5690.7596.1996.5494.850.875
SDA90.2292.9197.1896.0595.160.882
表格(有表名)
表4Enron2上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic80.0097.5799.3193.5394.380.850
Bool95.3381.2592.4598.3093.190.836
MN Bool74.0098.2399.5491.7793.020.814
SVM90.6790.6796.8096.8095.230.875
DBN95.9891.6897.0298.6096.750.916
SDA95.9895.5698.4798.6297.830.943
表格(有表名)
表5Enron3上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic57.33100.00100.0086.2788.410.703
Bool99.3399.3399.7599.7599.640.991
MN Bool62.00100.00100.0087.5889.670.737
SVM91.3396.4898.7696.8396.740.917
DBN96.4489.6795.8498.6396.000.903
SDA92.6799.2999.7597.3297.820.945
表格(有表名)
表6Enron4上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic94.67100.00100.0086.2196.000.903
Bool98.00100.00100.0094.3498.500.962
MN Bool96.89100.00100.0091.4697.670.941
SVM98.89100.00100.0096.7799.170.978
DBN96.9697.9894.0091.1696.220.901
SDA99.9397.2691.5699.7697.840.942
表格(有表名)
表7Enron5上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic89.6798.8097.3379.3591.890.825
Bool87.23100.00100.0076.1490.930.815
MN Bool94.29100.00100.0087.7295.950.909
SVM89.4099.7099.3379.2692.280.837
DBN96.3799.4498.6791.7497.040.931
SDA98.7399.4598.6796.9498.710.969
表格(有表名)
表8Enron6上各個分類器的實驗結(jié)果
分類器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic86.0098.9897.3369.8688.330.757
Bool66.8999.6799.3350.0075.000.574
MN Bool92.8997.2192.0081.1892.670.816
SVM89.7895.2886.6773.8690.050.727
DBN96.3798.5695.7589.7996.210.902
SDA99.0498.4595.3397.0698.110.949
通過觀察6個數(shù)據(jù)集6種分類器的實驗數(shù)據(jù)可以分析:在實驗的大部分?jǐn)?shù)據(jù)集上,SDA垃圾郵件過濾器的性能超過了其他幾種分類器。同時在有些情況下SDA的過濾效果遠(yuǎn)遠(yuǎn)地優(yōu)于SVM和NB分類器:比如在Enron6數(shù)據(jù)集上的結(jié)果表明,SDA的垃圾郵件召回率達(dá)到了99.04%,而SVM卻只達(dá)到了89.78%。這意味著在Enron6數(shù)據(jù)集上,SDA要比SVM多識別9.26%的垃圾郵件,同時因為具有比SVM更好的合法郵件召回率,所以相對于SVM,SDA垃圾郵件過濾的總體性能提升要大于9%。在實際的應(yīng)用中,這些差異將會非常重要。這種對比現(xiàn)象在數(shù)據(jù)集Enron1、Enron2、Enron3和Enron5也可以得到。在數(shù)據(jù)集Enron4上,SDA過濾效果稍遜于SVM,但是相差不大。
對于實驗中所有樸素貝葉斯過濾器,實驗數(shù)據(jù)表明它們之間達(dá)到了相似的結(jié)果,并且不具有太大的差異性。相對堆疊去噪自編碼器過濾器和支持向量機過濾器在所有的數(shù)據(jù)集上的準(zhǔn)確率(Acc)達(dá)到90%以上,而基于樸素貝葉斯方法的過濾效果要差些。
實驗中的DBN的分類效果,總體上要優(yōu)于其他4幾種分類器,但是SDA的分類效果要稍微優(yōu)于DBN。
表中的實驗數(shù)據(jù)表明堆疊去噪自編碼器在垃圾郵件過濾中具有更好的效果:在實驗的所有數(shù)據(jù)集上,堆疊去噪自編碼器的準(zhǔn)確率(Acc)都高于95%;在實驗的所有數(shù)據(jù)集上,堆疊去噪自編碼器的MCC值都高于0.88,這表明堆疊去噪自編碼器應(yīng)用于垃圾郵件過濾中取得相對完美的預(yù)測。上述結(jié)果表明將堆疊去噪自編碼器應(yīng)用到垃圾郵件過濾中是可行的。
四、結(jié)語
本文提出了一種新的基于堆疊去噪自編碼器的垃圾郵件分類器。在6個著名的、數(shù)據(jù)量較大的、公開的數(shù)據(jù)集上進(jìn)行測試,將實驗結(jié)果同基于支持向量機和貝葉斯方法的垃圾郵件過濾器的結(jié)果進(jìn)行比較。對比分析表明,本文所提出的垃圾郵件過濾器表現(xiàn)出更好的性能。特別是基于堆疊去噪自編碼器的垃圾郵件分類器在6個數(shù)據(jù)集上具有最好的平均性能并且準(zhǔn)確率(Acc)都高于95%。這些表明將堆疊去噪自編碼器應(yīng)用到垃圾郵件過濾中是可行的。
未來的工作將會集中在以下3個方面:1)如何更好地選擇深度置信網(wǎng)絡(luò)隱藏層數(shù)以及每層的單元個數(shù),如何選擇學(xué)習(xí)率等參數(shù)來提高算法的性能。2)在諸如TRE05、TRE06、TRE07等更大的數(shù)據(jù)集上進(jìn)行更多的實驗來驗證實驗結(jié)果,同時也希望同一些諸如Bogo filter、Spam Assassin等開源和商業(yè)垃圾郵件過濾器進(jìn)行比較。3)應(yīng)把垃圾郵件過濾看作是共同進(jìn)化問題,因為垃圾郵件過濾器努力提高預(yù)測能力的同時,垃圾郵件遞送者也不斷地改變垃圾郵件內(nèi)容的表現(xiàn)形式以達(dá)到欺騙過濾器的目的,因此一個有效的垃圾郵件過濾器應(yīng)該能夠有效地檢測垃圾郵件特征的變化,從而不斷地調(diào)整自身的規(guī)則。
參考文獻(xiàn):
[1]GARTNER. Gartner survey shows phishing attacks escalated in 2007; more than $3 billion lost to these attacks[EB/OL].[20150220].http://www.gartner.com/it/page.jsp?id=565125.
[2]CORMACK G V. Email spam filtering: a systematic review[J]. Foundations and Trends in Information Retrieval, 2007, 1(4): 335-455.
[3]ALMEIDA T A, YAMAKAMI A. Advances in spam filtering techniques[M]. Berlin: Springer, 2012: 199-214.
【堆疊去噪自編碼器在垃圾郵件過濾中的應(yīng)用】相關(guān)文章:
基于提升小波構(gòu)造在圖像去噪的應(yīng)用研究03-07
用來評職稱的,非平穩(wěn)信號去噪方法研究(一)03-07
“自互導(dǎo)”教學(xué)模式在初中英語課堂教學(xué)中的應(yīng)用03-16
PID參數(shù)自整定模糊控制器在爐溫控制系統(tǒng)中的應(yīng)用03-07
紅外遙控在汽車中的應(yīng)用03-19