劉文龍,時鎮軍(中國移動通信集團江蘇有限公司,南京 210003)
基于多分類器融合的垃圾短信處理系統
劉文龍,時鎮軍
(中國移動通信集團江蘇有限公司,南京 210003)
本文提出了利用樸素貝葉斯、社交網絡SNS和廣告主挖掘多個分類器融合的垃圾短信處理方式,系統基于Hadoop處理平臺,從用戶發送內容和發送行為兩個維度著手堆垃圾短信識別,可以大幅度提升目前垃圾短信治理的召回率和準確率。
樸素貝葉斯;社交網絡;分類器融合;垃圾短信處理
目前對于垃圾短信的治理手段,多采用流量和的處理方式。在實際使用時,為了防止誤攔截流量策略一般設置較為寬松,只有用戶發送行為明顯出現異常時才會被檢出,對于
策略,一般是從已知的垃圾短信中提取出
,再結合適當的門限值來進行配置,該種策略對于已知的垃圾短信有較好的檢出率,但是對于新型短信,或者內容變化較大的短信則較難檢出。并且對于采用純流量和
+流量的治理方式,需要耗費大量的人力來對策略進行維護,當策略數量達到一定數量級后,手動維護已經較為吃力。對于單純使用文本分類算法來處理垃圾短信的方式,雖然內容判斷較為準確,但是由于脫離了用戶的發送行為,較容易造成誤攔截。
本文提出基于可橫向擴展的Hadoop分布式計算、非結構化數據存儲和處理能力系統結構,從底層保證系統的大數據處理性能和系統易擴展性能,充分利用經人工審核已確認的垃圾短信作為深入挖掘和智能分析的樣本,融合基于短信內容的貝葉斯分類算法和基于用戶發送行為的社交網絡算法提高系統的查準率,并且利用廣告主挖掘算法來大幅提高垃圾短信的查全率,從垃圾短信的根源和本質進行治理,從而可大幅提升垃圾短信的治理效果。
如圖1所示,系統總體軟件架構邏輯上共分為4層:數據獲取及預處理層、數據存儲計算框架層、數據分析層和數據應用層,其中中間3層數據獲取及預處理層、數據存儲計算框架層、數據分析層以及操作維護為本系統的核心組成部分。
數據獲取及預處理層:提供針對不同數據源的數據獲取接口,如FTP、數據庫接口等用來從數據源獲取源數據;預處理部分針對實際處理需要以及數據源的格式等完成統計粒度內數據合并處理、獲得數據的結構化處理、源數據格式的處理和轉換、源數據抽取、過濾等功能。經過該層的處理后,所獲取的源數據保存在由數據存儲計算框架層提供的分布式存儲中,可供上層數據分析層直接處理。
收稿日期:2015-11-16

圖1 系統架構圖
數據存儲計算框架層:主要包括由DMP平臺封裝提供的Hadoop的Map/Reduce分布式并行計算框架和HDFS分布式文件系統,以及用于存儲結構化數據和基礎結果數據的商用關系型數據庫。采用DMP平臺集成的Hadoop框架,主要是考慮其分布式文件系統超大的存儲空間能夠滿足短信挖掘高帶寬大數據量的存儲需求以及Map/Reduce分布式并行計算框架能夠滿足對數據分析處理性能的要求。
數據分析層:數據分析主要包含廣告主挖掘、樸素貝葉斯分類、社交SNS等分類器的分析處理。
操作維護OMM:操作維護包括對整套系統的各種操作維護的需求功能,包括常用的設備管理、故障管理、系統監控、日志管理和權限管理,還包括配置管理和元數據管理。配置管理包括對MAP/Reduce計算系統的配置、統計分析和挖掘分析處理的各種配置。
2.1樸素貝葉斯算法
貝葉斯分類算法是統計學的一種分類算法,它是一種利用概率統計知識進行分類的算法。其中樸素貝葉斯算法作為貝葉斯分類算法的一種,具有算法邏輯簡單,易于實現的特點,并且分類過程中對于時間和存儲的開銷小,算法穩定性和健壯性好,目前被廣泛用于文本分類,人工智能等領域。
2.1.1貝葉斯基本公式
由貝葉斯基本公式

可以導出:

2.1.2統計學轉換到垃圾監控領域
P(A)是A的先驗概率或邊緣概率,它不考慮任何B方面的因素。
P(A|B)是已知B發生后A的條件概率,也由于得自B的取值而被稱作A的后驗概率。
P(B)是B的先驗概率或邊緣概率,也叫做標準化常量(Normalized Constant)。
轉化做垃圾短信監控領域中后:A是一個詞,B是一條短信。
P(B|A)就是當A詞出現時,短信B是垃圾短信的概率,是后驗概率,也就是貝葉斯分類的系數。
P(B)、P(A)和P(A|B)是先驗概率,通過對分類器進行訓練得出。
P(B)是短信B在所有樣本短信中出現概率 = 短信B的條數/所有樣本短信條數,由歷史全量樣本中統計得出。
P(A)是詞A在樣本的所有特征分詞中出現概率 =詞A出現次數/所有特征分詞出現次數。
P(A|B)是含有詞A的短信B是垃圾短信的概率 =出現詞A的短信B是垃圾短信的條數/短信B總條數(垃圾短信總條數)。
2.1.3算法說明
衍生的樸素貝葉斯公式:

