鄒永潘 ,李 偉 ,王儒敬
1(中國科學院 合肥物質(zhì)科學研究院 合肥智能機械研究所,合肥 230031)2(中國科學技術(shù)大學,合肥 230026)
基于多特征的垃圾微博檢測方法①
鄒永潘1,2,李 偉1,王儒敬1
1(中國科學院 合肥物質(zhì)科學研究院 合肥智能機械研究所,合肥 230031)2(中國科學技術(shù)大學,合肥 230026)
隨著微博平臺的快速發(fā)展,垃圾信息檢測與過濾也面臨著巨大的考驗,實時精確地識別垃圾信息對于提高用戶的體驗以及微博平臺的可持續(xù)發(fā)展意義重大.本文根據(jù)新浪微博的真實數(shù)據(jù),提出了一種基于多特征的垃圾微博檢測方法.首先,提取微博的顯式特征(用戶特征、內(nèi)容特征); 然后利用文檔主題生成模型(LDA)提取微博中的隱含主題特征; 最后根據(jù)所提取的微博特征利用支持向量機(SVM)構(gòu)建分類器.實驗結(jié)果表明,該方法相比于現(xiàn)有方法在準確率和F1值方面都有一定的提升.
垃圾微博檢測; 隱含狄利克雷分布; 支持向量機
當今社會,社交網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘=涣鞯囊环N重要方式.大量的用戶通過在社交網(wǎng)絡(luò)發(fā)布消息與朋友進行互動,用戶也可以通過關(guān)注熱門用戶、熱門話題來了解名人和最新的新聞動態(tài).諸如新浪微博等社交網(wǎng)絡(luò)便捷、自由的傳播方式使得其用戶量和信息量獲得了爆炸式的增長,這也為垃圾用戶和垃圾信息的產(chǎn)生提供了土壤.因此,檢測社交網(wǎng)絡(luò)中的垃圾信息對于增加用戶的體驗度以及對社交網(wǎng)絡(luò)平臺的可持續(xù)發(fā)展具有重要的意義.
微博等社交網(wǎng)絡(luò)的垃圾信息檢測過濾方法一直以來都是一個研究的熱點.現(xiàn)有的研究工作主要集中在識別垃圾信息制造者而非直接識別垃圾微博信息.研究者們通過將特征統(tǒng)計方法與機器學習算法相結(jié)合,提出了大量用于檢測垃圾用戶的方法.如 Fabrício Benevenuto等使用機器學習的方法通過twitter的內(nèi)容屬性和用戶的行為屬性來識別twitter中的垃圾用戶[1];Zeng Z等通過觀察垃圾用戶的行為統(tǒng)計規(guī)律和傳播方式,利用支持向量機對標注的微博用戶集構(gòu)建分類器,取得了不錯的效果[2].此外,還有一些學者通過檢測微博相似度和對用戶的社交網(wǎng)絡(luò)建立圖模型來進行垃圾用戶的檢測[3,4].
然而,在使用微博的過程中發(fā)現(xiàn),垃圾信息的發(fā)布者并不完全來源于垃圾用戶,大量的垃圾信息來自于普通用戶.因此,對單條微博進行檢測過濾從而凈化社交網(wǎng)絡(luò)顯得十分必要.Ma Y等人將英文微博客的垃圾檢測方法應用到了中文微博客中,并對支持向量機、隨機森林、樸素貝葉斯三種方法進行了對比,實驗結(jié)果顯示了支持向量機在處理文本分類中的優(yōu)勢[5].于然等人通過從微博的結(jié)構(gòu)和內(nèi)容兩個視角建立規(guī)則,再與分詞結(jié)果進行融合構(gòu)造符合特征,并以此進行垃圾微博過濾[6]; 王琳等人提出了一種基于相似微博檢測和URL鏈接、字符串、高頻詞等特征判別的垃圾微博檢測方法,取得了較好的效果[7]; 刁宇峰等人提出了一種博客垃圾評論發(fā)現(xiàn)方法,通過LDA對博客的評論進行隱含主題提取,結(jié)合博文主題信息進行垃圾評論判別[8].
針對垃圾微博的來源不一定是垃圾用戶這一事實,將工作重點放在了垃圾微博博文的檢測上,利用微博的顯式特征、隱含主題特征來對微博進行垃圾檢測.首先,根據(jù)微博自身的文本特點和結(jié)構(gòu)特點,提取微博的作者粉絲數(shù)關(guān)注數(shù)之比、微博的評論數(shù)、URL數(shù)目等顯式特征; 針對垃圾微博和正常微博中詞的分布特點,構(gòu)建垃圾微博特征詞庫,計算每一條微博的垃圾微博特征詞比例作為微博內(nèi)容特征的擴展; 由于微博具有正文文本較短,用詞自由等特點,僅僅從統(tǒng)計特征入手,忽略文本的語義特征不能滿足過濾的需求,因此考慮引入LDA概率主題模型,通過抽取微博的隱含主題并計算其對該主題的隸屬度來從語義的角度對微博的特征進行進一步擴展; 最后,利用之前構(gòu)建的特征向量采用支持向量機對微博數(shù)據(jù)建立分類模型.通過實驗對比,驗證了該方法的可行性.
通過對大量微博的對比分析發(fā)現(xiàn),正常微博和垃圾微博在顯式特征上面存在有比較明顯的差異.例如,對于一條用于做廣告推廣的微博,它的被轉(zhuǎn)發(fā)數(shù)、被評論數(shù)一般比較低,而含有URL鏈接的可能性卻很大;對于一條關(guān)于人生感悟的微博,一般不會含有特殊字符、URL鏈接等內(nèi)容特征.為了準確的描述二者之間的差異,本文從人工標注的8000條新浪微博數(shù)據(jù)(其中垃圾微博3193條)入手,分別對用戶特征和微博內(nèi)容特征進行統(tǒng)計分析,具體分析結(jié)果如下.
2.1.1 用戶特征
在垃圾微博檢測的工作中,經(jīng)常被考慮到的用戶特征有用戶的粉絲數(shù)、用戶的關(guān)注數(shù)、微博的被贊數(shù)、微博的被評論數(shù)、微博的被轉(zhuǎn)發(fā)數(shù).表1展示了正常微博和垃圾微博在各個屬性上的平均值.
表1 各個用戶特征的統(tǒng)計平均值
從表1中可以看出,微博被贊數(shù)、轉(zhuǎn)發(fā)數(shù)、評論數(shù)在正常微博和垃圾微博中區(qū)別較大,而作者的粉絲數(shù)和關(guān)注數(shù)區(qū)別則不是很大,因此考慮將粉絲數(shù)關(guān)注數(shù)之比作為一個用戶特征應用到垃圾微博過濾當中.通過以上分析可知,將用戶特征用于垃圾微博的過濾具有一定的實際意義.
2.1.2 內(nèi)容特征
研究人員通過各個角度對微博的內(nèi)容特征進行分析提取,目前比較流行的內(nèi)容特征有:微博長度、鏈接數(shù)、鏈接占比、代詞長度、“我”出現(xiàn)的次數(shù)、有沒有“@”“#”等特殊符號、數(shù)字符號占比等,本文通過計算所選特征之間的相關(guān)性并將部分屬性融合為一個屬性之后,選擇了微博正文長度、URL數(shù)、非漢字字符比例、垃圾微博特征詞比例作為用戶的內(nèi)容特征.關(guān)于垃圾微博特征詞比例(ratio)的定義如公式(1)所示.其中l(wèi)en()函數(shù)表示求字符串的長度,D1(i)表示微博正文Doc中的出現(xiàn)在垃圾微博特征詞典中的詞.
經(jīng)過特征選擇之后,再次對各個內(nèi)容特征進行分析,結(jié)果如表2 所示.統(tǒng)計結(jié)果表明,考慮微博的內(nèi)容特征是必要的.
表2 微博內(nèi)容特征統(tǒng)計平均值
2.2.1 LDA 模型描述
Latent Dirichlet Allocation 模型是由 Blei等在2003年提出[9],屬于一種典型的概率主題模型.作為一種產(chǎn)生式主題模型,LDA已經(jīng)廣泛的應用于文本分類、信息檢索等諸多領(lǐng)域[10,11].LDA主題模型本質(zhì)上是一個”文檔-主題-詞”的三層貝葉斯網(wǎng)絡(luò),文檔和主題、主題和詞之間均服從狄利克雷分布.LDA的模型表示如圖1所示[10],關(guān)于圖中各個參數(shù)的含義如表3所示.
圖1 LDA 概率圖模型表示
表3 LDA 模型中各符號的含義
在圖1的模型中,詞w在主題z上以及主題z在文檔d上分別服從以φ和θ的多項分布,而θ和φ又分別服從參數(shù)為α、β的Dirichlet分布.整個LDA模型的對應聯(lián)合概率分布為[12]:
p(θd|α)和p(φz|β)分別表示θ和φ服從的參數(shù)為α、β的 Dirichlet分布.則:
其中,Γ(·)表示 Gamma 函數(shù),定義如下:
通過整合θ、φ,使得公式(2)中僅僅保留可供觀測的單詞w、已知的參數(shù)α、β和待推導的主題分布z,即:
對于模型中的參數(shù),通常設(shè)置參數(shù)α=50/K、β=0.01、K=50.可以通過對變量z進行Gibbs采樣來近似估算θ和φ,計算公式如下[12]:
2.2.2 提取隱含主題特征
相比于目前大部分研究利用LDA主題模型的主題—詞概率分布來解決特征稀疏問題,文中主要利用LDA的文檔—主題概率分布來預測文檔的隱含主題作為文本的特征來進行特征擴展.因此,該部分的主要工作包括兩部分:首先,利用一個外部微博文本集docs訓練LDA模型,即估計模型中的參數(shù)θ和φ; 然后,對于一個新的文檔docnew,利用訓練得到的LDA模型來計算該文檔的主題分布θnew并選擇對應的TopN個主題的主題編號以及以及對應的概率作為隱含主題特征,具體流程如圖2所示.
關(guān)于圖2的幾點說明:
(1)圖中的“外部文檔集合”是通過網(wǎng)絡(luò)爬蟲在新浪微博平臺爬取的涉及各個主題的微博文本集合; “實驗數(shù)據(jù)集”是包含微博的作者、作者ID、微博ID、正文等一系列特征的結(jié)構(gòu)化數(shù)據(jù)集.
(2)相比于“外部文檔集合”預處理中的分詞、去停用詞等操作,對“實驗數(shù)據(jù)集”要首先從結(jié)構(gòu)化微博數(shù)據(jù)中提取中微博的正文.
圖2 隱含主題特征提取框架
(3)利用外部文本集訓練出來的LDA模型提取每一條微博的TopN個主題的主題編號以及對應的概率,其中N需要通過實驗進行確定.
文中提出的垃圾微博檢測算法的思路是從微博的顯式特征(包括用戶特征和內(nèi)容特征)和隱含主題特征入手構(gòu)建特征向量,然后再利用SVM進行分類器構(gòu)建.算法流程如圖3所示.
具體實現(xiàn)過程如下:
輸入:微博原始訓練集 D,ModelLDA(θ,φ)
輸出:用于對測試集進行分類的最終分類器C.
Step 1.將每一條微博數(shù)據(jù)劃分為微博文本和非文本數(shù)據(jù),并從非文本中提取出該條微博的用戶特征;
Step 2.引入垃圾微博特征詞典,對于微博文本,分別利用正則表達式技術(shù)匹配微博正文中的URL標簽、垃圾微博特征詞、非漢字字符來提取微博的內(nèi)容特征.
Step 3.將通過 Step 2 處理過后的微博正文進行預處理操作:去非漢字字符、分詞、去停用詞,得到每一條微博對應的詞向量.
Step 4.利用 ModelLDA(θ,φ)對每一條微博進行隱含主題特征提取.
Step 5.將顯示特征和隱含主題特征整合到向量空間中,利用SVM算法構(gòu)建分類模型.
圖3 垃圾微博檢測框架
利用網(wǎng)絡(luò)爬蟲從新浪微博爬取1500個用戶2016年7月1日至7月31日期間發(fā)送或轉(zhuǎn)發(fā)的129648條新浪微博正文,數(shù)據(jù)集涵蓋了體育、經(jīng)濟、娛樂、情感等各個領(lǐng)域,經(jīng)過去重處理之后作為外部文檔集來訓練LDA模型.隨機抽取8000條記錄作為訓練數(shù)據(jù)集,經(jīng)過人工標注后得到垃圾微博3193條,正常微博4807條.文中擴展的垃圾微博詞典是通過收集網(wǎng)上微博常用廣告詞獲得的214個詞或短語.
1)實驗預處理
實驗中對文本的預處理主要有HTML解析、分詞、去停用詞等操作,其中分詞過程使用了HanLP開源漢語言處理包,并添加了用戶詞典,使得分詞具有更好的效果.
2)確定隱含主題數(shù)N
隱含主題數(shù)N是在利用LDA主題模型進行主題預測時選擇該文本所屬的主題的個數(shù).選擇的主題個數(shù)過小會使得判斷文本所屬主題時存在很大的偶然性,而選取的N過大又會導致隱含特征性質(zhì)的下降.為了研究選取的隱含主題個數(shù)N對實驗結(jié)果的影響,選取4000條經(jīng)過標注的實驗數(shù)據(jù)集,以F1值作為評判標準,實驗結(jié)果如圖4所示.從圖中可以看出,隨著N的增大,F1值先增大后減小,在N=5的時候得到最大的F1值,此時分類器的性能是最好的,故在分類器的訓練中設(shè)定N=5.
3)算法選擇及評價標準
根據(jù)預處理中獲取的顯式特征和隱含主題特征構(gòu)建特征向量,利用支持向量機(SVM)進行分類,實驗中采用LIBSVM軟件包.算法性能通過準確率P(Precision)、召回率R(Recall)、以及綜合考慮指標F1來衡量.
圖4 隱含主題數(shù) N 對 F1 值的影響
以上公式中,TP表示正確分類的正例數(shù)目,FN表示錯分為負例的正例數(shù)目,FP為錯分為正例的負例數(shù)目.
4)對比實驗分組
為了驗證文中提出的垃圾微博檢測方法的有效性,文中利用相同的實驗數(shù)據(jù)集,分別實現(xiàn)了三種方法,并將三種方法的實驗結(jié)果進行對比.其中:
方法1:利用文獻[6]提出的垃圾微博過濾方法.
方法2:引入垃圾微博特征詞特征,利用上文中提到的顯式特征作為特征向量構(gòu)建分類器.
方法3:文中提到的垃圾微博檢測方法.
利用人工標注的8000條實驗數(shù)據(jù)(垃圾微博3193條)構(gòu)建分類器,并通過十折交叉驗證的方法來對分類模型進行評估.針對以上三種方法,得到的實驗結(jié)果如表4所示.
表4 實驗結(jié)果
通過方法1和方法2的實驗結(jié)果對比可以發(fā)現(xiàn),引入垃圾微博特征詞之后對于檢測的準確率和召回率方面均有所提高; 通過對比方法2和方法3可以發(fā)現(xiàn),考慮了微博文本的隱含主題特征之后,分類器的綜合性能得到了一定的提高.
為了進一步驗證分類器的泛化能力,從2016年8月1日到20日的微博數(shù)據(jù)集中每天隨機抽取150條分別利用以上三種方法進行測試,得到的實驗結(jié)果如圖5所示.
圖5 三種方法的實驗結(jié)果對比
圖5 的實驗結(jié)果表明,文中提出的垃圾微博檢測方法相比于方法1和方法2有較大的提高.由于充分考慮了微博的顯式特征和微博文本中的隱含主題特征,從圖中可以看出,針對每一天不同的測試數(shù)據(jù)集,分類器的分類性能相對比較穩(wěn)定,表明該算法具有實際的應用價值.
文中通過對現(xiàn)有垃圾信息過濾方法的分析,針對垃圾微博的特點,引入了基于顯式特征和隱含主題特征結(jié)合的方法來對微博進行特征擴展進而實現(xiàn)垃圾信息檢測.通過實驗表明,相比于僅僅通過微博的顯式特征或微博的文本內(nèi)容進行垃圾過濾,綜合考慮微博的顯式特征和隱含主題特征在檢測垃圾微博時會取得更好的效果.事實上,文中算法考慮的特征依然較少,微博中還有很多待挖掘利用的信息.比如,垃圾特征詞的位置信息、微博中的圖片信息等.此外,微博用戶的可信度也是非常有價值的待考慮特征,當一個用戶的可信度較低時,其所發(fā)微博是垃圾微博的可能性就會變大.可以先利用PageRank等算法對用戶進行評分[13],然后再結(jié)合文中算法進一步提高垃圾微博的檢測準確率.
1Benevenuto F,Magno G,Rodrigues T,et al.Detecting spammers on twitter.Proc.of the 17th Annual Collaboration,Electronic Messaging,Anti-Abuse and Spam Conference.Redmond,Washington,US.2010.
2Zeng ZP,Zheng XH,Chen GL,et al.Spammer detection on Weibo social network.Proc.of the 6th International Conference on Cloud Computing Technology and Science(CloudCom).Singapore.2014.881–886.
3Xu Y,Zhou Y,Chen K.Observation on spammers in Sina Weibo.Proc.of the 2nd International Conference on Computer Science and Electronics Engineering.Paris,France.2013.
4楊凱帆.微博垃圾信息檢測[碩士學位論文].合肥:中國科學技術(shù)大學,2015.
5Ma YC,Niu Y,Ren Y,et al.Detecting spam on Sina Weibo.Proc.of International Workshop on Cloud Computing and Information Security.Paris,France.2013.404–407.
6于然,劉春陽,靳小龍,等.基于多視角特征融合的中文垃圾微博過濾.讓東大學學報(理學版),2013,48(11):53–58.
7王琳,馮時,徐偉麗,等.一種面向微博客文本流的噪音判別與內(nèi)容相似性雙重檢測的過濾方法.計算機應用與軟件,2012,29(8):25–29,94.
8刁宇峰,楊亮,林鴻飛.基于LDA模型的博客垃圾評論發(fā)現(xiàn).中文信息學報,2011,25(1):41–47.
9Blei DM,Ng AY,Jordan MI.Latent dirichlet allocation.Journal of Machine Learning Research,2003,3:993–1022.
10呂超鎮(zhèn),姬東鴻,吳飛飛.基于LDA特征擴展的短文本分類.計算機工程與應用,2015,51(4):123–127.
11張志飛,苗奪謙,高燦.基于LDA主題模型的短文本分類方法.計算機應用,2013,33(6):1587–1590.
12Heinrich G.Parameter estimation for text analysis.Technical Report,2005.
13楊赫.垃圾微博信息過濾技術(shù)的研究[碩士學位論文].哈爾濱:哈爾濱理工大學,2015.
Detection Method of Spam Based on Multi-Features of Micro-Blog
ZOU Yong-Pan1,2,LI Wei1,WANG Ru-Jing11(Institute of Intelligent Machines,Hefei Institutes of Physical Science,Chinese Academy of Sciences,Hefei 230031,China)2(University of Science and Technology of China,Hefei 230026,China)
With the rapid development of micro-blog,spam detection and filtering is faced with enormous challenges.It is significant to realize realtime and accurate detection of spam,which is important to improve user experience and the sustainable development of micro-blog platform.In this paper,a spam detection method based on multi-features of microblog is proposed.The main procedures are:first,the features of user and content are extracted.Second,LDA is applied to extract latent topic features.Finally,the features above are fused and a proper classifier is trained based on SVM.Experimental results show that the precision and F1 get increased while adopting the method proposed in this paper compared to the pervious methods.
spam detection; latent Dirichlet allocation; support vector machine
鄒永潘,李偉,王儒敬.基于多特征的垃圾微博檢測方法.計算機系統(tǒng)應用,2017,26(10):184–189.http://www.c-s-a.org.cn/1003-3254/6014.html
中國科學院戰(zhàn)略性先導科技專項(XDA08040110)
2017-01-16; 采用時間:2017-02-23