武曉丹
(太原師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西晉中,030619)
關(guān)鍵字:Twitter;特征選擇;Scikit-Learn庫(kù);特征提取
隨著互聯(lián)網(wǎng)的發(fā)展,諸如推特(Twitter)、新浪微博(Sina Weibo)這樣的新社交媒體也隨之發(fā)展起來。作為全球最具影響力應(yīng)用程序之一的Twitter在其2022年第一季度的收益報(bào)告中表示,其日活躍用戶數(shù)達(dá)到2.29億,這一數(shù)字在上一季度是2.17億。Twitter這樣的微博平臺(tái)作為互聯(lián)網(wǎng)時(shí)代人們進(jìn)行溝通的重要工具,為用戶快速交流提供便利,因此受到越來越多人們的關(guān)注。但是Twitter的這些特點(diǎn)也給“網(wǎng)絡(luò)水軍”提供了活動(dòng)場(chǎng)所。水軍會(huì)通過虛假意見的廣泛傳播引導(dǎo)輿論,人為控制事件走向,從而達(dá)到自己的目的;同時(shí)大量水軍的存在也會(huì)導(dǎo)致微博內(nèi)容的真實(shí)性降低,質(zhì)量下降,嚴(yán)重影響普通用戶的使用。由于水軍的存在給Twitter等微博平臺(tái)帶來很多不穩(wěn)定的風(fēng)險(xiǎn)。因此,如何在Twitter中準(zhǔn)確識(shí)別水軍,還給網(wǎng)絡(luò)世界一個(gè)安全穩(wěn)定的環(huán)境,成為微博熱點(diǎn)研究中一個(gè)亟待解決的問題。
隨著水軍反檢測(cè)能力越來越強(qiáng),之前從傳播學(xué)角度定性判別水軍的方法難以達(dá)到理想效果,易于形成識(shí)別漏洞。因此,本文通過不同數(shù)據(jù)集以及Scikit-Learn機(jī)器學(xué)習(xí)庫(kù)中分類算法訓(xùn)練分類器,并以此得出具有較好分類效果的特征和機(jī)器學(xué)習(xí)算法。
目前,隨著網(wǎng)絡(luò)的飛速發(fā)展以及自媒體時(shí)代的到來,微博作為分享交流信息的平臺(tái),受到很多喜愛。關(guān)于微博的研究方向有很多,水軍發(fā)現(xiàn)也是近年來微博研究中的一個(gè)熱門話題。
國(guó)外學(xué)者陸續(xù)展開相關(guān)研究,Yard[1]等分析研究了Twitter的發(fā)展歷史,通過鏈接URL以及賬戶名稱規(guī)律性等特征識(shí)別垃圾郵件用戶。Stringhin[2]等通過創(chuàng)建Twitter用戶行為分析模型,從而區(qū)分出垃圾用戶與普通用戶。Amlesh-wara[3]等分析特征后建立Twitter用戶識(shí)別模型CATS,并證明該模型對(duì)于少量數(shù)據(jù)也有很很好地識(shí)別果。Zhang等通過分析Twitter中含有鏈接URL的推文以及其對(duì)應(yīng)賬戶的特征來區(qū)分水軍用戶與普通用戶,并利用機(jī)器學(xué)習(xí)方法來檢驗(yàn)其結(jié)論。
國(guó)內(nèi)對(duì)微博水軍最早的研究出現(xiàn)在2010年。謝忠紅等指出網(wǎng)絡(luò)水軍的定義并分析其特點(diǎn),總結(jié)出8個(gè)基于用戶屬性的特征并訓(xùn)練邏輯回歸算法,最終實(shí)現(xiàn)水軍的識(shí)別。莫倩等研究正常用戶與水軍用戶的社交網(wǎng)絡(luò)關(guān)系,發(fā)現(xiàn)其形成的社交圈有很大不同,具有不平衡的粉絲關(guān)注比。程曉濤等則在此基礎(chǔ)上加入“用戶是否認(rèn)證”這一特征,并且分析用戶屬性特征和行為特征,提出基于關(guān)系圖特征的水軍賬號(hào)識(shí)別方法。韓晴晴等綜合分析微博用戶的多種特征,總結(jié)出6個(gè)屬性特征集并且考慮實(shí)際中有標(biāo)記數(shù)據(jù)少無標(biāo)記數(shù)據(jù)多,利用半監(jiān)督協(xié)同訓(xùn)訓(xùn)練類器識(shí)別微博水軍。
微博水軍的研究已經(jīng)得到社會(huì)各界的廣泛關(guān)注,所以如何精準(zhǔn)且高高效地識(shí)別軍是一個(gè)具有很大挑戰(zhàn)的事情。目前大多數(shù)研究有些側(cè)重于單個(gè)水軍所發(fā)推文的檢測(cè),有些則側(cè)重于水軍賬號(hào)的檢測(cè),本實(shí)驗(yàn)重點(diǎn)是前者。
特征選擇是特征工程中的重要環(huán)節(jié),其目的是提升模型效果,提高運(yùn)行速度。本實(shí)驗(yàn)采用相關(guān)性檢驗(yàn)中的卡方檢驗(yàn),這是特征選擇中的Filter過濾法,其思想是研究特征與標(biāo)簽之間的關(guān)聯(lián)性,根據(jù)對(duì)特征進(jìn)行統(tǒng)計(jì)檢驗(yàn)之后得到的分?jǐn)?shù),從而篩選出相對(duì)無用的特征,挑選出最相關(guān)的特征。即對(duì)特征賦予權(quán)重,權(quán)重代表著特征的重要程度,對(duì)權(quán)重進(jìn)行排名。如圖1所示。
圖1 Filter過濾法
卡方檢驗(yàn)chi2是專門針對(duì)分類問題的一種獨(dú)立性檢驗(yàn),它是先假設(shè)兩個(gè)變量互相獨(dú)立,然后再觀察實(shí)際值與理論值的差距,若差距足夠小,則原假設(shè)成立。即計(jì)算特征與標(biāo)簽之間的卡方統(tǒng)計(jì)量,并以此為依據(jù)將特征從高到低排名,再計(jì)算卡方值對(duì)應(yīng)的p值,以0.05或者0.01作為閾值過濾相應(yīng)的特征,從而可以去除最獨(dú)立于標(biāo)簽,與實(shí)驗(yàn)?zāi)康臒o關(guān)的特征。
卡方檢驗(yàn)的計(jì)算公式為:
其中,A為實(shí)際值,T為理論值。
對(duì)Twitter水軍的屬性特征進(jìn)行分析,發(fā)現(xiàn)與普通用戶相比,水軍由于是為某些目的性因素而出現(xiàn),例如炒作、宣傳、引導(dǎo)輿論之類,其對(duì)于自身賬戶的經(jīng)營(yíng)比較少,因此Twitter水軍往往具有較少的粉絲數(shù)以及較多的關(guān)注數(shù)。而且Twitter水軍賬戶對(duì)其他用戶較為關(guān)注,它的收藏、回復(fù)和轉(zhuǎn)發(fā)數(shù)都比較高。此外Twitter水軍為了讓更多的人瀏覽到自己的推文,經(jīng)常會(huì)帶熱門話題(#)發(fā)文,或者是常常提及(@)其他用戶引起關(guān)注,再或者是在自己的推文中使用較多的帶有目的性的鏈接(URL),例如廣告、釣魚網(wǎng)站之類,因此水軍推文包含的話題標(biāo)簽數(shù)、URL鏈接數(shù)、用戶提及數(shù)都會(huì)比較高。
本實(shí)驗(yàn)在3個(gè)數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試。數(shù)據(jù)集如下:
(1)第一個(gè)數(shù)據(jù)集來自Chen chao等人采集。這個(gè)數(shù)據(jù)集具有現(xiàn)成的特征集。特征信息如表1所示。
表1 數(shù)據(jù)集1的特征選取信息
(2)第二個(gè)數(shù)據(jù)集來自Kaggle競(jìng)賽。這個(gè)數(shù)據(jù)集提供Tweet文本,以及Tweet帳賬戶的些特征,因此能夠手動(dòng)提取特征集。本實(shí)驗(yàn)提取的特征集如表2所示。
(3)第三個(gè)數(shù)據(jù)集來自Chen Weiling等人采集。這個(gè)數(shù)據(jù)集原是帶有標(biāo)簽的Tweet ID列表,Weiling Chen等人通過Twitter API密鑰,檢索出推文得到數(shù)據(jù)集,因此也能夠提取其特征。本實(shí)驗(yàn)提取的特征集與數(shù)據(jù)集2提取的相同,也如表2所示。
表2 數(shù)據(jù)集2、數(shù)據(jù)集3的特征選取信息
由表1和表2可以看出,數(shù)據(jù)集2、3所提取的特征與數(shù)據(jù)集1的特征相同,并在此基礎(chǔ)上多提取出兩個(gè)特征,分別是“actions”和“spam_words_count”。
對(duì)特征與標(biāo)簽進(jìn)行相關(guān)性檢驗(yàn)?zāi)苡行нx擇出具有高區(qū)分度的特征。卡方檢驗(yàn)在二分類問題上非常有效。卡方檢驗(yàn),又稱χ2檢驗(yàn),它是測(cè)量特征與標(biāo)簽的相關(guān)性,相關(guān)性大的特征則認(rèn)為與標(biāo)簽的區(qū)分度好,相關(guān)性小的特征則認(rèn)為其對(duì)于水軍的區(qū)分度差。
如圖2所示是數(shù)據(jù)集1的特征進(jìn)行卡方檢驗(yàn)的分?jǐn)?shù)排名直方圖,可以看出,排名前三的特征分別是“粉絲數(shù)follower”“轉(zhuǎn)發(fā)次數(shù) retweets”以及“關(guān)注數(shù) following”,即這三個(gè)特征與標(biāo)簽的相關(guān)性較大。
圖2 特征集1的卡方檢驗(yàn)
如圖3和圖4所示是對(duì)具有相同特征集的不同數(shù)據(jù)集進(jìn)行卡方檢驗(yàn),即對(duì)數(shù)據(jù)集2和數(shù)據(jù)集3進(jìn)行相關(guān)性檢驗(yàn)。圖2表示數(shù)據(jù)集2的卡方檢驗(yàn)得分排名情況,其得出的主要特征是“粉絲數(shù) follower”,“關(guān)注數(shù) following”,“收藏、回復(fù)、轉(zhuǎn)發(fā)總數(shù)actions”。圖3表示數(shù)據(jù)集3的卡方檢驗(yàn)得分排名情況,得到的有效特征同樣如此,主要特征是“follower”,“actions”以及“following”。因此對(duì)于本實(shí)驗(yàn)數(shù)據(jù)集2和3,貢獻(xiàn)比較大的特征主要是“粉絲數(shù)”“關(guān)注數(shù)”以及“收藏、回復(fù)、轉(zhuǎn)發(fā)總數(shù)”三個(gè)特征。
圖3 特征集2的卡方檢驗(yàn)
圖4 特征集3的卡方檢驗(yàn)
針對(duì)水軍的特性,本實(shí)驗(yàn)采用準(zhǔn)確率Accuracy等評(píng)價(jià)指標(biāo)來評(píng)估模型。對(duì)于水軍不平衡分類問題,本實(shí)驗(yàn)引入了混淆矩陣,如表3所示。
表3 混淆矩陣定義
其中有Positive、Negative、True、False四個(gè)概念,P表示預(yù)測(cè)類別為1,N表示預(yù)測(cè)類別為0;T表示預(yù)測(cè)正確,F(xiàn)表示預(yù)測(cè)錯(cuò)誤。根據(jù)混淆矩陣從而能計(jì)算出分類性能評(píng)價(jià)指標(biāo):
本實(shí)驗(yàn)使用python語言編寫,采用Twitter真實(shí)數(shù)據(jù)集進(jìn)行訓(xùn)練與測(cè)試。Scikit-Learn是一個(gè)提供大量機(jī)器學(xué)習(xí)工具和模型的功能強(qiáng)大的Python庫(kù)。通過Python機(jī)器學(xué)習(xí)庫(kù)中的幾種分類算法對(duì)提取的特征進(jìn)行實(shí)驗(yàn),比較得出提高水軍識(shí)別準(zhǔn)確率的特征以及不同算法對(duì)水軍識(shí)別的效果差異。實(shí)驗(yàn)采用的第一種分類算法是SVM,第二種分類算法是KNN,第三種是RF算法。
如表4所示,在數(shù)據(jù)集1上SVM算法能夠得到的結(jié)果是67.4%的準(zhǔn)確率;采用KNN算法結(jié)果改善了一些,將準(zhǔn)確率提高到75.5%;而RF算法在分類器訓(xùn)練之后得到了最好的效果,賦予了82%的準(zhǔn)確率。
表4 準(zhǔn)確率(accuracy)對(duì)比
在數(shù)據(jù)集2上實(shí)驗(yàn)證明了改善的結(jié)果很顯著。通過之前相關(guān)性檢驗(yàn)的實(shí)驗(yàn)可知,其中主要的改進(jìn)因素來自“actions”特征的存在,這個(gè)特征表示該推特用戶的收藏、回復(fù)、轉(zhuǎn)發(fā)總數(shù)。同樣,SVM算法結(jié)果明顯提升,準(zhǔn)確率從之前的67.4%提高到93%;對(duì)于KNN算法,準(zhǔn)確率比起SVM稍微提升,在94.5%左右;最后,對(duì)于數(shù)據(jù)集1訓(xùn)練得到的分類準(zhǔn)確率有很大提升的RF算法,對(duì)于數(shù)據(jù)集2,結(jié)果同樣令人震驚,該算法能夠以99.87%的準(zhǔn)確率進(jìn)行識(shí)別,得到的分類效果最好。
在數(shù)據(jù)集3上的實(shí)驗(yàn)結(jié)果,相對(duì)于數(shù)據(jù)集2可能不太理想,因?yàn)槠鋽?shù)據(jù)是來自隨機(jī)選擇推文組成的數(shù)據(jù)集所生成的特征集。SVM得到的結(jié)果是69%的準(zhǔn)確率,KNN分類算法的訓(xùn)練結(jié)果有所提升達(dá)到78.5%,RF算法依舊得到最好的分類效果,有86.6%的準(zhǔn)確率。
社交媒體上的水軍識(shí)別是社交網(wǎng)絡(luò)需要面對(duì)的最大問題之一,對(duì)網(wǎng)絡(luò)水軍的精準(zhǔn)識(shí)別是目前微博研究領(lǐng)域亟待解決的難題。
通過對(duì)水軍識(shí)別相關(guān)文獻(xiàn)的研究,本文利用Scikit-Learn機(jī)器學(xué)習(xí)庫(kù)中3種分類算法對(duì)Twitter上3個(gè)不同真實(shí)數(shù)據(jù)集進(jìn)行訓(xùn)練,設(shè)計(jì)水軍識(shí)別分類器。在創(chuàng)建特征集的過程中,對(duì)Twitter用戶的屬性特征進(jìn)行具體分析發(fā)現(xiàn)特征的選擇比數(shù)據(jù)集更重要,相較于數(shù)據(jù)集1,數(shù)據(jù)集2和3中引入了“推特用戶收藏、回復(fù)、轉(zhuǎn)發(fā)總數(shù)actions”特征后,水軍識(shí)別的準(zhǔn)確率大幅度提升,并且對(duì)于3個(gè)分類算法都是如此;除此之外,比起前兩種分類算法,隨機(jī)森林(RF)分類法分類性能評(píng)價(jià)指標(biāo)值都較高,分類效果最好。最終實(shí)驗(yàn)發(fā)現(xiàn),使用強(qiáng)大的機(jī)器學(xué)習(xí)方法和適當(dāng)?shù)奶卣魈崛‰A段,可以取得一些很好的結(jié)果。