楊英光,李陽(yáng)陽(yáng),彭 浩,劉弋鋒,謝海永
(1. 中國(guó)科學(xué)技術(shù)大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,安徽 合肥 230026;2. 中國(guó)電子科技集團(tuán)公司電子科學(xué)研究院 社會(huì)安全風(fēng)險(xiǎn)感知與防控大數(shù)據(jù)應(yīng)用國(guó)家工程實(shí)驗(yàn)室,北京 100041;3. 北京航空航天大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100191;4. 網(wǎng)絡(luò)文化內(nèi)容認(rèn)知與檢測(cè)文化和旅游部重點(diǎn)實(shí)驗(yàn)室,安徽 合肥 230026)
隨著互聯(lián)網(wǎng)上多種社交平臺(tái)的迅速發(fā)展,在社交網(wǎng)絡(luò)海量的用戶(hù)中出現(xiàn)了大量機(jī)器賬號(hào),這些機(jī)器賬號(hào)大多數(shù)由程序自動(dòng)控制。其中一部分機(jī)器賬號(hào)存在惡意行為,它們常在社交平臺(tái)中發(fā)布帶有潛在意圖的誘導(dǎo)內(nèi)容和不良信息,用以達(dá)到竊取用戶(hù)隱私、實(shí)施網(wǎng)絡(luò)釣魚(yú)和誤導(dǎo)網(wǎng)絡(luò)輿論等惡意目的[1]。惡意機(jī)器賬號(hào)在數(shù)量上增長(zhǎng)的同時(shí),在技術(shù)上也不斷迭代[2],2016年以來(lái)已經(jīng)發(fā)現(xiàn)了第三代機(jī)器賬號(hào)[3],這些賬號(hào)由于人為操作和自動(dòng)化的混合程度加深,能夠從其他真實(shí)賬號(hào)盜取信息,利用人工智能技術(shù)生成高可信的文本或圖片,其行為更像真實(shí)人類(lèi)賬號(hào),越加難以分辨惡意機(jī)器賬號(hào)和真實(shí)用戶(hù)賬號(hào)。因此針對(duì)惡意機(jī)器賬號(hào)的檢測(cè)的研究成為了一個(gè)極其重要的課題[4]。
早期檢測(cè)機(jī)器賬號(hào)的方法是通過(guò)特征工程抽取賬戶(hù)元信息的特征,使用傳統(tǒng)的機(jī)器學(xué)習(xí)模型檢測(cè)機(jī)器賬號(hào)。但這些方法需要繁重的特征工程,并且主要依賴(lài)于賬號(hào)的昵稱(chēng)、好友數(shù)量等個(gè)人特征作為分類(lèi)的依據(jù),無(wú)法面對(duì)偽裝良好的機(jī)器賬號(hào)。基于神經(jīng)網(wǎng)絡(luò)的方法進(jìn)一步分析了推文內(nèi)容,聯(lián)合賬戶(hù)元信息進(jìn)行檢測(cè),但由于日益成熟的對(duì)抗文本生成等內(nèi)容偽裝技術(shù),此類(lèi)方法在社交平臺(tái)中檢測(cè)的效果有限。社交網(wǎng)絡(luò)中存在多種社交關(guān)系,由社交關(guān)系組成的圖結(jié)構(gòu)中包含著豐富的語(yǔ)義信息,這催生了圖神經(jīng)網(wǎng)絡(luò)應(yīng)用于機(jī)器賬號(hào)檢測(cè)的相關(guān)研究[5-8]。圖神經(jīng)網(wǎng)絡(luò)(GNN)能夠?qū)D結(jié)構(gòu)作為輸入,提取出包含了語(yǔ)義信息的圖嵌入向量,用于節(jié)點(diǎn)分類(lèi),提升了對(duì)機(jī)器賬號(hào)的檢測(cè)能力。但是這些基于GNN的檢測(cè)方法[5-8]忽略了機(jī)器賬號(hào)在圖結(jié)構(gòu)中的偽裝行為。例如,惡意機(jī)器賬號(hào)通過(guò)與正常用戶(hù)建立關(guān)系即添加邊來(lái)對(duì)圖結(jié)構(gòu)進(jìn)行擾動(dòng)[9]來(lái)降低機(jī)器賬號(hào)自身的可疑性。因此,如果不加選擇地聚合節(jié)點(diǎn)在圖中所有鄰居的特征得到圖嵌入向量,或者聚合隨機(jī)選擇的鄰居的特征得到圖嵌入向量,會(huì)降低圖嵌入向量的表達(dá)能力,也會(huì)降低對(duì)機(jī)器賬號(hào)檢測(cè)的召回率。此外,現(xiàn)有的基于GNN的機(jī)器賬號(hào)檢測(cè)方法都依賴(lài)于從一開(kāi)始就構(gòu)建好的靜態(tài)圖結(jié)構(gòu),無(wú)法在訓(xùn)練時(shí)動(dòng)態(tài)地更新圖結(jié)構(gòu),這將導(dǎo)致節(jié)點(diǎn)無(wú)法聚合未直接相連的其他相似節(jié)點(diǎn),導(dǎo)致對(duì)潛在的機(jī)器賬號(hào)檢測(cè)能力不足。再者,這些研究[5-8]基于同種關(guān)系構(gòu)建的圖聚合節(jié)點(diǎn)信息得到圖嵌入向量,進(jìn)而檢測(cè)機(jī)器賬號(hào),沒(méi)有考慮到節(jié)點(diǎn)間的多種不同關(guān)系所能提供的更加豐富的語(yǔ)義信息,降低了檢測(cè)效果。
為了能夠在訓(xùn)練圖神經(jīng)網(wǎng)絡(luò)過(guò)程中選擇節(jié)點(diǎn)的相似鄰居的特征進(jìn)行聚合,提高圖嵌入向量的表達(dá)能力,同時(shí)動(dòng)態(tài)修改圖結(jié)構(gòu)來(lái)聚合潛在的相似節(jié)點(diǎn),增強(qiáng)對(duì)潛在相似節(jié)點(diǎn)的聚合能力,進(jìn)而提高對(duì)機(jī)器賬號(hào)檢測(cè)的召回率,本文設(shè)計(jì)三個(gè)模塊來(lái)增強(qiáng)GNN的檢測(cè)能力:
(1) 鄰居選擇模塊用來(lái)選擇與中心節(jié)點(diǎn)相似的鄰居節(jié)點(diǎn)。將節(jié)點(diǎn)特征輸入多層感知機(jī)中進(jìn)行打分,計(jì)算出節(jié)點(diǎn)與其鄰居的相似度。根據(jù)閾值,篩選出相似度較高的鄰居節(jié)點(diǎn),從而有選擇地聚合鄰居節(jié)點(diǎn)的特征,去除不相似鄰居節(jié)點(diǎn)對(duì)中心節(jié)點(diǎn)的影響;
(2) 使用生成對(duì)抗網(wǎng)絡(luò)模塊不斷更新圖結(jié)構(gòu)。為兩個(gè)在圖中沒(méi)有直接相連的潛在相似節(jié)點(diǎn)增加連接,在鄰居選擇階段就可以將這些潛在相似節(jié)點(diǎn)作為鄰居,聚合這些相似節(jié)點(diǎn)的特征,從而增強(qiáng)模型對(duì)潛在相似節(jié)點(diǎn)的聚合能力;
(3) 根據(jù)用戶(hù)間不同的交互類(lèi)型,建立多個(gè)關(guān)系圖,聚合鄰居信息。在構(gòu)建的多關(guān)系圖中,首先聚合每一個(gè)關(guān)系圖中根據(jù)相似度選出的鄰居節(jié)點(diǎn),得到節(jié)點(diǎn)在該關(guān)系圖下的嵌入向量。然后將多種關(guān)系下分別得到的嵌入向量進(jìn)行聚合,得到節(jié)點(diǎn)最終的嵌入向量。由于多關(guān)系圖能夠提供豐富的語(yǔ)義信息,聚合了含有豐富語(yǔ)義信息的嵌入向量,大大提高了其本身的表達(dá)能力。最后將含有豐富語(yǔ)義信息、表達(dá)能力更精確的圖嵌入向量輸入分類(lèi)器中提高檢測(cè)方法的召回率。
本文將上述三個(gè)模塊與GNN結(jié)合在一起,命名為對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)模型AdversarialMulti-RelationGraphNeuralNetwork(ADMR-GNN),并在兩個(gè)流行的數(shù)據(jù)集上做了實(shí)驗(yàn)。最好的情況下,在Yelp數(shù)據(jù)集[10]中AUC值提升了24%,Recall值提升了13%。在Amazon數(shù)據(jù)集[11]中AUC值提升了9%,Recall值提升了4%。
目前使用監(jiān)督學(xué)習(xí)的機(jī)器賬號(hào)檢測(cè)方法主要從賬戶(hù)元信息[12]、社交網(wǎng)絡(luò)拓?fù)鋄13]和內(nèi)容[1]中提取特征。Botometer[14-15]方案利用隨機(jī)森林算法,提取特征訓(xùn)練七個(gè)不同的分類(lèi)器,在十倍交叉驗(yàn)證下的AUC值為0.95。文獻(xiàn)[16]用貝葉斯算法做機(jī)器賬號(hào)檢測(cè)。文獻(xiàn)[17]用卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)聯(lián)合抽取文本特征和時(shí)間序列信息進(jìn)行機(jī)器賬號(hào)檢測(cè)。文獻(xiàn)[18]將機(jī)器賬號(hào)檢測(cè)視為單分類(lèi)問(wèn)題,選取了5個(gè)單分類(lèi)檢測(cè)算法,對(duì)比了不同算法的檢測(cè)效果。
也有一些研究使用無(wú)監(jiān)督方法,這些方法對(duì)于跨數(shù)據(jù)集檢測(cè)的魯棒性更好,并且更適合發(fā)現(xiàn)機(jī)器賬號(hào)的協(xié)同作用。因?yàn)閱为?dú)考慮賬號(hào)時(shí),賬戶(hù)可能并不會(huì)表現(xiàn)出與真實(shí)賬號(hào)有明顯差異,從而被有監(jiān)督方法忽略。文獻(xiàn)[19]通過(guò)檢測(cè)內(nèi)容中重復(fù)嵌入的URL鏈接發(fā)現(xiàn)機(jī)器賬號(hào)群組。文獻(xiàn)[20]提出使用馬爾可夫集群算法來(lái)識(shí)別機(jī)器賬號(hào)群組。文獻(xiàn)[21]使用StreamKM++和DenStream兩種聚類(lèi)算法聯(lián)合檢測(cè)機(jī)器賬號(hào),達(dá)到了100%的查全率。
近幾年有研究使用基于圖的方法進(jìn)行機(jī)器賬號(hào)檢測(cè)。文獻(xiàn)[22]使用異質(zhì)圖神經(jīng)網(wǎng)絡(luò)進(jìn)行機(jī)器賬號(hào)檢測(cè)。FdGars[5]構(gòu)建了多關(guān)系圖,運(yùn)用圖神經(jīng)網(wǎng)絡(luò)聚合鄰居信息。Player2Vec[23]根據(jù)數(shù)據(jù)集中節(jié)點(diǎn)間存在的關(guān)系建立多種同構(gòu)圖,使用圖神經(jīng)網(wǎng)絡(luò)在每種關(guān)系下聚合同構(gòu)圖中的鄰居信息,并采用注意力機(jī)制來(lái)聚合多個(gè)關(guān)系圖下的節(jié)點(diǎn)的圖嵌入向量。以上基于圖的檢測(cè)方法在聚合階段沒(méi)有對(duì)鄰居進(jìn)行篩選,聚合了不相似鄰居的信息,使得檢測(cè)性能下降。此外,上述方法都依賴(lài)于靜態(tài)圖結(jié)構(gòu),無(wú)法聚合不存在連接的潛在相似節(jié)點(diǎn),無(wú)法進(jìn)一步提升檢測(cè)性能。
本文中對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)模型(ADMR-GNN)也使用了基于圖的檢測(cè)方法,但為了克服上述基于圖的檢測(cè)方法的缺點(diǎn),本方法構(gòu)建多關(guān)系圖,利用多關(guān)系圖檢測(cè)機(jī)器賬號(hào),保留了多關(guān)系圖的表征能力。篩選出相似度較高的鄰居節(jié)點(diǎn),從而有選擇地聚合鄰居節(jié)點(diǎn)的特征,去除不相似鄰居節(jié)點(diǎn)對(duì)中心節(jié)點(diǎn)的影響,并使用生成對(duì)抗網(wǎng)絡(luò)動(dòng)態(tài)的更新圖結(jié)構(gòu),從而能夠更好地聚合潛在相似的鄰居節(jié)點(diǎn),加強(qiáng)了圖嵌入向量的表征效果。
本文關(guān)注于檢測(cè)社交平臺(tái)中存在的機(jī)器賬號(hào),這些賬號(hào)都受控于自動(dòng)化程序,自動(dòng)地模擬用戶(hù)行為,例如,①水軍賬號(hào)[24-25],這類(lèi)賬號(hào)能夠在各類(lèi)平臺(tái)中,對(duì)于商品、服務(wù)、推特等發(fā)表大量評(píng)論,從而潛移默化地影響用戶(hù)對(duì)商品和服務(wù)的評(píng)價(jià)。②社交機(jī)器人賬號(hào)[26],別有用心地傳播新聞和觀點(diǎn),發(fā)布具有某些意圖的內(nèi)容來(lái)影響公眾輿論,這些賬號(hào)通過(guò)模仿用戶(hù)的觀點(diǎn)和行為、通過(guò)回復(fù)或者提及用戶(hù)等交互操作來(lái)偽裝自己。
異質(zhì)信息網(wǎng)絡(luò)是一個(gè)圖G=(V,ε),V和ε分別代表圖G中的節(jié)點(diǎn)集合V={v1,…,vn}和邊集合ε={ε1,…,εn},且節(jié)點(diǎn)和邊的類(lèi)型之和‖TV‖+‖Tε‖≥3,滿(mǎn)足這樣條件的圖G我們稱(chēng)其為異質(zhì)信息網(wǎng)絡(luò)。
對(duì)于社交平臺(tái)以及其他平臺(tái)中的賬號(hào),我們可以將賬號(hào)建模成圖中的節(jié)點(diǎn)v,把賬號(hào)之間的交互操作如回復(fù),抽取成關(guān)系r,從而將節(jié)點(diǎn)互相連接起來(lái),建模為多關(guān)系圖G。節(jié)點(diǎn)v的標(biāo)簽yv∈{0,1}∈Y,其中,0代表節(jié)點(diǎn)為正常賬號(hào),1代表節(jié)點(diǎn)為機(jī)器賬號(hào)。模型對(duì)每個(gè)節(jié)點(diǎn)從多關(guān)系圖中聚合其他鄰居的信息得到圖嵌入向量,根據(jù)定義的損失函數(shù)得到損失,反向傳播更新模型參數(shù),最后使用訓(xùn)練出的模型對(duì)圖中沒(méi)有標(biāo)簽的節(jié)點(diǎn)進(jìn)行分類(lèi)。
本文基于對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)模型對(duì)機(jī)器賬號(hào)進(jìn)行檢測(cè),模型圖如圖1所示。對(duì)于一個(gè)中心節(jié)點(diǎn),我們需要聚合與中心節(jié)點(diǎn)在不同關(guān)系下與中心節(jié)點(diǎn)相連接的鄰居節(jié)點(diǎn),從而得到可以供下游分類(lèi)任務(wù)進(jìn)行分類(lèi)的圖嵌入向量。首先我們使用訓(xùn)練好的生成對(duì)抗網(wǎng)絡(luò)模塊來(lái)判別圖中節(jié)點(diǎn)對(duì)是否存在連接關(guān)系,從而更新圖結(jié)構(gòu)。然后根據(jù)節(jié)點(diǎn)的相似度以及閾值選出將被聚合的鄰居節(jié)點(diǎn),在同種關(guān)系聚合層,得到中心節(jié)點(diǎn)在單一關(guān)系下的嵌入向量。在多種關(guān)系聚合層,聚合中心節(jié)點(diǎn)在不同關(guān)系下的嵌入向量得到節(jié)點(diǎn)最終的表征向量供分類(lèi)器分類(lèi)。
圖1 對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)模型圖
如圖2所示,我們從圖中采樣成對(duì)相連的節(jié)點(diǎn)(v,u),用源節(jié)點(diǎn)v訓(xùn)練生成器,生成節(jié)點(diǎn)v的虛假目標(biāo)節(jié)點(diǎn)vt,同時(shí)將節(jié)點(diǎn)對(duì)(v,u)和(v,vt)輸入到判別器進(jìn)行訓(xùn)練。然后我們從圖中采樣節(jié)點(diǎn)對(duì)輸入判別器,推理當(dāng)前采樣節(jié)點(diǎn)對(duì)是否相似,即是否應(yīng)該存在連接關(guān)系,用判別器的推理結(jié)果更新圖結(jié)構(gòu)。
圖2 生成對(duì)抗網(wǎng)絡(luò)模塊
3.1.1 生成器
生成對(duì)抗網(wǎng)絡(luò)中的生成器G的目標(biāo)是根據(jù)從圖中取樣得到的源節(jié)點(diǎn)生成接近于真實(shí)的目標(biāo)節(jié)點(diǎn)。即,當(dāng)給定了一個(gè)源節(jié)點(diǎn)v∈V,生成器G的目標(biāo)就是生成虛假的目標(biāo)鄰居節(jié)點(diǎn)vt,節(jié)點(diǎn)vt應(yīng)該盡可能地接近真實(shí)存在的節(jié)點(diǎn)。為了能夠?qū)崿F(xiàn)這個(gè)目標(biāo),我們提出使用一個(gè)潛在變量z~pz(z)與源節(jié)點(diǎn)相加來(lái)作為生成器的輸入,并使用多層感知機(jī)來(lái)實(shí)現(xiàn)生成器G,如式(1)所示。
其中,f使用多層感知機(jī)實(shí)現(xiàn),θf(wàn)是f的參數(shù)。變量z來(lái)自于高斯分布,如式(2)所示。
其中,zv∈d×1,d等于源節(jié)點(diǎn)的特征向量維度。生成器G的目標(biāo)是通過(guò)生成足夠接近真實(shí)的虛假樣例欺騙判別器D,為了達(dá)到這個(gè)目標(biāo),生成器的損失函數(shù)如式(3)所示。
其中,vt就是源節(jié)點(diǎn)v的虛假鄰居節(jié)點(diǎn),vt通過(guò)生成器G生成。判別器D輸出的是輸入節(jié)點(diǎn)對(duì)存在真實(shí)連接的可能性,生成器的參數(shù)θG可以通過(guò)最小化LG進(jìn)行優(yōu)化。
3.1.2 判別器
判別器D試著分辨從圖中采樣的源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)對(duì)(v,u)和源節(jié)點(diǎn)與生成器G生成的虛假鄰居節(jié)點(diǎn)對(duì)(v,vt)。對(duì)于生成器G生成質(zhì)量差的鄰居節(jié)點(diǎn)給出與生成器G期望得到的相反標(biāo)簽,就會(huì)提高損失值,為了降低損失值,生成器只能不斷優(yōu)化生成鄰居節(jié)點(diǎn)的質(zhì)量,這樣判別器D就強(qiáng)制G生成接近真實(shí)的虛假鄰居節(jié)點(diǎn),同時(shí)增強(qiáng)自身對(duì)于源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)是否存在真實(shí)連接的判別力。對(duì)于一個(gè)給定的節(jié)點(diǎn)對(duì)(v,u),D將輸出節(jié)點(diǎn)v與u存在連接的可能性。針對(duì)這個(gè)目的,我們定義判別器D的函數(shù)為Sigmoid,如式(4)所示。
(4)
其中,f使用多層感知機(jī)實(shí)現(xiàn),θf(wàn)是f的參數(shù)。節(jié)點(diǎn)對(duì)的采樣形式有以下兩種。
(1)正例采樣: 即采樣的節(jié)點(diǎn)對(duì)(v,u),在圖中是實(shí)際存在邊連接的,這樣的節(jié)點(diǎn)對(duì)被稱(chēng)為正例,此時(shí)判別器D的損失函數(shù)如式(5)所示。
(2)負(fù)例采樣: 對(duì)于一個(gè)給定的節(jié)點(diǎn)v∈V,vt表示為v的虛假鄰居節(jié)點(diǎn)vt~G(v;θG),這樣的節(jié)點(diǎn)對(duì)(v,vt)稱(chēng)為負(fù)例采樣,此時(shí)判別器D的損失函數(shù)如式(6)所示。
我們將上述兩部分損失函數(shù)合并來(lái)訓(xùn)練判別器,通過(guò)最小化LD來(lái)優(yōu)化判別器的參數(shù)θD,損失函數(shù)如式(7)所示。
3.1.3 連接更新
為了能夠?qū)︵従佑兴Y選,我們需要對(duì)節(jié)點(diǎn)之間的相似度進(jìn)行度量。為了實(shí)現(xiàn)這一點(diǎn),受LAGCN[27]的啟發(fā),我們?cè)谀P偷拿恳粚又惺褂靡粋€(gè)單層的多層感知機(jī),來(lái)預(yù)測(cè)兩個(gè)節(jié)點(diǎn)的相關(guān)性,作為兩個(gè)節(jié)點(diǎn)相似度的度量標(biāo)準(zhǔn)。
(8)
每一層都有一個(gè)多層感知機(jī)進(jìn)行相似性度量。多層感知機(jī)f(l)的輸入就是l-1層節(jié)點(diǎn)的嵌入向量,第一層的輸入是節(jié)點(diǎn)的特征向量,將多層感知機(jī)的輸出輸入到非線性激活函數(shù)中,求其L1范數(shù)。然后與1做差即可得到相似性度量。
為了能夠訓(xùn)練多層感知機(jī),優(yōu)化模型參數(shù),我們定義第l層的多層感知機(jī)的損失函數(shù)為交叉熵?fù)p失函數(shù),如式(10)所示。
(10)
(11)
其中,yv∈{0,1}是節(jié)點(diǎn)v的標(biāo)簽。將相似性度量的損失函數(shù)式(10)聯(lián)立起來(lái),定義最終的損失函數(shù)如式(14)所示。
首先初始化參數(shù),設(shè)定閾值,然后在迭代樣本的時(shí)候首先用式(7)和式(8)訓(xùn)練生成對(duì)抗網(wǎng)絡(luò),如果迭代次數(shù)超過(guò)T就可以使用判別器進(jìn)行推理,更新圖結(jié)構(gòu);然后用式(9)計(jì)算節(jié)點(diǎn)間的相似度,挑選鄰居;然后用式(11)計(jì)算同種關(guān)系節(jié)點(diǎn)的圖嵌入向量,以及用式(12)計(jì)算多種關(guān)系下的圖嵌入向量;最后用式(14)計(jì)算相似度損失和GNN損失,更新參數(shù)值。
算法1: ADMR-GNN: 對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)輸入: 節(jié)點(diǎn)的特征向量,標(biāo)簽和一個(gè)多關(guān)系圖G={V,X,{εr}|Rr=1,Y};層數(shù)L;批量大小B;迭代次數(shù)E;GAN訓(xùn)練次數(shù)T參數(shù){S(l)(·,·)}|Ll=1;閾值TD=0.5,T (l)s=0.5}|Ll=1;參數(shù){AGG(l)r}|Rr=1,?l∈{1,…,L};參數(shù){AGG(l)r}|Rr=1,?l∈1,…,L 。輸出: 嵌入向量hLv、機(jī)器賬號(hào)概率pv, ?v∈Vtrainfor e=1,…,E do //訓(xùn)練ADMR-GNN for b=1,…,B do for r=1,…,R do LD←式(7) //訓(xùn)練 D LG←式(3) //訓(xùn)練 G if e>T 更新圖 //推理 for r=1,…,R do S(l)v,v' ←式(9) 鄰居選擇 hlv,r←式(11) //同關(guān)系聚合 hlv←式(12) //多關(guān)系聚合
表1展示了數(shù)據(jù)集的統(tǒng)計(jì)信息。我們使用Yelp評(píng)論數(shù)據(jù)集[10]和Amazon評(píng)論數(shù)據(jù)集[11]來(lái)研究基于GNN的機(jī)器賬號(hào)檢測(cè)問(wèn)題。Yelp數(shù)據(jù)集中包含了Yelp過(guò)濾(垃圾郵件)和推薦(合法)的對(duì)酒店和飯店的評(píng)論,Amazon數(shù)據(jù)集包含了用戶(hù)賬號(hào)對(duì)平臺(tái)中樂(lè)器產(chǎn)品的評(píng)論。這兩個(gè)數(shù)據(jù)集中都存在機(jī)器賬號(hào),并可以構(gòu)建出有意義的多關(guān)系圖,為驗(yàn)證我們提出的檢測(cè)方法的有效性提供支撐。我們手動(dòng)為Yelp數(shù)據(jù)集中的賬號(hào)抽取了32個(gè)特征,為Amazon 數(shù)據(jù)集中的賬號(hào)抽取了25個(gè)特征。
表1 數(shù)據(jù)集統(tǒng)計(jì)數(shù)
Yelp數(shù)據(jù)集中我們將評(píng)論(R)作為圖中的節(jié)點(diǎn),并設(shè)計(jì)了3個(gè)關(guān)系。
(1)R-U-R: 連接來(lái)自一個(gè)相同用戶(hù)(U)的評(píng)論;
(2)R-S-R: 連接兩個(gè)評(píng)分?jǐn)?shù)(S)相同的評(píng)論;
(3)R-M-R: 連接兩個(gè)在同一個(gè)月(M)中對(duì)相同產(chǎn)品的評(píng)論。
Amazon數(shù)據(jù)集中我們將用戶(hù)作為節(jié)點(diǎn),并設(shè)計(jì)了三個(gè)關(guān)系構(gòu)建多關(guān)系圖:
(1)U-P-U: 連接對(duì)同一個(gè)產(chǎn)品評(píng)論過(guò)的用戶(hù);
(2)U-S-U: 連接兩個(gè)在同一周中有相同打分值的用戶(hù);
(3)U-V-U: 連接兩個(gè)評(píng)論有高度相似性的兩個(gè)用戶(hù)。
為了驗(yàn)證我們方法的有效性,我們選擇了多個(gè)圖神經(jīng)網(wǎng)絡(luò)方法進(jìn)行對(duì)比。我們使用GCN[28]、GAT[29]、GraphSAGE[30]作為圖神經(jīng)網(wǎng)絡(luò)的通用模型的代表;并且分別選擇了Player2Vec[23]、SemiGNN[31]、GeniePath[32]、GraphConsis[6]四種時(shí)下最先進(jìn)的基于圖神經(jīng)網(wǎng)絡(luò)的欺詐性機(jī)器賬號(hào)檢測(cè)方法進(jìn)行對(duì)比。以半監(jiān)督的方式進(jìn)行訓(xùn)練及檢測(cè),GCN、GAT、GraphSAGE、GraphConsis模型運(yùn)行在同構(gòu)圖中,此時(shí)不區(qū)分不同的關(guān)系,將表1中的關(guān)系合并在一起構(gòu)建出一個(gè)同構(gòu)圖來(lái)分別訓(xùn)練這四個(gè)模型。
我們使用小批量(Mini-Batch)訓(xùn)練的方式訓(xùn)練ADMR-GNN和其他模型。設(shè)定嵌入向量維度為64,Yelp數(shù)據(jù)集中批量大小為1 024;Amazon數(shù)據(jù)集中批量大小為256;總層數(shù)為1、學(xué)習(xí)率(Learning Rate)為0.01;設(shè)定鄰居選擇的閾值為0.5,設(shè)定圖結(jié)構(gòu)更新的閾值為0.5。
由于兩個(gè)數(shù)據(jù)集中的類(lèi)別非常不平衡,所以我們主要使用ROC曲線下面積(AUC)和召回率(Recall)作為評(píng)估指標(biāo),盡可能地降低類(lèi)別不平衡問(wèn)題對(duì)評(píng)價(jià)的影響。
我們將建立好的圖結(jié)構(gòu)和抽取出的節(jié)點(diǎn)特征向量輸入模型進(jìn)行訓(xùn)練,動(dòng)態(tài)地改變圖結(jié)構(gòu),有選擇地聚合鄰居節(jié)點(diǎn)得到圖嵌入向量,然后使用Sigmoid函數(shù)進(jìn)行分類(lèi)。訓(xùn)練30個(gè)時(shí)期(Epoch),并使用AUC和Recall作為評(píng)估指標(biāo),與多個(gè)模型的對(duì)比結(jié)果如表2所示,每項(xiàng)指標(biāo)的第一名加粗顯示,第二名用在數(shù)值下加下劃線顯示。從表中結(jié)果可以看出,當(dāng)使用不同的訓(xùn)練集進(jìn)行訓(xùn)練時(shí),我們提出的ADMR-GNN方法得到的評(píng)估指標(biāo)數(shù)值都在該數(shù)據(jù)集中達(dá)到了最好的效果。與評(píng)估指標(biāo)數(shù)值為第二的GraphConsis相比,在Yelp數(shù)據(jù)集中訓(xùn)練集占比為40%時(shí)AUC值提升了24%,Recall值提升了13%;在Amazon數(shù)據(jù)集中訓(xùn)練集占比為40%時(shí),AUC值提升了9%,Recall值提升了4%。證明了本文提出的方法的有效性。
表2 對(duì)比實(shí)驗(yàn)結(jié)果
我們對(duì)比了在不同訓(xùn)練集占比情況下,評(píng)估指標(biāo)AUC和召回率Recall隨迭代時(shí)期Epoch的變化情況。如圖3所示,在不同數(shù)據(jù)集中使用不同比例的訓(xùn)練集訓(xùn)練ADMR-GNN,在其余數(shù)據(jù)集上測(cè)試時(shí),前10個(gè)訓(xùn)練時(shí)期得到的評(píng)估指標(biāo)值隨著迭代次數(shù)的變化情況,前10次訓(xùn)練時(shí)期(Epoch)里的最大值已經(jīng)在圖中標(biāo)注出??梢?jiàn)我們提出的方法無(wú)論是在節(jié)點(diǎn)數(shù)為45 954的較大的Yelp數(shù)據(jù)集上,還是在節(jié)點(diǎn)數(shù)為 11 944的Amazon數(shù)據(jù)集上,評(píng)估指標(biāo)都能夠在前幾輪的訓(xùn)練中快速上升,并接近于表2中30個(gè)訓(xùn)練時(shí)期得到的最大值,說(shuō)明我們的模型訓(xùn)練效率也較高。
圖4展示了ADMR-GNN在Yelp和Amazon兩個(gè)數(shù)據(jù)集中兩個(gè)超參數(shù)敏感性的測(cè)試結(jié)果。從圖4(a)中可以看出,在Yelp數(shù)據(jù)集中,使用16、32、64、128作為圖嵌入向量的維度時(shí),得到的AUC值為0.77左右、Recall值為0.70左右,對(duì)性能影響不大。從圖4(b)中我們可以看出,在Amazon數(shù)據(jù)集中,使用16、32、64、128作為圖嵌入向量的維度時(shí),得到的AUC值略有波動(dòng),圖嵌入向量維度為64時(shí)AUC值最大,為0.95,而Recall值為0.88左右,對(duì)性能影響不大。從圖4(c)中我們可以看出,在Yelp數(shù)據(jù)集中,使用不同正例采樣與負(fù)例采樣的比例時(shí),對(duì)性能有較大的影響,尤其在比例為1∶0.2 時(shí)Recall值為0.50,在比例為1∶0.5時(shí)Recall值為0.59,說(shuō)明發(fā)生了不同程度的過(guò)擬合。從圖4(d)中我們可以看出,在Amazon數(shù)據(jù)集中得到的結(jié)果與Yelp相似,在比例為1∶0.2時(shí)Recall值為0.66,也發(fā)生了一定程度的過(guò)擬合。
圖4 不同超參數(shù)值得到的評(píng)估指標(biāo)值
本文研究多關(guān)系圖中利用潛在相似節(jié)點(diǎn)的特征對(duì)機(jī)器賬號(hào)檢測(cè)的影響。為了增強(qiáng)基于圖神經(jīng)網(wǎng)絡(luò)的機(jī)器賬號(hào)檢測(cè)模型,更好地聚合潛在相似節(jié)點(diǎn)的特征,提出對(duì)抗多關(guān)系圖神經(jīng)網(wǎng)絡(luò)檢測(cè)模型ADMR-GNN。該方法能夠在訓(xùn)練過(guò)程中使用生成對(duì)抗網(wǎng)絡(luò)改變多關(guān)系圖的結(jié)構(gòu)、根據(jù)相似度篩選出相似的鄰居節(jié)點(diǎn)、在多個(gè)關(guān)系圖中聚合相似鄰居節(jié)點(diǎn)的特征,得到表達(dá)能力更強(qiáng)、更加精確的表征向量用于分類(lèi)。實(shí)驗(yàn)結(jié)果表明,利用了潛在相似節(jié)點(diǎn)特征的ADMR-GNN在AUC和Recall評(píng)估指標(biāo)中均好于當(dāng)前已有的基于圖神經(jīng)網(wǎng)絡(luò)的機(jī)器賬號(hào)檢測(cè)方法。下一步工作中,我們將研究如何更好地利用節(jié)點(diǎn)相似度對(duì)鄰居節(jié)點(diǎn)進(jìn)行篩選,進(jìn)一步提升模型的檢測(cè)性能。