徐尹翔,陳祺東,孫 俊
江南大學 人工智能與計算機學院,江蘇 無錫214122
深度神經(jīng)網(wǎng)絡被廣泛應用于圖像、語音、自然語言等各個領(lǐng)域[1-3]。盡管如此,有研究表明深度神經(jīng)網(wǎng)絡對于對抗攻擊十分脆弱[4-5],即向輸入數(shù)據(jù)添加微小的擾動就能夠改變深度神經(jīng)網(wǎng)絡給出的結(jié)果。例如,文獻[5]中向一張熊貓圖片中添加擾動后,圖像的語義在人眼看來并無變化,而卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)將熊貓識別為了長臂猿。深度神經(jīng)網(wǎng)絡的脆弱性引發(fā)了對于安全的擔憂,比如在路牌上貼上面積極小的涂鴉就能讓自動駕駛系統(tǒng)無法正確地識別路牌,可能造成嚴重的后果[6]。對于對抗攻擊的研究可以幫助構(gòu)建更魯棒的深度神經(jīng)網(wǎng)絡,同時可以啟發(fā)關(guān)于如何防御對抗攻擊的研究[7]。然而,關(guān)于自然語言處理領(lǐng)域的對抗攻擊研究遠少于對于圖像領(lǐng)域?qū)构舻难芯俊2糠衷蚴菆D像的像素值是連續(xù)的,易于實施基于梯度的對抗攻擊,且像素值微小的擾動幾乎無法被人類肉眼所察覺,也不會帶來圖像語義的改變。而自然語言是離散的,詞語的微小變化也可能導致語義的改變。深度神經(jīng)網(wǎng)絡在自然語言處理方向上的應用也十分廣泛,包括垃圾郵件過濾、情感分析[3]和虛假新聞檢測[8]等。因而,自然語言處理領(lǐng)域的對抗攻擊十分具有研究價值。
目前自然語言處理領(lǐng)域的對抗攻擊方法可以按照對抗攻擊時所更改的元素分成三類:字符級別的對抗攻擊、詞級別的對抗攻擊以及句級別的對抗攻擊。關(guān)于字符級別的對抗攻擊,Ebrahimi 等人[9]通過增加、刪除、替換、交換字符等操作來構(gòu)建對抗樣本;Belinkov等人[10]通過打散單詞內(nèi)部的字符、用鍵盤上臨近的字母替代等方法構(gòu)建對抗樣本;Hosseini 等人[11]通過在單詞中增加點(.)、空格等字符來構(gòu)建對抗樣本。字符級別的更改往往可能造成語法的錯誤,而且拼寫檢查或者語法檢查就可以防范這類攻擊[12]。句級別的對抗攻擊方法是通過增加句子或者復述句子來達成對抗攻擊的效果。Jia等人[13]和Wang等人[14]通過在段尾增加句子來實現(xiàn)機器閱讀理解任務上的對抗攻擊。Iyyer 等人[15]通過將原始句子輸入神經(jīng)網(wǎng)絡生成復述的句子作為對抗樣本,這樣的對抗樣本基本沒有語法和語義的問題,但是對輸入的改動過大。Zhao等人[16]將原始輸入映射到流形空間,對其添加擾動后再生成對抗樣本。
詞級別的對抗攻擊方法一般通過替換單詞進行對抗樣本的構(gòu)建。相對于字符級別對抗攻擊方法生成的對抗樣本,詞級別攻擊方法生成的樣本有更好的語義連貫性和更少的語法錯誤。而相對于句級別攻擊方法得到的對抗樣本,詞級別攻擊方法生成的對抗樣本的改動率相對較小,更不易被察覺。詞級別對抗方法在語義語法連貫性和改動率上均能取得相對較好的效果。Papernot 等人[17]使用基于梯度方法進行攻擊,隨機選取替代詞替換原始的輸入詞,這種替換方法會原始輸入的破壞語義。Samanta 等人[18]和Ren 等人[19]使用同義詞替換單詞,可以較好地保持語義。Alzantot 等人[20]從詞向量空間中尋找距離較近的詞作為替換詞,并使用基因優(yōu)化算法搜尋對抗樣本。Liang 等人[21]通過增加、刪除及替換詞的方法來構(gòu)建對抗樣本。Zang 等人[22]使用基于義原的方法來尋找替換詞,然后使用粒子群優(yōu)化算法搜索對抗樣本,在多個數(shù)據(jù)集上取得了最佳效果。
然而,現(xiàn)有詞級別對抗方法存在對于對抗樣本的全局搜索能力較弱,易于出現(xiàn)“早熟”和陷入局部最優(yōu)的情況,因此提升空間較大。本文提出了一種改進的詞級別文本對抗方法,對搜索優(yōu)化算法進行優(yōu)化,采用改進的量子行為粒子群優(yōu)化算法(QPSO)來更有效地搜索對抗樣本,實驗證明本文方法取得了較好的結(jié)果。
義原在語言學中是指最小的不可再分的語義單位。一個詞可以使用一個包含有限個義原的集合來進行表示。Dong 等人[23]使用2 089 個義原標注了約10 萬個中文詞及對應的英文單詞,形成了義原知識庫,即知網(wǎng)(HowNet)。知網(wǎng)中的每個單詞都被表示為樹形的結(jié)構(gòu),由于一個單詞可能有多重語義,每個語義都是一個義原樹。如圖1所示,“筆記本”這個詞含有“筆記冊子”和“筆記本電腦”兩種詞義,在知網(wǎng)中兩種詞義都用義原表示出來,形成了樹狀結(jié)構(gòu)。類似知識庫還有普林斯頓大學構(gòu)建的語義知識庫WordNet。WordNet是基于單詞的知識庫,知網(wǎng)是基于概念的知識庫,相對于WordNet,知網(wǎng)(HowNet)可以找到更多的語義相關(guān)的詞。
圖1 筆記本(notebook)在HowNet中的義原樹以及與筆記本共享相同義原的詞Fig.1 Sememe tree of notebook in HowNet and other word sharing the same sememes
量子行為粒子群優(yōu)化算法是對粒子群優(yōu)化算法[24]的一種改進算法,由Sun 等人[25]于2004 年提出,其靈感來自于量子力學理論以及對于典型粒子群的軌跡分析。量子行為粒子群優(yōu)化算法是一種概率算法,其應用量子力學中的Delta 位勢阱模型來約束粒子,其粒子僅更新位置,沒有速度的概念,更新方程與經(jīng)典PSO 有很大不同。假設(shè)一個包含M個粒子的粒子群在D維空間中進行搜索,在第t次迭代開始時第i個粒子在第j維的位置為記錄了該粒子在第t次迭代及之前的所有時刻中第j維的最佳位置,記錄了整個粒子群在第t次迭代及之前的所有時刻中第j維的最佳位置,則在QPSO 中,第t次迭代時,該粒子在第j維的位置更新公式如下:
本文提出一種基于義原和改進的量子行為粒子群優(yōu)化算法的文本對抗攻擊方法。具體來說,先采用基于義原的方法得到單詞的替代詞集,然后應用改進的離散的量子行為粒子群優(yōu)化算法(ID-QPSO)搜索得到對抗樣本。
基于義原的替代詞選取方法由Zang 等人[22]最先提出。該方法將與原始輸入詞擁有相同義原的詞作為替代詞。相比較于其他的尋找替換詞的方法,如基于詞向量距離的方法或者基于同義詞的方法,基于義原的方法能夠找到更多的優(yōu)質(zhì)的替代詞,因而本文也采用該方法來尋找替代詞。具體舉例如下:“筆記本(notebook)”這個詞含有“筆記冊子”和“筆記本電腦”兩種詞義。“筆記冊子”語義的義原為“簿冊(account)”,與該義原相同詞有“筆記簿(notebook)”“本子(book)”;“筆記本電腦”語義的義原為:“電腦(computer)”“樣式值(Pattern Value)”“能(able)”“攜帶(bring)”,與該義原相同的詞為“便攜式計算機(laptop)”“筆記本電腦(laptop computer)”以及“便攜式電腦(portable computer)”。如此便通過義原找到了“筆記本”的替換詞。如果對于一個詞而言,沒有其他的詞和該詞擁有完全相同的義原,那么這個詞沒有替換詞。
對于一個句子,找到其每個詞的替代詞之后,應用改進的量子行為粒子群優(yōu)化算法進行對抗樣本的搜索。搜索空間是由句子每個詞的替代詞組成,因而是離散空間。為了適應搜索空間的離散特征,對量子行為粒子群優(yōu)化算法進行了改動。具體而言,首先定義優(yōu)化算法的搜索空間。假設(shè)輸入的句子為xorig,句子長度為D,其第j個詞表示為wj,wj及其替代詞共同組成的集合為S(wj),則算法的搜索空間為S={S(wj)|j=1,2,…,D},即整個搜索空間為D維,每一維對應于相應的替代詞集合。將一個對抗樣本作為QPSO 算法中的一個粒子,粒子群一共包含M個粒子,因此初始時將輸入句子復制M份作為M個初始粒子的位置,初始時第i個粒子位置向量記為。第t次迭代時,首先遍歷的每個位置,找到每個位置上對模型傷害最大的詞組成替換詞的向量。然后,使用該替換詞的向量以一定的概率對進行變異操作,具體見圖2,其中是第i個粒子第j維上找出的對模型傷害最大的詞,變異為的概率,對模型的傷害成正相關(guān)。
圖2 對的變異操作Fig.2 mutation operation for
在算法中,采用下述離散化方式進行離散:
其中,r是在[0,1]上均勻分布的隨機變量;α是收縮擴張系數(shù),定義如下:
T為最大迭代次數(shù),t為當前迭代次數(shù)。
提出的基于ID-QPSO 的文本對抗算法總體步驟如圖3所示。
圖3 基于ID-QPSO的文本對抗算法Fig.3 ID-QPSO based adversarial attack algorithm for texts
為了驗證攻擊方法的效果,在三個數(shù)據(jù)集上進行了實驗,分別是IMDB數(shù)據(jù)集[26]、SST-2數(shù)據(jù)集[27]和SNLI數(shù)據(jù)集[28]。三個數(shù)據(jù)集均為文本分類任務。IMDB數(shù)據(jù)集和SST-2數(shù)據(jù)集為情感分類任務,SNLI數(shù)據(jù)集為自然語言推理任務。
IMDB數(shù)據(jù)集[26]是一個包含了50 000條電影評價的數(shù)據(jù)集,其中25 000 條作為訓練集,25 000 條作為測試集。每條評論都被標注為積極或消極。
SST-2 數(shù)據(jù)集[27]同樣是電影評論領(lǐng)域的數(shù)據(jù)集,其包含了約11 000 條評論,被劃分為訓練集、驗證集和測試集。
SNLI 數(shù)據(jù)集[28]是斯坦福大學發(fā)表的一個自然語言推斷數(shù)據(jù)集,該數(shù)據(jù)集包含了570 000對句子,每對句子的關(guān)系被標注為矛盾、蘊含或中立,其中550 000對被劃分為訓練集,10 000對作為驗證集,10 000對作為測試集。
選擇Bi-LSTM 模型以及BERT 模型作為被攻擊模型。Bi-LSTM后接最大池化的模型由Conneau等人[29]于2017 年提出。BERT 模型是Devlin 等人[30]于2019 年提出的預訓練語言模型,提出時在11 項語言任務上取得了最好效果。本文的Bi-LSTM使用300維的GloVe詞向量[31],隱層維數(shù)設(shè)置為128維;BERT模型用的base版。
選取了三個方法作為實驗的對比方法。第一個對比方法是Alzantot 等人[20]提出的方法,該方法在詞向量中尋找替換詞,通過限制詞向量空間的距離來控制替換詞的數(shù)量,然后使用基因算法搜索對抗樣本。第二個對比方法是Ren等人[19]提出的方法,使用同義詞作為替換詞,然后使用貪婪算法來進行對抗樣本的搜索。第三種方法是Zang等人[22]提出的方法,使用基于義原的方法得到替換詞,然后使用粒子群優(yōu)化算法來搜索對抗樣本,該方法是目前的最優(yōu)方法。
為了更有效地進行實驗,從IMDB數(shù)據(jù)集中隨機選取500條數(shù)據(jù),從SST-2數(shù)據(jù)集和SNLI數(shù)據(jù)集中各隨機選取了1 000 條數(shù)據(jù)來進行實驗。同Alzantot 等人和Zang等人的實驗設(shè)置一樣,在選取被攻擊的句子時,選取的句子必須是長度在10 到100 之間且模型能夠給出正確預測的句子。如果模型不能正確預測原始的句子,那么沒有進行對抗攻擊的必要。同時為了保持對比實驗的一致性,將量子行為粒子群優(yōu)化算法的最大迭代次數(shù)T設(shè)置為20,將粒子群的粒子數(shù)量M設(shè)置為60,同Alzantot等人和Zang等人的實驗設(shè)置保持一致。
實驗中對三個數(shù)據(jù)集采用相同的評價標準,即攻擊成功率和對抗樣本平均改動率,計算公式如下:
其中,|sentsuccess|表示攻擊成功的句子數(shù)量,|sentattack|表示被攻擊的句子的總數(shù)量,c為該樣本中改動的單詞的數(shù)量,l為該樣本原始輸入中單詞的總數(shù)。只統(tǒng)計改動率不超過25%的攻擊成功的對抗樣本,將其他情形都視為對抗攻擊失敗。
對抗攻擊成功率的結(jié)果展示在表1中,本文提出的方法在6 個實驗中的5 個上取得了最高的成功率。實驗結(jié)果還顯示同為分類任務,SST-2 的攻擊成功率比IMDB的攻擊成功率要低。因為IMDB數(shù)據(jù)集的平均句子長度超過200,而SST-2的平均句子長度只有大約17,因此對SST 中的句子進行攻擊很容易超過25%的改動率限制,造成攻擊失敗。
表1 對抗攻擊成功率Table 1 Adversarial attack success rate %
攻擊成功的對抗樣本改動率結(jié)果展示在表2中,本文的方法在6個實驗中的4個上取得了最小的樣本平均改動率。表1和表2的結(jié)果證明本文的攻擊方法能夠以較少的改動率獲得較高的攻擊成功率。
表2 攻擊成功的對抗樣本的平均改動率Table 2 Average modification rate of adversarial examples attacking successfully %
為了評價生成的對抗樣本的語法語義正確性,從SST-2 中選取了500 個句子,各對比方法和本文的方法在這500個句子對Bi-LSTM模型的攻擊都獲得了成功,也就是都生成了攻擊成功的對抗樣本。請3 位專業(yè)人員對500 個原始句子及各對抗攻擊方法生成的對抗樣本進行打分。打分原則是:
(1)有語法錯誤而且語義不通的為1分;
(2)只有語法錯誤或者語義錯誤的為2分;
(3)語法和語義均無錯誤的為3分。
評分結(jié)果如表3所示。SST-2數(shù)據(jù)集中的原始句子是收錄的用戶對電影的評論,因此原始句子也存在一些語法錯誤或者語義不順暢。Zang 等人[22]提出的對抗方法和本文方法生成的對抗樣本得分相近,因為尋找替換詞的方法相同,替換詞空間一致,而語法語義的錯誤主要由替換詞的不合適造成,因此兩種方法的評分相近。
表3 語法語義人工評分Table 3 Grammatical and semantic scores
表4列出了一些針對Bi-LSTM模型在SST-2數(shù)據(jù)集上生成的對抗樣本。列出了兩個句子及Zang等人方法和本文方法針對這兩個句子生成的對抗樣本。對抗樣本中更改的詞被以及原始文本中對應的詞都以斜體粗體的形式標出。從表中可以看出,本文方法和Zang 等人方法由于搜索算法不同,在替換位置的選取及替換詞的選擇上有所區(qū)別。在所示的兩個案例中,本文方法可以通過改動相對較少的詞來成功實施對抗攻擊。
表4 對抗樣本實例Table 4 Adversarial examples
本文提出了一種改進的詞級別文本對抗攻擊方法。通過改進搜索優(yōu)化算法,本文的方法可以更有效地搜索到對抗樣本。實驗證明本文方法得到的對抗樣本在保持原有語法語義正確性的情況下,成功率更高,改動率更低,是一種更有效的文本對抗方法。