假設垃圾短信樣本與正常短信樣本的比例為5:95,即P(C0)等于0.05,P(C1)等于0.95。
對短信做加權和降維后產生Dx,進行樸素貝葉斯文本分類:
【無】【本】【稅】
【錫】【地】【票】 王經理:138929929290
Dx={稅,票,本, 王經理,地, 錫}
通過統計各個分詞Wi在垃圾短信樣本集里面出現的次數與所有分詞數的比值,可以獲取P(Wi|C0),類似的可以計算出Wi在正常短信的分布比例,獲取P(Wi|C1),上述分詞對應的條件概率如圖2所示。

圖2 條件概率

這條消息屬于垃圾短信的概率是屬于正常短信的概率的4.58倍,貝葉斯分類算法得出該條短信歸類為垃圾短信的系數為0.820 8。
2.2社交網絡(SNS)
2.2.1算法原理

圖3 垃圾短信發送者社交關系圖
垃圾短信發送者的社交網絡如圖3所示,具有出入度大、收發比例不均衡、收發時間、條數、內容分布均勻、接收者之間基本無聯系等特點,社會關系網絡結果呈扇形對稱分布。

圖4 正常短信發送者社交關系圖
正常短信發送者的社交網絡關系如圖4所示,具有出入邊數相對稀少、收發比例均衡、收發時間、條數、內容隨機分布、接收者之間交往聯系特征明顯等特點,關系網絡呈網絡拓撲狀。
2.2.2算法說明
2.2.2.1基于圖論的用戶判定方法
將現網用戶的行為做有向圖,圖5中每個節點都是一個用戶,而每條帶箭頭的線表示用戶之間發了一條短信。

圖5 正常主叫社交關系圖
正常用戶的行為:圖6出去的箭頭(出度)和進入的箭頭(入度)處在相同的數量級別。

圖6 疑似主叫社交關系圖
垃圾短信用戶行為:圖6用戶的出度明顯大于入度,甚至幾乎沒有入度。
2.2.2.2短信長度輔助判斷
對樣本短信進行聚類分析,垃圾短信和正常短信的內容長度呈現完全不同的分布情況。
正常消息的長度集中在1~17和大于55區間內。意味著正常消息大部分是極短的,或者是比較長的。
垃圾消息的長度集中在10~65之間。意味著垃圾消息不會太短,一般也不會使用長消息。
2.2.2.3疑似垃圾短信系數計算
通過計算單個計算周期內,用戶出度、入度、發送條數、接收條數、發送時間間隔方差和發送內容長度、長度方差等因素,計算該用戶的疑似度。如果用戶的出度和發送條數小于限定值(人工設定),則疑似系數為0。
2.3廣告主挖掘
2.3.1算法原理
垃圾短信的內容變化多種多樣,但是從廣告和詐騙類垃圾短信產生的根源分析,短信內容中通常需要包含聯系電話、銀行賬號或者網址等信息;而由于成本及更換困難等多種原因,這些廣告主信息通常相對比較固定,是大量垃圾短信中具有的明顯特征,而且是比較固定的特征信息。
2.3.2算法說明
定義廣義字符庫:垃圾短信發送用戶為了避免被攔截,往往在其中穿插了各種各樣的數字和字母:阿拉伯數字、中文簡體數字、繁體數字、諧音數字、帶符號的數字和各種象形字母,我們把這些表現形式多樣的字符稱為廣義字符。
廣義字符庫可配置,包括阿拉伯數字、中文簡體數字(如一、二、三)、繁體數字(如壹、貳、叁)、諧音數字、帶符號的數字(①、□)、以全角或上下標表示的數字(如1、1、4)和各種相似字母等。在收到短信后根據廣義字符庫先將短信內容中的廣義字符做變換后再進行分析。
定義廣告主庫:廣告主庫根據已被判定的垃圾短信內容生成,包含銀行卡號、網址、聯系電話、郵箱地址等信息,實時進行更新,并且對于一定期限內沒有觸發過的廣告主則進行老化處理。

