伍 靜,詹千熠,劉 淵
(江南大學(xué) 數(shù)字媒體學(xué)院,江蘇 無錫 214122)
隨著信息時(shí)代的發(fā)展,人們對(duì)互聯(lián)網(wǎng)的依賴性日益增強(qiáng),越來越多的人在社交網(wǎng)絡(luò)上發(fā)表自己的看法或者記錄自己的生活。社交網(wǎng)絡(luò)改變了人與人之間交流的方式并且拉近了人與人之間的距離。據(jù)2018年新浪微博第四季度財(cái)報(bào)數(shù)據(jù)顯示,截至2018年11月,微博月活躍用戶已經(jīng)增至4.62億,與2017年同期相比增長(zhǎng)15%,已成為中國(guó)最主要的輿論陣地。由于用戶在微博上可以隨意發(fā)布信息,因此微博在成為人們?nèi)諠u重要的社交平臺(tái)的同時(shí)也成為垃圾用戶發(fā)布垃圾信息的平臺(tái)。已有研究表明微博中垃圾用戶的異常行為會(huì)顯著降低用戶體驗(yàn),增加微博社交風(fēng)險(xiǎn)[1-2]。
目前針對(duì)垃圾用戶已開展了很多研究,但主要都是針對(duì)Twitter和Facebook[3-5],對(duì)微博垃圾用戶的研究相對(duì)而言起步較晚。垃圾用戶包含內(nèi)容垃圾、僵尸垃圾和封號(hào)垃圾等,僵尸垃圾又稱為僵尸粉、社交僵尸,其多數(shù)由程序生成并控制,目的是增加用戶粉絲的數(shù)量,制造出高影響力的假象。除此之外,部分僵尸粉還會(huì)傳播各種營(yíng)銷信息,嚴(yán)重威脅社交平臺(tái)的安全和公信力[6]。由于僵尸粉一直在不斷地學(xué)習(xí)和模仿正常用戶的行為,導(dǎo)致新浪微博中現(xiàn)存的初代僵尸粉數(shù)目已很少,取而代之的是高級(jí)僵尸粉。高級(jí)僵尸粉不僅擁有正常的昵稱和頭像,還會(huì)發(fā)布原創(chuàng)微博,互相給微博點(diǎn)贊和評(píng)論。越來越多高級(jí)僵尸粉的出現(xiàn),給微博僵尸粉賬號(hào)的檢測(cè)增加了難度。為準(zhǔn)確檢測(cè)僵尸粉,本文基于深度學(xué)習(xí)方法構(gòu)造一個(gè)基于神經(jīng)網(wǎng)絡(luò)的僵尸粉識(shí)別模型(Zat-NN)。
情感分析也稱為意見挖掘[7],是自然語言處理領(lǐng)域的一個(gè)重要方向,其是對(duì)帶有情感色彩的主觀性文本進(jìn)行分析、處理和推理的過程。最初的文本情感分析方法多數(shù)是基于情感詞詞典,但是人工構(gòu)建詞典需要較大代價(jià),且預(yù)測(cè)準(zhǔn)確率較低。如今,情感分析已逐漸引入深度學(xué)習(xí)方法,例如文獻(xiàn)[8-9]。在將深度學(xué)習(xí)方法應(yīng)用于文本分類任務(wù)時(shí),需將單詞轉(zhuǎn)換為高維分布向量以捕獲關(guān)于單詞的形態(tài)、句法和語義信息。詞向量之間的集合關(guān)系對(duì)應(yīng)詞與詞之間的語義關(guān)系[10]。本文對(duì)微博文本做情感分析時(shí)采用詞嵌入方法。
長(zhǎng)短時(shí)記憶(Long Short Term Memory,LSTM)網(wǎng)絡(luò)是一種特殊的遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RNN),RNN是具有循環(huán)結(jié)構(gòu)的網(wǎng)絡(luò)。與傳統(tǒng)RNN不同的是,LSTM能使攜帶信息跨越多個(gè)時(shí)間步,保留時(shí)刻t的記憶并允許過去的信息稍后進(jìn)入,從而解決梯度消失問題。LSTM單元擁有輸入門、遺忘門和輸出門,分別用it、ft和ot表示。圖1是一個(gè)標(biāo)準(zhǔn)的LSTM單元結(jié)構(gòu),其中,xt是當(dāng)前時(shí)刻的輸入向量,ht是當(dāng)前時(shí)刻單元的輸出向量,ht-1是前一個(gè)時(shí)刻單元的輸出向量,ct是存儲(chǔ)單元,gt是存儲(chǔ)單元前一個(gè)時(shí)刻的狀態(tài)。
圖1 LSTM單元結(jié)構(gòu)
水軍和僵尸粉為垃圾用戶的主要組成部分,兩者間有很多相似性,都是通過程序控制微博賬號(hào)以達(dá)到非法傳銷、盈利等目的,并且對(duì)微博水軍進(jìn)行研究可以更好地分析僵尸粉的行為。文獻(xiàn)[11]基于貝葉斯模型,通過添加粉絲關(guān)注比、平均發(fā)布微博數(shù)、互相關(guān)注數(shù)、綜合質(zhì)量評(píng)價(jià)、收藏?cái)?shù)和陽光信用6個(gè)特征顯著提高水軍的識(shí)別準(zhǔn)確率。文獻(xiàn)[12]利用SVM算法,添加事件參與度、二階關(guān)聯(lián)性、關(guān)系緊密度和引導(dǎo)工具使用率這4個(gè)新特征,既保證了水軍的高識(shí)別率,又減少了識(shí)別時(shí)間。
微博僵尸粉賬號(hào)檢測(cè)是一個(gè)二分類問題。僵尸粉統(tǒng)稱為spammers,目前國(guó)內(nèi)外已有很多學(xué)者對(duì)識(shí)別僵尸粉進(jìn)行研究。文獻(xiàn)[13]利用用戶粉絲數(shù)、關(guān)注數(shù)、博文等特征信息,采用機(jī)器學(xué)習(xí)相關(guān)技術(shù)從用戶中分離出僵尸粉,但其僅是針對(duì)Twitter上的僵尸粉,對(duì)于國(guó)內(nèi)微博僵尸粉的識(shí)別有局限性。文獻(xiàn)[3]指出合法用戶所發(fā)的推特通常和個(gè)人描述中所寫的興趣愛好相關(guān),并且推特內(nèi)容具有連續(xù)性,通過計(jì)算個(gè)人描述和推特內(nèi)容的相似度來區(qū)分普通用戶和spammers。文獻(xiàn)[14]利用樸素貝葉斯、支持向量機(jī)、多層感知器神經(jīng)網(wǎng)絡(luò)等分類器對(duì)Twitter上的用戶進(jìn)行建模和分析,研究發(fā)現(xiàn)推特的平均長(zhǎng)度、賬號(hào)年齡、平均發(fā)文時(shí)長(zhǎng)等特征對(duì)檢測(cè)spammers有重要作用。文獻(xiàn)[15]通過從用戶的粉絲中挖掘凝聚子群,結(jié)合用戶的社會(huì)網(wǎng)絡(luò)關(guān)系,提出一種基于用戶粉絲聚類現(xiàn)象的僵尸粉檢測(cè)模型,但該方法需要獲取每個(gè)用戶的全部粉絲信息,實(shí)現(xiàn)方法復(fù)雜。文獻(xiàn)[16]通過構(gòu)建用戶的粉絲數(shù)、關(guān)注數(shù)、微博數(shù)、轉(zhuǎn)發(fā)數(shù)、微博轉(zhuǎn)發(fā)情況、微博評(píng)論情況、分時(shí)段發(fā)博數(shù)等用戶行為特征向量進(jìn)行僵尸粉識(shí)別。文獻(xiàn)[17]指出僵尸粉會(huì)對(duì)傳統(tǒng)輿情分析模型造成極大誤判,并根據(jù)用戶個(gè)人信息、博文信息實(shí)現(xiàn)基于貝葉斯模型的僵尸粉自動(dòng)判別。
本節(jié)將形式化定義僵尸粉檢測(cè),為更好地表達(dá)下文內(nèi)容,給出如表1所示的符號(hào)定義及其含義。
表1 符號(hào)定義及其含義
給定一個(gè)社交網(wǎng)絡(luò)G=(V,E),其中,G為一個(gè)有向圖,V={U∪C}表示全部微博用戶和用戶特征集合,U={u1,u2,…,un}表示用戶集合,C={c1,c2,…,cn′}表示用戶特征集合,E?{C×U}表示用戶和用戶特征之間對(duì)應(yīng)關(guān)系的集合,每一個(gè)用戶與其用戶特征間的關(guān)系為eij=(ui,cj),表示用戶ui具有特征cj。本文目標(biāo)是找到一個(gè)預(yù)測(cè)函數(shù)f實(shí)現(xiàn)全部微博用戶的分類:
f:(V,E)→(Y,Z)
(1)
其中,Y和Z分別代表正常用戶和僵尸粉這兩個(gè)用戶類別集合。
經(jīng)過研究發(fā)現(xiàn),僵尸粉微博中多數(shù)為軟文廣告和無意義詞句等,這與正常用戶的微博內(nèi)容有很大區(qū)別。又由于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)可以將長(zhǎng)序列轉(zhuǎn)換為由高級(jí)特征組成的更短序列,提取有用特征作為L(zhǎng)STM網(wǎng)絡(luò)的輸入,因此本文通過添加卷積層來提高情感分析模型的準(zhǔn)確率,并基于CNN-LSTM神經(jīng)網(wǎng)絡(luò)對(duì)用戶原創(chuàng)微博進(jìn)行情感分析。
CNN-LSTM神經(jīng)網(wǎng)絡(luò)模型包含輸入層、卷積層、池化層、LSTM層和分類器層,如圖2所示。
圖2 文本情感分析模型結(jié)構(gòu)
文本情感分析模型求解的目標(biāo)是使目標(biāo)函數(shù)最小化,目標(biāo)函數(shù)為:
(2)
其中,N為訓(xùn)練樣本數(shù)目,L為每個(gè)樣本的損失函數(shù),f(x;θ)為輸入x時(shí)函數(shù)的預(yù)測(cè)輸出,y為目標(biāo)輸出,J(f)為函數(shù)的正則化項(xiàng)。本文采用Adam[19]優(yōu)化器來加快該模型收斂速度。此外,為了防止訓(xùn)練時(shí)出現(xiàn)過擬合,使用Dropout[20]方法通過丟棄部分隱藏層神經(jīng)元來降低過擬合。
采用訓(xùn)練好的文本情感分析模型對(duì)每個(gè)用戶的每條原創(chuàng)微博進(jìn)行情感預(yù)測(cè),將有明顯情感特征的微博標(biāo)記為1,沒有明顯情感特征的微博標(biāo)記為0,用戶原創(chuàng)微博中情感預(yù)測(cè)標(biāo)簽為1的微博所占比例作為用戶特征表的第11個(gè)特征,即F11。
除了微博情感特征外,本文還提取了10個(gè)非情感用戶特征,具體為粉絲數(shù)(F1)、關(guān)注數(shù)(F2)、關(guān)注粉絲比(F3)、用戶名特征(F4)、用戶描述(F5)、微博數(shù)(F6)、轉(zhuǎn)發(fā)比(F7)、日均轉(zhuǎn)發(fā)微博數(shù)(F8)、發(fā)博工具(F9)和微博影響力(F10),詳見表2。
表2 微博僵尸粉識(shí)別特征
由于高級(jí)僵尸粉比普通僵尸粉更加難檢測(cè),因此本文新添加了日均轉(zhuǎn)發(fā)微博數(shù)(F8)和發(fā)博工具(F9)這兩個(gè)非情感用戶特征來提高檢測(cè)準(zhǔn)確率。
本節(jié)對(duì)通過某電商平臺(tái)購買的200個(gè)僵尸粉以及微博爬蟲爬取的800個(gè)正常用戶進(jìn)行特征分析。將該1 000個(gè)用戶組成的數(shù)據(jù)集稱為小數(shù)據(jù)集,并在小數(shù)據(jù)集上分析并研究用戶屬性、用戶行為和微博內(nèi)容特征。
4.1.1 用戶屬性特征
用戶屬性特征具體如下:
1)粉絲數(shù)(F1)。F1為某用戶的粉絲總數(shù),用Fans表示粉絲數(shù),用戶uj的粉絲數(shù)表示為Fansuj,該特征計(jì)算公式如下:
Fansuj={‖ui‖|ui→uj,ui∈U,uj∈U}
(3)
其中,ui→uj表示用戶ui關(guān)注用戶uj,Fansuj為全體ui的個(gè)數(shù)。
2)關(guān)注數(shù)(F2)。F2為某用戶關(guān)注的其他用戶總數(shù),用Follow表示關(guān)注數(shù),則用戶uj的關(guān)注數(shù)表示為Followuj,該特征計(jì)算公式如下:
Followuj={‖ui‖|uj→ui,ui∈U,uj∈U}
(4)
僵尸粉的關(guān)注數(shù)遠(yuǎn)高于正常用戶,因?yàn)榻┦弁ǔMㄟ^關(guān)注正常用戶來獲取利益。
3)關(guān)注粉絲比(F3)。F3用FFratio表示關(guān)注粉絲比,該特征計(jì)算公式如下:
(5)
由于普通僵尸粉關(guān)注數(shù)很多而粉絲數(shù)很少,因此會(huì)導(dǎo)致F3數(shù)值較大。
圖3為小數(shù)據(jù)集中的全部用戶粉絲數(shù)與關(guān)注數(shù)分布。
圖3 僵尸粉和正常用戶的關(guān)注數(shù)和粉絲數(shù)對(duì)比
可以看出,僵尸粉和正常用戶的關(guān)注數(shù)、粉絲數(shù)分布有很大差異。65%的僵尸粉關(guān)注數(shù)超過1 000且粉絲數(shù)低于500個(gè),屬于較低級(jí)別的僵尸粉,22.5%的僵尸粉擁有的粉絲數(shù)超過1 000個(gè),這與僵尸粉粉絲少的特征相違背。通過對(duì)這22.5%的僵尸粉研究,發(fā)現(xiàn)其粉絲中90%以上都是僵尸粉,說明高級(jí)僵尸粉通過互相關(guān)注的方式來增加雙方的粉絲數(shù)。僵尸粉將通過這種互相關(guān)注行為來大幅降低關(guān)注粉絲比值,所以為對(duì)這類高級(jí)僵尸粉進(jìn)行準(zhǔn)確分類,需要更多有效的用戶特征。
4.1.2 用戶行為特征
用戶行為特征具體如下:
1)用戶名特征(F4)。F4用于檢測(cè)某用戶的昵稱組成結(jié)構(gòu)是否為“用戶+用戶id號(hào)”,可以快速分類出這類擁有低級(jí)昵稱的僵尸粉。
2)用戶描述(F5)。F5為用戶注冊(cè)賬號(hào)后添加的自我介紹。據(jù)統(tǒng)計(jì),小數(shù)據(jù)集中有約70%的僵尸粉沒有自我介紹,而正常用戶無自我介紹的數(shù)量只占20%,差異顯著。由此可知,F5可作為分類僵尸粉和正常用戶的有效特征。
3)微博數(shù)(F6)。F6為用戶自注冊(cè)賬號(hào)以來發(fā)布的微博總數(shù)。微博總數(shù)用Weibonum表示,包含原創(chuàng)和轉(zhuǎn)載的微博。
4)轉(zhuǎn)發(fā)比(F7)。F7用Retweetratio表示,該特征計(jì)算公式如下:
(6)
其中,Retweetnum為用戶轉(zhuǎn)發(fā)的微博數(shù),Weibonum為用戶發(fā)博總數(shù)。轉(zhuǎn)發(fā)的微博數(shù)衡量了用戶與其他用戶的互動(dòng)程度。因?yàn)槟承┙┦脩糁粫?huì)定期發(fā)布原創(chuàng)微博而不會(huì)轉(zhuǎn)發(fā)他人微博,所以轉(zhuǎn)發(fā)比相較于正常用戶會(huì)比較小。
5)日均轉(zhuǎn)發(fā)微博數(shù)(F8)。F8為本文提出的特征,用Retweetone表示用戶日均轉(zhuǎn)發(fā)微博數(shù),Retweetday表示用戶有過轉(zhuǎn)發(fā)行為的天數(shù),則Retweetone計(jì)算公式如下:
(7)
一些僵尸賬號(hào)為了制造活躍的假象或者傳播營(yíng)銷信息,通常會(huì)在較短時(shí)間內(nèi)大量轉(zhuǎn)發(fā)指定用戶的微博,然而正常用戶是有針對(duì)性的轉(zhuǎn)發(fā)自己感興趣的微博,所以僵尸粉的日均轉(zhuǎn)發(fā)微博數(shù)遠(yuǎn)超過正常用戶。圖4為僵尸粉與正常用戶的日均轉(zhuǎn)發(fā)微博數(shù)的累積分布函數(shù)(Cumulative Distribution Function,CDF)對(duì)比圖,CDF圖不僅能清晰地描述數(shù)據(jù)的概率分布,而且能直觀地體現(xiàn)正常用戶和僵尸粉在某個(gè)特征上的差異。圖4中的兩條曲線有明顯區(qū)別,表示日均轉(zhuǎn)發(fā)微博數(shù)(F8)在僵尸粉和正常用戶之間有較好的區(qū)分度??梢钥闯?幾乎所有的正常用戶日均轉(zhuǎn)發(fā)微博數(shù)都很低,而約有20%的僵尸粉日均轉(zhuǎn)發(fā)微博數(shù)超過5條。該特征較F7更具區(qū)分度,能更準(zhǔn)確地檢測(cè)出部分僵尸粉。
圖4 僵尸粉和正常用戶日均轉(zhuǎn)發(fā)微博數(shù)對(duì)比
6)發(fā)博工具(F9)。F9為本文提出的特征,指用戶發(fā)布原創(chuàng)微博時(shí)的主要工具。若某用戶同時(shí)用過weibo.com和手機(jī)客戶端發(fā)過微博,則計(jì)算出每個(gè)工具各占的百分比,所占比例最高的工具為用戶主要發(fā)博工具。對(duì)小數(shù)據(jù)集中的用戶發(fā)博工具進(jìn)行統(tǒng)計(jì)后發(fā)現(xiàn),98%的正常用戶主要用手機(jī)發(fā)布微博,只有2%的正常用戶使用瀏覽器。而大部分僵尸粉發(fā)博工具為瀏覽器,因?yàn)橄噍^于手機(jī)微博客戶端而言,網(wǎng)頁版更容易用程序控制。
4.1.3 微博內(nèi)容特征
微博內(nèi)容特征為微博影響力(F10),F10為本文提出的特征,用Influencew表示微博影響力,該特征計(jì)算公式如下:
(8)
其中,Likenum、RRnum、Comnum分別表示用戶原創(chuàng)微博所獲的點(diǎn)贊總數(shù)、轉(zhuǎn)發(fā)總數(shù)和評(píng)論總數(shù),Originalnum為用戶所發(fā)原創(chuàng)微博總數(shù)。F10簡(jiǎn)單描述為用戶平均每一條原創(chuàng)微博所獲點(diǎn)贊、轉(zhuǎn)發(fā)、評(píng)論數(shù)之和。僵尸粉雖然會(huì)發(fā)布原創(chuàng)微博,但其由于缺乏正常的社交關(guān)系,因此所發(fā)微博一般不會(huì)有用戶去評(píng)論、點(diǎn)贊,導(dǎo)致F10值很低。通過將原創(chuàng)微博所獲評(píng)論數(shù)、點(diǎn)贊數(shù)以及轉(zhuǎn)發(fā)數(shù)相結(jié)合,可以更有效地區(qū)別高級(jí)僵尸粉。
本文提出的Zat-NN模型基于BP神經(jīng)網(wǎng)絡(luò),由輸入層、隱藏層和輸出層組成。輸入層和輸出層的神經(jīng)元個(gè)數(shù)分別由輸入?yún)?shù)及輸出參數(shù)個(gè)數(shù)決定,如圖5所示。
圖5 Zat-NN模型結(jié)構(gòu)
Zat-NN模型結(jié)構(gòu)具體如下:
1)輸入層,其中x1~xk為輸入層節(jié)點(diǎn)的輸入值。在僵尸粉檢測(cè)中,x1~xk對(duì)應(yīng)于某用戶的特征數(shù),若用戶有F1~F11全部11個(gè)特征,則此時(shí)xk為x11。
2)隱藏層,Zat-NN模型共含兩層隱藏層,隱藏層節(jié)點(diǎn)個(gè)數(shù)均設(shè)為13個(gè)。
(9)
用戶判斷是否為僵尸粉的規(guī)則如下:
(10)
本文設(shè)計(jì)一個(gè)基于Spider框架的分布式爬蟲,用于爬取新浪微博用戶的個(gè)人信息及所發(fā)微博,微博時(shí)間跨度為2014年1月1日——2019年4月30日。經(jīng)過兩個(gè)星期的爬取,共獲得15 271個(gè)用戶信息及1 535 503條微博。采用人工方式對(duì)爬取到的用戶數(shù)據(jù)進(jìn)行標(biāo)注,判別分析得到僵尸粉賬號(hào)1 200個(gè),通過加入網(wǎng)上購買的800個(gè)純凈僵尸粉賬號(hào)組成2 000個(gè)僵尸粉樣本。為模擬更加真實(shí)的微博環(huán)境,正常用戶與僵尸粉的比例設(shè)置為4 ∶1。從數(shù)據(jù)庫中提取出8 000個(gè)正常用戶與2 000個(gè)僵尸粉樣本混合組成實(shí)驗(yàn)原始數(shù)據(jù)集。Zat-NN模型的訓(xùn)練集和測(cè)試集用戶個(gè)數(shù)分布如表3所示。
表3 Zat-NN模型實(shí)驗(yàn)數(shù)據(jù)集
CNN-LSTM情感分析模型的訓(xùn)練集是由沒有入選原始實(shí)驗(yàn)數(shù)據(jù)集的用戶所發(fā)的微博組成。人工對(duì)每一條原創(chuàng)微博內(nèi)容進(jìn)行情感標(biāo)注,若微博含有較明顯的情感特征,則將其標(biāo)記為1,否則標(biāo)記為0。最終的微博數(shù)據(jù)集中共有10萬條微博,其中有61 424條標(biāo)記為0的微博,38 576條標(biāo)記為1的微博。
對(duì)Zat-NN模型實(shí)驗(yàn)數(shù)據(jù)進(jìn)行預(yù)處理,由于將取值范圍差異很大的數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)會(huì)造成神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)困難并且會(huì)使網(wǎng)絡(luò)過擬合,因此需對(duì)除F4和F5這兩個(gè)特征外的9個(gè)浮點(diǎn)型類型的特征均做標(biāo)準(zhǔn)化處理,標(biāo)準(zhǔn)化處理公式如下:
(11)
實(shí)驗(yàn)運(yùn)行環(huán)境為Ubuntu操作系統(tǒng),2.5 GHz處理器,8 GB內(nèi)存,神經(jīng)網(wǎng)絡(luò)模型用Keras實(shí)現(xiàn)。實(shí)驗(yàn)采用十折交叉驗(yàn)證方法來驗(yàn)證模型性能,將數(shù)據(jù)集的10%作為測(cè)試集,余下的90%隨機(jī)分成10等份互不相交的子集,每次訓(xùn)練都用9份子集作為訓(xùn)練集,剩下1份子集作為驗(yàn)證集,然后交叉驗(yàn)證重復(fù)10次。驗(yàn)證準(zhǔn)確率取10次訓(xùn)練驗(yàn)證結(jié)果的平均值。
實(shí)驗(yàn)參數(shù)設(shè)置如下:CNN-LSTM文本情感分析模型的卷積層卷積核數(shù)目為64,卷積窗口長(zhǎng)度為5,卷積步長(zhǎng)設(shè)為1,激活函數(shù)采用ReLU,池化層的最大池化窗口大小為4,LSTM層輸出空間維度為70,學(xué)習(xí)率設(shè)為默認(rèn)值0.001,dropout比率設(shè)置為0.2,每次訓(xùn)練32個(gè)樣本;Zat-NN模型的激活函數(shù)采用ReLU,學(xué)習(xí)率設(shè)為0.001,dropout比率設(shè)置為0.2,batch_size設(shè)為16。
微博僵尸賬號(hào)識(shí)別結(jié)果的主要評(píng)價(jià)指標(biāo)為識(shí)別準(zhǔn)確性,主要包括正確率(Accuracy)、準(zhǔn)確率(Precision)、召回率(Recall)、F1值、假陽率(False Positive Rate,FPR)、ROC曲線。本文采用的是Accuracy、Precision、Recall和F1值這4個(gè)評(píng)價(jià)指標(biāo)。
1)正確率計(jì)算公式如下:
(12)
其中,Correctnum為被模型正確分類的用戶數(shù),n為用戶總數(shù)。正確率越高,模型分類性能越好。
2)準(zhǔn)確率計(jì)算公式如下:
(13)
其中,TP為被模型正確分類為僵尸粉的用戶數(shù)量,FP為被模型錯(cuò)誤分類為僵尸粉的正常用戶數(shù)量。
3)召回率計(jì)算公式如下:
(14)
其中,FN為被模型錯(cuò)誤分類為正常用戶的僵尸粉數(shù)量。
4)F1值計(jì)算公式如下:
(15)
F1值為準(zhǔn)確率和召回率的加權(quán)調(diào)和平均,是對(duì)準(zhǔn)確率和召回率的綜合考慮。F1值越高,模型分類性能越好。
為證明本文構(gòu)建Zat-NN模型的有效性,將Zat-NN模型與文獻(xiàn)[16,22]方法進(jìn)行對(duì)比實(shí)驗(yàn),3種方法的分類結(jié)果正確率和召回率如表4所示??梢钥闯?對(duì)比文獻(xiàn)[16,22]方法,本文Zat-NN模型正確率、召回率均最高,證明了本文方法的有效性。另外,分析發(fā)現(xiàn)文獻(xiàn)[16,22]方法在本文獲取到的用戶數(shù)據(jù)集上識(shí)別準(zhǔn)確率較低的原因?yàn)槲墨I(xiàn)[16]方法中添加的用戶特征雖然多,但是其中第9個(gè)至第12個(gè)用戶特征(每天00:00—06:00平均發(fā)博數(shù)、06:00—12:00平均發(fā)博數(shù)、12:00—18:00平均發(fā)博數(shù)、18:00—24:00平均發(fā)博數(shù))過于冗余,現(xiàn)在的高級(jí)僵尸粉不會(huì)每天固定時(shí)間段發(fā)布微博,導(dǎo)致分類效果不明顯,而文獻(xiàn)[22]方法中添加的用戶特征較少,無法全面覆蓋現(xiàn)有僵尸粉的特征。
表4 僵尸粉識(shí)別模型對(duì)比實(shí)驗(yàn)結(jié)果
為驗(yàn)證本文提出3個(gè)新特征的有效性,將Zat-NN模型在刪除F8、F9和F11特征后的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并將該實(shí)驗(yàn)結(jié)果與添加F8、F9和F11特征后的Zat-NN模型實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,如圖6所示。實(shí)驗(yàn)結(jié)果表明,模型添加了新特征后正確率、準(zhǔn)確率、召回率和F1值均有提高,可以看出若使用無新特征的用戶集,Zat-NN模型的各項(xiàng)評(píng)價(jià)指標(biāo)均有顯著下降,從而說明添加新特征對(duì)微博僵尸粉檢測(cè)的有效性及重要性。
圖6 有無添加新特征的Zat-NN模型識(shí)別效果對(duì)比
為驗(yàn)證本文提出的微博情感特征(F11)的有效性,構(gòu)建數(shù)據(jù)集D2,數(shù)據(jù)集D2中不包含特征F11。將Zat-NN、貝葉斯(Bayes)、支持向量機(jī)(Support Vector Machine,SVM)、K最近鄰(K-Nearest Neighbor,KNN)4種模型分別在數(shù)據(jù)集D1和數(shù)據(jù)集D2上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表5,其中的D1和D2分別表示模型在添加了微博情感特征的數(shù)據(jù)集和在未添加微博情感特征的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。通過對(duì)比發(fā)現(xiàn),在具有同樣特征的用戶數(shù)據(jù)集上,Zat-NN模型比傳統(tǒng)機(jī)器學(xué)習(xí)模型識(shí)別準(zhǔn)確率高,而沒有添加微博情感特征的模型評(píng)價(jià)指標(biāo)均下降,其中SVM模型正確率下降4%,準(zhǔn)確率下降5.6%,召回率下降14%,F1值下降10.2%,從而驗(yàn)證添加微博情感特征對(duì)僵尸粉賬號(hào)識(shí)別的有效性。
表5 有無添加新特征的4種模型識(shí)別效果對(duì)比
為證明添加卷積層對(duì)情感分析的有效性,將CNN-LSTM模型與Bayes、SVM和僅含LSTM層的模型進(jìn)行對(duì)比。各模型在驗(yàn)證集上的準(zhǔn)確率如表6所示。由此可知,融合了CNN層的CNN-LSTM文本情感分析模型準(zhǔn)確率最高,比僅含LSTM層的模型準(zhǔn)確率提高了4.7%,從而證明添加卷積層對(duì)文本情感分析的有效性。
表6 文本情感分析模型準(zhǔn)確率對(duì)比
同時(shí),為驗(yàn)證每個(gè)用戶特征對(duì)模型檢測(cè)的貢獻(xiàn)程度,將神經(jīng)網(wǎng)絡(luò)輸入層到隱藏層節(jié)點(diǎn)的連接權(quán)重矩陣的絕對(duì)值之和做歸一化處理,設(shè)wi為第i個(gè)輸入層節(jié)點(diǎn)權(quán)重值,wij為第i個(gè)輸入層節(jié)點(diǎn)的第j個(gè)隱藏層節(jié)點(diǎn)的連接權(quán)重值,計(jì)算公式如下:
(16)
其中,m為輸入層節(jié)點(diǎn)個(gè)數(shù),n為隱藏層節(jié)點(diǎn)個(gè)數(shù)。在Zat-NN模型中,m為11,n為32。通過計(jì)算得到全部特征的權(quán)重向量為W=(0.213,0.060,0.122,0.039,0.070,0.062,0.040,0.052,0.105,0.162,0.074)。各特征的權(quán)重分布如圖7所示,可以看出,本文新添加的微博情感特征、日均轉(zhuǎn)發(fā)微博數(shù)、發(fā)博工具這3個(gè)特征均具有較大權(quán)重,進(jìn)一步驗(yàn)證了新添加特征對(duì)微博僵尸粉檢測(cè)的重要性。
圖7 特征權(quán)重分布
據(jù)統(tǒng)計(jì),本文所用的數(shù)據(jù)集中有589個(gè)為高級(jí)僵尸粉,占全部僵尸粉數(shù)量的29.5%。這些高級(jí)僵尸粉均填寫了個(gè)人資料及個(gè)人描述,發(fā)博數(shù)較多且有轉(zhuǎn)發(fā)其他用戶微博的行為。隨著高級(jí)僵尸粉所占比例的提升,僵尸粉檢測(cè)將會(huì)面臨更多挑戰(zhàn),因?yàn)槲⒉┥嫌幸恍┎换钴S用戶,他們發(fā)博數(shù)很少或者發(fā)博內(nèi)容不帶有明顯個(gè)人情緒,微博點(diǎn)贊評(píng)論數(shù)也很少,識(shí)別模型有時(shí)會(huì)將這類正常用戶錯(cuò)誤分類為僵尸用戶,因此如何準(zhǔn)確將這類用戶和僵尸粉進(jìn)行有效區(qū)分也是一個(gè)難點(diǎn)問題。
微博僵尸粉是微博垃圾用戶的主要組成部分。由于僵尸粉的賬號(hào)大多數(shù)由程序生成并控制,其賬號(hào)安全性能低,容易被攻擊者盜用來發(fā)送惡意鏈接、竊取用戶的個(gè)人隱私,會(huì)給個(gè)人信息安全和社會(huì)公共安全造成嚴(yán)重威脅,因此有效分辨并清除僵尸粉對(duì)于提高新浪微博及其他社交網(wǎng)絡(luò)的用戶體驗(yàn)至關(guān)重要。本文從用戶屬性、用戶行為、微博內(nèi)容3個(gè)方面出發(fā)定義11個(gè)用戶特征,并且結(jié)合自然語言處理方法對(duì)微博文本做情感分析,通過添加微博情感等 3個(gè)新特征增強(qiáng)了模型魯棒性。實(shí)驗(yàn)結(jié)果表明,該方法的識(shí)別準(zhǔn)確率較高,為微博僵尸粉識(shí)別提供了一個(gè)可行有效的解決方案。下一步將對(duì)神經(jīng)網(wǎng)絡(luò)識(shí)別模型進(jìn)行多任務(wù)學(xué)習(xí)以捕獲更多的僵尸粉用戶特征,從而更有效地區(qū)分僵尸粉和不活躍用戶。