唐洵,湯娟,周安民
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610225)
當(dāng)今,網(wǎng)絡(luò)社交平臺(tái)上的每個(gè)用戶都可以閱讀、發(fā)布和分享信息,網(wǎng)絡(luò)傳播特性使得信息能夠以前所未有的速度向大量受眾傳播,數(shù)十億人的生活因此產(chǎn)生革命性的影響。伴隨著移動(dòng)互聯(lián)網(wǎng)的普及,人們?cè)谏缃痪W(wǎng)絡(luò)上所花費(fèi)的時(shí)間與精力也日益增多,安全問(wèn)題也日益嚴(yán)重。大多數(shù)人都在試圖保持網(wǎng)絡(luò)的安全性和可用性,這類用戶屬于良性的、正常的用戶,與之相對(duì),有部分用戶試圖發(fā)表影響網(wǎng)絡(luò)平臺(tái)可用性的反社會(huì)行為,如仇恨言論,人身攻擊和網(wǎng)絡(luò)欺凌[1-3],這些被網(wǎng)絡(luò)平臺(tái)所禁止的評(píng)論通常由釣魚(yú)者或噴子(Troll)發(fā)表,而且近些年的研究表明,普通人在特定情況下,也會(huì)發(fā)表惡意評(píng)論。
針對(duì)惡意評(píng)論的早期研究是定性的,學(xué)者通常對(duì)少數(shù)人工識(shí)別出的惡意評(píng)論的典型案例進(jìn)行深入研究。在這一階段的工作中,一般認(rèn)為這是一種具有反社會(huì)行為的特殊言論。Buckels[4]在2014 年的研究中提到,惡意評(píng)論利用“熱點(diǎn)問(wèn)題”讓用戶在某種程度上變得過(guò)于情緒化、偏激乃至失去理智。故而,惡意言論可以被視為“網(wǎng)絡(luò)社區(qū)負(fù)面行為”。Dlala[5]認(rèn)為惡意言論故意對(duì)討論的主題進(jìn)行隱晦的誤導(dǎo),以挑起爭(zhēng)議,擾亂討論,達(dá)到讓普通用戶偏離討論主題的目的。Cheng[6]等人在這之后研究了發(fā)帖、評(píng)論、點(diǎn)贊行為與社區(qū)不良行為的關(guān)系,他們對(duì)被社區(qū)禁言的用戶進(jìn)行異常行為分析,發(fā)現(xiàn)其異常行為傾向于集中在少數(shù)幾個(gè)主題上,能夠吸引更多用戶的關(guān)注響應(yīng)。他們以時(shí)間為軸,對(duì)用戶行為按照從加入社區(qū)到被禁止的演變過(guò)程進(jìn)行分析,惡意言論發(fā)布者的語(yǔ)言水平會(huì)持續(xù)降低,且社區(qū)對(duì)其容忍程度也呈下降趨勢(shì)。同時(shí)隨著社區(qū)對(duì)其管控嚴(yán)格化,不良行為反而會(huì)因此加劇,所以Cheng 等人提到對(duì)惡意用戶的識(shí)別應(yīng)該放在其行為初期,避免后期的不可控行為。他們另一項(xiàng)研究[7]表明,社區(qū)中的負(fù)面情緒會(huì)給社區(qū)帶來(lái)持續(xù)性的負(fù)面影響,而積極情緒并不具備類似效應(yīng),因?yàn)榇蠖鄶?shù)社區(qū)并不會(huì)對(duì)發(fā)表積極內(nèi)容的用戶采取獎(jiǎng)勵(lì)行為,所以用戶也不會(huì)有進(jìn)一步提高文章質(zhì)量的積極性。
在檢測(cè)言論中惡意行為這一方面,Kumar[8]對(duì)Slashdot 社區(qū)中的惡意評(píng)論進(jìn)行研究,其惡意行為對(duì)社區(qū)的信息完整性進(jìn)行了破壞,由此他們針對(duì)Slashdot社區(qū)開(kāi)發(fā)了一種通用算法TIA(Troll Identification Algo?rithm),將在線注冊(cè)用戶分為惡意或良性,進(jìn)而對(duì)惡意評(píng)論進(jìn)行檢測(cè)。在Hardaker[9]的研究中,分析了不同類型惡意評(píng)論的特征。Kim[12]通過(guò)分析用戶的屬性和代表性行為,如注冊(cè)日期、重復(fù)轉(zhuǎn)發(fā)和行為跟蹤等來(lái)檢測(cè)惡意用戶。Risch[10]組合多個(gè)常用特征,其實(shí)驗(yàn)表明組合特征的檢測(cè)效果明顯優(yōu)于單一特征。Cambria[11]等人使用帖子中的語(yǔ)義和情感分析進(jìn)行惡意行為檢測(cè)。而Chen[13]等人使用詞匯句法特征分析并檢測(cè)惡意行為,包括用戶行文風(fēng)格、結(jié)構(gòu)和特定網(wǎng)絡(luò)欺凌等內(nèi)容。而在最近的研究中,Cheng,Justin[7]的文章中認(rèn)為,用戶的前置情緒和帖子的討論情景是用戶是否會(huì)產(chǎn)生惡意評(píng)論的重要預(yù)測(cè)因素,用戶近期的發(fā)布?xì)v史表明情緒會(huì)從先前的討論中延續(xù)過(guò)來(lái),過(guò)去的惡意評(píng)論可以預(yù)測(cè)未來(lái)的惡意言論行為。
本文使用爬蟲(chóng)收集了一組中文社區(qū)中用戶的歷史發(fā)言數(shù)據(jù)。在Cheng,Justin[7]的研究基礎(chǔ)上,提取出實(shí)驗(yàn)數(shù)據(jù)中有關(guān)不良情緒和上下文環(huán)境的相關(guān)特征。本文使用LASSO 回歸,發(fā)現(xiàn)部分特征的相關(guān)系數(shù)較小,因此結(jié)合主成分分析法(PCA)對(duì)特征進(jìn)行降維,并采用隨機(jī)森林算法建立模型,發(fā)現(xiàn)在線討論社區(qū)中的惡意評(píng)論,得到了87.0%的準(zhǔn)確度。實(shí)驗(yàn)結(jié)果表明,本文采用的模型對(duì)惡意評(píng)論具有良好的檢測(cè)效果,為凈化社區(qū)環(huán)境提供了技術(shù)支持。
本文的惡意評(píng)論檢測(cè)模型如圖1 所示,該模型主要包括三部分:數(shù)據(jù)特征提取模塊、PCA 特征降維模塊、隨機(jī)森林檢測(cè)模塊。本文使用Python 爬蟲(chóng)獲取到原始數(shù)據(jù)集,經(jīng)過(guò)人工分析后,對(duì)數(shù)據(jù)進(jìn)行清洗及預(yù)處理。根據(jù)過(guò)去的研究,模型從評(píng)論數(shù)據(jù)中提取出每個(gè)評(píng)論的特征向量,使用PCA 降維,提取出測(cè)試使用的特征集向量。原始數(shù)據(jù)將被隨機(jī)分為70%的訓(xùn)練數(shù)據(jù)集和30%的測(cè)試數(shù)據(jù)集,最后使用隨機(jī)森林算法進(jìn)行訓(xùn)練,將評(píng)論數(shù)據(jù)分類為正常評(píng)論以及惡意評(píng)論。
圖1 惡意評(píng)論混合檢測(cè)模型
經(jīng)過(guò)分析,本文采用的數(shù)據(jù)集中的46,036 條被刪除的評(píng)論多數(shù)由未被禁用用戶所發(fā)表的。在最新的研究中,Cheng、Justin[7]指出:惡意評(píng)論更多可能是由于情景而導(dǎo)致的,并非天生。研究者認(rèn)為對(duì)于普通用戶而言,負(fù)面情緒和討論背景都會(huì)增加用戶發(fā)布惡意評(píng)論的可能性。因此,本文根據(jù)數(shù)據(jù)集的特征,選用了以下8 個(gè)特征作為基礎(chǔ)特征集,對(duì)惡意評(píng)論進(jìn)行檢測(cè)。
●情緒特征:
Cheng、Justin 基于情緒做了三個(gè)方向的特征研究。認(rèn)為用戶的惡意評(píng)論會(huì)隨著早晚,工作日和周末的轉(zhuǎn)換而變化;憤怒的情緒會(huì)帶來(lái)更多的惡意評(píng)論;而隨著時(shí)間的增加,用戶的負(fù)面情緒會(huì)逐漸降低。
根據(jù)上述研究,本文提取出以下四個(gè)特征值:
(1)周時(shí)間:評(píng)論一周內(nèi)所處的發(fā)布時(shí)間點(diǎn);
(2)天時(shí)間:評(píng)論一天內(nèi)所處的發(fā)布時(shí)間點(diǎn);
(3)前置被標(biāo)記時(shí)間:用戶上一條帖子的標(biāo)記情況;
(4)治愈時(shí)間:用戶上一條被標(biāo)記帖子與當(dāng)前帖子的發(fā)布時(shí)間差。
●討論環(huán)境特征
Cheng、Justin 基于討論環(huán)境做了三個(gè)方向的特征研究。認(rèn)為如果新聞下的第一條評(píng)論被標(biāo)記,會(huì)對(duì)后續(xù)的討論產(chǎn)生一定影響;如果評(píng)論所在的子討論中的首條評(píng)論被標(biāo)記,會(huì)對(duì)后續(xù)的子討論產(chǎn)生影響;在一個(gè)子討論中,被標(biāo)記評(píng)論的數(shù)量和位置,會(huì)對(duì)整體子討論產(chǎn)生影響。
根據(jù)上述研究,本文提取出以下四個(gè)特征值:
(1)首標(biāo)記:評(píng)論所處的新聞中,新聞下首條評(píng)論的被標(biāo)記情況;
(2)根標(biāo)記:評(píng)論所處的新聞中,評(píng)論所在的子討論中,根評(píng)論的被標(biāo)記情況;
(3)評(píng)論位置:當(dāng)前評(píng)論所處的位置;
(4)被標(biāo)記數(shù)量:在這之前被標(biāo)記的評(píng)論數(shù)量。
PCA(Principal Components Analysis)即主成分分析技術(shù),旨在利用降維的思想,把多指標(biāo)轉(zhuǎn)化為少數(shù)幾個(gè)綜合指標(biāo),是一種非監(jiān)督的機(jī)器學(xué)習(xí)方法。PCA 可以降低算法開(kāi)銷,通過(guò)降維發(fā)現(xiàn)更容易理解的特征,增加訓(xùn)練過(guò)程中對(duì)有效信息的提取處理,使數(shù)據(jù)集更容易被使用。
設(shè)周時(shí)間為W,天時(shí)間為D,前置被標(biāo)記時(shí)間為Pt,治愈時(shí)間為 Ht,首標(biāo)記為 Ff,根標(biāo)記為 Rf,評(píng)論位置為P,被標(biāo)記數(shù)量為N。則本文所采用的特征數(shù)據(jù)集I 為[W,D,Pt,Ht,F(xiàn)f,Rf]。
LASSO(The Least Absolute Shrinkage and Selection Operator)回歸也稱之為線性回歸的L1 正則化,該回歸可以使常量系數(shù)變小直至為0 值,因此特別適用于參數(shù)數(shù)目縮減和參數(shù)的選擇。本文采用LASSO 回歸對(duì)特征集的變量進(jìn)行篩選。通過(guò)對(duì)特征數(shù)據(jù)集進(jìn)行LASSO 回歸處理,得出其對(duì)應(yīng)相關(guān)度為[-0.32,-0.69,17.07,0.10,31.81,-2.10,3.01,2.77],并由此觀察到該特征數(shù)據(jù)集中有三項(xiàng)特征的相關(guān)度低于1。于是采用PCA 算法,設(shè)置k 值為5,對(duì)原有的八個(gè)特征進(jìn)行降維處理,以保證其特征信息的有效性。
算法流程如下:
步驟1 計(jì)算對(duì)應(yīng)特征值的平均值并減去。
步驟2 求出特征協(xié)方差矩陣。
步驟3 求出協(xié)方差矩陣的特征值和特征向量。
步驟4 將特征值按照由大到小的順序排列,保留其中最大的k 個(gè)特征值,生成新的特征矩陣。
步驟5 將實(shí)驗(yàn)數(shù)據(jù)轉(zhuǎn)換至上述k 個(gè)新特征構(gòu)建的向量空間。
隨機(jī)森林算法是以集成學(xué)習(xí)思想為基礎(chǔ),由多棵決策樹(shù)整合而來(lái)的分類算法,其每棵決策樹(shù)都是一個(gè)分類器,隨機(jī)森林集合所有分類投票結(jié)果,故其表現(xiàn)要優(yōu)于單一的決策樹(shù)。其算法流程如下:
步驟 1 特征數(shù)據(jù)集 I=[W,D,Pt,Ht,F(xiàn)f,Rf]由PCA 降維得到的實(shí)驗(yàn)特征集 Ip=[i1,i2,i3,i4,i5]。
步驟2 以隨機(jī)選取5 個(gè)特征中的2 個(gè)特征作為分裂點(diǎn),其度量標(biāo)準(zhǔn)為基尼系數(shù)度量,以備選點(diǎn)的最小值作為最優(yōu)分裂點(diǎn)的評(píng)判標(biāo)準(zhǔn),公式如下:
步驟3 根據(jù)上一步驟的計(jì)算方式,逐個(gè)計(jì)算每一個(gè)屬性的最優(yōu)分裂點(diǎn),對(duì)比不同分裂點(diǎn)的基尼系數(shù),以最小屬性并發(fā)生成多棵決策樹(shù)。
步驟4 對(duì)多棵決策樹(shù)的值進(jìn)行投票并選出最終結(jié)果。
本文通過(guò)Python 爬蟲(chóng),采集并清洗了來(lái)自社區(qū)chouti.com 的公開(kāi)數(shù)據(jù),包含來(lái)自8,869 名用戶的3,450,059 條歷史發(fā)言記錄。之后對(duì)采集到的原始數(shù)據(jù)進(jìn)行了細(xì)致的檢查和分析,發(fā)現(xiàn)原始數(shù)據(jù)中存在部分無(wú)效內(nèi)容及數(shù)據(jù)重復(fù)等問(wèn)題。因此本文對(duì)原始數(shù)據(jù)進(jìn)行了清洗和預(yù)處理,以保證數(shù)據(jù)的準(zhǔn)確性,最終獲得46,036 條被標(biāo)記為“該評(píng)論已被刪除”的數(shù)據(jù)。實(shí)驗(yàn)將未被刪除的數(shù)據(jù)標(biāo)記為0,被刪除的數(shù)據(jù)標(biāo)記為1,使用Sklearn 實(shí)現(xiàn)PCA 降維和隨機(jī)森林算法。
表1 數(shù)據(jù)集概述
本次實(shí)驗(yàn)的評(píng)估指標(biāo)采用以下四種:
TP:真陽(yáng)性(True Positive),將正常評(píng)論預(yù)測(cè)為正常評(píng)論的數(shù)量;
FP:假陽(yáng)性(False Positive),將惡意評(píng)論預(yù)測(cè)為正常評(píng)論的數(shù)量;
TN:真陰性(True Negative),將惡意評(píng)論預(yù)測(cè)為惡意評(píng)論的數(shù)量;
FN:假陰性(False Negative),將正常評(píng)論預(yù)測(cè)為惡意評(píng)論的數(shù)量。
性能評(píng)估使用準(zhǔn)確率(A),召回率(R),精確率(P)和召回精確率調(diào)和平均數(shù)(F1)。
根據(jù)上述特征,本文使用了三種不同的機(jī)器學(xué)習(xí)算法(支持向量機(jī)、KNN、隨機(jī)森林)對(duì)惡意評(píng)論進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果如表2、圖2 所示。
表2 算法性能對(duì)比
對(duì)比支持向量機(jī)、KNN 和隨機(jī)森林算法的實(shí)驗(yàn)結(jié)果,可以觀察到三種算法的精確率和召回率各有高低,但隨機(jī)森林在準(zhǔn)確率上要高于其他兩種算法,故隨機(jī)森林算法的檢測(cè)性能最佳,準(zhǔn)確率為86.7%。所以本文選擇隨機(jī)森林與特征選擇相結(jié)合的混合模型,實(shí)現(xiàn)進(jìn)一步的性能提升。從表中可以看到,隨機(jī)森林和特征選擇相結(jié)合,可以得到85.4%的精確率、73.2%的召回率以及87.0%的準(zhǔn)確率,三項(xiàng)指標(biāo)較之單一的隨機(jī)森林均有提升效果。
圖2 ROC曲線
中文社區(qū)評(píng)論中的惡意行為相當(dāng)豐富,且屢禁不止。在大多數(shù)網(wǎng)站的評(píng)論區(qū)中,可以觀測(cè)到用戶不友善的溝通與交流。因此,本文希望借由此項(xiàng)研究去發(fā)現(xiàn)如何檢測(cè)中文社區(qū)中的惡意評(píng)論。根據(jù)最新的研究,本文提取出數(shù)據(jù)集中被標(biāo)記數(shù)據(jù)的8 個(gè)特征,在進(jìn)行LASSO 回歸分析后,發(fā)現(xiàn)其中三項(xiàng)特征屬于弱特征?;谝陨涎芯拷Y(jié)果,論文采用PCA 對(duì)特征進(jìn)行降維處理,最終結(jié)合隨機(jī)森林算法對(duì)惡意行為進(jìn)行了檢測(cè)。檢測(cè)結(jié)果表明,結(jié)合了PCA 的隨機(jī)森林算法模型要比單獨(dú)采用隨機(jī)森林算法的準(zhǔn)確度高,本文提出的模型可提高惡意評(píng)論的檢測(cè)準(zhǔn)確度。