圖7 廣告主分類處理流程圖
廣告主分類處理流程圖如圖7所示。
(1)對待分析短信內容進行預處理,根據預先配置的廣義字符庫進行變換,得到原始廣告主內容。
(2)與已知廣告主庫進行比對,如果為已知廣告主,則直接輸出內容疑似度,如果非已知廣告主,則加入到拒識庫。
(3)以廣告主作為特征向量,對拒識庫內的所有短信進行聚類。
(4)根據發送該廣告主的主叫號碼數量,主叫號碼的疑似度(由社交網絡算法得出),發送總量等信息計算該廣告主疑似度。
(5)根據該廣告主疑似度進行計算,輸出廣告主分類器的疑似系數。
目前在分類領域中,多分類器融合技術發展迅猛,分類融合技術主要可劃分為兩類,第一類著重改善分類器的結構,在分類過程中找一個或者一組最優分類器,融合過程不對單個分類器的結果做任何修改,另一類則不對單個分類器做任何更改,主要對各分類器輸出結果進行操作,即對單個分類器分類結果進行計算,來確定最終分類結果。對分類器輸出進行融合的方法有很多,最常見的方法有多數投票法、加權平均法、Borda計數法、D-S證據組合、貝葉斯方法、神經網絡、模糊積分、決策模板等。
結合垃圾短信分類的實際情況,以及本文涉及的單個分類算法,最終采用優化的加權多數投票法,當社交關系分類器計算主叫號碼疑似度為0時,進行一票否決。
為了提高整體召回率,當根據各個分類器計算出疑似垃圾短信后,再根據短信內容中的廣告主對主叫號碼進行召回,提取出包含所有該廣告主的短信,去除社交關系分類器否決的部分,然后進行補充輸出。
為了更好的測試各個分類器作用效果,與分類器融合后效果,經過設計后進行實驗。
4.1單分類器實驗
4.1.1貝葉斯分類器訓練
用樣本訓練出貝葉斯分類器,供貝葉斯算法使用。輸入:正常短信樣本60萬條。垃圾短信樣本20萬條。輸出:分類器文件,供離線貝葉斯分類和實時貝葉斯分類使用。
過程:對樣本庫進行處理,利用正常樣本60萬,垃圾樣本20萬,然后分別對正常樣本和垃圾樣本進行分詞、詞頻統計,最終為每一個詞計算出一個可疑權重,形成貝葉斯分類器。
4.1.2貝葉斯分類器
輸入:分類器文件。測試短信樣本。
輸出:貝葉斯可疑內容詳單。
過程:對原始話單的每條消息進行分詞,然后計算每個詞的權重,由包含詞的權重可得到短信的可疑權重值,過濾出其中權重值大于0.5的短信內容,最終輸出可疑短信詳單。
4.1.3社交網絡分類器
輸入:測試短信樣本。
輸出:社交網絡分類可疑內容詳單。
過程:通過對每個主叫、被叫進行出度、入度,發送消息數量,接受消息數量等進行計算,對每個號碼發送的消息中文長度區間進行統計,然后為每個號碼計算出一個可疑權重值,抽取出其中權重大于0.5的號碼,再根據這些號碼輸出可疑短信詳單。
4.1.4廣告主分類器
輸入:廣義字符字典,廣告主字典。測試短信樣本。輸出:廣告主分類可疑內容詳單。
過程:根據廣義字符字典文件,將話單中的廣義字符替換成原本字符,然后將具有廣告主特征的連續字符作為廣告主,計算這些廣告主的出現次數、參與主叫數量等,過濾出其中參與主叫數量大于等于2,出現次數大于等于10次的廣告主,最后根據這些廣告主輸出可疑短信詳單。
4.2分類器融合綜合評估
輸入:測試短信樣本。
輸出:融合疑似詳單文件。
過程:通過對各個分類器系數以及融合權值進行調整,進行綜合分類,輸出最終疑似話單。
4.3實驗結果
離線分類數據的統計結果如表1所示。

表1 離線分類數據的統計結果
在文本分類領域,通過增加單個分類器結構的復雜度來提高分類精度通常已經不能滿足要求,而將多個結構簡單的分類器依據不同策略進行融合,來提高整體分類的精度,不失為一種明知的選擇。
在垃圾短信處理方法上部分專家也提出使用文本分類的算法來處理垃圾短信,但是在實際使用中,單純依靠短信內容來判斷用戶是否發送垃圾短信并不能滿足要求, 需結合用戶的發送行為進行綜合判斷。本文提出的基于短信內容+用戶行為+廣告主判斷融合的方法,在實際使用中可以對不同類別的分類器進行替換或者增減,可以大幅提高垃圾短信治理中的召回率和準確率,是一種較為先進的垃圾短信治理系統。
Anti-spam SMS system based on multi classifier fusion
LIU Wen-long, SHI Zhen-jun
(China Mobile Group Jiangsu Co., Ltd., Nanjing 210003, China)
In this paper, we propose use naive bayesian, social networks and extract advertisers to tap the multi classifi er fusion Anti-spam system, the system based on Hadoop platform, according to SMS content and user's behavior to identify spam messages, then the classifi cation accuracy will be improved greatly.
naive bayesian; social networks; multi-classifi er fusion; anti-spam messages
TN918
A
1008-5599(2015)12-0031-06