程傳鵬,張書欽,劉小明,夏敏捷
(中原工學(xué)院 計(jì)算機(jī)學(xué)院,河南 鄭州 450007)
網(wǎng)絡(luò)水軍,即受雇于某個(gè)組織或者個(gè)人,以發(fā)帖、回帖為主要手段,為雇主進(jìn)行網(wǎng)絡(luò)造勢(shì)的網(wǎng)絡(luò)人員,有專職和兼職之分。網(wǎng)絡(luò)水軍受利益驅(qū)動(dòng),通過操縱軟件機(jī)器人或水軍賬號(hào),在互聯(lián)網(wǎng)中制造、傳播虛假意見和垃圾信息等,妄圖達(dá)到影響網(wǎng)絡(luò)民意、擾亂網(wǎng)絡(luò)環(huán)境等不正當(dāng)目的。由于網(wǎng)絡(luò)成員的匿名性和隱蔽性,給水軍的識(shí)別帶來了很大的困難。網(wǎng)絡(luò)水軍識(shí)別研究被認(rèn)為可以有效解決此問題,得到學(xué)術(shù)界和工業(yè)界廣泛關(guān)注,并取得了一定的研究成果。當(dāng)前,網(wǎng)絡(luò)水軍識(shí)別研究按照目標(biāo)領(lǐng)域的不同,可以分為郵件領(lǐng)域、電子商務(wù)領(lǐng)域、社交網(wǎng)絡(luò)領(lǐng)域等;按照研究方法的不同,可以分為基于用戶產(chǎn)生內(nèi)容特征、基于用戶行為相關(guān)特征、基于用戶環(huán)境特征的識(shí)別方法[1]。本文分析了網(wǎng)絡(luò)論壇中水軍用戶的各個(gè)特征,給出了基于特定話題的水軍賬號(hào)識(shí)別方法。
目前的水軍識(shí)別方法主要有3種。一種是基于評(píng)論文字內(nèi)容分析的方法。胡舜良等提出了對(duì)發(fā)帖內(nèi)容進(jìn)行分析、處理,生成Hash值,通過各個(gè)發(fā)帖Hash值之間的比較,確定該貼是否為水貼[2]。楊長(zhǎng)春等指出水軍的評(píng)論內(nèi)容具有重復(fù)或者相似性,提出了基于文本相似度的網(wǎng)絡(luò)水軍發(fā)現(xiàn)算法,通過建立高效的B-Tree來索引評(píng)論內(nèi)容,算法具有較高的處理速率[3]。Liu H Y等通過分析評(píng)論者所發(fā)表的評(píng)論文字內(nèi)容,發(fā)現(xiàn)水軍的情感傾向性明顯,偏離正常用戶的評(píng)論[4]。Jindal N等利用自然語言處理統(tǒng)計(jì)知識(shí),發(fā)現(xiàn)水軍用戶在發(fā)表評(píng)論時(shí)趨向于使用大量形容詞,或者文字有較多的重復(fù)[5]。Lim E P等通過分析Amazon中大量的用戶評(píng)論,總結(jié)了幾種具有代表性的網(wǎng)絡(luò)水軍行為,發(fā)現(xiàn)水軍為了盡可能地減少自身工作量并獲得最大的利益,只會(huì)選擇特定的目標(biāo)商品進(jìn)行評(píng)價(jià),目標(biāo)針對(duì)性強(qiáng),并且會(huì)大量復(fù)制已發(fā)表或者別人的評(píng)論[6]。第二種方法是分析水軍的行為特征。王爍等提出了一種“水軍”探測(cè)靜態(tài)方法,認(rèn)為網(wǎng)絡(luò)評(píng)論中從好到差的評(píng)論數(shù)量分布規(guī)律應(yīng)該符合統(tǒng)計(jì)學(xué)中的正態(tài)分布這一規(guī)律[7]。Mukherjee A等分析了水軍的各種行為,發(fā)現(xiàn)網(wǎng)絡(luò)水軍有別于正常用戶的評(píng)論:時(shí)間集中突發(fā)、評(píng)論極端,利用用戶及其發(fā)表的評(píng)論特征構(gòu)建分類器,依據(jù)上述水軍行為特點(diǎn)將其與普通用戶區(qū)分[8]。Hayati P等通過追蹤用戶行為特征來發(fā)現(xiàn)網(wǎng)絡(luò)水軍[9]。余玲通過分析不同周期內(nèi)和不同時(shí)間起點(diǎn)的貼文和評(píng)論的統(tǒng)計(jì)數(shù)量分布,來尋找水軍的群體性行為特征[10]。第三種方法是通過用戶之間的關(guān)系來識(shí)別水軍。Xu C等通過網(wǎng)絡(luò)水軍之間形成的組織關(guān)系發(fā)現(xiàn)網(wǎng)絡(luò)水軍形成的團(tuán)體,并在此基礎(chǔ)上計(jì)算水軍與其鄰居間的相似性,利用K近鄰算法修正對(duì)該網(wǎng)絡(luò)水軍的分類判定[11]。陳桂茸等在分析網(wǎng)絡(luò)水軍灌水行為的基礎(chǔ)上,提出了一種網(wǎng)絡(luò)論壇水軍賬號(hào)快速檢測(cè)算法[12]。范純龍等以特定網(wǎng)絡(luò)論壇數(shù)據(jù)為分析對(duì)象,利用由賬戶及其間關(guān)系構(gòu)成的復(fù)雜網(wǎng)絡(luò),分析了論壇上社區(qū)和網(wǎng)絡(luò)組織的統(tǒng)計(jì)特征和典型結(jié)構(gòu)[13]。張慧杰提出了基于多特征尺度空間模型的組織發(fā)現(xiàn)技術(shù),首先構(gòu)建了用戶同時(shí)出現(xiàn)次數(shù)模型、評(píng)分相似度模型、同品牌率模型,對(duì)構(gòu)建的評(píng)論用戶關(guān)系網(wǎng)進(jìn)行處理,逐步發(fā)現(xiàn)其中存在的穩(wěn)定網(wǎng)絡(luò)組織;然后通過優(yōu)選網(wǎng)絡(luò)組織中的關(guān)鍵評(píng)論來確定網(wǎng)絡(luò)水軍,進(jìn)而甄別出網(wǎng)絡(luò)中存在的組織是否為網(wǎng)絡(luò)水軍[14]。
有些用戶賬號(hào)在一些話題上表現(xiàn)出正常的用戶特征,而在另外一些話題上則有意或者無意地充當(dāng)了水軍。因此,本文將研究定位為網(wǎng)絡(luò)論壇中針對(duì)特定話題的網(wǎng)絡(luò)水軍識(shí)別。通過人工對(duì)選定的代表性話題帖子進(jìn)行標(biāo)注,標(biāo)注出正常用戶和水軍用戶,分別提取出兩種用戶的用戶名特征、注冊(cè)時(shí)間特征、回帖時(shí)間特征、關(guān)注度特征、回復(fù)頻度特征、話題回復(fù)特征以及負(fù)面情感特征,利用這些特征對(duì)用戶進(jìn)行向量化表示,形成分類的訓(xùn)練集模型。對(duì)待檢測(cè)話題帖子里的用戶,按照同樣的方法進(jìn)行向量化表示,利用訓(xùn)練集模型識(shí)別出正常用戶和水軍用戶。整個(gè)流程如圖1所示。
圖1 特定話題水軍識(shí)別流程示意圖
隨著移動(dòng)網(wǎng)絡(luò)的普及,人們不僅可以通過計(jì)算機(jī)上網(wǎng),而且還可以借助手機(jī)隨時(shí)隨地登陸互聯(lián)網(wǎng)。由于網(wǎng)絡(luò)的這種開放性,網(wǎng)絡(luò)水軍具有較強(qiáng)的隱匿性,這給網(wǎng)絡(luò)水軍的識(shí)別帶來了很大的困難。但是通過對(duì)大量水軍用戶的觀察,可發(fā)現(xiàn)水軍用戶區(qū)別于正常用戶的一些特征。
話題發(fā)布后,水軍要達(dá)到回帖的目的,必須要大量注冊(cè)賬號(hào)。對(duì)于一個(gè)比較熱門的論壇,已注冊(cè)的用戶數(shù)量非常龐大,為了避免和已注冊(cè)的用戶賬號(hào)沖突,網(wǎng)絡(luò)論壇在新用戶注冊(cè)時(shí),一般會(huì)在用戶所填寫的注冊(cè)賬號(hào)后面加上一些隨機(jī)的數(shù)字,例如“張三184”“zhangsan978”“李四1”“王五2”等等。除了正常注冊(cè)帳號(hào)外,有時(shí)候水軍還會(huì)購買通過程序自動(dòng)注冊(cè)的賬號(hào)。一般來說,盡管注冊(cè)時(shí)間不一定相同,但是水軍注冊(cè)的用戶名會(huì)很類似,如果用Fname表示用戶U的用戶名特征,其值可以用下式進(jìn)行計(jì)算:
(1)
式中:Lennumber表示用戶名中數(shù)字字符個(gè)數(shù),Lenname表示用戶名中字符總數(shù)。
通過大量的實(shí)例觀察到一個(gè)事實(shí):水軍賬號(hào)為了達(dá)到通過回復(fù)貼子來左右話題的輿論方向,一般都會(huì)在話題開始前后的一段時(shí)間內(nèi)開始注冊(cè)大量的新賬號(hào)。如果用Fregtime表示用戶U注冊(cè)時(shí)間特征度,其值可用下式進(jìn)行計(jì)算:
(2)
式中:Duserreg表示用戶U注冊(cè)的日期,Dtopicstart表示話題T開始的日期,abs表示取絕對(duì)值。
話題開始后,水軍用戶一般都會(huì)對(duì)相關(guān)話題進(jìn)行集中回復(fù)。在話題開始之前或者話題沉寂時(shí),賬號(hào)一般都不活躍。用Spanreply來表示用戶U最近半年內(nèi)所回復(fù)的帖子跨越天數(shù);Spanregtime表示截止到采集當(dāng)天,用戶U賬號(hào)己存活的天數(shù)(注冊(cè)天數(shù))。水軍用戶在話題開始后會(huì)變得突然活躍,上述特征值會(huì)偏高;而對(duì)于正常用戶而言,這一特征值較低。用Fspan表示回帖時(shí)間特征,其值可用下式計(jì)算:
(3)
在網(wǎng)絡(luò)論壇中,用戶會(huì)對(duì)自己感興趣的帖子作者進(jìn)行關(guān)注。同樣,如果一個(gè)用戶在網(wǎng)絡(luò)論壇中有較高的人氣,也會(huì)被論壇中其他用戶所關(guān)注。水軍用戶的主要目的是為了對(duì)特定的話題進(jìn)行造勢(shì),很少會(huì)去關(guān)注其他用戶,也很少會(huì)被其他用戶所關(guān)注。用Fcore表示用戶U的關(guān)注度特征,其值可用下式進(jìn)行計(jì)算:
(4)
式中:Numberfollow表示用戶U在論壇中被其他用戶關(guān)注的數(shù)量,Numberfriend表示用戶U在論壇中關(guān)注的其他用戶數(shù)量。
網(wǎng)絡(luò)水軍會(huì)對(duì)某個(gè)話題的相關(guān)帖子反復(fù)回應(yīng),即頂貼。用Freplyfre表示用戶U對(duì)話題T的回復(fù)頻度特征,其值可以用下式進(jìn)行計(jì)算:
(5)
式中:Numberu表示用戶U回復(fù)話題T的次數(shù),Numberreplyfre表示話題T的總回復(fù)次數(shù)。
互信息是計(jì)算語言學(xué)模型分析的常用方法,它度量?jī)蓚€(gè)對(duì)象之間的相互性。水軍用戶一般只會(huì)對(duì)特定的話題感興趣,只會(huì)針對(duì)特定話題的帖子進(jìn)行回復(fù),因此,話題的回復(fù)特征也是甄別水軍賬號(hào)的一個(gè)特征。
如果用FMI表示話題回復(fù)特征,A表示用戶U回復(fù)話題T的頻數(shù),B表示用戶U回復(fù)的不屬于話題T的頻數(shù),C表示用戶U沒有回復(fù)話題T的頻數(shù),N表示論壇中一段時(shí)間內(nèi)所發(fā)表的帖子總數(shù),參照互信息公式,話題T和用戶U的互信息可由下式計(jì)算:
(6)
網(wǎng)絡(luò)水軍在發(fā)表評(píng)論時(shí),一般用詞比較極端,文字特征明顯,情感傾向特別強(qiáng),通過惡意的方式達(dá)到貶低對(duì)手的目的,妄圖左右輿論的走向,所以可通過計(jì)算負(fù)面的情感傾向來甄別水軍帳號(hào)。
用FSO表示用戶U在話題T上的負(fù)面情感特征值,考慮程度副詞對(duì)情感度的影響,其計(jì)算公式可以表示如下形式:
(7)
式中:NWordsj表示負(fù)面情感基準(zhǔn)詞,Sim(WI,NWordsj)表示詞語Wi和NWordsj之間的語義相似度[15],m表示用戶所發(fā)表的評(píng)論中去掉停止詞之后詞語的個(gè)數(shù),n表示負(fù)面情感基準(zhǔn)詞個(gè)數(shù)。
《知網(wǎng)》情感分析用詞語集中提供的程度副詞一共有4個(gè)等級(jí)集合,依照程度從低到高的順序分別用Set1、Set2、Set3、Set4來表示。DegWi表示W(wǎng)i前的程度副詞,Deg按如下規(guī)定取值:
目前,網(wǎng)絡(luò)水軍識(shí)別研究中沒有公開可用的數(shù)據(jù)集。為驗(yàn)證本文所提方法的合理性和有效性,通過“天涯論壇”的Oauth授權(quán),申請(qǐng)了App Key和App Secret;利用論壇所提供的開發(fā)者文檔中的“用戶相關(guān)”“關(guān)系相關(guān)”以及“論壇相關(guān)”的API編寫了一個(gè)數(shù)據(jù)采集工具,并利用該工具采集了論壇中比較熱門的幾個(gè)話題,共1 358個(gè)帖子;分別提取每個(gè)貼子里所有評(píng)論者的賬號(hào)、評(píng)論內(nèi)容、注冊(cè)時(shí)間、最近半年內(nèi)所有回復(fù)的帖子內(nèi)容、回復(fù)時(shí)間以及評(píng)論者的個(gè)人信息,包括評(píng)論者關(guān)注的其他用戶數(shù)及評(píng)論者的粉絲數(shù)等信息。
判斷用戶是否為水軍的標(biāo)準(zhǔn)為:注冊(cè)時(shí)間與話題爆發(fā)時(shí)間相近;觀點(diǎn)明確地偏袒一方;言辭激烈,夾雜有很多不文明的用詞;幾乎所有的回復(fù)都是針對(duì)特定的某一個(gè)話題。
為了獲取客觀、準(zhǔn)確的標(biāo)注結(jié)果,本文開發(fā)了標(biāo)注平臺(tái)進(jìn)行機(jī)器識(shí)別,并邀請(qǐng)兩位研究生對(duì)所提取出的用戶進(jìn)行人工隨機(jī)、交叉標(biāo)注。
為評(píng)價(jià)識(shí)別效果,本文采用最通用的性能評(píng)價(jià)方法:準(zhǔn)確率和召回率。二者的公式定義如下:
(8)
(9)
式中:NA表示系統(tǒng)識(shí)別出的水軍用戶數(shù)量,NB表示正常用戶被系統(tǒng)識(shí)別為水軍的數(shù)量,NC表示是水軍但是系統(tǒng)沒有識(shí)別到的用戶數(shù)量。
對(duì)于人工標(biāo)注判斷標(biāo)準(zhǔn),因每個(gè)人的判斷標(biāo)準(zhǔn)有差異,因此,選擇兩個(gè)標(biāo)注者所選擇出的交集作為最終的識(shí)別結(jié)果,并假定人工判別準(zhǔn)確率和召回率都為100%。
為了客觀評(píng)估本文提出方法的有效性和合理性,利用所設(shè)計(jì)的數(shù)據(jù)采集工具獲得所需數(shù)據(jù),得到27 436個(gè)論壇用戶,人工判別得到水軍用戶賬號(hào)953個(gè)。經(jīng)過預(yù)處理后取出500個(gè)正常用戶,并與500個(gè)水軍賬號(hào)混合組成實(shí)驗(yàn)數(shù)據(jù)集。依照上文中的特征,將用戶進(jìn)行向量化表示為:Ui(WFname,WFregtime,WFspan,WFcore,WFreplyfre,WFMI,WFSO)。為了驗(yàn)證本文中所提出的方法,本文一共做了兩組實(shí)驗(yàn)。
第一組實(shí)驗(yàn)是利用KNN進(jìn)行分類。通過人工選擇一定數(shù)量的論壇用戶(包括正常用戶和水軍用戶),作為分類的訓(xùn)練集,計(jì)算待判別用戶與所有訓(xùn)練集中用戶的相似度,在訓(xùn)練集中選出與待識(shí)別用戶最相似的K個(gè)用戶。用戶相似度計(jì)算方法如下:
(10)
式中:Sim(Ui,Uj)表示用戶Ui和Uj的相似度,M為特征向量的維數(shù),Win、Wjn為第i、j個(gè)用戶向量的第n維值。
在待識(shí)別用戶的K個(gè)鄰居中,分別計(jì)算權(quán)重,計(jì)算公式如下:
(11)
(12)
比較p(Ux,C1)和p(Ux,C2),如果p(Ux,C1)>p(Ux,C2),那么Ux為正常用戶,否則為水軍用戶。由于網(wǎng)絡(luò)論壇用語的多樣性,我們利用詞語對(duì)照表對(duì)所出現(xiàn)的網(wǎng)絡(luò)用語進(jìn)行了規(guī)范化處理,并對(duì)文本分詞后的詞語進(jìn)行了同義詞以及近義詞擴(kuò)展。在KNN分類實(shí)驗(yàn)中,分別采用本文中的用戶相似度計(jì)算方法和文獻(xiàn)[3]中所提到的文本相似度方法進(jìn)行對(duì)比,實(shí)驗(yàn)中K分別取值150、200、250、300、400,兩種方法所得到的準(zhǔn)確率和召回率比較結(jié)果如圖2、圖3所示。
圖2 不同方法識(shí)別準(zhǔn)確率比較結(jié)果圖
圖3 不同方法識(shí)別召回率比較結(jié)果圖
從圖2和圖3可以看出,采用本文中的方法,所得到的準(zhǔn)確率和召回率都要優(yōu)于文本相似度方法。從語料里去掉語言不規(guī)范以及較短文字的評(píng)論后發(fā)現(xiàn),基于文本相似度方法的準(zhǔn)確率和召回率都達(dá)到了80%以上,這說明網(wǎng)絡(luò)表達(dá)方式的多樣性以及文本長(zhǎng)短分布的不平衡是文本相似度識(shí)別方法難以取得較高準(zhǔn)確率和召回率的主要原因。
第二組實(shí)驗(yàn)是采用臺(tái)灣大學(xué)林智仁博士等開發(fā)設(shè)計(jì)的LIBSVM通用SVM軟件包來識(shí)別,核函數(shù)為Polynomial。對(duì)各個(gè)特征進(jìn)行組合實(shí)驗(yàn),特征集FSet1的特征向量為(WFname、WFregtime、WFspan、WFcore、WFreplyfre、WFMI、WFSO),特征集FSet2的特征向量為(WFregtmie、WFspan、WFcore、WFreplyfre、WFMI、WFSO),特征集FSet3的特征向量為(WFname、WFregtime、WFspan、WFcore、WFreplyfre、WFSO),特征集FSet4的特征向量(WFname、WFspan、WFcore、WFMI、WFSO),所得到的準(zhǔn)確率和召回率如表1所示。
表1 選擇不同特征所取得準(zhǔn)確率和召回率結(jié)果 %
從表1可以看出,采用特征集FSet1,即使用了本文中所提出的所有特征,準(zhǔn)確率和召回率分別達(dá)到了78%和74%;特征集FSet2是從所有特征里去掉WFname,準(zhǔn)確率和召回率下降明顯,分別下降13%和6%;特征集FSet3去掉了WFMI,準(zhǔn)確率和召回率分別為62%和53%,說明WFMI在水軍識(shí)別上具有很好的特征識(shí)別度;特征集FSet4去掉了WFregtime和WFspan,準(zhǔn)確率只有較小的下降。本組實(shí)驗(yàn)說明WFname和WFMI對(duì)水軍識(shí)別的準(zhǔn)確率和召回率有較大的影響。
在兩組實(shí)驗(yàn)條件下,本文提出的水軍識(shí)別方法的準(zhǔn)確率和召回率都達(dá)到了70%以上,因此該方法對(duì)于特定話題水軍的識(shí)別有一定的應(yīng)用價(jià)值。
本文對(duì)網(wǎng)絡(luò)論壇中水軍的各種特征進(jìn)行了分析,提出了一種基于特定話題的網(wǎng)絡(luò)水軍識(shí)別方法。通過對(duì)大量實(shí)例的觀察,總結(jié)出網(wǎng)絡(luò)水軍明顯區(qū)別于正常用戶的7個(gè)特征,并給出了合理的特征度計(jì)算公式。依據(jù)所選擇出的特征,對(duì)每個(gè)論壇用戶建立向量空間模型后,利用機(jī)器學(xué)習(xí)的方法來識(shí)別出水軍。實(shí)驗(yàn)表明,本文提出的識(shí)別方法能有效識(shí)別針對(duì)特定話題的網(wǎng)絡(luò)水軍。