王麗娜,郭曉東,汪潤
(1. 武漢大學(xué)空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072;2. 武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院,湖北 武漢 430072)
在自媒體時代,用戶評論社區(qū)中的每一個網(wǎng)絡(luò)用戶都可以自由地發(fā)布自己的觀點,其中包括用戶對產(chǎn)品的質(zhì)量或服務(wù)的評論。例如美國最大的用戶評論平臺Yelp,平均每天有三百多萬的用戶訪問,擁有超過1.71億條評論。在國內(nèi),隨著淘寶、京東、大眾點評等電子商務(wù)平臺的發(fā)展,越來越多的消費者選擇通過商品評論社區(qū)來分享自己的購物體驗、評價商品質(zhì)量和服務(wù)。用戶在發(fā)布評論的同時也傾向于依賴其他用戶的評論做出消費決策。文獻[1-2]指出用戶評論的傾向性(積極或消極)是影響商品口碑的一項重要因素,此外,文獻[3-4]的調(diào)查研究表明商品的口碑會從多個方面影響消費者的消費決策,比如消極評論的增加會導(dǎo)致餐館減少 5%~9%的收入,另一項研究[5]表明80%的美國用戶承認會參考用戶評論來選擇購買的產(chǎn)品和服務(wù)。面對自由開放的用戶評論社區(qū),針對某一件商品或某一款服務(wù),發(fā)布大量相同傾向性的用戶評論,比如大量好評或大量差評,從而提升或降低商品或服務(wù)的口碑,能產(chǎn)生巨大的商業(yè)利益,所以惡意組織或個人選擇多種方式生成大量的虛假評論來攻擊競爭對手或提升自身產(chǎn)品的影響力,其中,面向文本的眾包攻擊是一種被廣泛應(yīng)用的虛假評論生成方法。面向文本的眾包攻擊,簡稱為眾包攻擊(crowdturfing attack),即采用眾包的方式雇傭數(shù)個網(wǎng)絡(luò)寫手,捏造大量不符合事實的評論[6],詆毀競爭對手或提高自己的口碑。惡意的眾包攻擊會對公平競爭產(chǎn)生非常負面的影響,不僅對商家造成傷害,也會破壞用戶評論社區(qū)的健康環(huán)境,導(dǎo)致用戶評論的可信度下降,消費者將失去主要的獲取網(wǎng)絡(luò)商品信息的渠道[7-9]。
傳統(tǒng)基于人工的眾包攻擊方法具有以下不足。1) 攻擊成本高、效率低,基于人工的眾包攻擊方法需要支付大量的酬勞,并且效率低,難以形成大規(guī)模的攻擊行動;2) 攻擊效果差,在面對大規(guī)模的真實攻擊場景中,需要在限定的時間內(nèi)生成大量的虛假評論,導(dǎo)致了人工生成的評論質(zhì)量低,效果差。因此針對傳統(tǒng)眾包攻擊中的諸多不足,一種新型的攻擊方式逐漸被關(guān)注,即自動化眾包攻擊(automated crowdturfing attack)[10],兩者的比較如圖1所示。在人工眾包攻擊中,攻擊者將任務(wù)分發(fā)給網(wǎng)絡(luò)寫手,網(wǎng)絡(luò)寫手撰寫大量的虛假評論。而自動化眾包攻擊方法使用計算機程序取代網(wǎng)絡(luò)寫手,由程序自動撰寫大量虛假評論。自動化眾包攻擊利用機器學(xué)習(xí)模型在特征表示方面的巨大優(yōu)勢,自動地生成大量高質(zhì)量、逼真的用戶評論。這種攻擊方式可以有效地滿足大規(guī)模、真實場景的攻擊要求,能夠快速地生成大量的高質(zhì)量用戶評論。因此,自動化眾包攻擊成為目前用戶評論社區(qū)攻擊的重要手段。
圖1 傳統(tǒng)眾包攻擊與自動化眾包攻擊的比較
近些年來,針對文本自動化眾包攻擊的研究大多針對英文文本。文獻[10-18]提出了面向英文用戶評論的虛假評論生成方法和自動化眾包攻擊方法。這類方法采用獨熱向量(該向量的索引位置為 1,其他位置為0)表示英文字母,任意2個字母之間都是孤立的,無法表示語義層面上的相關(guān)信息,這使面向英文文本的方法并不適用于面向中文用戶評論的自動化眾包攻擊。英文中的每個單詞都由空格或標點隔開,不同長度的單詞也都由 26個基礎(chǔ)字母組成,這種簡單的語言結(jié)構(gòu)更利于深度網(wǎng)絡(luò)的學(xué)習(xí);而中文句子中的詞匯沒有明顯的分界,且組成每個詞匯的漢字數(shù)量龐大,漢字與漢字之間本身又具有一定的語義聯(lián)系,使中文句子的結(jié)構(gòu)比英文句子的結(jié)構(gòu)復(fù)雜,這給中文的處理造成了困難。
針對上述問題,本文利用嵌入網(wǎng)絡(luò)學(xué)習(xí)漢字間上下文語義關(guān)系的特性,解決英文方法中獨熱向量表示方法不能捕捉漢字之間語義聯(lián)系的問題,提出了一種面向中文文本的自動化眾包攻擊方法,流程如圖2所示,具體如下。1) 利用漢字嵌入網(wǎng)絡(luò)方法學(xué)習(xí)漢字間的語義距離,其中語義接近的漢字所表示的向量距離相近,語義較遠的漢字則向量距離較遠。同時漢字嵌入網(wǎng)絡(luò)本質(zhì)上是一種低維映射,可以有效減少后續(xù)網(wǎng)絡(luò)體積,包括神經(jīng)元個數(shù)和訓(xùn)練參數(shù)個數(shù),加快訓(xùn)練速度。2) 基于長短期記憶網(wǎng)絡(luò)(LSTM,long short-term memory)模型進行句法學(xué)習(xí),并解決中文評論生成中的長依賴問題。例如中文評論“衣服收到,做工精細,沒有色差…衣服上身效果特別好”中,2個漢字的組合“衣服”相互長依賴,但與評論中間省略的漢字依賴性很小,擁有記憶長依賴特性的LSTM網(wǎng)絡(luò)在該類問題上表現(xiàn)效果優(yōu)異,通過多層LSTM網(wǎng)絡(luò)可以進一步學(xué)習(xí)中文評論中漢字的排列規(guī)律。3)采用Softmax全連接網(wǎng)絡(luò)來生成大量多類型中文評論,滿足自動化眾包攻擊的需求。Softmax全連接網(wǎng)絡(luò)基于之前兩層網(wǎng)絡(luò)的計算生成一組漢字概率分布,Softmax函數(shù)不同的分層對應(yīng)不同漢字的生成概率,基于生成概率進行隨機抽樣可以得到多個可選擇的高概率漢字,生成評論中每個位置上的漢字都有更多的選擇,則可以組合成多種內(nèi)容,從而獲得大量多類型的生成評論,但是評論的內(nèi)容質(zhì)量會下降。所以本文進一步使用溫度參數(shù)T來平衡生成評論的質(zhì)量和多樣性。參數(shù)T對分層的漢字生成概率進行縮放,T越大,分層間隔的差異越小,挑選每個漢字的概率趨同,隨機抽樣會抽取更多的低概率漢字,使模型生成評論類型更多但質(zhì)量下降;T越小則結(jié)果相反。
圖2 面向中文文本的自動化眾包攻擊流程
為了驗證所提文本攻擊方法的有效性,本文通過以下3個角度進行驗證。1)基于語言學(xué)的文本相似性分析。對評論進行語言學(xué)分析是鑒別評論內(nèi)容虛假的主要手段,例如詞袋分析、LIWC分析等。這里使用基于語言學(xué)分析的分類器來對比生成評論和真實評論的相似性,并驗證生成評論的真實性。2)基于文本拷貝檢測的文本生成多樣性評估。生成句型單一的虛假評論并不能滿足自動化眾包攻擊的需求,本文使用拷貝檢測工具來對比本文攻擊方法和傳統(tǒng)基于名詞替換的攻擊方法,并驗證生成評論的多類型。3)基于人工的文本真實性測試。機器手段只能分析生成評論的句子構(gòu)成和特征,句子的可讀性仍然需要端到端的用戶調(diào)查方式來評估。實驗結(jié)果表明,本文提出的面向中文文本的自動化眾包攻擊方法,能夠快速、高效地生成大量的高質(zhì)量文本,可以有效地應(yīng)用于大規(guī)模、真實的用戶評論社區(qū)攻擊場景中。本文的主要貢獻如下。
1) 提出了一種基于漢字嵌入 LSTM 模型的自動化眾包攻擊方法,該方法面向中文用戶評論社區(qū),可以自動地生成大量逼真的虛假評論。
2) 提出了一種基于漢字的嵌入方法,該方法可以有效地學(xué)習(xí)漢字之間的語義關(guān)系,能夠生成更加真實的中文虛假評論。
3) 提出了一種基于漢字的隨機抽樣方法,通過在抽樣分層函數(shù)中引入溫度參數(shù)T來控制每一個漢字的采樣概率,可以有效地平衡本文攻擊方法生成虛假評論的質(zhì)量和數(shù)量,極大地提高了自動化眾包攻擊的效果。
傳統(tǒng)的自動文本生成技術(shù),比如n-gram模型和基于文本模板的模型[12-14],在模仿真實文本時都有局限性,這些技術(shù)所生成的文本存在語法錯誤、詞不達意等問題,很可能會被用戶判斷為虛假內(nèi)容。隨著統(tǒng)計模型和神經(jīng)網(wǎng)絡(luò)的發(fā)展和普及[15-16],基于LSTM[17]模型的文本生成技術(shù)逐漸引起了研究者的關(guān)注。Yu等[18]的研究表明基于 LSTM 模型的文本生成技術(shù)可以生成更加連貫的文本。Auli等[19]的研究工作表明,基于LSTM網(wǎng)絡(luò)的語言生成模型已經(jīng)成為一種結(jié)構(gòu)良好且極具前景的文本生成方法。LSTM 網(wǎng)絡(luò)模型被廣泛用于各個領(lǐng)域,Kannan[20]將真實用戶內(nèi)容聚類,使用LSTM網(wǎng)絡(luò)模型構(gòu)建效果良好的自動電子郵件應(yīng)答器;Karpathy等[21]使用雙向LSTM網(wǎng)絡(luò)模型來生成圖像的文本描述,并在諸多圖片檢索實驗中取得了良好的效果;Serban等[22]使用一種擴展和分層遞歸編碼的LSTM模型來生成電影場景中的對話文本,能夠高度還原電影對話的連貫性;Shang等[23]通過搜集大量社交網(wǎng)絡(luò)中的對話文本,使用LSTM 模型實現(xiàn)了社交軟件中的自動問答。雖然LSTM 模型在文本生成領(lǐng)域已經(jīng)取得了多個成果,但是這些研究旨在提高生成文本的質(zhì)量。對于自動化眾包攻擊,不僅需要文本質(zhì)量足以欺瞞用戶,還要產(chǎn)生足夠多的不同類型文本來改變評論區(qū)的褒貶比例,達到影響消費者的消費決策的目的,這是傳統(tǒng)文本生成技術(shù)不能滿足的。
針對傳統(tǒng)眾包攻擊方法存在的成本高、規(guī)模小、效果低等不足,自動化眾包攻擊方法逐漸吸引了研究者的關(guān)注。近些年,研究者主要圍繞面向英文用戶評論的虛假評論生成和自動化眾包攻擊等展開了一系列的研究工作。Bartoli等[11]在2016年提出了自動生成虛假評論的可能性,并使用神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)生成方法,通過真實用戶調(diào)查研究,驗證了自動生成虛假評論的可行性。Yao等[10]在 2017年提出自動化眾包攻擊的方法,針對最大的英文評論平臺Yelp,研究者使用神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)意大利餐廳評論,生成一套虛假評論模板,然后通過關(guān)鍵詞替換的方式生成針對日本餐廳的虛假評論,結(jié)果表明這些虛假評論足夠真實且可以欺騙母語為英語的用戶。Yu等[18]在2018年提出了一種針對社交網(wǎng)絡(luò)里惡意競爭的自動化眾包攻擊方法,研究者以Twitter平臺為例,將評論文本按情感傾向聚類成不同極性的評論集,使用神經(jīng)網(wǎng)絡(luò)有針對性地學(xué)習(xí)并生成對應(yīng)極性的虛假評論,實驗表明 85.2%的生成評論具有正確的語法并具有一定的語義。這些研究成果表明自動化眾包攻擊方法是一種十分有研究意義的新型攻擊方式,會給各類評論系統(tǒng)帶來巨大的威脅。雖然面向英文用戶評論的自動化眾包攻擊方法已經(jīng)取得了比較好的效果,但直接用于進行中文自動化眾包攻擊的效果并不好[24]。原因主要在于,面向英文的自動化眾包攻擊使用基于字符的循環(huán)神經(jīng)網(wǎng)絡(luò)(char-level RNN)模型,Graves[25]和 Lebret[26]等的研究表明,在英文自然語言生成的問題上,基于字符的循環(huán)神經(jīng)網(wǎng)絡(luò)模型比基于詞匯的循環(huán)神經(jīng)網(wǎng)絡(luò)(word-level RNN)效果更好。但常用漢字比常用英文字母龐大得多,字符集數(shù)量的差距導(dǎo)致每個字符對應(yīng)的字向量也成倍增長,進一步使攻擊模型的參數(shù)、占用的內(nèi)存和計算開銷都成倍增長。同時由于英文和中文本身的區(qū)別,例如英文字母間沒有語義關(guān)系,而漢字之間存在語義關(guān)系,英文詞匯由空格天然分割,漢字詞匯沒有明顯分割,所以上述面向英文用戶評論表現(xiàn)良好的自動化眾包攻擊方法并不適用于中文用戶評論。
面向中文的自動化眾包攻擊方法使用計算機程序自動地生成大量中文虛假評論,這些評論混雜在真實評論中不容易被分辨,且能夠在一定程度上影響用戶的消費決策。本文只關(guān)注生所成評論的文本內(nèi)容能否接近真實評論且不易被鑒別,而其他鑒別虛假評論的因素,如評論與發(fā)布者本身的關(guān)系、發(fā)布者的影響力、發(fā)布者的評論歷史、評論的發(fā)布日期、發(fā)布者的IP地址等不在本文考慮范圍內(nèi)。眾包攻擊方法的假設(shè)前提如下。1)攻擊者有獲取大量評論語料的能力。知識豐富的攻擊者可以從用戶評論社區(qū)上獲得足夠多的真實評論語料來訓(xùn)練攻擊模型。2) 攻擊者可以利用比較容易獲得的計算資源來訓(xùn)練攻擊模型,比如個人電腦、辦公電腦、小型服務(wù)器、租用的云計算服務(wù)器等進行訓(xùn)練。
本文攻擊模型使用的數(shù)學(xué)模型如下:給定一個含有n條真實評論的訓(xùn)練語料集R={r1,r2,r3,…,rn-1, rn},語料集中包含v個不同的漢字,組成漢字集V。對于每條評論r,按順序?qū)位置上的漢字表示為wt。攻擊模型通過學(xué)習(xí)wi之間的語義距離和ri對應(yīng)的句法,并接收生成長度參數(shù)s,生成高質(zhì)量的虛假評論集R'={r1', r2', r3', …},其中,R'包含所有漢字的數(shù)量即為參數(shù)s,虛假評論r1'、r2'、r3'等由攻擊模型輸出的評論劃分標記分開。則攻擊達到的效果為:R和R'在語言學(xué)分類上大致相同,即Tag(ri')=Tag(rj),真實評論集R中任意 2條評論ri和rj不會高度相似,同時R'中的任意評論ri都不與R中任意評論rj高度相似,即sim(ri',rj) ≤ sim(ri,rj)。
攻擊方法的流程如圖3所示。首先抓取真實評論獲得原始語料,對原始語料預(yù)處理后得到訓(xùn)練語料,然后經(jīng)計算依次得到漢字嵌入向量、中間隱向量、漢字概率分布。最后基于漢字概率分布隨機抽樣生成評論。
圖3 攻擊方法流程
1) 原始語料預(yù)處理。從淘寶抓取的原始語料包含大量漢字文本內(nèi)容之外的元素,所以數(shù)據(jù)清洗刪除這類元素包括emoji表情、顏文字和外文字符。然后去除影響嵌入向量計算重復(fù)疊詞和極少使用的漢字,將文本統(tǒng)一編碼為unicode格式方便模型訓(xùn)練。為了在語料中劃分每條評論,本文在每條評論的起始位置添加起始標記
2) 漢字嵌入向量生成。在預(yù)處理之后,訓(xùn)練語料只包含與中文相關(guān)的語素。對比英文語素,中文漢字之間包含豐富的語義相關(guān)性,學(xué)習(xí)這種語義信息可以使攻擊模型生成更加逼真的虛假評論。嵌入網(wǎng)絡(luò)是一種有效且應(yīng)用廣泛的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將訓(xùn)練語料輸入漢字嵌入網(wǎng)絡(luò),經(jīng)過多輪迭代訓(xùn)練后得到關(guān)于每個漢字的嵌入向量(embedding vector),其中,嵌入向量的距離關(guān)系表示漢字之間的語義關(guān)系。
3) 中間隱向量生成。嵌入向量僅包含語義距離關(guān)系,句子構(gòu)成和排列方式是生成評論中更重要的信息。LSTM網(wǎng)絡(luò)具有序列敏感特性,被廣泛應(yīng)用于文本生成領(lǐng)域,本文中使用LSTM網(wǎng)絡(luò)從訓(xùn)練語料中學(xué)習(xí)句子構(gòu)成和排列方式,得到包含句法信息的中間隱向量,用于獲得漢字概率分布。
4) 獲得漢字概率分布。LSTM網(wǎng)絡(luò)學(xué)習(xí)到的寫作方式只是用一些難以琢磨的中間隱向量(hidden vector)表示,所以需要一層全連接網(wǎng)絡(luò)將隱向量所代表的概率分類到每一個漢字元素上。Softmax函數(shù)是應(yīng)用廣泛的多分類函數(shù),其簡單且高效的表現(xiàn)是許多輸出網(wǎng)絡(luò)激活函數(shù)的首選。隱向量輸入Softmax全連接網(wǎng)絡(luò),經(jīng)過前向傳播算法和Softmax分層函數(shù)計算后輸出漢字概率分布,其中把概率最大的漢字作為預(yù)測漢字,對比預(yù)測漢字與訓(xùn)練漢字的誤差,經(jīng)反向傳播算法計算并更新模型參數(shù),訓(xùn)練完畢后Softmax網(wǎng)絡(luò)得到一種隱向量與漢字概率的映射關(guān)系。
5) 隨機抽樣獲得生成評論。漢字嵌入網(wǎng)絡(luò)、LSTM網(wǎng)絡(luò)和Softmax網(wǎng)絡(luò)整體構(gòu)成一個攻擊模型,給定一個起始字符、生成長度參數(shù)s和溫度參數(shù)T。起始字符作為評論生成的種子,生成長度參數(shù)s作為模型輸出的迭代輪次,每一輪次輸入之前已經(jīng)生成的漢字,基于當前輸入漢字序列計算輸出漢字概率分布,然后對概率分布進行隨機采樣即可生成下一個漢字。溫度參數(shù)T控制Softmax的抽樣概率,將在第4節(jié)詳細說明。這里將評論起始標記
攻擊模型經(jīng)上述流程后生成的虛假評論如表 1所示,其中每條評論都是從樣本中隨機抽取的,ID表示各評論在表1中的順序。溫度參數(shù)T越大,生成的評論靈活性越高,攻擊模型可以生成多種多樣豐富的表達,但用詞不當、語序錯誤的風(fēng)險也會增加。
在本文的攻擊方法實現(xiàn)中,首先利用漢字嵌入網(wǎng)絡(luò)從預(yù)處理后的訓(xùn)練語料中學(xué)習(xí)漢字之間的語義關(guān)系,包括漢字共現(xiàn)統(tǒng)計和漢字嵌入權(quán)重計算;然后使用LSTM網(wǎng)絡(luò)在嵌入向量基礎(chǔ)上學(xué)習(xí)句子組成和順序關(guān)系,生成中間隱向量,通過Softmax全連接層將隱向量映射到每一個漢字的概率,按漢字概率分布隨機抽樣獲得生成評論。
表1 不同溫度參數(shù)T下生成的虛假評論樣例
本文采用向量空間模型(VSM)[27],即嵌入網(wǎng)絡(luò)來學(xué)習(xí)漢字之間的語義距離。嵌入網(wǎng)絡(luò)分為字嵌入網(wǎng)絡(luò)和詞嵌入網(wǎng)絡(luò)。通常詞嵌入網(wǎng)絡(luò)比字嵌入網(wǎng)絡(luò)能更好地表示語義,因為現(xiàn)代漢語的基本語義元素是詞匯,詞匯中的漢字拆分后可能和原來的語義不同,但是詞嵌入網(wǎng)絡(luò)有一個中文分詞的預(yù)處理過程,這個分詞過程往往需要一個由語言學(xué)專家總結(jié)的中文詞典[28]。而中文用戶評論是一種非常新穎的文體且更新速度很快,里面存在很多的網(wǎng)絡(luò)新詞匯,例如表1例句中的“版型”(指服裝輪廓)、“炒雞”(超級)等,中文詞表是不隨網(wǎng)絡(luò)新詞匯的增加隨時更新的,且更新耗費大。同時中文分詞算法上存在一定的偏差,不能解決交集型歧義,例如“天真的你”會被劃分成“天/真的/你”,不能解決組合型歧義,例如“網(wǎng)球拍賣完了”會被劃分為“網(wǎng)球/拍賣/完/了”,考慮嵌入網(wǎng)絡(luò)本身也存在著映射上的偏差,2個計算過程帶來的誤差累加也是不可忽視的。而漢字直接嵌入不存在這些問題,統(tǒng)計語言模型直接從語料中學(xué)習(xí)成詞的規(guī)則和句法,按照規(guī)則和句法自動造詞,極大地保證了生成文本的靈活性,讓生成的虛假評論看起來更加接近網(wǎng)絡(luò)語言,更加真實?;谝陨咸攸c,本文使用漢字嵌入網(wǎng)絡(luò)來構(gòu)建自動化眾包攻擊模型。漢字嵌入網(wǎng)絡(luò)首先計算窗口內(nèi)2個漢字的聯(lián)合概率分布,例如評論“質(zhì)量非常好”,如圖4所示。
給定一個大小為2的窗口,通過滑動窗口統(tǒng)計每2個漢字的共現(xiàn)頻次。然后分別對于每一個漢字,統(tǒng)計所有與之共現(xiàn)的漢字頻次,然后按頻次占比轉(zhuǎn)化為共現(xiàn)概率值,沒有共現(xiàn)則概率為0。所以每一個漢字wt都對應(yīng)一個長度為V的概率向量p,其中向量p位置i上概率值pi表示漢字wt與漢字wi的共現(xiàn)概率,此概率向量作為嵌入網(wǎng)絡(luò)的輸出損失判別依據(jù)。漢字嵌入網(wǎng)絡(luò)結(jié)構(gòu)如圖 5所示。
圖4 統(tǒng)計漢字共現(xiàn)概率
圖5 漢字嵌入網(wǎng)絡(luò)
如圖5所示,漢字嵌入網(wǎng)絡(luò)包括一個節(jié)點數(shù)量為V的輸入層,一個節(jié)點數(shù)量為嵌入向量長度d的線性隱含層和一個節(jié)點數(shù)量為V的概率輸出層。其中輸入層依次接收每個漢字的獨熱向量,輸出層依次以對應(yīng)漢字的概率向量為損失判別依據(jù)。嵌入網(wǎng)絡(luò)通過如式(1)所示的最大化對數(shù)似然函數(shù),反復(fù)迭代使輸入漢字通過前向傳播計算能夠正確得到對應(yīng)概率向量。其中輸入層與隱層之間維度為V×d的全連接權(quán)重矩陣M為所需要的嵌入矩陣,M對應(yīng)行i所包含的權(quán)重向量即是索引為i漢字的嵌入向量。
其中,c表示漢字wt的上下文環(huán)境,P(wt+j|wt)表示wt與wt+j的漢字共現(xiàn)概率。計算對數(shù)似然函數(shù)的誤差后,使用反向傳播算法更新權(quán)重矩陣,然后通過反復(fù)迭代,最終得到一個關(guān)于漢字集V的漢字嵌入向量矩陣。
本文利用LSTM網(wǎng)絡(luò)學(xué)習(xí)真實評論中的句子構(gòu)成和排列規(guī)律。在處理序列數(shù)據(jù)的問題上,LSTM是一種被廣泛應(yīng)用的神經(jīng)網(wǎng)絡(luò)模型,例如短文本分類[29]、自動問答[30]、圖片標注[31]、自動摘要[32]等。LSTM模型通過記憶單元來存儲和利用那些句子中長距離的依賴元素,這使LSTM能夠?qū)W習(xí)較長的句子且保證良好的效果。多層LSTM網(wǎng)絡(luò)使用多層非線性函數(shù)的組合來學(xué)習(xí)句子中每個漢字之間的概率分布,即當2個或多個漢字經(jīng)常按序出現(xiàn)在一起時,網(wǎng)絡(luò)可以捕捉到這種統(tǒng)計特征。由于在線評論往往是長短不一的,本文使用一種窗口方法來解決這個問題,窗口方法假設(shè)一個漢字的出現(xiàn)只與它前面窗口內(nèi)的漢字排列順序有關(guān),和窗口外的漢字無關(guān)。具體為將訓(xùn)練語料中的所有評論首尾拼接在一起組成一個長文本,由于每條評論都有起始標記和結(jié)束標記,所以每條評論在長文本中是容易被劃分的,也容易被LSTM模型捕捉到。然后設(shè)定一個固定窗口,窗口在長文本上以步長為1來滑動抽取漢字段交由 LSTM 模型學(xué)習(xí),這個窗口通常設(shè)置為100,這對生成短評論文本來說是足夠的。
在真實的攻擊場景中,需要兼顧虛假評論的真實性及多樣性,本文在Softmax全連接網(wǎng)絡(luò)中引入了溫度參數(shù)T來平衡評論真實性和多樣性。在多分類問題上,Softmax全連接網(wǎng)絡(luò)是一種表現(xiàn)優(yōu)異的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),能夠?qū)STM網(wǎng)絡(luò)輸出的低維中間向量重新映射到漢字集中的每一個漢字。網(wǎng)絡(luò)包括d個輸入神經(jīng)元和v個輸出神經(jīng)元,激活函數(shù)使用Softmax函數(shù)。因為攻擊模型不僅需要生成逼真的虛假評論,而且需要虛假評論在數(shù)量上具有一定的規(guī)模,同時具有各種各樣的類型,在訓(xùn)練語料的基礎(chǔ)上可以產(chǎn)生新的詞匯或句子的組合。所以本文使用Softmax函數(shù)時引入了一個重要的溫度參數(shù)T,具體如式(2)所示。
其中,k表示漢字集中漢字的索引,et表示全連接網(wǎng)絡(luò)的輸出向量,et j表示輸出向量et在索引j的分量。當T小于1時,降低了攻擊模型選擇出現(xiàn)可能性較低字符的概率,所以攻擊模型在生成文本序列時就會有較大概率選擇可能性較大的一些字符,這樣生成的評論質(zhì)量較高,但也限制了文本生成的種類。隨著溫度參數(shù)T升高,攻擊模型選擇低概率字符的機率增大選擇高概率字符的機率減少,這樣就可以生成豐富多樣的文本,當然隨著多樣性的豐富,生成的文本也會伴隨著更多的錯誤,比如詞匯組合不匹配、上下文不一致等問題。
在中文評論社區(qū)的自動化眾包攻擊中,生成的虛假文本具備真實性強、類型廣泛等特點。因此,本文從以下幾個角度來對比和分析攻擊方法的有效性:1) 將傳統(tǒng)面向英文文本的生成方法與本文方法進行對比;2) 從語言學(xué)角度分析本文方法生成的虛假評論與真實評論的相似性;3)驗證本文攻擊方法在拷貝檢測上優(yōu)于傳統(tǒng)基于詞替換的攻擊方法;4)驗證本文生成的虛假評論能夠欺騙用戶并影響用戶的消費決策。為了防御文中所提的攻擊方法,本文中給出了一種可行的防御方法。
淘寶網(wǎng)的商品分類廣泛,具有如電子產(chǎn)品、家居用品、衣物用品等多種分類。本文針對一種最常見的自動化眾包攻擊場景,從淘寶網(wǎng)的衣物評論社區(qū)中抓取了51 121條好評數(shù)據(jù),來模擬攻擊者提高商家口碑的攻擊方式。原始評論集中的所有評論隨機打亂順序后,按3:2的比例劃分,其中30 672條評論作為攻擊模型訓(xùn)練數(shù)據(jù)集,20 449條評論作為實驗測試數(shù)據(jù)集。
傳統(tǒng)針對英文環(huán)境的自動化眾包攻擊方法通常采用 Char-LSTM 模型,已有實驗[10]表明該模型可以生成高質(zhì)量的英文評論。但Char-LSTM用于生成中文虛假評論有諸多缺點。1) 特征稀疏。直接將中文漢字映射為獨熱向量,則訓(xùn)練語料中包含大量的零值,稀疏的特征使模型訓(xùn)練緩慢。2) 參數(shù)數(shù)量多。Char-LSTM模型訓(xùn)練所需的參數(shù)大約為本文模型的10倍。模型的參數(shù)往往決定模型訓(xùn)練所需的內(nèi)存,顯然更小的內(nèi)存消耗使經(jīng)濟成本和時間成本都有所降低。3) 缺少漢字之間語義表示。在英文中,英文字母之間并沒有語義聯(lián)系。學(xué)習(xí)漢字之間的語義聯(lián)系可以使生成中文評論更具靈活性,例如表1中的新詞匯“炒雞”(超級)和“稀飯”(喜歡),靈活使用漢字使生成的中文評論看起來更逼真。
針對以上問題,對比實驗設(shè)置如下。對于Char-LSTM 模型和漢字嵌入 LSTM 模型同樣采用CPU-i7-6700K、GPU-TiTanX和內(nèi)存32 GB的硬件環(huán)境,為了突出漢字嵌入LSTM模型的改進部分,這里設(shè)置2種模型相同部分的LSTM網(wǎng)絡(luò)同樣為3層,每層1 000個神經(jīng)單元,激活函數(shù)采用ReLU,初始學(xué)習(xí)率設(shè)置為0.01,訓(xùn)練400輪。實驗結(jié)果如表2所示。
如表 2所示,在模型結(jié)構(gòu)相同的情況下,Char-LSTM模型所需要的參數(shù)約為54 MB,漢字嵌入LSTM模型所需訓(xùn)練參數(shù)約為4.3 MB,在模型訓(xùn)練中,參數(shù)的數(shù)量往往決定模型的內(nèi)存和時間開銷,進一步?jīng)Q定模型成本開銷。并且,在迭代 400輪后,Char-LSTM 的損失仍然遠高于漢字嵌入LSTM 模型,訓(xùn)練所需時間也明顯多于漢字嵌入LSTM模型。對比實驗表明漢字嵌入LSTM在處理中文評論上性能優(yōu)于Char-LSTM模型。
基于語言學(xué)分析的分類器也是目前主要的虛假評論檢測手段[6,33-34],攻擊方法生成的虛假評論文本要欺騙分類器檢測,就要在這些語言學(xué)細節(jié)上接近真實評論文本。對于虛假評論文本的語言學(xué)分析主要分為3個維度[34]:基于語法分析維度、基于語義分析維度、基于文體元數(shù)據(jù)分析維度。本文從這3個維度中提取出5組共113個分類特征用于訓(xùn)練軟間隔SVM線性分類器。
1) 詞袋特征。詞袋特征是一種不考慮詞序?qū)⒕渥颖硎緸橐粋€詞集合的方法。詞袋特征在文本分類、情感極性分析、圖像識別等領(lǐng)域中應(yīng)用廣泛。在惡意眾包論壇中的虛假評論數(shù)據(jù)集檢測上,詞袋特征能夠達到 89.6%的準確率[35]。本文使用 jieba分詞工具[36]將一條評論中的每個句子表示為一個詞集合,然后將不同詞集合的最大余弦相似度來作為該條評論的一個分類特征。
2) 結(jié)構(gòu)特征。評論的結(jié)構(gòu)特征用來表示一條評論的基本結(jié)構(gòu),包括評論中的詞匯數(shù)量、句子數(shù)量、句子的平均詞匯數(shù)量和詞匯的平均漢字數(shù)量,一共4個分類特征。
表2 模型實驗對比
3) 詞性特征。通過對評論中的詞匯進行詞性標注,并統(tǒng)計詞頻的方式表示為評論的詞性特征。Li等[37]的研究表明真實評論和虛假評論在語法特征上呈現(xiàn)不同的特點:真實評論包含更多的名詞和形容詞,而虛假評論包含更多的動詞、副詞和代詞。本文使用jieba中的POS(part of speech)工具,將評論進行分詞并標注詞性,然后分別統(tǒng)計名詞、形容詞、動詞、副詞和代詞的數(shù)量,作為5個分類特征。
4) 極性特征。情感極性分析是一種語義分析方法,通過統(tǒng)計不同情感詞的數(shù)量來分析一條評論所代表的情感傾向。研究表明虛假評論比真實評論包含更多的情感詞,表現(xiàn)為更積極或更消極[37]。本文使用snownlp工具[38]給出評論的情感分數(shù),分數(shù)在[0,1]之間,然后將情感分數(shù)距中性分數(shù)(0.5)的距離作為一個分類特征。
5) 文體特征。LIWC(linguistic inquiry and word count)工具[39]被廣泛應(yīng)用于英文文本的文體特征提取。本文使用基于LIWC開發(fā)的中文文體特征提取工具 TextMind[40],TextMind將簡體中文常用的5 000個詞匯劃分為102個類別,例如社交、情感、認知、感知、生理、空間、時間、金錢、宗教等。本文使用TextMind工具對評論進行詞匯標注,然后統(tǒng)計每類詞的數(shù)量作為102個分類特征。
實驗使用測試集中隨機抽取的1 000條真實評論和攻擊模型生成的1 000條虛假評論用于訓(xùn)練軟間隔SVM線性分類器,并采用10折交叉驗證來計算平均精確率和召回率。精確率(precision)表示為由分類器成功標記為虛假評論和所有由分類器標記為虛假評論數(shù)量的百分比,召回率(recall)表示為由分類器標記為虛假評論和數(shù)據(jù)集中所有虛假評論數(shù)量的百分比,精確率和召回率隨溫度參數(shù)T的變化如圖6所示。
圖6 語言學(xué)分析-對比真實評論和生成評論
在溫度參數(shù)T為0.1時,精確率和召回率都接近100%,這表示SVM分類器很夠準確地標記出虛假評論。隨著溫度參數(shù)T增大,分類器的分類能力下降。在溫度參數(shù)為1.0時攻擊效果最好,精確率為55%,召回率為56%,這表示分類器接近隨機分類(50%分類精確率),分類器并不能很好地辨別出數(shù)據(jù)集中的虛假評論。隨著溫度參數(shù)T的繼續(xù)增大,攻擊模型生成的虛假評論質(zhì)量下降。對比實驗表明,當溫度參數(shù)T在0.8到1.2時,攻擊模型生成的虛假評論具有和真實評論一樣的真實性。
在語言學(xué)分析的角度上,雖然攻擊模型生成的虛假評論可以欺騙分類器的檢測,但是傳統(tǒng)基于名詞替換的攻擊方法也可以產(chǎn)生接近真實的虛假評論。這是因為基于名詞替換的方法采用數(shù)個通用的模板,這些模板基本來自某些典型的真實評論,然后通過把模板中物品或服務(wù)的名詞,替換為與攻擊目標相關(guān)的名詞來生成虛假評論。這種傳統(tǒng)攻擊方法生成的虛假評論除了部分名詞不同于模板外,其他文本部分和模板完全相同,這就使基于語言學(xué)分析的分類器并不能檢測出這種攻擊方式。為了進一步對比和分析本文攻擊方法優(yōu)于傳統(tǒng)名詞替換的攻擊方法,這里使用拷貝檢測來驗證。拷貝檢測通過計算2個文本的內(nèi)容相似度來判斷文本是否存在剽竊行為。這里采用Winnowing[41]工具來進行拷貝檢測實驗,Winnowing是一種已被證明效果很好且被廣泛應(yīng)用的方法。Winnowing方法使用散列函數(shù)將文本映射為一組與之對應(yīng)且唯一的指紋信息,然后對于待檢測文本和待比較數(shù)據(jù)集都生成這樣的指紋信息,最后采用 Jaccard指數(shù)計算指紋信息之間的相似度。本文采用待檢測文本與待比較數(shù)據(jù)集中每條文本相似度的最大值作為拷貝檢測分數(shù),分數(shù)范圍為 0~1,分數(shù)越高則代表待檢測文本越有可能是拷貝而來的虛假評論。
實驗假設(shè)用戶評論社區(qū)的防御工作者可以獲取到包含攻擊模板的評論數(shù)據(jù)集,實際上這很容易做到,防御工作者可以查找所有已經(jīng)存在于評論社區(qū)的評論,而基于名詞替換的虛假評論一旦出現(xiàn)在評論社區(qū)中就可以被用來檢測其他新發(fā)布的評論。
對于本文攻擊方法,選取訓(xùn)練集中的所有真實評論作為待比較數(shù)據(jù)集,選取攻擊模型生成的1 000條虛假評論作為待檢測數(shù)據(jù)集,本文方法的拷貝檢測分數(shù)為待檢測中所有虛假評論拷貝檢測分數(shù)的平均值;對于名詞替換方法,同樣選取訓(xùn)練集中的所有真實評論作為待比較數(shù)據(jù)集,然后基于該數(shù)據(jù)集抽取所有標注為名詞詞性的詞匯組成名詞集,并隨機從待比較數(shù)據(jù)集中抽取1 000條真實評論作為模板,用名詞集中的名詞隨機替換掉模板中的名詞,最后將這1 000條評論作為待檢測數(shù)據(jù)集,實驗結(jié)果如圖7所示。同時選取測試集中所有評論和訓(xùn)練集中的評論作為參照,實驗結(jié)果如圖8所示。
圖7 拷貝檢測-對比名詞替換方法和漢字嵌入LSTM方法
圖8 拷貝檢測-對比漢字嵌入LSTM方法和真實評論
如圖7所示,名詞替換法的拷貝得分為0.536分,高于所有溫度下的漢字嵌入 LSTM 方法,即Winnowing拷貝檢測工具更容易檢測出名詞替換方法生成的虛假評論,隨著溫度參數(shù)T增大,漢字嵌入LSTM方法的拷貝得分逐漸變小,生成的虛假評論更不容易被檢測。同時,圖8說明本文攻擊方法生成的虛假評論不是簡單地復(fù)制訓(xùn)練集中的真實評論,而是在訓(xùn)練集的基礎(chǔ)上生成了新的評論。在溫度參數(shù)T為0.9時,虛假評論有最接近真實評論的拷貝得分。實驗表明本文方法比傳統(tǒng)基于名詞替換的攻擊方法有更好的實用性。
本文使用用戶調(diào)查的方式,驗證攻擊方法生成的虛假評論對用戶的影響??紤]到具體的攻擊場景,實驗邀請 50名具有豐富安全背景知識的參與者,填寫調(diào)查問卷。50名參與者被分為5組,每組10人,每組的調(diào)查問卷分別對應(yīng)溫度參數(shù)T為0.2、0.5、0.8、1.0和1.3。每個參與者被分配30條評論,包括測試集中隨機抽取的20條真實評論和10條攻擊模型生成的虛假評論。問卷要求參與者判斷 30條評論中每條評論是否有提高商品口碑的作用,并標記出 10條認為是模型生成的虛假評論。實驗統(tǒng)計標準采用召回率和有效率,召回率(recall)定義為成功標記出虛假評論和問卷中所有虛假評論數(shù)量的百分比,有效率(helpfulness)定義為問卷中所有虛假評論中被標記為有效的百分比。統(tǒng)計所有調(diào)查結(jié)果取平均值后結(jié)果如表3所示。
隨著溫度參數(shù)T逐漸變大,參與者識別虛假評論的召回率在逐漸下降,這表明越來越多的虛假評論被參與者遺漏,且更多的虛假評論被標記為有作用。當溫度參數(shù)為1.0時,攻擊模型表現(xiàn)最好,參與者遺漏掉了43%的虛假評論并將48%的虛假評論標記為有作用。調(diào)查表明本文攻擊方法產(chǎn)生的虛假評論具有欺騙用戶和并影響用戶消費決策。
表3 用戶調(diào)查的實驗結(jié)果
針對本文的自動化眾包攻擊方法,這里給出一種可行的防御方法。在理想情況下,防御模型用于辨別的任何標準都可以由攻擊模型來對應(yīng)解決,所以使用一種機器學(xué)習(xí)模型防御另一種機器學(xué)習(xí)模型的攻擊是不可行的。但是對于同一數(shù)據(jù)集,無論訓(xùn)練多少種機器學(xué)習(xí)模型,每個模型所能學(xué)習(xí)到的句子概率分布是相同的。根據(jù)數(shù)據(jù)集所含信息量一定的這個特點,本文給出了一種可行的防御方法,如圖9所示。
圖9 中文自動化眾包攻擊的防御方法流程
本文防御方法假設(shè):1) 評論社區(qū)的防御工作人員可以獲得用于訓(xùn)練攻擊模型的評論訓(xùn)練集RA,并且可以獲取一個和訓(xùn)練集RA不相同的真實評論數(shù)據(jù)集RG;2) 評論社區(qū)的防御工作人員了解攻擊模型的結(jié)構(gòu)。防御方法流程如下:針對訓(xùn)練評論數(shù)據(jù)集RA和真實評論數(shù)據(jù)集RG這2個數(shù)據(jù)集,分別使用本文攻擊方法訓(xùn)練攻擊模型MA和MG,訓(xùn)練好的攻擊模型可以根據(jù)輸入漢字預(yù)測下一個漢字的概率分布。然后將待檢測評論逐字輸入到2個攻擊模型中,得到2個不同的概率分布PA和PG,通過對數(shù)似然比(log-likelihood ratio)計算概率分布PA與概率分布PG的距離。最后將待檢測評論的中每個漢字得到的對數(shù)似然比求和取平均得到平均距離,若平均距離接近攻擊模型PA則判定該條評論是虛假評論,否則判定評論為真實評論。防御方法流程的偽代碼如算法1所示。
算法1防御方法
輸入
攻擊評論語料集RA;
真實評論語料集RG;
測試評論T;
輸出
針對防御方法和基于語言學(xué)分類器方法的對比實驗,采用精確率作為對比標準,精確率(precision)定義為成功標記為虛假評論和所有標記為虛假評論數(shù)量的百分比,實驗結(jié)果對比如圖 10所示。
如圖10所示,隨著溫度參數(shù)T的增大,防御方法檢測虛假評論的精確率穩(wěn)定在97%左右,語言學(xué)分類器的精確率逐漸降低,最低處為53%。實驗表明防御方法能夠有效檢測出攻擊模型生成的虛假評論,但是該防御方法的不足也是明顯的,需要假設(shè)訓(xùn)練數(shù)據(jù)集已知,因此如何設(shè)計更加實用的防御方法是未來研究的重點。
圖10 防御方法與語言學(xué)分類器的對比
本文面向中文用戶評論社區(qū),提出了一種有效的自動化眾包攻擊方法。利用漢字嵌入方法,LSTM網(wǎng)絡(luò)、Softmax全連接網(wǎng)絡(luò)和引入溫度參數(shù)T的隨機抽樣方法,設(shè)計并實現(xiàn)了一種自動化眾包攻擊方法,該方法可以生成大量具有真實性、多類型及實用性的虛假評論,能夠有效地滿足大規(guī)模、真實場景下的攻擊要求。實驗中,本文將傳統(tǒng)面向英文文本的生成方法與本文方法進行對比。在語言學(xué)角度分析文中方法生成的虛假評論與真實評論的相似性。驗證本文攻擊方法在拷貝檢測上優(yōu)于傳統(tǒng)基于詞替換的攻擊方法。驗證本文生成的虛假評論能夠欺騙用戶并影響用戶的消費決策。實驗表明本文提出的攻擊模型和方法是可行且有效的。本文中提出了一種可能的防御方法,但是該方法假設(shè)模型訓(xùn)練的數(shù)據(jù)集已知。因此在未來的研究中,需要重點研究針對這類攻擊的有效防御方法,增強用戶評論社區(qū)抵御針對自動化眾包攻擊的安全威脅。