行政院國家科學委員會專題研究計畫 成果報告
以支向機技術研究電子郵件分類
計畫類別: 個別型計畫
計畫編號: NSC93-2213-E-011-066-
執行期間: 93 年 08 月 01 日至 94 年 07 月 31 日 執行單位: 國立臺灣科技大學資訊工程系
計畫主持人: 洪西進
計畫參與人員: 林琮烈,謝居呈,藍紹緯
報告類型: 精簡報告
報告附件: 出席國際會議研究心得報告及發表論文 處理方式: 本計畫可公開查詢
中 華 民 國 94 年 10 月 31 日
國科國科會會專專題題研研究究計計畫畫成成果果精精簡簡報報告告
中、英文摘要及關鍵詞(keywords)。
關鍵詞:分類,垃圾郵件、向量模式、支向機 中文摘要 :
本計劃主要目的是在提供一郵件分類器,用於網路上郵件的分類,使垃圾郵件 可以自電子郵件中被篩選出來,幫助電腦使用者,節省閱讀郵件的時間,增進工 作效率,並且可以進一步作到預防電腦系統自郵件中感染到病毒。現今,電子郵 件已成為大多數人互相傳遞信息的工具,垃圾郵件的數量只會有增無減,如何在 網路上提供一有效的郵件分類器,為當前的一大課題。
本計劃對於郵件分類的方法,是以郵件內容為基礎,首先自郵件中找出每一個 關鍵詞,並計算各個關鍵詞在每一篇文件及每一類別的權重,依資訊擷取對於文 件的描述方式,將每一郵件用所找出的關鍵詞郵件表示為向量模式,再依機器學 習理論的方法,對每一郵件的向量模式進行分類。
最主要的改良是應用在支援向量機上,使用貝式的機率模型進行特徵值選取方 法的改良,藉由應用稀疏的二元多項式雜湊法進行特徵值的前置處理,搭配適當 的中文斷詞方法,提出改良過後的貝式模型,使其能應用於中文郵件問題之上,
並將此分類器與其它分類器如、KNN、K-Centroid等進行比較,同時建立一完整的 Microsoft Access中文垃圾郵件語料庫,在Microsoft Windows平台上提出一個可 行的中文郵件分類架構。
結合上述的改良式貝式模型,進一步藉由分析中文垃圾郵件的特性,提出一反 饋主從式聯防架構,此系統結合MTA與MUA端的過濾機制,能發揮更強大的過濾功 用,在阻隔竄改過之垃圾郵件,同時具備優異的過濾垃圾郵件之效能表現。
Keywords:Spam、classification、vector model、support vector machine Abstract:
The purpose of this project is to provide a mail classifier that can be used to classify the Spam from the received e-mails on the Internet.
The system permits that the user can save the time while reading the mails in the Internet, and promote the performance of working in the office. Further more, the system can prevent the computer system from infecting the virus while reading the mails. Now, the e-mail system has become the major tool that most people can send their messages each other. So, the Spam will be increased day by day. It is an important issue that how to provide an effective classifier from the e-mail.
The e-mail classifier proposed in this project is based on the content of each mail.
At first, we find out every term from each e-mail. Then, we count the weight of each term in each e-mail and each class. Each e-mail will be described by using the vector of terms. Finally, we can assign each e-mail into the assigned class by using the vector of the terms.
The main improvement of SVM spam mail classifier is applying Bayesian technology on Feature Selection. We combine this process to other machine learning methods. If we put in use advanced baysian method, we could get a better precision
result. Most importantly, this procedure also works well in Spam written in Chinese. In the mean time, we build a well-define spam in Chinese database with Microsoft Access software, and then we could have a completely testing environment in modern mail system.
We join different process together and investigate the properties of modern spam mails. Finally, a new client-server system has been proposed. This system has better efficiency and more accurate precision. Based on above context, this system can help users build a clear, safely, and non-spam network environment.
報告內容:請包括前言、研究目的、文獻探討、研究方法、結果與討論(含結論與建 議)…等。若該計畫已有論文發表者,可以 A4 紙影印,作為成果報告內 容或附錄,並請註明發表刊物名稱、卷期及出版日期。若有與執行本計畫 相關之著作、專利、技術報告、或學生畢業論文等,請在參考文獻內註明 之,俾可供進一步查考。
前言及研究目的
垃圾郵件(Spam Mail)指的是將一份內容相同的電子郵件(e-mail),未經收信 人認可,透過網際網路大量寄給許多人[1][2]。這些郵件的內容多數是與收信人 不相干的商業廣告,從徵人啟事、健康產品、甚致於色情廣告幾乎無所不包;根 據專業研究機構的統計,網際網路上的傳遞郵件,超過一半是屬於這種與收信人 毫相無關的垃圾郵件,因為發信者所謂的垃圾蟲(Spammer)不必要負擔製作費用及 發信成本,垃圾郵件的問題勢必會越來越嚴重;其嚴重性對於個人使用者而言,
必須浪費更多的時間處理電子郵件,分辨何者為真正私人的信件,何者為垃圾郵 件,使得工作的生產效率大大減低;而對於企業界而言,大量的垃圾郵件會造成 電腦網路頻寬的擁塞及服務品質的降低;更嚴重的是,有些電腦駭客藉由電子郵 件達到傳播電腦病毒,造成全世界的電腦系統在很短的時間就會感染到電腦病 毒,導致系統擋機,影響正當的商業服務;故垃圾郵件問題的嚴重性,不只引起 使用者、企業組織的注意與關心,更引起世界各國政府的決心,向垃圾郵件問題 宣戰,紛紛立法,企圖由法律途徑,遏止垃圾郵件問題的擴大;然而透過這種法 律來解決垃圾問題,因立法所須時間上的延宕,時效性可能緩不濟急,所謂解鈴 仍須繫鈴人,資訊科技所造成的問題,仍必須以資訊科技方法解決,才能針對垃 圾郵件所造成的問題找出一最佳及有效的解決途徑[3]。
目前用來阻擋垃圾郵件的手段大概有:名單的比對、隔絕 IP 網域、內容過濾,
利用名單比對就是在郵件伺服器中設定收信規則,是所有方法中成本最低的,但 道高一尺魔高一丈,即使是已訂下非常嚴謹的收信規則,垃圾蟲仍然能夠透過轉 址或 IP 偽裝的技巧,還是可以突破收信原則,達到散播郵件的目的,所以單單用 名單比對的方式,作為解決垃圾郵件問題,成效應是很低的。
一般文件的內容都會有類似的特徵植出現,例如政治類的文件就常常會出現 如”國會”、”選舉”、”立法”等關鍵詞,相同的道理,垃圾郵件的內容也會 有相關的關鍵詞出現,以文件內容為基礎加上機器學習(machine learning)的方 法,在傳統文件分類(text classification)領域已獲得相當好的成果[4][5][6]。
綜合上述,故研發一套更有效的垃圾郵件分類機制,對於資訊科技是一個重 要且具有高價值的課題;本計劃是針對在網際網路上的電子郵件,提出一套可以
根據電子郵件的內容,結合機器學習理論,將垃圾郵件自電子郵件中篩選出來,
使得電子郵件的使用者,可以節省閱讀郵件的時間,增加工作效率,更進一步的 功效則可以阻檔電腦病毒,大大降低系統被侵入的機率,經由此研究成果,應可 以解決目前垃圾電子郵件分類所面臨的問題。
文獻探討
關於垃圾郵件的分類問題,就如同文件分類(text classification)問題[14],因此 先就文件分類問題已有的相關研究作一陳述。
文件分類一直是資訊擷取(information retrieval)領域上的一項很重要的研究。
文件分類(document classification)是將一群文件依據文件內容的特徵將它們分別歸 類到一個或多個事先定義好的類別。且隨著現今電子資訊,如網頁、電子郵件,
數量呈等比級數般的增長,文件自動分類技術的研究越顯得有其必要性與實用 性。傳統以人工來進行過濾分類文件已是行不通。而面對資訊的分類須求的必要 性,許多研究者都是從機器學習理論的分類技術,來解決文件分類所碰到的問題 [8][10][11]。
在文件分類方法中,第一要考慮的問題就是文件的表示方法(document representation),文件的表示方法常因系統使用的分類器不同而有所不同。向量空 間模式(vector space model)為文件表示方法之一,其將文件的內容的關鍵詞(term) 當作文件描述的特徵,每一篇文件以一特徵向量(feature vector)來表示,向量中的 每一維度的元素即是出現在文件中的關鍵詞,而各個維度的值可以下列方式來表 示[8][9]:
(1).二元表示法(Binary representation):其值用來表示關鍵詞是否出現在文件中,表 示該關鍵詞出現在文件中,0 表示該關鍵詞未出現在該文件中。
(2).詞頻表示法(TF—Term Frequency): 用來表示文件的特徵向量的維度值,為一關 鍵詞的出現在該文件中的頻率,頻率的高低可以表示該關鍵詞在文件中的重要 性。
(3).TF-IDF 表示法:IDF(Inverted Document Frequency)表示關鍵詞出現在多少篇文 件中,關鍵詞出現在越多篇文件中,表示該關鍵詞的重要性越低,其和詞頻的 乘積則可以表示該關鍵詞的權重[8]。
另一常見的表示法為機率檢索模式(probabilistic retrieval model) [10],將文件 表示為一群關鍵字相對於此文件或類別的機率值,即每一機率值代表著其相對應 的關鍵詞出現在某一文件或類別的機率。
常見的分類器(classifier)有 TF-IDF 分類器(TF-IDF classifier) 、KNN 分類器 (KNN classifier)、決策樹分類器(decision tree classifier)、Naive Bayes 分類器(Naive Bayes classifier)等。
此外,有關機器學習理論的方法如:類神經網路(Neural Network)、基因演算 法(Genetic 支 Algorithm)、決策樹(Decision tree)等等,都有研究學者將其應用在分 類領域中;近來以統計學習理論為基礎的支向機(Support Vector Machine)是由 Vapnik 在 1995 年所提出來的[17],這個方法被廣泛的運用在許多不同的領域,都 有不錯的結果,當然也常被使用在郵件分類中[4][5][12][13][16]。
參考文獻
[1]http://spam.gsnmm.gov.tw
[2]http://www.geocities.com/acejackwu/anitspam/Rule.html
[3]Soonthornphisaj, N.; Chaikulseriwat, K.; Piyanan Tang-On ; “Anti-spam filtering :a centroid-based classification approach”, Signal Processing, 2002 6th International Conference on, Volume: 2, Page(s):1096-1099 , 26-30 Aug. 2002
[4]Li Kunlun ; Hunag Houkuan ; “An architectural of active learning SVMS for spam” , Signal Processing, 2002 6th International Conference on, Volume: 2, Page(s): 1247-1250 , 26-30 Aug. 2002.
[5]Kun-Lun Li ; Kai Li ; Hou-Kuan Huang ;Sheng-Feng Tian ; “Active learning with simplified SVMS for categorization “ ,Machine Learning and Cybernetics , 2002.
Proceedings 2002 International Conference on, Vol:3 , 4-5 Nov. 2002 , pages: 1198-1202 Vol.3
[6] Vaughan-Nichols, S. J. ;”Saving Private e-mail”,Spectrum ,IEEE , Volume : 40 Issue:8 , Aug. 2003
[7]Harris Drucker ; Dongui Wu ; Valadimir N. Vapnik ;“Support Vector for Spam Categorization” , IEEE Trans. On Neural Networks , Vol. 10, 5, September 1999 [8]Ricardo Baeza-Yates ;Berthier Ribeiro-Neto ; “Modern Information Retrieval”, Addision
Wesley Longman Publishing Co. Inc.
[9]Thorsten Joachims ; “Text Categorization with Support Vector Machines: Learning with Many Relevant Features”, LS-8 Report 23, Dortmund, 28. November,1997
[10]Thorsten Joachims ;”A probabilistic analysis of the Rocchio algorithm with TDIDF fro text categorization “ ,In Douglas H. Fisher , editor , Proceedings of ICML-97 , 14th International Conference on Machine Leatning , pages 143-151 , Nashville , US, 1997.
Morgan Kaufmann Publishers , San Francisco, US.
[11]Fabrizio Sebastiani ; “Machine Learning in Automated Text Categorization “ , Consiglio Nazionale delle Ricerche, Italy, ACM 2002
[12]Woitaszek , M. ; Shaabn, M. ; “Identifying junk electronic in Microsoft outlook with a support vector machine “ ,Application and the Internet , 2003 Proceedings Symposium on , 27-31 Jan. 2003
研究方法
採 用 數 種 不 同 的 分 類 方 法 包 括 了 k-Nearest Neighbor(kNN) 、 Naïve Bayes(NB)、Lear Least-squares Fit(LLSF)、Neural Network(NN)等方法。
流程圖:
本計畫的進行步驟如下:
1.針對垃圾郵件的內容,分析其特徵空間,找出所有可能的特徵項目。在本系統 中,所謂的特徵項目,指的就是一個詞彙。這一部份的工作可以分文中文字和 英文字兩個部份來探討。在中文字方面,詞彙指的就是由數個中文字所組成的 字集合。在英文字方面,詞彙指的就是由 26 個英文字母所組成的字母集合。中 文和英文的特徵項目的粹取方式,最主要的差別在於中文字的每個字之間並沒 有明顯的規則可以看出來到底哪幾個字會組合成一個詞彙,因此我們必須利用 斷詞的演算法來將數個中文字斷成一個合理的中文詞彙。在斷詞方面目前已經 有許多人做過相關研究了,但是我們將會自行發展出一套自己的中文斷詞方 法,來改善目前現有斷詞方法的效率。另外在我們自己的實驗中也發現,斷詞 工作做的越準確,將會使得分類準確率大幅度提高。因為這代表了特徵項目越 能夠精準地代表垃圾郵件的主要內容。同時斷詞做的越精準,將可以有效地刪 除掉不必要的特徵項目,使得分類的執行速度更快速。有鑑於上述理由,我們 必定會在這方面發展一套自己的中文斷詞方法。
2.針對 1.中所找出來的所有特徵項目,利用現有以及我們自行發展出來的方法來 計算這些特徵項目的權重。現有計算特徵權重的方法較著名的有 Vector Space Model 中常用的 TF、DF、TFIDF 等方法,而我們也將針對垃圾郵件的特徵項目,
自行發展出一套計算特徵權重的方法,以符合垃圾郵件分類的需求。目前大部 份的相關作法都是把每個特徵視為一個獨立的項目,特徵與特徵之間並無關 聯。但是我們經由自己的實驗發現其實特徵與特徵之間是有關聯的,並且我們 相信朝向這一點去設計垃圾郵件的計算特徵權重的方法,將可以有效地提高分 類的準確率。
3.針對目前新型態的中文(含網頁語法)的垃圾郵件特性,驗證舊有方法的準確 率,尤其是當垃圾郵件的樣本數高於正確郵件時,以及試圖欺騙過濾器的「假正 常」郵件,是否會對原有的過濾器造成影響,經過初步的實驗,採用改良過Bayes 法則以及SSVM的下降效果最不明顯,然而使用Bayes先行選取特徵值後,再交由 SSVM的進行訓練時間,可獲取遠超過單純以貝式理論計算的Bayes法則分類器的 成果,故在選用Bayes作為初步的特徵選取,加解決SVM在多維度訓練下時間緩慢 的問題。並分別研究「中文辭語」、「文件竄改或郵件偽裝」、「特徵選取」等 三個項目進行研究改良,提出一個能夠應用在中文並包含網頁資訊的郵件分類 器。
結果與討論
主要結論如下:
1. 對目前應用於垃圾郵件的分類及過濾議題可行的演算法,進行全方位的測試與 研究,在考量多種演算法的結果之後,驗證出貝式分類法則適合進行中文的分 類的可行性,SVM最大的問題點在於分類出來的權重值本身即無法描述(沒有 辦法解釋為什麼),然而SVM最大的優勢在於如果能選取出好的特徵值,則其 分類效果及速度是最佳的。經由貝式的前置處理,可經由機率的調整,達到英 文郵件中99%以上的召回率,以及中文郵件中,85%以上的召回率,而且本身具 備「解讀」的能力,對於個人用戶而言,可能很簡單調整成最適合自己的分類 器,或是可以人工去調校(Tuning)特定的指標權重。例如利用下載的方式,
與特定的特徵伺服器連結,取最近期的垃圾郵件特徵,達到特徵值選取的目的。
2. 垃圾郵件具備幾項特性: (1)垃圾郵件的關鍵字詞遠比正常郵件來得少,常出 現的字例如「快速致富」、「輕鬆擁有」、「在家工作」、「當老闆」等字詞 組,當以上這些字詞出現時,幾乎可以斷定100%是垃圾郵件。 (2)相對於(1),
正常郵件的單字相對廣泛,內容可能五花八門。 (3)一半以上垃圾郵件有流行 性,換言之,某相似類型的垃圾郵件有的是在短時間內不斷出現,例如每到
「六、七月份」「補習、證照、求職」相關的垃圾郵件會特別多。所以當使用 者發現「新型」垃圾郵件,或是正流行的內容,只要能先期傳送到郵件伺服器 MDA上,則伺服器Filter即使不需要很嚴格的設限,用簡單的1NN或是必須須「完 全相符」這一類的寬鬆條件,都可以有100%的準確率(不誤刪正常郵件),並 維持4~5成的先期過濾能力,減輕MUA Filter的負擔。
(4)有6成的垃圾郵件是非常類似的,例如黃色網站的廣告內容(通常只有標題 不一樣)、轉寄即可賺錢的網站等等。
3. 貝式機率模型具備相當優良的特性,在全特徵值(所有的字詞)全部丟入訓練 時,在適當的選取出特徵值之後,SVM的表現最好,但是實務上由於垃圾郵件是 不斷依序進入的,採行Bayes搭配Information Gain或Markov Chain的表現出乎 意料的好,可以讓Spam Recall或Precision同時接近100%。
4. 在單機作業上,單純使用貝式或SVM的效果都相當的好,但應用在企業區域聯 防的架構下,SVM的運算效率明顯造成問題,最簡單的解釋是,當郵件愈多,
文字所構成的向量更多,在貝式先行改良的前提下,取前15~20的字詞作為比 對,其效率及效果仍相當佳(至少可以調校成維持近乎零的誤判率),解決了 SVM面對高維度的問題上,演算的效率較差的困擾。
5. 在伺服器端,建議採行另類的分類方式:第1類是「明顯」或「特定時間內經 使用者警告過的垃圾信」,第2類是「等待再確認」的郵件。並只放行後者,
只要伺服器端採用能接受「疫苗注射」這一類的方式,則整體區域防護的效能 會提昇,在10人的小型網路上,就可以達到7~8成左右的先期過濾效果(熱門 或正流行的垃圾郵件,會被提前出局)。
6. 在針對使用者對於垃圾郵件填入正常郵件會出現的文字加以竄改,對於分類效 果的影響,應用FKC模型並視為一個重要的「訊號」,以配合改良式的貝式模 型,為一可行性的解決方案。
7. 針對HTML語言所設計出來的廣告信件進行適度的處理,去考量郵件檔頭、超連 結、網址及關鍵字位置,的確可會提昇分類效率。例如:在主旨中出現「免費」
大概九成五以上都是垃圾郵件,但是在內文中出現免費的機率只有6成左右。超
連結重覆出現2次以上,在正常郵件中的可能性極低,但是出現2次是垃圾郵件 的比例高達8成。
8. 開發可單機作業的應用軟體,並在實際的日常運作中具備優異的分類成效。所 謂的過濾器更適合的說法是一個能協助使用者以機率方式建立規則的工具軟 體,過濾器可以幫助個人去找出垃圾郵件可能的「跡象」,協助分類。
9. 採用二階段的防禦架構可以獲得更準確且有效率的過濾成果。
計畫成果自評部份,請就研究內容與原計畫相符程度、達成預期目標情況、研究成果 之學術或應用價值、是否適合在學術期刊發表或申請專利、主要發現或其他有關價值 等,作一綜合評估。
達成預期目標情況
本計劃預計採用支向機,根據郵件內容來進行郵件分類,主要是將郵件 分為正常郵件與垃圾郵件兩大主要類別,進一步針對垃圾郵件允許使用者可以再 細分為多個子類別,並對新增加的子類別進行訓練,以提高垃圾郵件分類的準確 率。
本計畫達成之工作項目,分述如下:
1. 針對垃圾郵件的內容,分析其特徵空間,找出所有可能的特徵項目。
2. 針對找出來的所有特徵項目,利用現有以及我們自行發展出來的方法來計算這 些特徵項目的權重。
3. 調整最佳參數,並利用其他技術改善在大資料量時的執行效率。
4. 研發郵件客戶端軟體的外掛程式。
5. 研發一套郵件客戶端軟體。
6. 研發一套線上伺服器。
研究成果之學術或應用價值
在網際網路時代,垃圾郵件問題已成為電子郵件使用者的夢魘,不但影 響到個人使用者,甚致於對企業也帶來重大影響,如影響企業的效能、浪費資源等,
且由垃圾郵件也可能夾帶電腦病毒,其輕者影響個人與企業電腦系統的安全,重者 會導致國防資訊的安全,故從資訊科技的理論與技術,研發一套有效的郵件分類器,
可以大大減低使用電子郵件所帶來的負面的影響,整體而言本計劃的貢獻可分為兩 方面,分述如下:
在學術研究方面:
1.發展新的資料特徵權種計算及選取方法。
2.提出一套新的支向機參數及模式的方法。
3.研究提升過濾器的分類效能。
4.建立新的郵件分類的理論與實作基礎。
在國家發展及工業領域之應用如下:
本系統可以外掛在任何的客戶端電腦,可以幫助使用者在接收電子郵件時,藉 由本分類系統將垃圾郵件篩選出來,因此對企業、對國家的任何機關的電腦系統而
言,可以提升電腦資源的使用效率,增加服務的品質,預防電腦病毒的感染。
採用SVM或是其它非線性分類法則的效果相當的好,僅採取簡單的貝式模型(假設 Feature之間是獨立的)雖然結果相當的好,如採用其它會考慮維度相依性的機率模 型,應該能對分類效果再次提昇。針對中文文字分類所存在的先天問題,由於中文 字是以辭為單位,斷字的方法會影響分類法則的判斷,應可以做進一步的研究。目 前應用在中文斷語問題上的法則有很多,相信研究使用不同的斷詞方法對於中文文 件分類的議題,可以有更進一步深入的探討。同樣的,針對新型態的垃圾郵件如何 提出對應的反制處置程序以維持分類的高召回率(Recall),也是一個值得進一步 深入研究的問題。此外,位於MUA(個人電腦上)客製化的過濾器可以有比在MDA端 的過濾器(Filter)更高的表現,然而架設於伺服器端的防護對於企業及使用者而 言更具效益,如何有效的整合眾人的力量將位於不同電腦的過濾器(Filter),本 文中提出使用KNN及機率的方式處理的架構也許適用於公司內部,但若要更進一步應 用於大型網路(成千上萬人聯盟)之中,則及傳遞效率(MUA與MDA之間)就會是一 個很重要的研究課題。
可供推廣之研發成果資料表:凡研究性質屬應用研究及技術發展之計畫,請依 本會提供之表格(如附件二),每項研發成果填寫一份。