劉欣然,徐雅斌*
(1. 北京信息科技大學網絡文化與數字傳播北京市重點實驗室 北京 朝陽區(qū) 100101;2. 北京信息科技大學計算機學院 北京 朝陽區(qū) 100101)
社交機器人是一種具有虛擬人格化形象的算法智能體,它們滲透于社交網絡之中,通過大量連接社交網絡用戶并發(fā)送特定信息,在一定程度上影響著公眾輿論。其中,部分社交機器人利用了其對于輿論的影響力,在社交網絡中實施謠言傳播、虛假消息散布等惡意行為,威脅著社交網絡的安全與穩(wěn)定?;诖?,針對社交機器人的檢測技術成了近年來的研究熱點。
然而,為逃避檢測,另有一部分社交機器人通過升級換代,具有了逼真的網絡身份(頭像、用戶名等詳細的個人資料)、發(fā)送帶有情感色彩博文的能力、相當數量的粉絲及關注者等一系列更為“類人”的網絡形象特征。本文將上述經過升級的社交機器人命名為“類人”社交機器人?;谄洹邦惾恕钡膶傩裕瑥暮A康木W絡用戶群體中識別出“類人”社交機器人的難度更大,正因如此,能夠使用相應的技術手段對它們進行有效、準確的檢測就顯得更加重要。
與普通的社交機器人檢測任務相同,“類人”社交機器人檢測,旨在使用分類模型對“類人”社交機器人用戶和人類用戶進行二分類。然而,現實中能夠直接從社交網絡中識別并獲取到的“類人”社交機器人用戶的數量遠少于正常人類用戶的數量,在此情況下訓練得到的檢測模型將存在嚴重的過擬合問題。為了獲得性能更為優(yōu)越的檢測模型,就要求在訓練模型之前首先進行訓練數據集的擴充。由于“類人”社交機器人已經混跡在真實人類用戶之中且難以被“識破”,那么便可以學習人類用戶的社交行為數據,并生成相似數據,以達到擴充其檢測訓練集的目的。
為實現數據擴充,文獻[1]提出使用數字DNA編碼社交機器人用戶的行為壽命,并使用遺傳算法對當前的機器人用戶進行迭代優(yōu)化,由此生成符合實驗要求的數據。雖然該方法具有一定的作用,但是需要事先對采集到的每個數據樣本進行建模,工作量大、且實現效率低。
不同于文獻[1],文獻[2-3]分別提出使用生成式對抗網絡(generative adversarial networks, GAN)和改進的條件對抗網絡(conditional generative adversarial networks, CGAN)來擴充社交機器人數據集。文中二者均取得了良好的擴充效果,且提出的方法相較于文獻[1]均更易于操作、實現效率更高。但是文獻[2-3]均未考慮到GAN 的固有缺點(如生成器模式崩潰問題等)對于數據擴充結果可能產生的影響,更沒有提出相應的解決辦法。
為緩解GAN[4]生成器的模式崩潰問題,文獻[5]提出了進化生成式對抗網絡(evolutionary generative adversarial networks, E-GAN)。訓練中,E-GAN 借用種群進化的思想訓練生成器、使用多目標函數評價各生成器的性能并保留最優(yōu)個體,以此保證了生成的數據同時具有較高的“真實性”與多樣性,從而緩解了模式崩潰問題。但是E-GAN 的設計并非完美。首先,由單個全連接網絡或卷積網絡構成的生成器,難以從輸入的隨機噪聲中充分挖掘出與訓練數據相關的隱藏特征,導致生成數據的“真實性”與多樣性程度差強人意。其次,E-GAN 生成器損失函數的優(yōu)化目標存在自相矛盾的現象,導致訓練過程中模型收斂速度慢、生成器梯度不穩(wěn)定;訓練結束后,生成數據的質量優(yōu)劣不一。
為優(yōu)化E-GAN 的訓練效果,文獻[6]提出修改E-GAN 生成器的損失函數及判別器結構,以避免梯度消失的發(fā)生;文獻[7]提出改變判別器的輸出形式及生成器的損失函數,從而提高生成數據的多樣性;文獻[8]提出使用帕累托優(yōu)勢度(Pareto dominance)函數作為評估生成器性能的多目標評估函數;文獻[9]在E-GAN 的 “突變”步驟后引入“交叉”步驟,以進一步提高生成數據的多樣性。文獻[6-9]的實驗結果較之原始E-GAN 均有一定的提高,但是均未解決制約模型性能提高的本質問題。
基于此,本文提出了一種基于改進的海林格距離的變分進化生成式對抗網絡(Hellinger distance based variational evolutionary generative adversarial network, HVE-GAN)模型,以提高E-GAN 性能、實現“類人”社交機器人檢測數據集的有效擴充。
E-GAN 的結構如圖1 所示,若無特殊說明,則文中D特指判別器(discriminator),D 特指解碼器(decoder)。父代生成器Gθ通過變異產生子代生成器,子代生成器分別生成數據,通過評估函數對于各子代生成器的性能進行評估,性能最優(yōu)的子代生成器將被保留作為下一次變異的父代;此時被挑選出來的生成器與判別器進行對抗訓練,且根據對抗結果進行優(yōu)化。
圖1 E-GAN 模型結構圖
由圖1 可知,E-GAN 模型在訓練過程中借用了進化算法的思想,其每個訓練步驟由3 個階段組成:
1)變異(variation):給定一個父代生成器個體Gθ,使其在不同的損失函數的指導下變異并產生新的子代
2)評價(evaluation):對于每一個子代生成器,它們的性能將在當前的“自然環(huán)境”(即與判別器的對抗訓練)下,由評價函數給出;
3)選擇(selection):E-GAN 將根據子代生成器的評估值進行“自然選擇”,即優(yōu)秀的子代生成器被保留到下一代,作為下一次訓練過程中進行變異的父本。
變分自編碼器[10](variational autoencoder, VAE)是以自編碼器(autoencoder, AE)[11]結構為基礎的深度生成模型。但是AE 的解碼器不具有數據生成能力,而VAE 通過引入“重參數化”過程,使其解碼器具有了數據生成能力。
為了進一步提高E-GAN 生成數據的“真實性”與多樣性,本文將E-GAN 的生成器由變分自編碼器取代,形成變分進化生成式對抗網絡(variational evolutionary generative adversarial networks, VEGAN)。
VE-GAN 的模型結構如圖2 所示。修改后的生成器中,編碼器E 負責接收人類用戶數據,并將其編碼至包含人類用戶數據隱藏特征的低維數據空間,解碼器D 負責從中采樣,并將采樣數據在不同的損失函數的指導下解碼為與人類用戶數據相似的“類人”社交機器人數據。
圖2 VE-GAN 模型結構圖
對生成器的結構進行修改后,模型的損失函數也要相應地發(fā)生變化。借鑒文獻[12],則此時編碼器E 的損失函數為:
其中,
式中,X為真實數據;先驗分布Z~N(0,1),為重參數化后的隱空間數據;Q(|X)與P(Z)分別為與Z采樣分布情況的表示。
對于單個生成器G而言,其損失函數為:
式中,LE?GAN(G_fake)為用于指導當前生成器變異的損失函數。判別器D的損失函數為:
則模型整體的損失函數為:
將E-GAN 的單個網絡結構的生成器修改為VAE 結構,修改后:1)模型使用編碼得到的隱空間數據而非隨機噪聲進行數據生成,隱空間數據中含有豐富的訓練數據隱藏特征信息,有助于模型在信息加持下,生成“真實性”和多樣性程度與訓練數據更為相似的用戶數據;2)生成器訓練過程中,VAE 的損失函數能夠迫使解碼器輸出與訓練數據更為相似的數據,不斷提升解碼器利用隱空間數據擬合訓練數據的能力。以上兩點共同作用,使得生成數據的“真實性”和多樣性程度得到了提高。
用于指導E-GAN 生成器變異的損失函數之一為Heuristic 損失函數,其定義為:
推理可知,最小化式(6)相當于最小化[KL(pg||preal)?2JS(pg||preal)],這便意味著生成器要在減小pg和preal之間的KL 散度的同時增大其JS 散度,顯然該目標是自相矛盾的。在實踐中,該目標也會嚴重影響生成器梯度的穩(wěn)定性。因此需要對該損失函數進行替換。
本文使用改進的海林格距離(Hellinger distance)替換Heuristic 損失函數,將其作為生成器的損失函數之一。海林格距離是f 散度的一種,被用來度量兩個概率分布之間的距離。在可度量空間上,海林格距離被定義為:
式中,P(x)和Q(x)分 別為在給定連續(xù)空間X中,x∈X的兩個連續(xù)性分布。由于海林格距離具有對于不平衡數據集不敏感的優(yōu)秀特征,被廣泛應用于采樣方法中?;谏鲜隹紤],可將海林格距離應用于本模型,作為指導生成器變異的損失函數。
同時,為了避免在具體的訓練過程中,由于生成器生成的數據量較大,導致原始的海林格距離的值也較大,從而給梯度帶來較大的影響,本文將原始的海林格距離進行了縮放改進,使其更加適用于當前模型的特點。
改進的海林格距離為:
式(8)可理解為:生成器試圖縮小其生成數據的實際概率分布值與目標概率分布值1 之間的海林格距離。式中,n為生成器生成數據的數量。式(8)僅對原始公式進行了縮放處理,既不會影響公式的性能,又能很好地將函數值控制在較小的范圍內,從而也穩(wěn)定了梯度。
在更為魯棒的損失函數(改進的海林格距離)的指導下,徹底解決了在訓練過程中,由不合理的損失函數優(yōu)化目標導致的生成器梯度不穩(wěn)定問題,從而使生成數據的質量也得到了保證。本文將進行了上述生成器結構與損失函數改進的模型稱為基于海林格距離的變分進化生成式對抗網絡(HVEGAN),并使用該模型完成“類人”社交機器人檢測數據集的擴充任務。
利用本文提出的HVE-GAN 進行“類人”社交機器人數據生成的算法步驟如下。
算法:“類人”社交機器人數據生成
輸入:人類用戶的數據X
輸出:“類人”社交機器人數據X′
1) 初始化一個VAE 結構的生成器G0,并令其編碼器 Enc0為初代編碼器,解碼器為初代解碼器,初始化一個判別器D;
2) 將X輸入給E nc0,并將其編碼得到的包含人類用戶隱藏特征的隱空間數據輸 入給 D ec0,令其解碼得到“類人”社交機器人數據=Dec();
4) 利用評估函數F=Fq+γFd,γ>0評 估G0的性能,并給出相應的評估分數,其中,γ為一個可學習的超參數,Fq為適應度分數,Fd為多樣性分數;
5) 優(yōu)化判別器D,以提高判別器性能,從而更好地促進生成器的進化;
6) 將X輸入給子代生成器的編碼器種群{Enc1,Enc2,···,Encn} 中 的各編碼器個體 Enci,n為子代生成器的數量,i∈{1,2,···,n};經過單獨的編碼及重參數化后,分別得到數據集的不同隱空間變量數據集將z中 的各數據集分別輸入給子代生成器的解碼器種群 { Dec1,Dec2,···,Decn}中相應的解碼器個體D eci,各解碼器分別解碼出“類人”社交機器人數據集
8) 由F給出該生成數據集的候選子代生成器Gi的評估分數,若任意Gi的評估函數值均低于G0的值,則繼續(xù)選擇G0作為本次訓練中變異的父本生成器,否則根據他們的評估函數值排名選出最優(yōu)模型代替G0作為本次的變異父本;
9) 本次變異父本G0在不同的損失函數的指導下進行變異,得到子代生成器及其相應的編碼器、解碼器種群;
10) 優(yōu)化判別器D;
11) 若未完成預設次數的訓練,則返回步驟6),進入下一次訓練;若完成預設次數的訓練后停止訓練,并進入步驟12);
12) 取得HVE-GAN 當前的解碼器模型,對其輸入z~N(0,1),獲得所需“類人”社交機器人的數據X′。
在上述算法中,步驟1)~步驟5)為利用HVEGAN 的初始生成器生成“類人”社交機器人數據階段;步驟6)~步驟11)為子代生成器的數據生成階段;步驟11)為循環(huán)條件,步驟12)為最終的檢測數據集生成階段。
其中,步驟4)提到的評估函數F的適應度分數為:
即Fq為判別器對于待評估數據給出的真實性度量。多樣性分數為:
即Fd為判別器D的優(yōu)化函數時,通過D的梯度值的高低反映出待評估數據分布的集中程度。梯度值越小,則數據分布越分散,其多樣性程度越高。
為了驗證HVE-GAN 模型性能的優(yōu)越性,及其生成的“類人”社交機器人數據的“真實性”與多樣性,選取文獻[3]提出的社交機器人數據集擴充模型,以及E-GAN 作為基線模型,與本文提出的VE-GAN、HVE-GAN 一同進行數據生成,并進行對比實驗;為了驗證損失函數改進的有效性,進行E-GAN、VE-GAN 及HVE-GAN 在訓練過程中生成器損失函數的變化情況對比實驗。
本文所提出的HVE-GAN 模型是基于E-GAN模型(http://github.com:WANG-Chaoyue/Evolutionary GAN.git)做出的進一步改進。模型搭建于Theano框架下。HVE-GAN 的生成器中,編碼器為有一個隱藏層的全連接層結構,隱藏層的激活函數為LeakyRelu,輸出層的激活函數為Sigmoid;解碼器為有3 個隱藏層的全連接層結構,隱藏層的激活函數為LeakyRelu,輸出層為一層線性連接層,沒有激活函數;判別器同樣為有3 個隱藏層的全連接層結構,其隱藏層的激活函數為LeakyRelu,而輸出層的激活函數為Sigmoid。E-GAN 的生成器與判別器結構與VE-GAN 無異,只是減少了編碼器結構。
模型訓練時,上述模型的編碼器、解碼器或生成器、判別器均使用了Adam 優(yōu)化算法,生成器與判別器的學習率均為0.0001,編碼器的學習率為0.0002。訓練時的batch size 大小設為64,訓練次數設為10000。同樣,除了編碼器的超參數被去掉外,E-GAN 與HVE-GAN 的超參數設置均一致。
本文基于代碼(https://github.com/eriklindernoren/PyTorch-GAN.git)對文獻[2]中提出的GAN 的社交機器人生成模型進行了復現。GAN 搭建于PyTorch框架之下,生成器與判別器均采用了具有3 個隱藏層的全連接層結構,隱藏層的激活函數均為LeakyRelu。其中,GAN 判別器輸出層的激活函數為Sigmoid。訓練時,GAN 的其他超參數的設置也與E-GAN 完全相同,不再贅述。
由于“類人”社交機器人檢測技術的原理為基于用戶的社交行為特征向量進行二分類,則擴充檢測數據集即為擴充“類人”社交機器人的社交行為特征向量,因此需要提取人類用戶的社交行為特征,構造出每一位用戶的特征向量用作實驗的訓練數據。為此,本文借鑒文獻[13-14],提取了具有較高信息熵且普適的情感、非情感兩類特征。
1) 情感特征提取。情感特征特指用戶所發(fā)布的微博文本(以下簡稱博文)中所蘊含的語義情感特征。本實驗借鑒文獻[14],使用基于Attention 機制的BiLSTM 模型進行用戶博文情感特征提取。博文情感特征定義為:
式中,K為該用戶發(fā)布的所有博文的數量;affective_valuesi表示該用戶發(fā)布的第i條博文的情感分數。Mean_of_affective_values 的取值范圍為[0,1],越靠近0 或者1,則該用戶所發(fā)布的博文中所蘊含的情感越強烈鮮明,該用戶是真實人類用戶的概率越大;若該值越靠近0.5,表明該用戶發(fā)布的微博文本中蘊含的情感越微弱,或具有正向情感傾向和負向情感傾向的微博分布越均勻,則該用戶是社交機器人用戶的可能性越大。
2) 非情感特征提取。本文提取的非情感特征共3 類:用戶發(fā)微博的時序特征、微博用戶賬號特征、用戶微博傳播特征,如表1~表3 所示。對于表中提到的Pic、Name、Verified、Location 4 個特征,分別用“1”或“0”替代“是”或“否”的值,其他非情感特征的提取方法參見文獻[13-14],此處不再贅述。
表1 用戶發(fā)微博的時序特征
表2 微博用戶賬號特征
表3 用戶微博傳播特征
經過上述兩個步驟的特征提取,最終構造出的人類用戶特征向量,即可作為HVE-GAN 的“學習對象”。
模型訓練完成后,即可利用訓練好的生成器生成實驗所需的數據。但由于訓練時間較短,生成的數據雖然與真實數據的差異性較小,仍然難以完全符合實驗需求的精度,因此需要人為對數據進行預處理,處理方法如下:
1)將負數全部重置為0;
2) FriendCount 與FollowerCount 的特征數據僅保留整數部分;
3)對Pic、Name、Verified、Location 的特征數據,篩選出大于等于0.6,小于等于1.5 的數值,將其更新為1,小于0.6 的值將其更新為0;去掉這4 列值中不為0 或1 的特征向量數據;
4)去掉Mean_of_affective_values >1 的特征向量數據。
經過上述處理后的數據最終用于本文的實驗。
實驗一:生成數據“真實性”對比實驗。
為了驗證HVE-GAN 模型性能的優(yōu)越性,及HVE-GAN 生成的“類人”社交機器人特征向量數據是否可以“以假亂真”,本實驗利用各模型分別生成250 個“類人”社交機器人用戶數據集,分別與同一批的250 個人類用戶數據集混合,并使用分類器對各混合數據集進行分類,根據分類情況評價各模型的性能及生成數據的“真實性”程度。實驗中選取AdaBoost、支持向量機(support vector machines,SVM)、邏輯回歸(logistic regression)分類器,對上述經過混合數據集中的數據進行分類。并使用精確度(precision)、準確度(accuracy)、召回率(recall)、F1 值4 個指標對于分類結果進行評價。上述分類器對各個模型生成的“類人”社交機器人特征向量數據的分類評價情況如表4 所示。
由表4 可知,利用AdaBoost 分類器對于各模型生成的數據的分類情況相同;使用Logistic Regression 分類器對于上述模型生成的數據進行分類時,HVE-GAN 的評價指標值均明顯低于其他模型;使用SVM 分類器進行分類時,HVE-GAN 在Precision 與Accuracy 指標值上僅略高于VE-GAN,但低于基線模型。且使用Logistic Regression 與SVM 分類時,VE-GAN 的分類評價情況也明顯優(yōu)于基線模型。
表4 各模型生成數據分類情況
由此可得,HVE-GAN 生成的數據質量優(yōu)于基線模型,即其性能優(yōu)于基線模型。且由VEGAN 的表現可知,模型性能的提升主要依賴于生成器模型結構的改進,由此證明了模型結構改進的有效性。由表4 還可以看出,雖然HVE-GAN 分類結果的Recall 值較高,但是Precision 與Accuracy均低于0.5(即分類器能夠正確分類的概率低于0.5),說明分類器雖然能識別出人類用戶的特征向量數據,但是難以區(qū)分生成的“類人”社交機器人的數據。由此可知,HVE-GAN 生成的數據具有較高的“真實性”。
實驗二:生成數據多樣性對比實驗。
本實驗旨在通過使用各模型一同生成“類人”社交機器人特征向量數據,并進行對原始數據覆蓋圖像的對比,驗證HVE-GAN 在生成數據多樣性方面的優(yōu)越性及模型結構改進的有效性。
為了突出體現各模型生成的數據的多樣性差異,本實驗利用熵權法計算出人類用戶特征向量中各特征的權重,選擇權重排名前三的特征來表示該用戶,并基于上述特征進行數據覆蓋圖像的繪制。權重較大,表明該特征對于用戶身份識別的影響較大,從而可以代表該用戶。
根據熵權法計算結果,本實驗分別進行了粉絲數,發(fā)布博文時間間隔方差(以下簡稱時間間隔方差)和關注數特征的生成數據的覆蓋對比。若某個模型生成的“類人”社交機器人特征向量數據可以較高程度地覆蓋人類用戶數據,則可以證明該模型生成的數據多樣性程度高。
如圖3 所示,HVE-GAN 除了在時間間隔方差特征覆蓋對比實驗中表現略遜于E-GAN 外,其生成的數據覆蓋程度相比其他模型均有明顯的優(yōu)勢。該情況一方面證明了E-GAN 本身即具有強大的生成能力,另一方面也證明了HVE-GAN 生成的數據的多樣性程度顯然更勝一籌,也可證明HVE-GAN模型的性能優(yōu)于基線模型。
圖3 特征覆蓋對比
VE-GAN 的覆蓋能力雖然不如HVE-GAN,但它們之間的差距并不大,由此也可以證明模型結構的修改是提高生成數據的多樣性程度的決定因素。又由圖3 可知,HVE-GAN 生成的數據雖然與基線模型相比其多樣性程度有了明顯的提高,但是與原始訓練數據相比還有較大的差距。這是由于為了提高本次實驗效率,對模型進行的訓練時間較短、訓練不夠充分導致的。
實驗三:損失函數修改有效性驗證實驗。
用于指導E-GAN 變異的損失函數共有3 種,除了Heuristic 損失函數外,還有Minimax 與Least Square 兩種損失函數,其定義分別為:
經推導,Minimax 損失函數的優(yōu)化目標相當于最小化生成數據的實際分布概率與目標分布概率之間的JS 散度;Least Square 損失函數的優(yōu)化目標為縮小生成數據的實際分布概率與目標分布概率之間的均方誤差。上述兩個函數的優(yōu)化目標均為縮小生成數據的實際分布概率與目標分布概率之間的距離,與本文的損失函數設計目標是完全一致的。
E-GAN 生成器損失函數的變化情況如圖4a 所示,可見,Heuristic 損失函數在E-GAN 訓練過程中震蕩嚴重,由此可以推導出,在該損失函數指導下進行訓練的生成器模型梯度十分不穩(wěn)定,導致訓練出的生成器生成數據的質量參差不齊。
VE-GAN 生成器的損失函數變化趨勢如圖4b所示,由圖可知訓練中VE-GAN 生成器的Heuristic損失函數震蕩幅度依然較大??梢?,即使進行了模型結構的改進,Heuristic 損失函數依然影響著生成器的性能。
如圖4c 所示,進行了損失函數的更換的HVEGAN,訓練中生成器的損失函數均呈平穩(wěn)下降的趨勢,模型的收斂速度得到了顯著提升。由此可知,HVE-GAN 生成器的性能及生成數據的質量得到了持續(xù)穩(wěn)定的提高??梢姳疚奶岢龅膿p失函數的改進是必要和有效的。
圖4 各生成模型生成器損失函數變化趨勢
針對“類人”社交機器人檢測所需的訓練數據不足的問題,本文提出了一種數據集擴充模型HVE-GAN,模型將生成器修改為VAE 結構,提高了生成的“類人”社交機器人數據的“真實性”與多樣性;將Heuristic 損失函數修改為改進的海林格距離,穩(wěn)定了生成器的梯度,提高了模型收斂速度,保證了生成數據的質量。對比實驗結果也充分表明,本文提出的HVE-GAN 模型,在生成數據“真實性”和多樣性方面優(yōu)于基線模型;在訓練過程中其損失函數的變化趨勢更加平穩(wěn),從而證明了HVE-GAN 性能的優(yōu)越性及模型結構修改的有效性。