鄒永潘 ,李 偉 ,王儒敬
1(中國(guó)科學(xué)院 合肥物質(zhì)科學(xué)研究院 合肥智能機(jī)械研究所,合肥 230031)2(中國(guó)科學(xué)技術(shù)大學(xué),合肥 230026)
基于多特征的垃圾微博檢測(cè)方法①
鄒永潘1,2,李 偉1,王儒敬1
1(中國(guó)科學(xué)院 合肥物質(zhì)科學(xué)研究院 合肥智能機(jī)械研究所,合肥 230031)2(中國(guó)科學(xué)技術(shù)大學(xué),合肥 230026)
隨著微博平臺(tái)的快速發(fā)展,垃圾信息檢測(cè)與過濾也面臨著巨大的考驗(yàn),實(shí)時(shí)精確地識(shí)別垃圾信息對(duì)于提高用戶的體驗(yàn)以及微博平臺(tái)的可持續(xù)發(fā)展意義重大.本文根據(jù)新浪微博的真實(shí)數(shù)據(jù),提出了一種基于多特征的垃圾微博檢測(cè)方法.首先,提取微博的顯式特征(用戶特征、內(nèi)容特征); 然后利用文檔主題生成模型(LDA)提取微博中的隱含主題特征; 最后根據(jù)所提取的微博特征利用支持向量機(jī)(SVM)構(gòu)建分類器.實(shí)驗(yàn)結(jié)果表明,該方法相比于現(xiàn)有方法在準(zhǔn)確率和F1值方面都有一定的提升.
垃圾微博檢測(cè); 隱含狄利克雷分布; 支持向量機(jī)
當(dāng)今社會(huì),社交網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘=涣鞯囊环N重要方式.大量的用戶通過在社交網(wǎng)絡(luò)發(fā)布消息與朋友進(jìn)行互動(dòng),用戶也可以通過關(guān)注熱門用戶、熱門話題來了解名人和最新的新聞動(dòng)態(tài).諸如新浪微博等社交網(wǎng)絡(luò)便捷、自由的傳播方式使得其用戶量和信息量獲得了爆炸式的增長(zhǎng),這也為垃圾用戶和垃圾信息的產(chǎn)生提供了土壤.因此,檢測(cè)社交網(wǎng)絡(luò)中的垃圾信息對(duì)于增加用戶的體驗(yàn)度以及對(duì)社交網(wǎng)絡(luò)平臺(tái)的可持續(xù)發(fā)展具有重要的意義.
微博等社交網(wǎng)絡(luò)的垃圾信息檢測(cè)過濾方法一直以來都是一個(gè)研究的熱點(diǎn).現(xiàn)有的研究工作主要集中在識(shí)別垃圾信息制造者而非直接識(shí)別垃圾微博信息.研究者們通過將特征統(tǒng)計(jì)方法與機(jī)器學(xué)習(xí)算法相結(jié)合,提出了大量用于檢測(cè)垃圾用戶的方法.如 Fabrício Benevenuto等使用機(jī)器學(xué)習(xí)的方法通過twitter的內(nèi)容屬性和用戶的行為屬性來識(shí)別twitter中的垃圾用戶[1];Zeng Z等通過觀察垃圾用戶的行為統(tǒng)計(jì)規(guī)律和傳播方式,利用支持向量機(jī)對(duì)標(biāo)注的微博用戶集構(gòu)建分類器,取得了不錯(cuò)的效果[2].此外,還有一些學(xué)者通過檢測(cè)微博相似度和對(duì)用戶的社交網(wǎng)絡(luò)建立圖模型來進(jìn)行垃圾用戶的檢測(cè)[3,4].
然而,在使用微博的過程中發(fā)現(xiàn),垃圾信息的發(fā)布者并不完全來源于垃圾用戶,大量的垃圾信息來自于普通用戶.因此,對(duì)單條微博進(jìn)行檢測(cè)過濾從而凈化社交網(wǎng)絡(luò)顯得十分必要.Ma Y等人將英文微博客的垃圾檢測(cè)方法應(yīng)用到了中文微博客中,并對(duì)支持向量機(jī)、隨機(jī)森林、樸素貝葉斯三種方法進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果顯示了支持向量機(jī)在處理文本分類中的優(yōu)勢(shì)[5].于然等人通過從微博的結(jié)構(gòu)和內(nèi)容兩個(gè)視角建立規(guī)則,再與分詞結(jié)果進(jìn)行融合構(gòu)造符合特征,并以此進(jìn)行垃圾微博過濾[6]; 王琳等人提出了一種基于相似微博檢測(cè)和URL鏈接、字符串、高頻詞等特征判別的垃圾微博檢測(cè)方法,取得了較好的效果[7]; 刁宇峰等人提出了一種博客垃圾評(píng)論發(fā)現(xiàn)方法,通過LDA對(duì)博客的評(píng)論進(jìn)行隱含主題提取,結(jié)合博文主題信息進(jìn)行垃圾評(píng)論判別[8].
針對(duì)垃圾微博的來源不一定是垃圾用戶這一事實(shí),將工作重點(diǎn)放在了垃圾微博博文的檢測(cè)上,利用微博的顯式特征、隱含主題特征來對(duì)微博進(jìn)行垃圾檢測(cè).首先,根據(jù)微博自身的文本特點(diǎn)和結(jié)構(gòu)特點(diǎn),提取微博的作者粉絲數(shù)關(guān)注數(shù)之比、微博的評(píng)論數(shù)、URL數(shù)目等顯式特征; 針對(duì)垃圾微博和正常微博中詞的分布特點(diǎn),構(gòu)建垃圾微博特征詞庫,計(jì)算每一條微博的垃圾微博特征詞比例作為微博內(nèi)容特征的擴(kuò)展; 由于微博具有正文文本較短,用詞自由等特點(diǎn),僅僅從統(tǒng)計(jì)特征入手,忽略文本的語義特征不能滿足過濾的需求,因此考慮引入LDA概率主題模型,通過抽取微博的隱含主題并計(jì)算其對(duì)該主題的隸屬度來從語義的角度對(duì)微博的特征進(jìn)行進(jìn)一步擴(kuò)展; 最后,利用之前構(gòu)建的特征向量采用支持向量機(jī)對(duì)微博數(shù)據(jù)建立分類模型.通過實(shí)驗(yàn)對(duì)比,驗(yàn)證了該方法的可行性.
通過對(duì)大量微博的對(duì)比分析發(fā)現(xiàn),正常微博和垃圾微博在顯式特征上面存在有比較明顯的差異.例如,對(duì)于一條用于做廣告推廣的微博,它的被轉(zhuǎn)發(fā)數(shù)、被評(píng)論數(shù)一般比較低,而含有URL鏈接的可能性卻很大;對(duì)于一條關(guān)于人生感悟的微博,一般不會(huì)含有特殊字符、URL鏈接等內(nèi)容特征.為了準(zhǔn)確的描述二者之間的差異,本文從人工標(biāo)注的8000條新浪微博數(shù)據(jù)(其中垃圾微博3193條)入手,分別對(duì)用戶特征和微博內(nèi)容特征進(jìn)行統(tǒng)計(jì)分析,具體分析結(jié)果如下.
2.1.1 用戶特征
在垃圾微博檢測(cè)的工作中,經(jīng)常被考慮到的用戶特征有用戶的粉絲數(shù)、用戶的關(guān)注數(shù)、微博的被贊數(shù)、微博的被評(píng)論數(shù)、微博的被轉(zhuǎn)發(fā)數(shù).表1展示了正常微博和垃圾微博在各個(gè)屬性上的平均值.
表1 各個(gè)用戶特征的統(tǒng)計(jì)平均值
從表1中可以看出,微博被贊數(shù)、轉(zhuǎn)發(fā)數(shù)、評(píng)論數(shù)在正常微博和垃圾微博中區(qū)別較大,而作者的粉絲數(shù)和關(guān)注數(shù)區(qū)別則不是很大,因此考慮將粉絲數(shù)關(guān)注數(shù)之比作為一個(gè)用戶特征應(yīng)用到垃圾微博過濾當(dāng)中.通過以上分析可知,將用戶特征用于垃圾微博的過濾具有一定的實(shí)際意義.
2.1.2 內(nèi)容特征
研究人員通過各個(gè)角度對(duì)微博的內(nèi)容特征進(jìn)行分析提取,目前比較流行的內(nèi)容特征有:微博長(zhǎng)度、鏈接數(shù)、鏈接占比、代詞長(zhǎng)度、“我”出現(xiàn)的次數(shù)、有沒有“@”“#”等特殊符號(hào)、數(shù)字符號(hào)占比等,本文通過計(jì)算所選特征之間的相關(guān)性并將部分屬性融合為一個(gè)屬性之后,選擇了微博正文長(zhǎng)度、URL數(shù)、非漢字字符比例、垃圾微博特征詞比例作為用戶的內(nèi)容特征.關(guān)于垃圾微博特征詞比例(ratio)的定義如公式(1)所示.其中l(wèi)en()函數(shù)表示求字符串的長(zhǎng)度,D1(i)表示微博正文Doc中的出現(xiàn)在垃圾微博特征詞典中的詞.
經(jīng)過特征選擇之后,再次對(duì)各個(gè)內(nèi)容特征進(jìn)行分析,結(jié)果如表2 所示.統(tǒng)計(jì)結(jié)果表明,考慮微博的內(nèi)容特征是必要的.
表2 微博內(nèi)容特征統(tǒng)計(jì)平均值
2.2.1 LDA 模型描述
Latent Dirichlet Allocation 模型是由 Blei等在2003年提出[9],屬于一種典型的概率主題模型.作為一種產(chǎn)生式主題模型,LDA已經(jīng)廣泛的應(yīng)用于文本分類、信息檢索等諸多領(lǐng)域[10,11].LDA主題模型本質(zhì)上是一個(gè)”文檔-主題-詞”的三層貝葉斯網(wǎng)絡(luò),文檔和主題、主題和詞之間均服從狄利克雷分布.LDA的模型表示如圖1所示[10],關(guān)于圖中各個(gè)參數(shù)的含義如表3所示.
圖1 LDA 概率圖模型表示
表3 LDA 模型中各符號(hào)的含義
在圖1的模型中,詞w在主題z上以及主題z在文檔d上分別服從以φ和θ的多項(xiàng)分布,而θ和φ又分別服從參數(shù)為α、β的Dirichlet分布.整個(gè)LDA模型的對(duì)應(yīng)聯(lián)合概率分布為[12]:
p(θd|α)和p(φz|β)分別表示θ和φ服從的參數(shù)為α、β的 Dirichlet分布.則:
其中,Γ(·)表示 Gamma 函數(shù),定義如下:
通過整合θ、φ,使得公式(2)中僅僅保留可供觀測(cè)的單詞w、已知的參數(shù)α、β和待推導(dǎo)的主題分布z,即:
對(duì)于模型中的參數(shù),通常設(shè)置參數(shù)α=50/K、β=0.01、K=50.可以通過對(duì)變量z進(jìn)行Gibbs采樣來近似估算θ和φ,計(jì)算公式如下[12]:
2.2.2 提取隱含主題特征
相比于目前大部分研究利用LDA主題模型的主題—詞概率分布來解決特征稀疏問題,文中主要利用LDA的文檔—主題概率分布來預(yù)測(cè)文檔的隱含主題作為文本的特征來進(jìn)行特征擴(kuò)展.因此,該部分的主要工作包括兩部分:首先,利用一個(gè)外部微博文本集docs訓(xùn)練LDA模型,即估計(jì)模型中的參數(shù)θ和φ; 然后,對(duì)于一個(gè)新的文檔docnew,利用訓(xùn)練得到的LDA模型來計(jì)算該文檔的主題分布θnew并選擇對(duì)應(yīng)的TopN個(gè)主題的主題編號(hào)以及以及對(duì)應(yīng)的概率作為隱含主題特征,具體流程如圖2所示.
關(guān)于圖2的幾點(diǎn)說明:
(1)圖中的“外部文檔集合”是通過網(wǎng)絡(luò)爬蟲在新浪微博平臺(tái)爬取的涉及各個(gè)主題的微博文本集合; “實(shí)驗(yàn)數(shù)據(jù)集”是包含微博的作者、作者ID、微博ID、正文等一系列特征的結(jié)構(gòu)化數(shù)據(jù)集.
(2)相比于“外部文檔集合”預(yù)處理中的分詞、去停用詞等操作,對(duì)“實(shí)驗(yàn)數(shù)據(jù)集”要首先從結(jié)構(gòu)化微博數(shù)據(jù)中提取中微博的正文.
圖2 隱含主題特征提取框架
(3)利用外部文本集訓(xùn)練出來的LDA模型提取每一條微博的TopN個(gè)主題的主題編號(hào)以及對(duì)應(yīng)的概率,其中N需要通過實(shí)驗(yàn)進(jìn)行確定.
文中提出的垃圾微博檢測(cè)算法的思路是從微博的顯式特征(包括用戶特征和內(nèi)容特征)和隱含主題特征入手構(gòu)建特征向量,然后再利用SVM進(jìn)行分類器構(gòu)建.算法流程如圖3所示.
具體實(shí)現(xiàn)過程如下:
輸入:微博原始訓(xùn)練集 D,ModelLDA(θ,φ)
輸出:用于對(duì)測(cè)試集進(jìn)行分類的最終分類器C.
Step 1.將每一條微博數(shù)據(jù)劃分為微博文本和非文本數(shù)據(jù),并從非文本中提取出該條微博的用戶特征;
Step 2.引入垃圾微博特征詞典,對(duì)于微博文本,分別利用正則表達(dá)式技術(shù)匹配微博正文中的URL標(biāo)簽、垃圾微博特征詞、非漢字字符來提取微博的內(nèi)容特征.
Step 3.將通過 Step 2 處理過后的微博正文進(jìn)行預(yù)處理操作:去非漢字字符、分詞、去停用詞,得到每一條微博對(duì)應(yīng)的詞向量.
Step 4.利用 ModelLDA(θ,φ)對(duì)每一條微博進(jìn)行隱含主題特征提取.
Step 5.將顯示特征和隱含主題特征整合到向量空間中,利用SVM算法構(gòu)建分類模型.
圖3 垃圾微博檢測(cè)框架
利用網(wǎng)絡(luò)爬蟲從新浪微博爬取1500個(gè)用戶2016年7月1日至7月31日期間發(fā)送或轉(zhuǎn)發(fā)的129648條新浪微博正文,數(shù)據(jù)集涵蓋了體育、經(jīng)濟(jì)、娛樂、情感等各個(gè)領(lǐng)域,經(jīng)過去重處理之后作為外部文檔集來訓(xùn)練LDA模型.隨機(jī)抽取8000條記錄作為訓(xùn)練數(shù)據(jù)集,經(jīng)過人工標(biāo)注后得到垃圾微博3193條,正常微博4807條.文中擴(kuò)展的垃圾微博詞典是通過收集網(wǎng)上微博常用廣告詞獲得的214個(gè)詞或短語.
1)實(shí)驗(yàn)預(yù)處理
實(shí)驗(yàn)中對(duì)文本的預(yù)處理主要有HTML解析、分詞、去停用詞等操作,其中分詞過程使用了HanLP開源漢語言處理包,并添加了用戶詞典,使得分詞具有更好的效果.
2)確定隱含主題數(shù)N
隱含主題數(shù)N是在利用LDA主題模型進(jìn)行主題預(yù)測(cè)時(shí)選擇該文本所屬的主題的個(gè)數(shù).選擇的主題個(gè)數(shù)過小會(huì)使得判斷文本所屬主題時(shí)存在很大的偶然性,而選取的N過大又會(huì)導(dǎo)致隱含特征性質(zhì)的下降.為了研究選取的隱含主題個(gè)數(shù)N對(duì)實(shí)驗(yàn)結(jié)果的影響,選取4000條經(jīng)過標(biāo)注的實(shí)驗(yàn)數(shù)據(jù)集,以F1值作為評(píng)判標(biāo)準(zhǔn),實(shí)驗(yàn)結(jié)果如圖4所示.從圖中可以看出,隨著N的增大,F1值先增大后減小,在N=5的時(shí)候得到最大的F1值,此時(shí)分類器的性能是最好的,故在分類器的訓(xùn)練中設(shè)定N=5.
3)算法選擇及評(píng)價(jià)標(biāo)準(zhǔn)
根據(jù)預(yù)處理中獲取的顯式特征和隱含主題特征構(gòu)建特征向量,利用支持向量機(jī)(SVM)進(jìn)行分類,實(shí)驗(yàn)中采用LIBSVM軟件包.算法性能通過準(zhǔn)確率P(Precision)、召回率R(Recall)、以及綜合考慮指標(biāo)F1來衡量.
圖4 隱含主題數(shù) N 對(duì) F1 值的影響
以上公式中,TP表示正確分類的正例數(shù)目,FN表示錯(cuò)分為負(fù)例的正例數(shù)目,FP為錯(cuò)分為正例的負(fù)例數(shù)目.
4)對(duì)比實(shí)驗(yàn)分組
為了驗(yàn)證文中提出的垃圾微博檢測(cè)方法的有效性,文中利用相同的實(shí)驗(yàn)數(shù)據(jù)集,分別實(shí)現(xiàn)了三種方法,并將三種方法的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比.其中:
方法1:利用文獻(xiàn)[6]提出的垃圾微博過濾方法.
方法2:引入垃圾微博特征詞特征,利用上文中提到的顯式特征作為特征向量構(gòu)建分類器.
方法3:文中提到的垃圾微博檢測(cè)方法.
利用人工標(biāo)注的8000條實(shí)驗(yàn)數(shù)據(jù)(垃圾微博3193條)構(gòu)建分類器,并通過十折交叉驗(yàn)證的方法來對(duì)分類模型進(jìn)行評(píng)估.針對(duì)以上三種方法,得到的實(shí)驗(yàn)結(jié)果如表4所示.
表4 實(shí)驗(yàn)結(jié)果
通過方法1和方法2的實(shí)驗(yàn)結(jié)果對(duì)比可以發(fā)現(xiàn),引入垃圾微博特征詞之后對(duì)于檢測(cè)的準(zhǔn)確率和召回率方面均有所提高; 通過對(duì)比方法2和方法3可以發(fā)現(xiàn),考慮了微博文本的隱含主題特征之后,分類器的綜合性能得到了一定的提高.
為了進(jìn)一步驗(yàn)證分類器的泛化能力,從2016年8月1日到20日的微博數(shù)據(jù)集中每天隨機(jī)抽取150條分別利用以上三種方法進(jìn)行測(cè)試,得到的實(shí)驗(yàn)結(jié)果如圖5所示.
圖5 三種方法的實(shí)驗(yàn)結(jié)果對(duì)比
圖5 的實(shí)驗(yàn)結(jié)果表明,文中提出的垃圾微博檢測(cè)方法相比于方法1和方法2有較大的提高.由于充分考慮了微博的顯式特征和微博文本中的隱含主題特征,從圖中可以看出,針對(duì)每一天不同的測(cè)試數(shù)據(jù)集,分類器的分類性能相對(duì)比較穩(wěn)定,表明該算法具有實(shí)際的應(yīng)用價(jià)值.
文中通過對(duì)現(xiàn)有垃圾信息過濾方法的分析,針對(duì)垃圾微博的特點(diǎn),引入了基于顯式特征和隱含主題特征結(jié)合的方法來對(duì)微博進(jìn)行特征擴(kuò)展進(jìn)而實(shí)現(xiàn)垃圾信息檢測(cè).通過實(shí)驗(yàn)表明,相比于僅僅通過微博的顯式特征或微博的文本內(nèi)容進(jìn)行垃圾過濾,綜合考慮微博的顯式特征和隱含主題特征在檢測(cè)垃圾微博時(shí)會(huì)取得更好的效果.事實(shí)上,文中算法考慮的特征依然較少,微博中還有很多待挖掘利用的信息.比如,垃圾特征詞的位置信息、微博中的圖片信息等.此外,微博用戶的可信度也是非常有價(jià)值的待考慮特征,當(dāng)一個(gè)用戶的可信度較低時(shí),其所發(fā)微博是垃圾微博的可能性就會(huì)變大.可以先利用PageRank等算法對(duì)用戶進(jìn)行評(píng)分[13],然后再結(jié)合文中算法進(jìn)一步提高垃圾微博的檢測(cè)準(zhǔn)確率.
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楊凱帆.微博垃圾信息檢測(cè)[碩士學(xué)位論文].合肥:中國(guó)科學(xué)技術(shù)大學(xué),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于然,劉春陽,靳小龍,等.基于多視角特征融合的中文垃圾微博過濾.讓東大學(xué)學(xué)報(bào)(理學(xué)版),2013,48(11):53–58.
7王琳,馮時(shí),徐偉麗,等.一種面向微博客文本流的噪音判別與內(nèi)容相似性雙重檢測(cè)的過濾方法.計(jì)算機(jī)應(yīng)用與軟件,2012,29(8):25–29,94.
8刁宇峰,楊亮,林鴻飛.基于LDA模型的博客垃圾評(píng)論發(fā)現(xiàn).中文信息學(xué)報(bào),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特征擴(kuò)展的短文本分類.計(jì)算機(jī)工程與應(yīng)用,2015,51(4):123–127.
11張志飛,苗奪謙,高燦.基于LDA主題模型的短文本分類方法.計(jì)算機(jī)應(yīng)用,2013,33(6):1587–1590.
12Heinrich G.Parameter estimation for text analysis.Technical Report,2005.
13楊赫.垃圾微博信息過濾技術(shù)的研究[碩士學(xué)位論文].哈爾濱:哈爾濱理工大學(xué),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
鄒永潘,李偉,王儒敬.基于多特征的垃圾微博檢測(cè)方法.計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(10):184–189.http://www.c-s-a.org.cn/1003-3254/6014.html
中國(guó)科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)(XDA08040110)
2017-01-16; 采用時(shí)間:2017-02-23