杜小虎,吳宏明,易子博,李莎莎,馬 俊,余 杰
(1. 國防科技大學 計算機學院, 湖南 長沙 410073;2. 中央軍委裝備發(fā)展部 裝備項目管理中心,北京 100034)
深度神經(jīng)網(wǎng)絡在解決各種現(xiàn)實任務中有著廣泛的應用并取得了不錯的效果,如計算機視覺[1-2]、圖像分類[3]和自然語言處理[4-5]等領(lǐng)域。但是,近年來,人們開始關(guān)注神經(jīng)網(wǎng)絡的安全性與魯棒性問題[6],神經(jīng)網(wǎng)絡容易受到對抗樣本的攻擊,例如,指紋識別[7],攻擊者可以利用對抗樣本來做偽裝,非法破解指紋識別器。在垃圾郵件檢測[8]中,攻擊者也可以通過偽裝逃避檢測。在NLP任務中,神經(jīng)網(wǎng)絡可能受到經(jīng)過精心修改的文本欺騙,這種修改后的文本與原始文本有著相當高的相似性,魯棒的神經(jīng)網(wǎng)絡模型會對相似的文本做出與原文本一致的預測,但神經(jīng)網(wǎng)絡會對這種修改后的文本做出文本預測錯誤,這種經(jīng)過微小修改后的文本稱為對抗樣本,使用這些對抗樣本使神經(jīng)網(wǎng)絡發(fā)生錯誤的過程叫做對抗攻擊。
魯棒性(robustness): 魯棒性[9]反映了自然語言處理模型對不同輸入樣本的適應程度,一個魯棒性高的模型更加不易受到對抗樣本的攻擊。模型在意義相似或相近的輸入文本上能夠表現(xiàn)出一致的性能。
詞向量(word embedding): 也叫詞嵌入,由于深度神經(jīng)網(wǎng)絡的輸入只能是連續(xù)的向量,所以其不能處理實際的文本,詞向量即是文本在詞空間中映射出的由實數(shù)組成的向量。
擾動(perturbation): 對原始文本做出的細微修改稱為擾動,如對文本中單詞的修改、刪除和增加等操作。
自然語言處理(NLP)是人工智能領(lǐng)域下的一個重點和熱點研究方向。近年來,深度神經(jīng)網(wǎng)絡(DNNs)被應用于大量的NLP任務中,本文重點介紹一些用到深度神經(jīng)網(wǎng)絡且涉及對抗樣本攻擊與防御的NLP任務。
分類任務: 包括文本分類[10]、情感分析[11]等。任務的目的是根據(jù)文本的內(nèi)容給出預測的標簽,這些分類任務可以是二分類,也可以是多分類。如情感分類中,將電影評論分為積極的與消極的;新聞分類中把不同的新聞分類到不同的新聞類別,如娛樂新聞、軍事新聞等。
文本蘊含[12]: 本任務是針對兩段文本的關(guān)系的判斷,其中一個為前提,另一個為假設。如果文本P推出文本Q,即為P蘊含Q,兩者為蘊含關(guān)系,否則,兩者為矛盾關(guān)系。
機器翻譯[13]: 把一段文本從一種語言翻譯為另一種語言,如常見的中英文之間互相翻譯。
問答系統(tǒng): 從特定的上下文文本中提取信息構(gòu)造模型來回答人類用自然語言提出的問題。
對抗樣本起源于圖像,圖像的對抗樣本有著肉眼完全不可見的效果,如只修改圖像的一個像素,這種擾動人類不易察覺,但神經(jīng)網(wǎng)絡能把修改后的圖像判斷為錯誤圖像,這就是對抗樣本最原始的目的。由于圖像是連續(xù)的,可以將很微小的擾動通過搜索或者其他方法引入圖像中,而這種擾動對人類是不可見的。但是文本是一個離散的序列,任何對文本的修改都可能引起人們的注意,例如,添加字符或替換單詞[14]。同時這些改變可能改變文本原有的語義,例如,在句子中加入“not”,類似的否定詞會改變句子語義,如果在情感分類任務中也會改變句子情感傾向。Liang等人[15]的實驗表明了將在圖像上表現(xiàn)較好的FGSM(fast gradient sign method)直接應用在文本攻擊上會產(chǎn)生混亂不可讀的對抗樣本,雖然這種對抗樣本成功地使分類器判別錯誤,但與原始文本差異明顯,并不可取。文本的對抗樣本生成有兩個思路,一是跟圖像一樣做盡量小的微小修改,讓人們盡可能地發(fā)現(xiàn)不了這種修改,類似于人們自己可能發(fā)生的錯誤,如單詞拼寫錯誤、鍵盤誤觸使單詞出錯。這種主要是字符上的修改。另一個思路是不像圖像那樣產(chǎn)生人類完全不可見的修改。而是產(chǎn)生人類判斷正確卻會使神經(jīng)網(wǎng)絡預測錯誤的樣本。這就需要考慮兩個問題: 一是修改部分在語法和語義上與原文本需要有很大的相似性;二是修改的比例不能過高,修改過多會使文本失去原有的語義。這種情況主要體現(xiàn)在單詞級別的修改。
生成的對抗樣本不僅必須欺騙目標模型,而且還必須使人們檢測不到擾動。一個好的對抗樣本應傳達與原始文本相同的語義,因此需要一些度量標準來量化相似性。本文介紹三個指標: 歐氏距離、余弦相似度和詞移距離[16]。
歐氏距離(euclidean distance): 在文本中,歐幾里得距離即是計算兩個詞向量之間的線性距離。
余弦相似度(cosine similarity): 余弦相似度通過計算兩個向量之間的角度的余弦值來表示兩個單詞的語義相似度。余弦距離更關(guān)心兩個向量之間的方向差異。兩個向量之間的角度越小(余弦值越大),相似度越大。
詞移距離(word movers distance): WMD[17]主要反映文檔之間的距離,因此不適合查找相似的單詞。其語義表示可以是基于Word2Vec或其他方式獲得的詞向量。該算法將文檔距離構(gòu)造為兩個文檔中單詞的語義距離的組合。例如,從對應于兩個文檔中任意兩個單詞的單詞向量中獲得歐氏距離,然后從權(quán)重和總和中獲得。兩個文本A和B之間的WMD距離如式(1)所示。
(1)
IMDB[19]: 實驗數(shù)據(jù)集包含50 000條IMDB電影評論,其中,訓練集25 000條,測試集25 000條,該數(shù)據(jù)集專門用于情感分析。評論的結(jié)果是二分類的。標簽為pos(積極)和neg(消極)。在訓練集和測試集中兩種標簽各占一半。
AG’s News[20]: 從新聞文章中提取的帶有標題和描述信息的數(shù)據(jù)集。它包含4種新聞類別,每種新聞類別包含30 000個訓練樣本和1 900個測試樣本。
Yahoo! Answers[20]: 是一個具有10種類別的主題分類數(shù)據(jù)集,其中包含44 83 032個問題和相應的答案。在十種類別中每個類別具有140 000個訓練樣本和5 000個測試樣本。
SNLI[21]: 是文本蘊含任務的數(shù)據(jù)集,包含57萬對人工標記為蘊含、矛盾或中性的人類書寫的英文句子對。
DBpedia: 文本分類數(shù)據(jù)集,包含560 000個訓練樣本和70 000個測試樣本,這些樣本來自14個類別,例如公司、建筑和電影等。
SST: 是斯坦福大學發(fā)布的一個情感分析數(shù)據(jù)集,主要針對電影評論來做情感分類。有兩個版本可以用。一個是包含五個標簽的 SST-1,一個是二分類的 SST-2。SST-1共有11 855 條樣本,其中8 544條訓練樣本,1 101條驗證樣本,2 210 條測試樣本。SST-2 有6 920條訓練樣本,872條驗證樣本,1 821條測試樣本。
本文對文本對抗樣本攻擊與防御方法的前沿技術(shù)進行了調(diào)研,分別從白盒和黑盒攻擊兩個方面回顧了文本對抗攻擊的發(fā)展歷史,同時對現(xiàn)有的最新防御技術(shù)做了介紹。最后,我們總結(jié)了文本對抗樣本領(lǐng)域如今面臨的挑戰(zhàn),并做了前景展望。與現(xiàn)有的文本對抗樣本綜述[22-23]相比,本文的貢獻如下:
(1) 現(xiàn)有的文本對抗樣本綜述文章對相關(guān)方法的具體公式描述較少,且沒有統(tǒng)一的描述形式。本文統(tǒng)一了攻擊和防御領(lǐng)域相關(guān)論文的所有符號和公式表示形式,特別是在黑盒攻擊部分對于單詞重要性分數(shù)計算部分做了公式統(tǒng)一編輯,使讀者能夠更好地比較各個方法的具體細節(jié)差異。
(2) 本文相較于現(xiàn)有的綜述文章補充了最新的前沿技術(shù)。
(3) 本文是首次針對中文的文本對抗樣本攻擊和防御研究進行綜述,分析了中文與英文的不同,中文的對抗樣本研究也是一個重要的研究方向。
由于不同的攻擊方法中符號描述不盡相同,本文采用統(tǒng)一的符號來表述對抗樣本中涉及的各項數(shù)據(jù)。表1展示了本文中所用到的符號及其描述。
表1 符號描述表
2014年,Szegedy等人[6]發(fā)現(xiàn)用于圖像分類的深度神經(jīng)網(wǎng)絡可以被添加過微小像素擾動的圖像所欺騙。實驗表明,圖像分類器有很高的誤分類率,但人類沒有檢測到圖像的這種變化。2017年,Jia等人[24]率先考慮在基于文本的深度神經(jīng)網(wǎng)絡上生成對抗樣本。從那時起,人們開始關(guān)注文本的對抗樣本。
對抗樣本攻擊根據(jù)是否了解模型參數(shù)可以分為兩種,即白盒攻擊和黑盒攻擊。前者可以獲得模型的參數(shù)和結(jié)構(gòu),而后者缺乏這些信息。黑盒攻擊更具挑戰(zhàn)性,因為它們通常需要設計有效的搜索算法對模型進行大量查詢[25]從而獲得單詞重要性分數(shù),以此來決定單詞的替換順序。大多數(shù)白盒攻擊的方法都是基于梯度在使模型損失函數(shù)最大化的方向上做擾動,當攻擊者不了解模型參數(shù)和結(jié)構(gòu)時,只能采用黑盒攻擊。黑盒攻擊通過采用不斷的查詢和觀察目標模型的輸出來產(chǎn)生最優(yōu)的擾動。
根據(jù)擾動的位置不同可以分為字符級攻擊和單詞級攻擊。字符級攻擊即是擾動單詞中的單個字符,可以是刪除、增加、修改或者兩個字符交換。單詞級攻擊是對文本中的單個單詞做擾動,同樣也有增加、刪除、修改的操作,但單詞級攻擊一般不采用刪除的方式。刪除文本的單詞有比較大的風險出現(xiàn)語法錯誤和語義不通順,大多數(shù)的單詞級攻擊為增加和修改,修改以同義詞替換為主,增加的方式有在文本開始或者結(jié)尾增加一段無關(guān)的文字,這樣原有的文本不會受到任何破壞,但分類器會預測出錯。表2展示了近幾年常見的文本對抗樣本攻擊方法。
表2 常見的文本對抗樣本攻擊方法對比
2.2.1 字符級白盒攻擊
在2017年,Ebrahimi等人[26]提出了一種稱為HotFlip的基于梯度的白盒攻擊方法來生成對抗樣本。該方法基于one-hot輸入向量的梯度對字符做修改,包括替換、刪除和增加字符。通過評估哪個字符修改的損失最大,并利用束搜索來尋找最優(yōu)的修改。這種攻擊針對CharCNN-LSTM[41]模型在AG’s News數(shù)據(jù)集上的表現(xiàn)優(yōu)于貪心搜索攻擊算法。表3[26]展示了HotFlip的攻擊效果,僅僅將mood單詞中的d字符替換為P就使得模型將新聞的分類由57%置信度的World誤分類為95%置信度的Sci/Tech類別。
表3 原始文本和HotFlip生成的對抗樣本
第二年,Ebrahimi等人擴展了HotFlip方法,改進了束搜索,提出了one-shot 攻擊[27],這種攻擊并行操作所有單詞,不需要全局對梯度排序,減少了HotFlip的訓練時間,常規(guī)訓練時間減少至1/3。攻擊對象由文本分類器變成了機器翻譯(NMT)模型,使用TED平行語料庫作為數(shù)據(jù)集。實驗結(jié)果表明,白盒攻擊的效果優(yōu)于Belinkov等人[42]的黑盒攻擊方法。
2018年,Liang等人[15]針對文本分類提出了一種字符級白盒攻擊方法。該方法先通過梯度確定原始文本中對分類貢獻較大的詞組,將其稱為熱樣本詞組HSPs(hot sample phrases),然后對這些HSPs詞組做修改,修改過程是從相關(guān)的語料庫中獲取常見的拼寫錯誤替換HSP,如將film替換為flim,或者用外觀類似的字符替換,如將小寫字母l替換為數(shù)字1。這種白盒攻擊的目標模型為DNN模型,使用數(shù)據(jù)集為DBpedia。實驗結(jié)果表明, 該方法可以成功地使字符級神經(jīng)網(wǎng)絡分類器出錯并將原始文本擾動到任何期望的分類類別,即目標攻擊。同時這種擾動很難被感知。表4[15]展示了該方法所生成的對抗樣本,僅僅修改單詞film就使得模型將文本分類的類別由99.6%置信度的電影類別誤分類為99%置信度的公司類別。
表4 拼寫錯誤生成的對抗樣本
2.2.2 單詞級白盒攻擊
Behjati等人[43]提出了一種基于梯度的通用性對抗樣本攻擊,即生成可以添加到任何輸入中的單詞序列。實驗表明,文本分類器很容易受到此類攻擊的影響,在每個輸入序列開頭插入一個對抗詞可使模型準確性由93%下降到50%。
Tsai等人[28]指出貪心搜索攻擊方法不能保證產(chǎn)生最優(yōu)的結(jié)果,而且耗時太多,因為算法在每一個迭代中需要搜索候選詞。與此同時,考慮到貪心搜索算法的本質(zhì),算法可能在較早位置替換對最終目標沒有太大貢獻的次優(yōu)詞。另一個限制是,被替換的詞往往在句子的一個鄰近區(qū)域,特別是在句子前面一部分。這大大降低了句子的可讀性,甚至破壞了原文的語義。Tsai等人[28]提出了一種“全局搜索”算法,通過計算梯度擾動幅度來獲得候選詞,然后在擾動較大的位置替換這些詞。擾動越大,分類器對詞的變化越敏感。結(jié)果表明,全局搜索的結(jié)果比貪婪攻擊產(chǎn)生的對抗樣本更好,攻擊成功率更高。
在問答系統(tǒng)上,Eric等人[29]提出通過human-in-loop的方式生成對抗樣本,與傳統(tǒng)攻擊方式利用單詞替換生成對抗樣本并人工評估樣本有效性不同,human-in-loop加入了人工修改,使用人機協(xié)作方式生成更加多樣的對抗樣本。在攻擊過程中,該方法基于梯度計算單詞重要性分數(shù),擁有更高的計算效率。通過用戶界面做人機交互,在用戶界面中,作者寫出問題,模型會預測五個結(jié)果并解釋這些預測的原因,如果最正確的預測是正確答案,界面會指出該問題在模型中的哪個位置正確,目的就是讓模型出錯或者延遲找出正確答案的位置,該界面會隨著作者的修改不斷更新。human-in-loop首次將對抗攻擊過程可視化,同時揭示了問答系統(tǒng)的局限性。
白盒攻擊的相關(guān)工作已經(jīng)證明該方法在基于文本的攻擊中是非常有效的,但仍存在一些問題需要解決,例如,在單詞相似度、語法正確性和語義相似度等方面存在一些不足,且應用場景有局限性。
2.3.1 字符級黑盒攻擊
Gao等人[30]于2018年提出了一種稱為DeepWordBug的字符級黑盒攻擊方法。該方法使用一種新的評分策略來識別關(guān)鍵字符并排序。使用簡單的字符替換排名最高的單詞,以最小化擾動的編輯距離,并改變原始的分類。該方法在文本分類、情緒分析和垃圾郵件檢測等任務中取得了良好的效果,并降低了目前最先進的深度學習模型的預測精度。
Heigold等人[31]在機器翻譯和形態(tài)標記上提出了黑盒攻擊方法,該方法提出了三種擾動方式: 字符交換、字符翻轉(zhuǎn)、單詞擾動。字符交換是在單詞中隨機交換兩個相鄰字符,字符翻轉(zhuǎn)是將一個字符隨機替換為另外一個字符,單詞擾動為隨機擾亂除第一個和最后一個字符外的其他字符。在形態(tài)標記任務上,當字符翻轉(zhuǎn)和字符交換比例設置為10%時,模型的準確性由95%下降到了80%左右,下降非常明顯。在機器翻譯上,采用單詞擾動的方式,評估結(jié)果的BLEU分數(shù)由30下降為5,也是大幅地下降。
2019年,Eger等人[32]提出了一種稱為VIPER的字符級白盒攻擊方法。它在視覺空間中尋找一個與原始文本中的字符最相似的字符并將其替換,實驗結(jié)果表明,受到VIPER攻擊的SOTA模型性能下降達82%,但人們只受到輕微甚至是感受不到的擾動。與HotFlip產(chǎn)生的對抗樣本容易造成不可讀的情況不同,VIPER方法理想情況下是可讀的,該方法通過概率p和詞空間CES來決定替換字符,對輸入文本的每個字符做替換,如果發(fā)生替換,則是選擇詞空間中20個最鄰近字符的一個。替換后的字符w′i可表示為兩個參數(shù),如式(2)所示。
w′i=VIPER(p,CES)
(2)
其中,選擇字符w′i的20個鄰近詞概率p與它們到w′i的距離成正比,CES可以是任何可用于識別字符鄰近詞的詞空間。表5[32]展示了VIPER的攻擊效果,全文替換的對抗樣本看上去差異明顯,而少量字符的替換則完全不影響閱讀,在Facebook和Twitter的有毒評論檢測模型中就可能面臨這樣的對抗樣本攻擊,用戶以這種相似的字符做偽裝而逃避模型的檢測,但是用戶仍然表達了其觀點,其他用戶也可以完全看出文本原來的意思。
表5 原始文本和VIPER生成的對抗樣本
2.3.2 單詞級黑盒攻擊
單詞級攻擊的優(yōu)點是能夠很大程度地保持語義,且不會像字符級攻擊那樣產(chǎn)生不存在的單詞。Jia等人[24]于2017年提出了一種針對閱讀理解系統(tǒng)的黑盒攻擊。作者提出的攻擊方法是在段落末尾添加一些分散注意力但毫無意義的句子。這些分散注意力的句子不會改變段落和答案的語義,但它們會使神經(jīng)網(wǎng)絡模型出錯。分散注意力的句子可以是一個精心生成的真實句子,也可以是一個使用20個隨機的常見單詞的任意單詞序列。最后,對神經(jīng)網(wǎng)絡進行迭代查詢,直到輸出發(fā)生變化,即認為攻擊成功。
2018年,Samanta等人[33]提出了一種叫作詞顯著性(word saliency,WS)的單詞級黑盒攻擊,通過對單詞的刪除、替換和增加等操作生成對抗樣本。該方法先計算每個單詞對分類結(jié)果的貢獻程度,并把它們按照從大到小排序,如果某個單詞貢獻大且是副詞,則刪除這個詞,在剩余的單詞中找出每個單詞的候選詞,在候選詞中選擇對模型正確分類貢獻程度最小的做替換。在替換時,如果被替換的單詞是形容詞且候選詞是副詞,則將候選詞加到被替換單詞后面,否則用候選詞直接替換原詞。單詞wi貢獻率的計算,如式(3)所示。
(3)
其中,F(xiàn)Y(x)是文本x在分類器F中屬于Y標簽的概率,x|wi是文本x去除目標詞wi后的新文本。大量的查詢分類是一個非常耗時的過程。在情感分類數(shù)據(jù)集IMDB中,生成的對抗樣本與原始文本在Spacy工具的測試下有90%以上的相似度,實驗結(jié)果還表明,更低的文本相似度會帶來更多的有效對抗樣本數(shù)量,這說明文本的相似性跟攻擊成功率成反比。
Tsai等人[28]提出一種貪心搜索攻擊方法(greedy search attack),在每次迭代中,算法都會計算出每個詞在詞空間中的k個近鄰。然后從k個鄰居中選出對預測結(jié)果影響最大的一個。雖然詞向量有助于找到在相似上下文中使用的單詞,但它不能保證替換后的詞性保持不變。因此,該方法還檢查了原詞的詞性,并確保所選的候選詞具有與原詞相同的詞性。貪心搜索攻擊中有三個因素會影響結(jié)果: 一是k的大小,k太小時,可能沒有足夠的候選詞來形成一個對抗樣本;二是表示候選單詞與原單詞在詞空間中允許的最大距離d。當d很大時,改變后的句子的語義一般會離原句更遠。當d太小時,成功攻擊的機會就會降低;三是表示句子中允許替換的百分比閾值r。當r太小時,生成成功的對抗樣本機會就會降低。當r太大時,會有太多的單詞被替換,所以產(chǎn)生的樣本與原句差別很大。
Wee等人[34]針對問答系統(tǒng)(QA)提出了黑盒攻擊方法,并將生成的對抗樣本作為數(shù)據(jù)擴充方法來重新訓練模型,以避免在未知的測試數(shù)據(jù)上性能下降,同時提高模型的泛化能力和可靠性。這種攻擊提出了一種新的訓練神經(jīng)網(wǎng)絡方法,該方法將原問題和候選單詞或短語作為輸入來生成對抗樣本,訓練數(shù)據(jù)集包括了原問題、候選詞/短語和目標問題,其中候選詞/短語是目標問題的一部分。這種訓練可以為給定的問題生成多個對抗樣本。在人工評估方面采用來自AMT(Amazon mechanical turk)的人類注釋器(human annotators) 評估了對抗樣本的等效性和流暢性。在3 000個對抗樣本上認為對抗樣本與原始問題含義一致的占78%,認為生成的對抗樣本是流利的英文占78.6%。表6[34]展示了原始問題和對抗樣本,可以看到將短語associated with替換為related to就引起了預測的變化。
表6 問答系統(tǒng)的對抗樣本
(4)
其中,φ(z)i為softmax函數(shù),如式(5)所示。
(5)
Jin等人[36]提出一種稱為TEXTFOOLER的黑盒攻擊方法,由于WS和PWWS提出的詞顯著性方法與BERT關(guān)注一些單詞的統(tǒng)計線索[44]相呼應,作者提出了新的單詞替換選擇機制。用Iwi衡量單詞wi?x對分類結(jié)果F(x)=Y的影響并排序。對Iwi的計算如式(6)所示。
(6)
在單詞重要性排序做替換時,先使用余弦相似度選擇N個近鄰作為候選詞,再對候選詞做詞性檢查,確保替換后語法基本一致,最后用USE方法[45]做語義相似度檢查。在篩選后的單詞中選擇使目標標簽發(fā)生變化或者使目標標簽置信度最低的詞做替換,然后重復下一個詞。該模型將幾乎所有目標模型在所有任務中的精度降低到10%以下,而只有不到20%的原始單詞受到干擾。文中攻擊的對象是文本分類和文本蘊涵任務。
Alzantot等人[37]首次將群體優(yōu)化算法引入文本對抗樣本攻擊中,提出了一種基于遺傳算法GA(genetic algorithm)的單詞級黑盒攻擊算法,該算法提出了稱為Perturb的方法作為baseline,該方法隨機選擇一個單詞,先根據(jù)GloVe詞空間計算該單詞的N個近鄰作為候選詞,再利用Google語言模型[46]根據(jù)上下文篩選最優(yōu)單詞進行排序并保留前k個單詞,最后從這k個詞中選擇一個使目標標簽最大化的詞做替換,Perturb到此結(jié)束。隨后使用遺傳算法做優(yōu)化,首先調(diào)用Perturb多次生成初始種群P0,初始種群由多個只替換一個單詞的新文本構(gòu)成,如式(7)所示。
P0=(Perturb(x),…,Perturb(x))
(7)
每一代的個體可以通過查詢被攻擊模型得到對應目標標簽的預測得分,以此預測得分成比例地在第P代抽取個體表示為Sample(P),如果這些樣本中存在使目標標簽發(fā)生變化的樣本,則優(yōu)化完成,該樣本為對抗樣本,否則以一定概率成對抽取樣本做交叉Crossover,交叉過程為從兩個樣本中按順序隨機抽取其中任一文本中的單詞,形成新的子代child。第i+1代的第k個個體表示如式(8)所示。
(8)
一輪完成之后再次使用Perturb做第二輪優(yōu)化直到模型標簽預測發(fā)生變化。實驗結(jié)果表明,GA算法在情感分類任務的IMDB數(shù)據(jù)集中,在25%替換率閾值情況下攻擊成功率達到了97%,在文本蘊含任務中達到了70%。遠高于其提出的baseline。表7[37]展示了GA算法在情感分類任務生成的對抗樣本。
表7 為情感分類任務生成的對抗樣本
隨后Wang等人[38]提出了一種改進的遺傳算法IGA(improved genetic algorithm),與GA相比,不同的地方如下: 在初始化時,GA使用Perturb隨機初始化S個樣本,而IGA采用同義詞替換文本中的每一個單詞形成文本長度大小的初始種群,使得種群數(shù)量更加豐富;在變異時,GA排除了替換過的單詞,而IGA可以替換之前替換過的單詞,這樣可以避免局部最小化,替換后的樣本種類更多;在交叉時,GA是在兩個親代中按順序隨機選擇一個單詞形成子代,而IGA則使用隨機剪切,不限于單詞,可以剪切文字段。實驗結(jié)果表明,IGA攻擊后的樣本在Word-CNN、LSTM和Bi-LSTM模型上的測試結(jié)果都優(yōu)于GA。
谷歌于2019年提出了一種黑盒方法來生成包括釋義對(paraphrase pairs)的英文數(shù)據(jù)集PAWS[39](paraphrase adversaries from word scrambling),PAWS由問答網(wǎng)站Quora和維基百科的句子構(gòu)成。釋義對即含義相同的一對句子,如“Flights from New York to Florida.”和“Flights to Florida from New York.”非釋義對為含義相反的一對句子,如“Flights from New York to Florida.”和“Flights from Florida to New York.”可以看出此處的釋義對類似于對抗樣本,即一對含義相同而又互相有微小差別的句子。目前比較先進的模型,如BERT,僅在現(xiàn)有的自然語言數(shù)據(jù)集下訓練,并不能很好地識別出非釋義對,同時會對釋義對判斷錯誤,因為現(xiàn)有的數(shù)據(jù)集缺少諸如此類的釋義對和非釋義對。在生成釋義對時,原始文本首先輸入到基于單詞擾動(word scrambling)的語言模型,該模型將生成具有單詞級交換的擾動文本,但是還無法保證擾動文本與原文本是否為釋義對,有時會出現(xiàn)交換單詞后語句與原句意義截然相反的情況。為了保持釋義和非釋義的平衡,算法采用了反向翻譯(back translation)加人工判斷的形式進一步調(diào)整生成的語句。實驗結(jié)果表明,現(xiàn)有數(shù)據(jù)集上的模型在PAWS上準確度低于40%,但是,包括了PAWS數(shù)據(jù)的模型可將其準確度提升到85%,同時能夠保持現(xiàn)有任務的性能。
2020年,Zang等人[40]提出了一種新的黑盒攻擊方法,該方法結(jié)合了基于義原的詞替換方法和基于粒子群優(yōu)化PSO(particle swarm optimization)的搜索方法。基于義原的方法可以保留更多潛在的高質(zhì)量候選替換詞。粒子群算法利用一群相互作用的個體在特定空間中迭代搜索最優(yōu)解。種群被稱為群體,個體被稱為粒子,每個粒子在搜索空間中都有一個位置,并以相應的速度運動。算法在初始化種群時采用了遺傳算法的方法,后面算法與原始PSO算法相同。該方法基于文本的離散型,不直接更新空間,而是采用是否移動的概率思想向全局最優(yōu)優(yōu)化。在SPO的思想上讓文本在獨立的空間移動。實驗表明PSO相比于baseline具有更高的攻擊成功率和更高質(zhì)量的對抗樣本。
綜上所述,黑盒攻擊方法有很多相似之處。由于黑盒不知道模型的內(nèi)部結(jié)構(gòu)和具體參數(shù),學者們試圖通過不同的方法在單詞空間中尋找最優(yōu)替換。有的先替換單詞,然后再計算替換后的預測分數(shù),如對遺傳算法進行多次迭代尋找最優(yōu)替換。同時,攻擊者也試圖找出替換詞的重要性分數(shù),然后進行替換,以最小化替換詞的比例,如DeepWordBug和TEXTFOOLER。
為神經(jīng)網(wǎng)絡生成對抗樣本的一個基本目的是利用這些對抗樣本增強模型的魯棒性。事實上,防御比攻擊更困難,這方面的工作相較于攻擊做得較少。造成這種情況有兩個原因: 一個是對于復雜的優(yōu)化問題,如對抗樣本生成方法不存在一個好的理論模型;另一個原因是,大量的輸入可能產(chǎn)生目標輸出的可能性很多,具有很高的不可預知性。因此,建立一個真正的通用性防御方法是困難的。目前文本的對抗樣本檢測與防御方法還比較少,主要是針對特定模型所提出來的方法。本文將現(xiàn)有的防御方法主要分為以下幾類: ①改進訓練; ②添加附加組件。第一種方法不影響模型,第二種方法類似于數(shù)據(jù)預處理,先對文本處理一遍,再將其輸入模型。
3.1.1 對抗訓練
對抗訓練[6,47]是最早提出來的針對對抗樣本的防御方法,其基本思想是使用各種對抗樣本生成方法先制作一組大型的對抗樣本,并將它們添加到訓練數(shù)據(jù)集中。訓練數(shù)據(jù)集則包括對抗樣本和對應的原始樣本的混合,通過這種方法可以在一定程度上檢測出對抗樣本。利用對抗訓練可以對深度神經(jīng)網(wǎng)絡進行正則化,減少過擬合,從而提高神經(jīng)網(wǎng)絡的魯棒性。對抗訓練有一些有效的抵御攻擊的方法[26,30,48-49], 但對抗訓練方法并不總是有效的。2017年,Jia等人[24]通過對抗訓練來增強閱讀理解模型的魯棒性,實驗結(jié)果表明,對抗訓練在防御使用相同的生成對抗樣本方式的攻擊是有效和健壯的。Pruthi等人[50]用對抗訓練評估了用于情感分類的BERT模型[51],當使用字符級替換后的對抗樣本攻擊BERT時,其準確率由90.3%降低到了64.1%,而使用對抗訓練后準確率只恢復到69.2%。
在Alzantot等人的工作[37]中也說明了這一點,其防御方法將生成的1 000個對抗樣本加到現(xiàn)有的訓練集中,并使用更新的數(shù)據(jù)集從頭開始對模型進行對抗訓練。盡管該模型對訓練集中包含的對抗樣本分類的準確性達到了近100%,但是在使用測試集的實驗中沒有提供額外的魯棒性,主要是由于生成對抗樣本的方式不同,對抗訓練在特定的攻擊方式中表現(xiàn)較好,如前面的攻擊是通過插入、替換、刪除的方式。而Alzantot等人的工作[37]是基于遺傳算法的同義詞替換。這也是對抗訓練的局限性,它只對相應的攻擊有效,對新的攻擊方式產(chǎn)生的樣本沒有效果。
由于生成對抗樣本的種類很多,僅靠人工加入的對抗樣本做對抗訓練來防御各種類型的對抗攻擊是不夠的。2020年,Liu等人[52]提出了一種新的對抗訓練方法,該方法的核心思想是迭代訓練,自動生成原本沒有的對抗樣本并重新訓練模型,整個過程無須人工干預。具體防御步驟是: 對于每次迭代,首先通過擾動詞向量訓練過程得到權(quán)重矩陣w和訓練損失trainloss;然后使用貪心搜索的方法從w中抽取擾動文本并構(gòu)造對抗樣本;最后在數(shù)據(jù)集中加入新的對抗樣本重新訓練模型。重復整個過程直到trainloss和迭代次數(shù)小于閾值。圖1展示了算法的流程圖,實驗結(jié)果表明,該方法可以生成更加豐富的對抗樣本,從而有效補充了人為添加樣本做對抗訓練的不足,大大提高了閱讀理解模型的魯棒性。進一步的實驗再加上基于規(guī)則的方法可以進一步提高模型的魯棒性,并且超過SOTA性能。但是這種方法生成的對抗樣本都是不符合語法和沒有意義的序列,雖然成功使模型判斷錯誤,但生成對抗樣本的方法還有待改進。
圖1 防御過程流程圖
同年Liu等人[53]針對字符級攻擊提出了聯(lián)合字符詞向量charCNN和對抗穩(wěn)定訓練AST(adversarial stability training)的防御方法。對于字符級攻擊,難點在于字符級攻擊可能產(chǎn)生詞典外的詞OOV(out-of-vocabulary),即該詞不存在,OOV會帶來信息的損失,如何處理好替換詞和原詞的分布差異是一個難點。同時字符級攻擊導致了訓練集和對抗樣本之間的分布差異,這種差異違反了機器學習中的獨立同分布假設,從而導致了模型在對抗樣本上性能不佳。字符級詞向量不僅可以像單詞詞向量一樣提取語法和語言信息,同時可以提取單詞前綴和后綴,盡可能多地保留單詞信息。在對抗訓練方面采用了字符交換、替換、刪除和插入等方式來產(chǎn)生擾動樣本。該防御框架有三個損失函數(shù),原文本輸入分類器得到的損失Ltrue(x,Y),擾動文本輸入分類器得到的損失函數(shù)Lnoisy(x′,Y),還有原文本和擾動文本輸入相似度評價模型得到的損失函數(shù)Ldiff(x,x′),最后得到對抗訓練的目標函數(shù),如式(9)所示。
(9)
其中,θclm是字符詞向量參數(shù),θcla是分類器參數(shù),α和β是超參數(shù)。在實驗結(jié)果上,這種聯(lián)合方法CharCNN-BLSTM+AST在原始文本和對抗樣本上分別取得92.24%和89.45%,準確率優(yōu)于baseline的Word-BLSTM方法的92.22%和82.50%。
3.1.2 重新編碼
Wang[38]等人提出一種稱為同義詞編碼(SEM)的防御方法,利用句子中的單詞是離散標記的特性,可以很容易地找到輸入文本的幾乎所有鄰居?;诖?,提出了一種名為SEM (synonyms encoding method)的新方法來定位輸入單詞的相鄰詞??梢约僭O輸入句子x的鄰居是它的同義句。為了找到同義句,可以用同義詞代替句子中的詞。要構(gòu)造這樣的映射,需要做的就是對同義詞進行整合,并為每個整合后的同義詞分配一個唯一的標記。SEM防御過程是先生成同義詞編碼字典的詞向量矩陣,并將其保存下來;然后使用同義詞編碼的單詞詞典訓練CNN、LSTM和Bi-LSTM模型;最后通過攻擊方法攻擊重新訓練的模型。實驗結(jié)果表明,在受到攻擊時,使用SEM后的模型正確率高于正常訓練和對抗訓練的模型。
2020年,Wang等人[54]提出隨機替換編碼RSE(random substitution encoding)的防御方法,主要攻擊過程如下: 對于輸入的文本x,在給定的最大替換率和最小替換率之間隨機選擇一個替換率sr;然后產(chǎn)生文本的候選單詞集C,再為C中每個單詞挑選同義詞得到擾動后的文本x′,用x′代替x,最后用這些新的文本訓練模型,在測試階段可以用生成的x′輸入訓練好的模型測試RSE替換方法對模型的影響。實驗結(jié)果表明,在CNN、LSTM、Bi-LSTM三種模型中,IMDB、AGs News和Yahoo! Answers三種數(shù)據(jù)集上,RSE的防御效果整體優(yōu)于SEM。
同年,Erik等人[55]提出了一種稱為RobEn(robust encodings)的防御方法,RobEn針對字符級攻擊,其核心是一種編碼功能,將句子映射到較小的離散編碼空間,然后將其用于預測。RobEn的思想類似于SEM,主要區(qū)別是它在同義詞的選取上是字符級修改后的單詞,同時考慮了OOV詞的影響,而SEM為單詞級別上的相似詞。Erik等人指出了重新編碼方法防御對抗樣本攻擊需要滿足的兩個方面: 一是穩(wěn)定性,為了保證不同擾動的一致預測,編碼需要將句子的所有擾動映射到一組編碼上;二是保真性,需要保證使用重新編碼訓練的模型在原始未受擾動的輸入上仍然效果良好,即重新訓練的模型準確率不應低于原始訓練的模型。而SEM在保真性上表現(xiàn)不佳,RobEn的編碼函數(shù)如式(10)所示。
α(x)=[π(x1),π(x2),…,π(xL)]
(10)
將每個單詞xi映射為π(xi),將許多單詞及其錯別字映射到相同的編碼token。實驗結(jié)果表明,RobEn在恢復準確率上比單詞拼寫檢查方法高36%。
對抗攻擊的一種防御策略是檢測輸入數(shù)據(jù)是否被修改。對抗樣本和非對抗樣本之間由于修改過肯定存在一些不同的特征。根據(jù)這一點,人們進行了一系列的工作來檢測對抗樣本,并在圖像上[56-57]表現(xiàn)得相對較好。在文本中,某些方法的修改策略可能會在生成的對抗樣本中產(chǎn)生拼寫錯誤,這是一個可以利用的特性。Pruthi等人[50]通過檢查拼寫錯誤的單詞來檢測對抗樣本,該方法在分類器的前面放置一個單詞識別模型。單詞識別模型建立在RNN半字符體系結(jié)構(gòu)的基礎(chǔ)上,引入了一些新的策略來處理稀有的單詞。經(jīng)過訓練,該模型可以識別由隨機添加、刪除、交換和鍵盤錯誤而改變的單詞,相對于原始半字符模型,該方法減少了32%模型對對抗樣本的錯誤分類。Li等人[48]利用上下文感知拼寫檢查服務來做類似的工作。實驗結(jié)果表明,該方法對字符級的修改是有效的,但不適用于單詞級的修改,因為單詞級的替換通常是真實存在的單詞,沒有拼寫上的錯誤。
Zhou等人[58]采用對模型添加部件的方式來防御對抗攻擊,主要用來防御單詞級分類器。該方法有三個組件: 首先是擾動檢測器,先檢測出一些候選的可能被擾動單詞;然后是詞估計器,利用BERT等方法抽取給定上下文特征,找出最優(yōu)的可能原始詞;最后是單詞水平的還原。之后,將全部恢復的文本輸入給模型進行預測。如能恢復為原始標簽,則防御成功。這種方法稱為DISP(discriminate perturbations)。實驗結(jié)果表明,DISP在單詞級攻擊的防御效果優(yōu)于對抗訓練[47]和拼寫檢查[50],同時將DISP與拼寫檢查結(jié)合能夠進一步提高模型魯棒性。
與英文對抗樣本不同,大多數(shù)需要解決的中文對抗性文本是由現(xiàn)實世界中的惡意網(wǎng)民生成的,由于不同網(wǎng)民采用了不同修改策略,因此其多樣性更加豐富,如生成垃圾郵件逃避檢測[59]、在線論壇發(fā)布廣告等惡意內(nèi)容。由于中文比較好的詞向量預訓練模型還較少,這使得現(xiàn)有的工作在同義詞替換上還存在一些不足。另外,中文中的字符空間非常大,每個字符都可能受到各種攻擊策略的干擾,這使得干擾更加稀疏和無規(guī)律可循。目前針對中文的對抗樣本攻擊和防御的研究較少,本文各選取了一種效果較好的攻擊和防御方法來說明對抗樣本在中文中的應用。
王文琦等人[60]提出了一種稱為WordHanding的黑盒攻擊方法,這種方法設計了新的中文詞重要性計算方法,使用同音詞替換做對抗攻擊。與WS、PWWS等方法類似,WordHanding定義了一些新的衡量方法來計算詞重要性,最后得到詞重要性的排序,再做詞替換。實驗數(shù)據(jù)集采用京東購物評論和攜程酒店評論,結(jié)果表明WordHanding能夠使LSTM模型對生成的對抗樣本檢測的準確率平均降低 29%,使 CNN 模型檢測準確率平均降低 22%,且對原始的中文文本的修改幅度僅占輸入數(shù)據(jù)長度的 14.1%。同音詞替換雖然可以很好地表達原始文本的意思,因為讀上去的發(fā)音跟原始文本一樣,但是由于只是讀音相同,在視覺上能夠明顯區(qū)分出這種對抗樣本,文本可讀性較差。表8[60]展示了WordHanding生成的對抗樣本??梢钥吹?,對抗樣本替換的詞都是感情色彩比較明顯的詞,對情感分類影響較大。
表8 原始文本和WordHanding生成的對抗樣本
2014年,有研究者提出了針對中文的拼寫檢查和糾錯的方法,包括基于規(guī)則[61]的和基于語言模型[62]的方法。但是相比于英文,中文拼寫檢查更困難,因為中文文本詞語之間沒有分割,一句話是連在一起的整體,而拼寫檢測一般只能在詞級別上來確定,結(jié)果是中文的拼寫檢測對模型性能的恢復能力有限。
Li等人[63]提出了一種專門為基于中文對抗樣本的防御框架TEXTSHIELD,這是一種基于神經(jīng)機器翻譯(NMT)的新型防御方法。首先在一個大型對抗性平行語料庫上訓練一個NMT模型,基于Encoder-Decoder框架設計對抗NMT模型,用于恢復擾動的文本;然后將其置于基于多模態(tài)嵌入的文本分類模型前,將對抗性擾動恢復到良性擾動。在訓練階段,首先通過對抗性攻擊生成大量的句子對,構(gòu)造一個大型對抗性平行語料庫;接下來將設計好的NMT模型在對抗樣本上進行訓練。一旦訓練完成,NMT模型就會被用作對抗文本校正器,通過翻譯來重建原始文本。由于攻擊者在真實場景中采用的擾動策略主要集中在基于符號和基于語音的擾動上,該文專門提出了三種跨不同模式的詞向量方法來處理相應的變異類型: 即語義詞向量: 應用skip-gram模型[64]來學習連續(xù)的語義詞向量。字形詞向量: 在中國的書寫體系中,有一大批文字在視覺上很相似,但卻有著完全不同的含義,例如,用“堵”取代“賭博”的“賭”,用字形詞向量方案來提取每個字符的基于字形的特征,以捕捉受干擾的單詞與其良性對應詞之間的相似性。語音詞向量: 提取漢字中的同音字,提高文本分類模型及其魯棒性,例如擾動如“澀情”或“se清”,和毒性詞“色情”有相同的發(fā)音。實驗結(jié)果表明,TEXTSHIELD對惡意用戶生成的對抗文本具有較高的準確性,如對“色情”檢測準確率為0.944,而與良性輸入相比,對模型性能的影響很小,模型準確性降低了不到2%。
對抗樣本的研究由圖像發(fā)展而來,由于圖像具有連續(xù)性,使得圖像的對抗樣本有著很好的人類不可感知性。但是,在文本領(lǐng)域,一點很小改動都能明顯被人類察覺到,雖然現(xiàn)在主流的方法是同義詞替換,但這種同義詞是詞空間中由詞向量計算而來的同義詞,且詞向量中距離較近的同義詞不一定是現(xiàn)實生活中的同義詞,在有些對抗樣本攻擊中生成的同義詞在現(xiàn)實中是不相關(guān)詞,在不同的數(shù)據(jù)集中,一個詞的同義詞可能因為語境等原因有差別。同時,單詞的替換很可能改變句子的語義或語法,雖然最新的攻擊方法在盡量避免這種情況,但仍然有很大的提升空間。因此,使用能準確反映訓練數(shù)據(jù)集單詞相似性的詞向量將會大大改善生成的對抗樣本質(zhì)量。如在中文同義詞替換部分使用ERNIE[65](enhanced representation through knowledge integration)等其他表現(xiàn)較好中文預訓練語言模型,ERNIE的訓練語料庫包括了維基百科、百度貼吧、百度新聞等常見的中文表現(xiàn)形式。其中百度貼吧由于其AI文本審核技術(shù)的存在,導致百度貼吧本身就存在很多規(guī)避審核的對抗樣本, ERNIE無論在攻擊領(lǐng)域還是防御領(lǐng)域都可以用在未來的工作中。在英文方面,能夠更好地反映上下文關(guān)系的預訓練語言模型ELECTRA[66](efficiently learning an encoder that classifies token replacements accurately)在訓練過程中由流行的MLM(masked language modeling)方法改進為RTD(replaced token detection),其將生成式的MLM任務改成了判別式的RTD任務,其替換詞檢測的思想跟對抗樣本檢測和防御非常契合,在未來的工作中使用類似的預訓練語言模型或許有助于提升防御效果。
到目前為止,現(xiàn)有的防御方法都是針對特定攻擊方法、特定數(shù)據(jù)集,比如拼寫檢查在字符級攻擊的防御效果較好,但不適用于單詞級攻擊。特定的防御方法在特定的攻擊方法上表現(xiàn)很好,但是換了另一種攻擊方法就達不到預期的效果。比如通過分析數(shù)據(jù)發(fā)現(xiàn)RSE在PWWS攻擊方法上防御效果很好,但在GA攻擊下并不能很好地感知出其所替換的單詞。原因是在做防御時,可供選擇的攻擊方法有限,一般只選擇幾種方法做實驗,算法可以在這幾種攻擊方法上取得較好的防御效果,但遇到未使用過的攻擊方法時防御效果就減弱了。由于攻擊方法層出不窮,通用性問題目前還沒有較好的解決方法,希望未來有更好的解決方法。
對抗樣本攻擊效果是一個多因素綜合考慮的結(jié)果,現(xiàn)在有一些對抗樣本攻擊方法以模型準確性來評價其方法的性能,即準確性越低,攻擊效果越好。也有一些以攻擊成功率評價攻擊效果,即成功使模型出錯的樣本數(shù)量與總的樣本的比例。但是模型準確性或者攻擊成功率只反映了一個方面,另外的比如語義相似性、單詞替換率和不可感知性等因素都會影響最后的攻擊效果。一個攻擊方法的語義相似越高,單詞替換率越低,不可感知性越強,其效果越優(yōu),但嚴格限制這幾個因素之后攻擊成功率就不會太高。對于語義相似性,評估的方法有歐氏距離、余弦距離和編輯距離等方法,這幾種方法都有人使用過,但是沒有一個標準方法來衡量語義相似性。其次,針對不可感知性,目前通用的方法是人工評估,即選擇若干志愿者人工評估生成的對抗樣本是否是修改過的對抗樣本。嚴格來說,這并不嚴謹,但目前還沒有更好的評估方法,因此需要更標準化的方法來評估對抗樣本的不可感知性和語義相似性。
本文從攻擊和防御兩方面在對抗樣本這一新興的研究方向進行綜述,介紹了目前常見的攻擊和防御方法,在攻擊部分按照黑盒、白盒、字符級和單詞級詳細介紹了具體的攻擊方法,并對所有介紹的攻擊方法做了對比。本文還討論了防御方法,并探討了現(xiàn)有防御方法的不足。同時介紹了中文對抗樣本攻擊與防御方法的進展,雖然現(xiàn)有的針對中文的方法較少且不成熟,但在對抗樣本這一鄰域的研究越來越多,以后針對中文的方法也會更加完善。雖然對抗樣本是深度學習的一個重大威脅,但相信隨著對于對抗攻擊方法的深入研究,未來一定能夠?qū)崿F(xiàn)抵御對抗攻擊更具魯棒性的深度學習模型。