張中軍,張少輝,曹 彥
(周口師范學(xué)院計(jì)算機(jī)科學(xué)系,河南周口466001)
對(duì)大多數(shù)用戶來說,E-mail是他們最經(jīng)常使用的網(wǎng)絡(luò)服務(wù)之一,然而,垃圾郵件泛濫已成為一個(gè)亟待解決的問題。根據(jù)Comm Touch公司的統(tǒng)計(jì)數(shù)據(jù),垃圾郵件數(shù)量占電子郵件總數(shù)的60%以上。除發(fā)送藥品廣告外,更多的垃圾郵件被用來傳播惡意件,竊取用戶賬戶、密碼等個(gè)人信息;另外一種上升的攻擊活動(dòng)是魚叉式網(wǎng)絡(luò)釣魚,向特定人群或機(jī)構(gòu)發(fā)送電子郵件,獲取對(duì)方的機(jī)密信息。這都給電子郵件服務(wù)提供商以及用戶造成了非常大的困擾與經(jīng)濟(jì)損失。因此,垃圾郵件處理方法的研究對(duì)于保護(hù)個(gè)人及機(jī)構(gòu)機(jī)密信息、凈化通信環(huán)境有十分重要的意義。
目前已出現(xiàn)很多垃圾郵件處理技術(shù),基于聚類的有偏斜分布下基于聚類的過濾方法[1],將郵件劃分成若干社區(qū),從每個(gè)社區(qū)提取相同數(shù)量的關(guān)鍵詞,避免了偏斜分布的影響?;诶]件行為啟發(fā)式學(xué)習(xí)方法[2]中根據(jù)經(jīng)驗(yàn)式學(xué)習(xí)方法,將垃圾郵件根據(jù)URL等特征劃分成社區(qū)。文獻(xiàn)[3]將郵件根據(jù)IP進(jìn)行聚類,根據(jù)垃圾郵件的IP進(jìn)行信譽(yù)評(píng)估。文獻(xiàn)[4]中將郵件根據(jù)足球、天氣等不同的主題進(jìn)行劃分社區(qū),根據(jù)新郵件與每個(gè)社區(qū)的主題相似度來識(shí)別垃圾郵件。上述方法中都是根據(jù)郵件內(nèi)容或一定主題將郵件分組,然后根據(jù)這些分組判斷新郵件是否垃圾郵件。但是,現(xiàn)實(shí)中很難判斷有多少主題,對(duì)每個(gè)郵件都提取關(guān)鍵詞不但增加了服務(wù)器負(fù)擔(dān),還用到郵件內(nèi)容,涉及到正常用戶的隱私。本文提出一種基于郵件社區(qū)的垃圾郵件發(fā)現(xiàn)方法,將不考慮郵件內(nèi)容主題,直接使用之前存在的社區(qū)劃分方法,將郵件地址根據(jù)它們之間的聯(lián)系緊密度劃分為若干社區(qū),根據(jù)現(xiàn)有的郵件系統(tǒng)收集的垃圾郵件,抽取垃圾郵件內(nèi)容的關(guān)鍵詞。然后對(duì)新郵件,根據(jù)一定的規(guī)則,給出是否垃圾郵件的判斷,與郵件一起發(fā)送給目標(biāo)用戶。
1.1 郵件社區(qū)的劃分
本文使用帶調(diào)整策略的微聚類-宏聚類郵件社區(qū)劃分算法[5]來劃分郵件社區(qū)。在整體上考慮郵箱個(gè)體之間的所有聯(lián)系,從分析用戶關(guān)系緊密程度入手,采用帶調(diào)整策略的微聚類-宏聚類技術(shù)來發(fā)現(xiàn)郵件通信網(wǎng)絡(luò)中緊密聯(lián)系的團(tuán)體。主要通過三個(gè)過程實(shí)現(xiàn):第一,使用k-medoids算法將所有郵箱個(gè)體聚類為大量相對(duì)較小的子簇,實(shí)現(xiàn)微聚類。第二,利用凝聚層次聚類的思想實(shí)現(xiàn)宏聚類,策略是反復(fù)合并子簇成為較大的簇,直到滿足某個(gè)終止條件。本文將最終希望得到的簇?cái)?shù)目作為終止條件。第三,針對(duì)個(gè)別邊緣節(jié)點(diǎn)進(jìn)行調(diào)整劃分。具體算法描述如下:
輸入:郵箱及郵箱個(gè)體對(duì)之間的郵件通信特征信息。
輸出:社區(qū)劃分結(jié)果。
方法:
1)用戶輸入微聚類子簇的數(shù)目k;
2 )選取k個(gè)節(jié)點(diǎn)作為初始子簇中心點(diǎn);
3 )repeat;
4 )指派每個(gè)剩余對(duì)象給離它最近的中心點(diǎn)所代表的簇;
5 )隨機(jī)地選擇一個(gè)非中心點(diǎn)對(duì)象o random;
6 )計(jì)算用orandom取代原中心點(diǎn)的總代價(jià)S;
7 )if S<0,then orandom替換oi,形成新的k個(gè)中心點(diǎn)的集合;
8 )until所有的子簇中心點(diǎn)均不發(fā)生變化;
9 )w hile(不滿足終止條件);
10)fo r每個(gè)子簇ci;
11)for每個(gè)剩余子簇cj;
12)尋找使緊密度取得最大值的ci,cj;
13)將ci與cj合并成較大的簇;
14)fo r郵件網(wǎng)絡(luò)中每個(gè)簇 Ci;
15)for每個(gè)節(jié)點(diǎn) p∈Ci;//尋找需要調(diào)整的節(jié)點(diǎn);
16)計(jì)算 p與簇Ci中除p以外的剩余節(jié)點(diǎn)組成的簇的緊密度;
17)for郵件網(wǎng)絡(luò)中每個(gè)剩余簇Cj;
18)計(jì)算 p與簇C的緊密度;
19)if p與其他簇C獲得更大的緊密度;
20)將 p調(diào)整劃分到簇Cj;
21)else p不做任何變動(dòng);
22)結(jié)合映射表輸出社區(qū)劃分結(jié)果。
1.2 抽取垃圾郵件特征
利用文本挖掘的從原有郵件服務(wù)器獲得垃圾郵件的相關(guān)特征,即對(duì)所有垃圾郵件進(jìn)行分析,從中提取關(guān)鍵詞。這些關(guān)鍵詞就代表了垃圾郵件主要內(nèi)容,反應(yīng)了垃圾郵件特征。
1 )將電子郵件數(shù)據(jù)集的所有垃圾郵件合為一個(gè)大的郵件文檔,去除郵件標(biāo)題,只取郵件內(nèi)容部分。這些郵件文檔中的每封郵件以類標(biāo)號(hào)開始,用兩個(gè)標(biāo)記分別表示每封郵件正文的開始和結(jié)束。
2 )把垃圾郵件文檔中每一封郵件正文中的重復(fù)詞去掉,正文中重復(fù)詞僅保留一個(gè)。
3 )對(duì)郵件正文進(jìn)行特征提取:統(tǒng)計(jì)每個(gè)詞在垃圾郵件中存在的頻率,將垃圾郵件特征表示為一個(gè)多維向量。
1.3 垃圾郵件發(fā)現(xiàn)機(jī)制
垃圾郵件發(fā)現(xiàn)就是在一封新郵件出現(xiàn)時(shí),郵件服務(wù)器根據(jù)某種機(jī)制判斷該郵件是否垃圾郵件,并根據(jù)判斷采取相應(yīng)的處理措施。本文提出的方法基于以下調(diào)查研究結(jié)果:首先,郵件地址反應(yīng)人類的社交行為,呈現(xiàn)社區(qū)特征;其次,按上述社區(qū)劃分方法得到的社區(qū),其內(nèi)部成員之間聯(lián)系緊密;最后,大多數(shù)的郵件通信來自社區(qū)內(nèi)部。根據(jù)上面這些研究,在不考慮郵件地址被盜用的情況下,可以認(rèn)為社區(qū)內(nèi)部成員之間的郵件通信是正常的。那么本文提出的垃圾郵件發(fā)現(xiàn)過程可描述如下:
1 )郵件服務(wù)器接收到一封電子郵件后,提取郵件發(fā)送者與接收者的郵件地址。
2 )郵件服務(wù)器查詢發(fā)送者與接收者的郵件地址分別所屬的社區(qū)標(biāo)號(hào)。
3 )如果發(fā)送者與接收者的郵件地址所屬社區(qū)標(biāo)號(hào)相同,將郵件直接發(fā)送給接收者;否則,繼續(xù)下一步。
4 )對(duì)新郵件提取郵件關(guān)鍵詞,建立特征向量,計(jì)算與垃圾郵件特征向量的相似度。如果不高于某個(gè)閾值,直接將郵件發(fā)送給接收者;否則,標(biāo)記為垃圾郵件,并將郵件連同標(biāo)記一起發(fā)送給接收者。
5 )接收者根據(jù)郵件的標(biāo)記及實(shí)際內(nèi)容判斷是否垃圾郵件。用戶閱覽郵件內(nèi)容后,如果認(rèn)為該郵件標(biāo)記錯(cuò)誤,則向郵件服務(wù)器發(fā)送反饋報(bào)告,不發(fā)送報(bào)告則認(rèn)為是正常郵件。
6 )根據(jù)接收者的反饋信息,對(duì)該郵件重新標(biāo)記,是垃圾郵件則重新提取關(guān)鍵詞;非垃圾郵件則將發(fā)送方郵件地址以及通信特征保存,等到該郵件地址與某個(gè)社區(qū)的聯(lián)系緊密度超過該社區(qū)內(nèi)部各成員之間的平均聯(lián)系緊密度時(shí),將該郵件地址劃分到該社區(qū)。
根據(jù)上面的描述,本文提出的垃圾郵件發(fā)現(xiàn)模型如圖1所示。
圖1 垃圾郵件發(fā)現(xiàn)模型
從圖1可以看出,當(dāng)一個(gè)新的郵件到達(dá)郵件服務(wù)器時(shí),不是直接對(duì)其進(jìn)行內(nèi)容分析,而是先判斷該郵件的發(fā)送者郵箱地址與接收者郵箱地址是否屬于同一個(gè)社區(qū)。如果來自同一個(gè)社區(qū),那么該郵件可以看作是社區(qū)內(nèi)部成員之間的正常郵件。當(dāng)然,這里暫時(shí)不考慮郵箱被盜用的情況。只有發(fā)送者郵箱地址與接收者郵箱地址不屬于同一個(gè)社區(qū)時(shí),才將該郵件與垃圾郵件特征比較,以獲得該郵件與垃圾郵件的近似度,并根據(jù)近似度值的大小給出是否垃圾郵件的判斷。并且最后還采用了用戶反饋機(jī)制,用以接收用戶閱讀郵件內(nèi)容后對(duì)郵件客觀的判斷,并根據(jù)反饋信息及時(shí)更新社區(qū)或垃圾郵件特征。從某種程度上來說,這也是該垃圾郵件發(fā)現(xiàn)方法的一種學(xué)習(xí)機(jī)制。
本方法充分考慮了郵件通信網(wǎng)絡(luò)中社區(qū)結(jié)構(gòu)的客觀存在性,詳細(xì)分析了性質(zhì),并在此基礎(chǔ)上提出了一種垃圾郵件發(fā)現(xiàn)方法。這種方法與已經(jīng)存在的基于郵件內(nèi)容的垃圾郵件發(fā)現(xiàn)方法相比,準(zhǔn)確率遠(yuǎn)遠(yuǎn)不及后者。之所以依然提出這種思想,主要是考慮到隨著社會(huì)的發(fā)展,個(gè)人隱私越來越受到社會(huì)的廣泛關(guān)注,那么基于郵件正文內(nèi)容的垃圾郵件過濾方法在某種意義上來說,已經(jīng)觸及了用戶的隱私。也是出于這種考慮,諸多學(xué)者開始探索新的垃圾郵件發(fā)現(xiàn)方法,以繞開基于內(nèi)容的文本分類。受此啟發(fā),提出了這種基于郵件社區(qū)的垃圾郵件發(fā)現(xiàn)方法。
在本文提出的方法中,首先是對(duì)郵件服務(wù)器下的所有郵件地址進(jìn)行社區(qū)劃分,此過程完全脫離郵件正文內(nèi)容,而是用郵件地址之間的聯(lián)系緊密度作為劃分標(biāo)準(zhǔn)。這樣不但在某種角度上保護(hù)了用戶隱私,還能更如實(shí)的反映出郵件通信網(wǎng)絡(luò)中的社區(qū)特征。但是,當(dāng)郵件地址規(guī)模較大時(shí)該劃分過程比較耗時(shí),所以應(yīng)定期對(duì)郵件地址進(jìn)行重新劃分,不宜頻繁進(jìn)行。其次,本方法不用對(duì)所有郵件進(jìn)行內(nèi)容抽取,只對(duì)社區(qū)外部到來的郵件進(jìn)行。因?yàn)猷]件通信多來自社區(qū)內(nèi)部,所以大部分的郵件不必抽取內(nèi)容。最后,因?yàn)樵摲椒]有嚴(yán)格的標(biāo)準(zhǔn)定義垃圾郵件,所以單獨(dú)使用該方法可能效果不是太好,所以目前可作為原有垃圾郵件處理引擎的補(bǔ)充方法。結(jié)合原有方法共同使用,在某種程度上可提高垃圾郵件處理的準(zhǔn)確度,具體效果有待進(jìn)一步實(shí)驗(yàn)驗(yàn)證。
下一步工作的重點(diǎn)是進(jìn)一步完善改進(jìn)該垃圾郵件發(fā)現(xiàn)方法,并以實(shí)際數(shù)據(jù)集實(shí)驗(yàn)驗(yàn)證該方法的有效性。在此基礎(chǔ)上,進(jìn)行該思想的實(shí)際應(yīng)用研究,找到與現(xiàn)有垃圾郵件處理引擎的結(jié)合點(diǎn),以進(jìn)一步提高垃圾郵件處理的準(zhǔn)確度。
[1]Hsiao Wen-Feng,Chang Te-M ing,Hu Guo-Hsin.A Cluster-based App roach to Filtering Spam under Skewed Class Distributions[C]//Proc of the 40th Hawaii International Conference on System Sciences, 2007:53-60.
[2]Li Fulu,Hsieh Mo-Han.An Empirical Study of Clustering Behavio r of Spammers and Group-based Anti-Spam Strategies[C]//Third Conference on Email and Anti-Spam,2006:27-28.
[3]張洪,段海新,吳建平.基于IP地址聚類的反垃圾郵件信譽(yù)系統(tǒng)[J].清華大學(xué)學(xué)報(bào),2010,50(10):1723-1727.
[4]包理群,李祥林.改進(jìn)的 K-均值聚類郵件過濾算法[J].蘭州工業(yè)高等專科學(xué)校學(xué)報(bào),2010,17(2):5-9.
[5]張中軍,郭華平,范明.帶調(diào)整策略的微聚類-宏聚類郵件社區(qū)劃分算法[J].小型微型計(jì)算機(jī)系統(tǒng),2010,31 (10):1970-1974.