張 影,方賢進,楊高明
(安徽理工大學 計算機科學與工程學院,安徽 淮南 232001)
在大數(shù)據(jù)的時代和人工智能不斷突破新進展、新理論的背景下,深度學習(Deep Learning)[1]早已被廣泛應用于計算機視覺[2]、語音識別[3]和自然語言處理(Natural Language Processing,NLP)[4]等熱門領域,并且取得了令人矚目的成就。然而研究表明,深度學習模型容易遭到對抗樣本的破壞,這引起了人們對其應用程序中重大安全問題的關注。
對抗樣本首先是在圖像領域被發(fā)現(xiàn)的,而后研究人員在NLP任務中(例如虛假新聞檢測、情感分析、文本分類等)也發(fā)現(xiàn)了對抗樣本。與圖像對抗攻擊[5]類似,文本對抗攻擊[6]的全稱為文本對抗樣本的生成過程,是指對原始輸入中的文本添加微小的且難以察覺的擾動。這種被擾動后的文本依舊會使人類觀察者正確分類,卻導致了目標模型分類錯誤。除了達到愚弄目標模型的目的,一個有效的對抗樣本還應該滿足效能保持的要求。效能保持意味著對抗樣本與原始樣本相比應在語義上保持不變且語法上保持正確。
雖然文本對抗樣本是由圖像領域發(fā)展而來,但經(jīng)實驗證實圖像領域的算法基本上不可直接運用到文本領域,因為圖像數(shù)據(jù)和文本數(shù)據(jù)有著本質(zhì)差別。具體來說,圖像是像素集合的表示,是連續(xù)的;文本是符號化的表示,是離散的。對于人類而言,圖像中像素的微小變化不會被感知,表達的含義也沒有改變,但對于文本的變化可輕易地察覺。在過去十幾年的研究工作中,很多學者提出了大量優(yōu)秀的對抗文本生成方法,范圍從字符級翻轉(zhuǎn)[7]擴展到句子級轉(zhuǎn)述[8],也都取得了良好的效果。相比之下,以單詞替換為主的詞級生成方法在對抗樣本的流暢性和有效性等方面表現(xiàn)的更加突出,因此也成為了NLP任務的主要手段。雖然作為主流技術(shù),遺憾的是,關鍵詞的查找和單詞排序機制等方面還沒有達到理想狀態(tài),很難生成質(zhì)量較高且有效的對抗樣本。
迄今為止,針對NLP任務中對抗樣本攻擊的研究已有了相應重大進展,以下簡要介紹此研究的相關工作。
關于字符級的生成方法,Gao等人[9]設計了特殊的評分函數(shù)判斷影響分類類別的關鍵詞,并對前K個關鍵詞進行隨機插入、刪除、替換等操作以擾動原始樣本。由于擾動是隨機的,生成正確單詞的概率較低且對抗樣本的可用性不高。在文獻[10]中細化了Gao等人[9]設計的評分函數(shù),在情感分析數(shù)據(jù)集上驗證了改進的有效性。Ebrahimi等人[11]通過使用熱輸入向量的梯度在輸入中操縱字符級的插入、交換和刪除以構(gòu)建對抗樣本。然而字符級別的擾動通常只會改變字符,這會導致語法錯誤和文本閱讀不流暢。關于句子級的生成方法,Jia等人[12]通過在原始樣本末端插入不相關的句子來生成對抗樣本;Iyyer等人[13]利用一種回譯數(shù)據(jù)的神經(jīng)轉(zhuǎn)述模型將原始句子進行復述,經(jīng)復述輸出的句子作為對抗樣本。由于句子級別的擾動顆粒較大,對抗樣本與原始樣本之間的差別也較大。
相對而言,單詞級的擾動在對抗樣本的質(zhì)量及攻擊成功率方面表現(xiàn)的更加優(yōu)異。Papernot等人[14]隨機地替換輸入樣本中的單詞,這種替換方式無疑會破壞原始樣本的含義和語法的正確性。Alzantot等人[15]利用遺傳算法(Genetic Algorithm,GA)中的交叉和變異操作生成擾動,減少了對抗樣本的替換詞數(shù)。隨后,Wang等人[16]改進了GA,它在可以隨機剪切單詞的基礎之上,還可以隨機剪切文本片段,攻擊效果也有了一定程度的提升。Ren等人[17]提出了一種基于概率加權(quán)詞顯著性(Probability Weighted Word Saliency,PWWS)的方法,利用同義詞替換原始詞構(gòu)造了質(zhì)量良好的對抗樣本,但是生成效率十分低下。Jin等人[18]提出的TextFooler生成算法也利用了同義詞作替換詞,并且采用了重要單詞替換選擇機制。雖比PWWS的生成效率有所提高,但仍不理想。Wang等人[19]借助圖像領域的梯度攻擊提出了快速梯度投影法(Fast Gradient Projection Method,F(xiàn)GPM)應用在NLP任務中,雖然對抗樣本能夠使目標模型判斷錯誤,但這種直接使用在文本上的方法造成對抗樣本可讀性差。
盡管單詞級生成方法更為有效,但是就目前的研究進展來看,在對抗樣本的分類準確率和單詞擾動百分比方面還有很大的進步空間。針對此現(xiàn)象,該文提出了一種單詞級的對抗樣本生成方法,對生成過程進行優(yōu)化以生成質(zhì)量較高的對抗樣本,并通過實驗證明了該方法的有效性。
文本對抗樣本是對原始輸入文本進行小的修改而形成的,可以改變文本分類器的判斷。給定一個包括一切可能的輸入文本的特征空間X={x1,x2,…,xN}和輸出空間Y={y1,y2,…,yK},原始輸入文本可以表示為x=[w1,w2,…,wi,…]。其中xN表示第N個樣本,yK表示樣本對應的類別標簽,wi表示樣本中第i個單詞。一個預訓練過的分類器f:X→Y,它把輸入的文本空間X映射到標簽空間Y,將原始樣本x分類到正確標簽。對于輸入文本x∈X,通過添加不可感知的擾動Δx生成對抗樣本。一個成功的對抗樣本xadv應該符合以下約束條件:
f(x)≠f(xadv)
(1)
其中,xadv=x+Δx,擾動Δx要求足夠小且有效。
針對文本對抗樣本的約束條件,提出的基于單詞重要性聯(lián)合分類概率生成對抗樣本的方法能夠滿足上述約束。
如圖1所示,該方法主要分為三個模塊:文本表示與預處理模塊、生成樣本擾動模塊和目標模型預測標簽模塊。接下來將詳細介紹這三個模塊,完成整個生成過程。
2.2.1 文本表示與預處理模塊
在NLP中,將“自然語言”轉(zhuǎn)化為“符號語言”是其本質(zhì)和核心,所以文本預處理的重要性不言而喻。在此模塊中,首先,采用NLTK[20]自然語言處理工具包對原始輸入文本進行分詞處理。由于英文文本的獨特性,可直接根據(jù)單詞間的空格分割開。因此對于每一個樣本x,其分詞結(jié)果為x=[w1,…,wi-1,wi,…]。其次,利用NLTK的詞性標注器對單詞進行詞性標注。最后,運用預先訓練的100維GloVe詞嵌入[21]將文本轉(zhuǎn)化為向量。該過程如圖2所示。
圖2 文本表示與預處理過程
2.2.2 生成樣本擾動模塊
對抗樣本質(zhì)量的好壞與添加的擾動密不可分。為了生成質(zhì)量良好的對抗樣本,在此模塊中主要是生成擾動并對添加的擾動進行約束,利用決策機制在每一步驟中都采用最佳選擇。在這項工作中,采用的是基于單詞重要性分數(shù)聯(lián)合分類概率選擇最佳同義替換詞和確定替換順序。首先,計算單詞的重要性分數(shù)并過濾停用詞,再為其建立同義詞集合,根據(jù)分類概率從中選擇最佳同義詞;而替換順序由單詞的重要性分數(shù)和最佳同義詞的替換效果共同決定。因此,解決問題的關鍵在于選擇最佳候選同義詞和確定替換詞的順序。圖3為生成樣本擾動示意圖。
(1)計算單詞的重要性得分。
在NLP的文本分類任務中,不同的單詞對分類結(jié)果產(chǎn)生不同程度的影響,需要對文本中的單詞進行重要性分數(shù)計算。將輸入文本刪除單詞wi后的文本表示為xwi=[w1,…,wi-1,wi+1,…],oy(x)表示目標分類模型為正確標簽y輸出的邏輯值,并使用f(·)表示標簽y的預測分數(shù)。單詞重要性分數(shù)的計算方式如公式(2)所示:
(2)
根據(jù)公式(2)可看出,若刪除單詞wi前后分類結(jié)果不變,則I1(wi)為分類模型預測的差值;若刪除wi前后分類結(jié)果改變,則I1(wi)為刪除wi前后文本被預測為不同類別的差值之和。
一般來說,一段文本語句往往含有不必要的噪聲和特征,并不能夠?qū)Ψ诸惼鞯呐卸ńY(jié)果起到重要作用,且在不同的文本中,同一單詞起到的作用也會有所不同。因此,根據(jù)文本特點創(chuàng)建不同的停用詞集,過濾“the”、“in”等沒有實際意義的單詞,可以達到減輕生成擾動的負擔的目的。
(2)尋找同義候選詞。
為了保證生成對抗樣本的單詞正確性和語義相似度,即添加擾動后的樣本能夠使人類盡量無法感知,從而不影響人類的閱讀和理解,該文采用與單詞的同義詞進行替換方式產(chǎn)生擾動,因此對于本方法而言,擾動的最初狀態(tài)是對輸入單詞所查找的同義詞。
(3)
(4)
與此同時,得到新的擾動文本:
(5)
(6)
(3)確定最佳替換順序。
(7)
根據(jù)打分結(jié)果對單詞倒序排序以獲得最佳替換順序worder。為確保生成質(zhì)量更佳的對抗樣本,再次為擾動添加約束。因為每個文本具有不同長度,所以設置替換上限為該文本單詞數(shù)量的6%。
2.2.3 目標模型預測標簽模塊
目標模型預測標簽模塊是該算法的最后一步,旨在判別對抗樣本的標簽,它的作用是驗證生成的對抗樣本是否有效。此模塊的具體流程如圖4所示。先將生成的擾動根據(jù)順序worder添加到原始樣本生成擾動樣本,再輸入到目標分類模型中得到類別標簽,由標簽結(jié)果決定是否進行更多的替換。若標簽改變即成功,否則繼續(xù)進行替換直到文本分類的結(jié)果改變,或者替換單詞數(shù)量達到上限即失敗。
圖4 目標模型預測標簽流程
采用的主要算法過程如下所示:
算法:對抗樣本生成過程。
輸入:原始樣本x=[w1,…,wi-1,wi,…],標簽y,文本分類模型f,替換上限比例6% top;
輸出:對抗樣本xadv。
1:初始化:xadv←x
2:for eachwiinxdo:
3:根據(jù)等式(2)計算單詞重要性分數(shù)I1(wi);
4:end for
5:建立停用詞集stop_words set;
6:for wordwiinxdo:
7: ifwinot in stop_words set:
8: 為單詞wi建立同義詞集合Li;
9:end for
10:for wordwiinxdo:
11: for candidate wordwijinLido:
12: 根據(jù)等式(3)計算同義候選詞的替換效果I2(wi)
13: end for
15:end for
17:for wordwiinworderdo:
20: iff(x)≠f(xadv):
21: returnxadv
22: else if 單詞替換數(shù)量達到上限top:
23: return none
24:end for.
計算機將文本數(shù)據(jù)信息映射到給定的某一類別或某幾類別標簽的過程稱為文本分類(Text Classification)。它被廣泛應用在新聞主題分類、情感分析、輿情分析及郵件過濾等場景中。在這一節(jié)中,分析了所提出的方法在文本分類任務上的性能。
為了驗證生成方法的有效性,在三個流行的數(shù)據(jù)集上對不同的深度神經(jīng)網(wǎng)絡模型進行分類預測,分別為IMDB數(shù)據(jù)集、AG's News數(shù)據(jù)集和Yahoo! Answers數(shù)據(jù)集。
IMDB數(shù)據(jù)集[23]:該數(shù)據(jù)集是用于情感分類任務,數(shù)據(jù)集中的每個樣本都是一個電影評論,類別標簽為積極或消極。
AG's News數(shù)據(jù)集[24]:該數(shù)據(jù)集是用于新聞文章分類,由世界新聞、體育新聞、商業(yè)新聞和科學新聞四個類別組成。
Yahoo! Answers數(shù)據(jù)集[25]:該數(shù)據(jù)集由十大類別主題組成,包含1 400 000個訓練樣本和5 000個測試樣本,平均分布在不同的類別上。
目標模型選用卷積神經(jīng)網(wǎng)絡[26](Convolutional Neural Networks,CNN)、長短時記憶網(wǎng)絡[27](Long Short-Term Memory,LSTM)和雙向長短時記憶網(wǎng)絡[28](Bi-directional Long Short-Term Memory,Bi-LSTM),并選用Random、FGPM[19]及PWWS[17]作為實驗的對比方法評估文中方法的性能,且每組實驗都是從數(shù)據(jù)集中隨機抽取2 000個干凈樣本進行擾動。其中Random是指隨機地選擇樣本中的單詞進行替換,并沒有預先計算替換順序。
為了評估對抗樣本的質(zhì)量,在實驗中設置了兩種評估指標,分別為分類正確率(Classification Accuracy,CA)和擾動率(Perturbation Rate,PR)。分類正確率是指對抗樣本被模型分類準確的比例。它是衡量生成方法成功與否的核心指標,也表示著誤導模型的能力。值越小,結(jié)果越有效。擾動率是指文本被擾動的比例,也是評估對抗樣本質(zhì)量的重要因素。一般而言,越少的擾動表示著語義一致性越高。兩者的計算公式分別如下:
CA=success_count/sum_count
(8)
PR=substitute_count/len(doc)
(9)
其中,success_count表示對抗樣本標簽改變的個數(shù),sum_count表示輸入樣本的總個數(shù),substitute_count為被替換單詞的數(shù)量;len(doc)為樣本的長度。
表1和表2分別展示了文中方法與其他方法在AG's News數(shù)據(jù)集和Yahoo!Answers數(shù)據(jù)集上三個模型的分類準確率對比。由對抗樣本誤導分類標簽的性質(zhì)可知,對抗樣本的分類準確率越小越好。在每組實驗中,文中的生成方法都能使得模型達到較低的分類準確率,證明它可以最大程度地欺騙模型并顯著地降低性能。實驗結(jié)果還表明,相比于其他分類模型,LSTM模型使得對抗樣本的分類準確率下降的最為顯著。
表1 AG's News數(shù)據(jù)集生成對抗樣本的分類準確率(CA)
表2 Yahoo! Answers數(shù)據(jù)集生成對抗樣本的分類準確率(CA)
此外如表3中第三列所示,在IMDB數(shù)據(jù)集上再次驗證了該方法可降低對抗樣本被模型分類正確的概率。如前所述,擾動率越小,對抗樣本與原始樣本越接近。在第四列中可清晰地觀察到擾動率保持在較小值,亦即替換的單詞數(shù)量較少,可獲得較強的隱蔽性,從而使得對抗樣本在語義和語法上與原始文本保持較大的一致性。
表3 在IMDB數(shù)據(jù)集生成對抗樣本的分類準確率(CA)和擾動率(PR)
綜上所述,所提出的方法能夠在降低分類模型準確率的同時減小樣本的擾動比例,使得生成的對抗樣本與原始樣本保持較高的一致性,不容易被人類察覺。
對抗訓練的目的是為了提高模型的魯棒性。為了驗證模型是否提高了正視對抗樣本的能力,將IMDB數(shù)據(jù)集生成的對抗樣本加入到其干凈樣本中,構(gòu)造一個新的數(shù)據(jù)集來重新訓練CNN模型。結(jié)果如圖5所示,隨著對抗樣本數(shù)量的增加,目標模型能夠更好地擬合這些數(shù)據(jù),模型的分類準確率逐步上升。換句話說,對抗樣本被經(jīng)過對抗訓練后的模型分類到錯誤類別的概率在減小,模型的脆弱性得到了保護,也就有了更強的魯棒性。
圖5 對抗訓練
表4展示了在IMDB數(shù)據(jù)集上針對CNN模型生成文本對抗樣本的示例。從表中可以看出,在該文本中僅替換1個單詞,就實現(xiàn)了將原始標簽“積極”錯誤地判別為“消極”。
表4 IMDB數(shù)據(jù)集上原始樣本和對抗樣本示例
在NLP文本分類任務中,針對目標分類模型的脆弱性,提出了一種單詞級的對抗樣本生成方法。該方法在單詞重要性和分類概率的共同作用下生成微小的擾動。在三個文本分類數(shù)據(jù)集上的實驗表明,對抗樣本在保持較低的分類正確率的同時具有較低的擾動率,亦即對抗樣本質(zhì)量有所提高。進一步的實驗表明,模型在對抗訓練后提高了自身的魯棒性。