鄭海斌 陳晉音,2 章 燕 張旭鴻 葛春鵬 劉 哲 歐陽亦可 紀(jì)守領(lǐng)
1(浙江工業(yè)大學(xué)信息工程學(xué)院 杭州 310023) 2(浙江工業(yè)大學(xué)網(wǎng)絡(luò)空間安全研究院 杭州 310023) 3(浙江大學(xué)控制科學(xué)與工程學(xué)院 杭州 310063) 4(南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 南京 211106) 5(華為技術(shù)有限公司南京研究所 南京 210029) 6(浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 杭州 310063)
深度神經(jīng)網(wǎng)絡(luò)(deep neural networks, DNNs)的突破性發(fā)展使其成為人工智能技術(shù)的重要分支之一,在圖像識別、無人駕駛、自然語言處理(natural language processing, NLP)、網(wǎng)絡(luò)圖譜分析、生物醫(yī)療診斷等領(lǐng)域得到廣泛應(yīng)用.尤其是在NLP領(lǐng)域中,DNNs被廣泛應(yīng)用在機(jī)器翻譯[1]、自動文本摘要[2]、語音識別及文本轉(zhuǎn)換[3]、信息抽取與過濾[4]、文本分類與聚類[5]等任務(wù)中.與此同時(shí),研究發(fā)現(xiàn)DNNs在圖像識別領(lǐng)域中極易受到對抗性擾動[6]的影響,使得DNNs預(yù)測錯(cuò)誤.目前普遍認(rèn)為,神經(jīng)網(wǎng)絡(luò)容易受到對抗性擾動的主要原因在于它們在高維空間中的線性行為[7].
不僅計(jì)算機(jī)視覺領(lǐng)域的DNNs容易受到攻擊,NLP領(lǐng)域的DNNs(即NLP模型)同樣面臨著安全威脅,具體表現(xiàn)為NLP模型在使用過程中容易受到精心制作的對抗文本的干擾.由于圖像和文本數(shù)據(jù)存在數(shù)據(jù)結(jié)構(gòu)的內(nèi)在差異,因此并不能直接將圖像上的攻擊方法直接應(yīng)用到文本數(shù)據(jù)中.針對圖像數(shù)據(jù)的擾動是人眼難以察覺的像素級別的微小變化,因此人類仍然可以正確地對受擾動的圖像進(jìn)行正確分類而DNNs不行.但是對于文本的對抗性攻擊,由于語言閱讀的習(xí)慣和前后文的邏輯關(guān)系,人類此時(shí)也很難對攻擊后的文本進(jìn)行正確的理解.Jia等人[8]首先提出了在處理文本任務(wù)的NLP模型上進(jìn)行對抗文本生成.隨后出現(xiàn)了各種不同角度和策略的文本對抗攻擊方法,例如,用相似的單詞替換單詞[9]、添加額外的文本[10]或用語義相似的句子替換句子[11]等會生成無效的單詞或語法錯(cuò)誤的句子,極大地改變句子的語義從而實(shí)現(xiàn)攻擊.在這種情況下,即使人類也無法提供正確的預(yù)測.這些潛在的安全問題引起了研究人員極大的關(guān)注,進(jìn)而提出了大量的攻擊方法對NLP模型進(jìn)行安全漏洞挖掘.
同時(shí),為了提高NLP模型的魯棒性,目前研究也提出了較多面向NLP的防御方法,主要包括對抗訓(xùn)練、隱私保護(hù)防御和檢測防御3類.對抗訓(xùn)練被認(rèn)為是目前最有效的防御方法之一,其基本思想是利用攻擊方法獲得的對抗文本與正常文本進(jìn)行混合,作為新的訓(xùn)練數(shù)據(jù)集對目標(biāo)模型進(jìn)行微調(diào)訓(xùn)練;但是對抗訓(xùn)練的防御效果容易受到對抗樣本多樣性、數(shù)量以及微調(diào)訓(xùn)練策略等的影響.隱私保護(hù)防御主要是針對NLP模型容易受到隱私竊取攻擊這一問題所提出的解決方案,主要包括針對數(shù)據(jù)和針對模型的隱私保護(hù),前者是避免攻擊者從開源數(shù)據(jù)集中竊取用戶的隱私信息,后者是保護(hù)預(yù)訓(xùn)練的NLP模型的訓(xùn)練數(shù)據(jù)隱私信息不被竊取.檢測防御的主要功能是檢測待處理的輸入數(shù)據(jù)是否為對抗樣本,通常情況下對于失真嚴(yán)重的對抗樣本具有較好的防御效果.
目前針對NLP模型的防御方法大多是后驗(yàn)的、被動的,對于未知攻擊的防御效果難以保證,因此需要進(jìn)一步研究能夠用理論證明的可驗(yàn)證的NLP模型魯棒評估方法.針對NLP模型的可驗(yàn)證魯棒性方法主要從模型的決策邊界或者內(nèi)部結(jié)構(gòu)出發(fā),通過計(jì)算模型的可驗(yàn)證精度、最大擾動下界、最小擾動上界等指標(biāo),實(shí)現(xiàn)為NLP模型在最壞情況下提供有效的可計(jì)算形式的保證,達(dá)到可驗(yàn)證魯棒性評估的目的.
NLP攻防領(lǐng)域的研究工作還有很大的發(fā)展空間,針對NLP模型的對抗文本生成問題以及模型魯棒優(yōu)化防御任務(wù)也成為安全領(lǐng)域相關(guān)研究人員的關(guān)注點(diǎn)之一.為此,本文按照NLP模型、攻防方法、魯棒分析、平臺和工具包的邏輯關(guān)系展開介紹.
目前DNNs在NLP領(lǐng)域中被廣泛應(yīng)用,如序列標(biāo)注任務(wù)、文本分類、句子關(guān)系判斷和文本生成式任務(wù)等.為了應(yīng)對NLP發(fā)展過程中各項(xiàng)任務(wù)的不同挑戰(zhàn),DNNs也隨之出現(xiàn)各種模型架構(gòu),除了最常見的前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)等,循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)、Word2vec[12]、序列到序列學(xué)習(xí)模型(sequence-to-sequence learning, Seq2Seq)[13]以及注意力模型(attention model)[14]也是NLP任務(wù)中常用的模型,這是因?yàn)樗鼈兙哂刑幚硇蛄械哪芰?此外,Transformer模型及其各種變體模型[15-22]以及XLNet[23]模型近年來在NLP領(lǐng)域中也越來越受歡迎.在本節(jié)中,我們將簡要介紹NLP領(lǐng)域中常用的DNNs.
Word2vec模型[12]是谷歌公司研究人員設(shè)計(jì)的NLP模型,它的特點(diǎn)是將所有的詞向量化,這樣就可以定量地去度量詞與詞之間的關(guān)系,挖掘詞之間的聯(lián)系.Word2vec模型的具體實(shí)現(xiàn)分為CBOW[24]和Skip-Gram[25]兩種模型.
CBOW模型的訓(xùn)練輸入是某一個(gè)特征詞的上下文相關(guān)的詞對應(yīng)的詞向量,而輸出就是這一特定詞的詞向量.Skip-Gram模型則相反,其輸入是一個(gè)特定詞的詞向量,而輸出是特定詞對應(yīng)的上下文詞向量.通過訓(xùn)練Word2vec模型,將每個(gè)詞都映射到一個(gè)較短的詞向量上,所有的詞向量就構(gòu)成了向量空間,進(jìn)而可以用統(tǒng)計(jì)學(xué)的方法來研究詞與詞之間的關(guān)系.基于此,Word2vec模型解決了由于詞與詞相互獨(dú)立并且特征向量會過于稀疏而造成的維度災(zāi)難問題.
由于原始的RNN要求序列等長,然而實(shí)際遇到的大部分任務(wù)的序列都是不等長的,如機(jī)器翻譯中,源語言和目標(biāo)語言的句子往往并沒有相同長度.Seq2Seq模型[13]的出現(xiàn)解決了這個(gè)問題,通過使用編碼器-解碼器體系結(jié)構(gòu)為給定的序列信息生成另一個(gè)序列信息,保證了序列的長度要求.
Seq2Seq模型是RNN的一個(gè)變體,包括編碼器和解碼器2部分,這一模型結(jié)構(gòu)在機(jī)器翻譯、文本摘要、閱讀理解、語音識別等領(lǐng)域取得很好的性能.Seq2Seq模型的輸入是一個(gè)序列,輸出也是一個(gè)序列,編碼器用于編碼序列信息,將任意長度的序列信息編碼為一個(gè)固定長度的向量.解碼器在得到上下文信息向量之后可以將信息解碼,并輸出可變長度的序列.隱變量分層遞歸編碼器-解碼器模型[26]是典型的Seq2Seq模型,該模型利用子序列之間的復(fù)雜依賴性生成新序列.
注意力機(jī)制[27]的提出解決了編碼Seq2Seq模型中所需的長序列的困難.注意力使解碼器可以回顧源序列的隱藏狀態(tài),而隱藏狀態(tài)將加權(quán)平均值作為解碼器的附加輸入,從而使其關(guān)注序列的重要信息部分.Attention模型[14]中,解碼器的輸出會與編碼器每一個(gè)時(shí)間點(diǎn)的輸出進(jìn)行向量計(jì)算,常見的計(jì)算方式為內(nèi)積法.NLP的自注意力[28]利用注意力機(jī)制“動態(tài)”地生成不同連接的權(quán)重,用于查看序列中的周圍單詞以獲得更多的上下文相關(guān)單詞表示[29],從而處理變長的信息序列.
ELMo模型[30]主要使用了一個(gè)兩層雙向的長短時(shí)記憶網(wǎng)絡(luò)(long short term memory, LSTM)語言模型,結(jié)合上下文來理解詞義.先在一個(gè)大型的語料庫上進(jìn)行訓(xùn)練,用模型的內(nèi)部狀態(tài)來表征一個(gè)詞的向量,此時(shí)內(nèi)部狀態(tài)混合了所有的語義;然后將下游任務(wù)的文本輸入模型,此時(shí)的詞具備了具體的上下文語境,再用內(nèi)部狀態(tài)的線性組合來表征詞.這種線性組合是在下游任務(wù)中進(jìn)行訓(xùn)練得到的.雙向LSTM層能有效地編碼上下文中不同類型的語法和語義信息,提高整體任務(wù)性能.
與大多數(shù)Seq2Seq模型一樣,Transformer[31]的結(jié)構(gòu)也是由編碼器和解碼器組成.不同于Attention模型中的注意力機(jī)制,Transformer提出了多頭注意力的機(jī)制,分別學(xué)習(xí)對應(yīng)的源句內(nèi)部、目標(biāo)句內(nèi)部、源句與目標(biāo)句之間的3種關(guān)系.對于短語的位置,Transformer使用位置編碼機(jī)制進(jìn)行數(shù)據(jù)預(yù)處理,擴(kuò)展了模型的并行性,獲得了更好的效果.針對不同的問題,Transformer還有各種不同的結(jié)構(gòu)變體,包括Vanilla Transformer[15],Universal Transformer[16],Generative Pre-trained Transformer(GPT)[17]等.
1.5.1 Vanilla Transformer模型
RNN結(jié)構(gòu)本身比較簡單,也很適合序列建模,但RNN的明顯缺點(diǎn)之一就是無法并行,因此速度較慢,這是遞歸的天然缺陷.此外,RNN難以很好地學(xué)習(xí)到全局的結(jié)構(gòu)信息.為了解決這一問題,Vaswani等人[15]提出了Vanilla Transformer模型,通過多頭自注意力結(jié)構(gòu)一步到位獲取了全局信息.Vanilla Transformer模型通過位置嵌入,對每個(gè)位置編號,然后通過正余弦函數(shù)將編號映射為一個(gè)向量.通過這一操作,為每個(gè)詞都引入了一定的位置信息,解決了自注意力本身無法捕捉序列順序的問題.
1.5.2 Universal Transformer模型
由于Transformer模型中編碼器和解碼器執(zhí)行的次數(shù)仍是人為設(shè)置的超參數(shù),使得模型架構(gòu)無法自主轉(zhuǎn)換任務(wù)并且自動地調(diào)整訓(xùn)練策略.Universal Transformer模型[16]有別于傳統(tǒng)做法,采用了自適應(yīng)計(jì)算時(shí)間讓模型可以動態(tài)地調(diào)整每個(gè)符號的計(jì)算次數(shù),實(shí)現(xiàn)最好的矢量表達(dá).此方法在轉(zhuǎn)換函數(shù)上另作符號分頭進(jìn)行,能夠有效地學(xué)習(xí)每個(gè)符號的矢量表達(dá),并保留了Vanilla Transformer模型的優(yōu)點(diǎn),解決傳統(tǒng)方法梯度爆炸/消失和信息遺失的問題.
1.5.3 GPT模型
Radford等人[17]首次提出結(jié)合無監(jiān)督的預(yù)訓(xùn)練和有監(jiān)督的微調(diào)而得到GPT單向自回歸語言模型,旨在學(xué)習(xí)一種通用的表示方式,可以做很少的改變就能轉(zhuǎn)移到各種類型的NLP任務(wù)中.此外,目前主流的機(jī)器學(xué)習(xí)模型對于字幕或者閱讀理解、圖像分類這樣的任務(wù),輸入的多樣性和不確定性會把模型缺點(diǎn)暴露出來.為了構(gòu)建一個(gè)泛化能力更強(qiáng)的模型,Radford等人[18]把多任務(wù)學(xué)習(xí)和無監(jiān)督學(xué)習(xí)關(guān)聯(lián)起來得到GPT-2模型,在多個(gè)任務(wù)上進(jìn)行預(yù)訓(xùn)練,無監(jiān)督地做下游任務(wù).模型沿用GPT單向自回歸語言模型,但是使用的數(shù)據(jù)質(zhì)量高、更寬泛、量更大,模型的參數(shù)規(guī)模更大,訓(xùn)練成本也更高.
1.5.4 BERT模型
BERT模型[19]代表Transformer的雙向編碼器表示,與其他語言表示模型不同,BERT旨在通過聯(lián)合調(diào)節(jié)所有層中的上下文來預(yù)先訓(xùn)練深度雙向表示模型.它采用了3種嵌入相加的方式作為模型輸入:符號嵌入+段嵌入+位置嵌入,其中符號嵌入采用的是單詞符號嵌入,段嵌入則采用文本語句嵌入,位置嵌入使用了隨機(jī)參數(shù)同Transformer模型一起訓(xùn)練.因此,預(yù)訓(xùn)練的BERT表示可以通過一個(gè)額外的輸出層進(jìn)行微調(diào),適用于廣泛任務(wù)的模型構(gòu)建,比如問答任務(wù)和語言推理,無需針對具體任務(wù)做大幅架構(gòu)修改.
但是,BERT的預(yù)訓(xùn)練模型并沒有得到充分訓(xùn)練,因此Liu等人[20]提出了魯棒優(yōu)化的BERT預(yù)訓(xùn)練方法(robustly optimized BERT approach, RoBERTa)以更好地訓(xùn)練BERT模型.BERT的掩碼是在預(yù)處理時(shí)進(jìn)行的,導(dǎo)致該掩碼是靜態(tài)的,而RoBERTa中使用動態(tài)掩碼,只是在序列送入模型中的時(shí)候才進(jìn)行動態(tài)的掩碼.這樣在更大數(shù)據(jù)集上或者更多步數(shù)的訓(xùn)練上會表現(xiàn)更好,但是過程中使用了大量的訓(xùn)練數(shù)據(jù),且模型結(jié)構(gòu)更為復(fù)雜.為了得到更好的模型訓(xùn)練參數(shù),Lan等人[21]則提出了更輕量級的模型(a lite BERT, ALBERT).ALBERT的核心思想是采用2種減少模型參數(shù)的方法,比BERT占用的內(nèi)存空間小很多,在保證模型訓(xùn)練效果的同時(shí)極大提升了訓(xùn)練速度.
1.5.5 Transformer-XL模型
由于Transformer無法建模超過固定長度的依賴關(guān)系,對長文本編碼效果差,且把要處理的文本分割成等長的片段,通常不考慮句子(語義)邊界,導(dǎo)致上下文碎片化.因此,Dai等人[22]提出Transformer-XL模型,使用片段級遞歸機(jī)制,通過引入一個(gè)記憶模塊,循環(huán)用來建模片段之間的聯(lián)系,使得片段之間產(chǎn)生交互,解決編碼長距離依賴和上下文碎片化問題.Transformer-XL模型還使用了相對位置編碼機(jī)制,代替絕對位置編碼,這是為了實(shí)現(xiàn)片段級遞歸機(jī)制而提出,解決可能出現(xiàn)的時(shí)序混淆問題.
XLNet模型[23]與BERT模型[19,21]類似的是同樣遵循兩階段的過程:第1個(gè)階段是語言模型預(yù)訓(xùn)練階段;第2階段是任務(wù)數(shù)據(jù)微調(diào)階段.XLNet模型主要改動第1個(gè)階段,它不同于BERT模型帶掩碼符號的降噪自編碼模式,而是采用自回歸語言模型的模式.通過對輸入全排列來引入上下文信息,并利用雙流自注意力機(jī)制和注意力掩碼實(shí)現(xiàn)更好的效果.此外,XLNet模型直接使用了相對位置編碼,并將遞歸機(jī)制整合到全排列設(shè)定中.對于生成類的任務(wù),能夠在維持表面從左向右的生成過程前提下,學(xué)習(xí)隱含上下文的信息,比BERT模型具有更明顯優(yōu)勢.
根據(jù)上述對NLP模型的介紹,我們進(jìn)一步整理并總結(jié)其中的關(guān)鍵技術(shù)、應(yīng)用、優(yōu)勢以及待解決的挑戰(zhàn),如表1所示:
Table 1 Comparison of Classic Natural Language Processing Models表1 經(jīng)典的NLP模型對比
隨著DNNs在NLP領(lǐng)域的發(fā)展應(yīng)用,針對其文本數(shù)據(jù)的對抗和中毒攻擊研究工作也得到廣泛關(guān)注.根據(jù)對文本數(shù)據(jù)擾動粒度的不同,實(shí)現(xiàn)對已有的NLP相關(guān)攻擊方法進(jìn)行分類,主要分為:字符級攻擊、單詞級攻擊、句子級攻擊.對比以上3種不同粒度的攻擊擾動,字符級和句子級擾動所產(chǎn)生的對抗文本質(zhì)量較差,前者會破壞其語法性,降低對抗文本的可讀性,但是攻擊成功率較高;后者則使得對抗文本和原始輸入之間有巨大的差別,且攻擊效果也比較一般.而單詞級攻擊在對抗文本質(zhì)量和有效性控制以及攻擊成功率方面則有更好的表現(xiàn).
字符級攻擊主要通過對原始輸入中的字符添加擾動,常用的方法包括字符的刪除、修改、添加、替換等.字符級擾動所產(chǎn)生的對抗文本質(zhì)量較差,破壞了其語法性[32],因此該類攻擊方法應(yīng)用較少.
Eger等人[33]研究了視覺對抗攻擊對當(dāng)前NLP系統(tǒng)的影響,包括字符、單詞和句子級別的任務(wù).作者引入視覺擾流器,通過在視覺嵌入空間中隨機(jī)地將輸入中的字符替換為其視覺近鄰字符,從而實(shí)現(xiàn)攻擊.結(jié)果表明,最先進(jìn)的NLP模型在受到視覺擾流器攻擊時(shí),對各種NLP任務(wù)的性能都顯著下降.在單個(gè)任務(wù)的攻擊場景中,下降率高達(dá)82%.此外,作者探索了3種文本屏蔽防御方法——視覺字符嵌入、對抗訓(xùn)練和基于規(guī)則的恢復(fù)方法,這大大提高了NLP模型的魯棒性.但是,在攻擊場景下文本屏蔽方法的性能仍然落后于非攻擊場景,這說明了對視覺攻擊的處理難度更大.
進(jìn)一步,根據(jù)攻擊者對目標(biāo)模型的信息掌握情況對其作進(jìn)一步的分類,可以分為白盒攻擊和黑盒攻擊.在白盒攻擊場景中,攻擊者可以獲取目標(biāo)模型的所有信息,包括模型結(jié)構(gòu)、梯度和參數(shù)等;而在黑盒攻擊場景中,攻擊者則無法獲取目標(biāo)模型的相關(guān)信息,但是可以得到模型的輸出結(jié)果,從而利用對抗文本的遷移性進(jìn)行攻擊.黑盒攻擊在無法探知原NLP模型結(jié)構(gòu)和參數(shù)的前提下,通過找到與訓(xùn)練原NLP模型同分布的數(shù)據(jù),并使用該數(shù)據(jù)訓(xùn)練一個(gè)新的替代模型.基于此,Gil等人[34]提出White-to-black攻擊,證明在優(yōu)化過程中利用隱含的知識,可以提煉得到另一個(gè)更有效的DNNs.通過白盒攻擊生成針對替代模型的對抗文本,然后根據(jù)白盒攻擊生成的對抗文本來對攻擊者進(jìn)行訓(xùn)練,訓(xùn)練出的DNNs可用于實(shí)施黑盒攻擊,攻擊過程如圖1所示.圖1中的白盒攻擊過程,源毒性模型S(*)通過白盒攻擊方法生成對抗文本,并以此訓(xùn)練攻擊者模型DISTFLIP.圖1中的黑盒攻擊過程,使用訓(xùn)練好的DISTFLIP來攻擊黑盒模型,并翻轉(zhuǎn)了生成樣本中42%的API預(yù)測標(biāo)簽.該方法減少了對抗文本生成時(shí)間,并且此方法在黑盒設(shè)置的情況下,也能通過攻擊谷歌透視圖API來暴露其安全漏洞.
Fig. 1 Attack effect from white box to black box[34]圖1 白盒變黑盒的攻擊效果[34]
在文本分類任務(wù)中,Gao等人[35]針對NLP模型存在的安全漏洞,提出了一種算法DeepWordBug,它可以產(chǎn)生敵對的文本序列,并通過利用這個(gè)漏洞誤導(dǎo)深度學(xué)習(xí)模型.該算法可在黑盒設(shè)置中有效地生成微小文本擾動,從而迫使NLP模型對文本輸入進(jìn)行誤分類.作者還為DeepWordBug算法設(shè)計(jì)了新的評分策略,以找到最重要的單詞進(jìn)行修改,從而使NLP模型做出錯(cuò)誤的預(yù)測.DeepWordBug算法將簡單的字符級轉(zhuǎn)換應(yīng)用于排名最高的單詞,以最小化擾動的編輯距離,同時(shí)更改原始分類.結(jié)果表明,DeepWordBug降低了當(dāng)前最新的NLP模型的預(yù)測準(zhǔn)確性,通過生成對抗性序列文本使得模型的性能下降.
Ebrahimi等人[36]研究了字符級別神經(jīng)機(jī)器翻譯(neural machine translation, NMT)的對抗文本,并將黑盒對手與新白盒對手進(jìn)行對比,后者使用可微字符串編輯操作對對抗性變化進(jìn)行排序.Ebrahimi等人[36]提出了2種新的攻擊類型,目的是刪除或改變翻譯中的一個(gè)詞,而不是簡單地破壞NMT.實(shí)驗(yàn)結(jié)果表明,在不同的攻擊場景下,白盒對抗文本的攻擊效果明顯強(qiáng)于黑盒對抗文本,這顯示了比目前已知的更嚴(yán)重的漏洞.此外,利用該方法生成的對抗文本進(jìn)行對抗性訓(xùn)練,可以提高NLP模型的魯棒性.
即使目前最先進(jìn)的NMT模型也無法很好地翻譯人類容易理解的中等噪音文本,基于此Belinkov等人[37]提出將面向字符的NMT模型與合成的和自然的噪聲源相結(jié)合的攻擊方法.此外,作者還探討了2種增強(qiáng)模型魯棒性的方法:結(jié)構(gòu)不變詞表示和噪聲文本的魯棒訓(xùn)練,并發(fā)現(xiàn)基于CNN的模型能夠同時(shí)學(xué)習(xí)對多種噪聲具有魯棒性的表示.實(shí)驗(yàn)結(jié)果表明,基于字符的NMT模型是非常脆弱的,并且當(dāng)面對自然和合成類型的噪聲時(shí)往往會發(fā)生模型預(yù)測錯(cuò)誤.但是,通過使用結(jié)構(gòu)不變詞表示和通過對不同種類的對抗文本進(jìn)行集成訓(xùn)練,可以在一定程度上提高模型的魯棒性.
綜上所述,字符級攻擊所產(chǎn)生的對抗文本質(zhì)量較差,大概率會破壞其語法性,造成對抗文本不可讀.盡管攻擊成功率較高,但是目前已有一些基于語法糾錯(cuò)的防御方法可以很好地應(yīng)對字符級攻擊.
與字符級攻擊不同的是,單詞級攻擊擾動的對象是原始輸入中的詞,最主要的方法為詞替換,包括基于詞向量相似度[38]、同義詞[39]、義原[40]、語言模型分?jǐn)?shù)[41]等詞替換方法.單詞級攻擊在對抗文本質(zhì)量和有效性控制以及攻擊成功率方面有更好的表現(xiàn),加上利用語言模型進(jìn)行控制,所產(chǎn)生的對抗文本的通順性、流暢性也能夠保證.
在單詞級攻擊方法中,典型的白盒攻擊如基于共享的詞替換攻擊[42]、TextFooler攻擊[38]等,都是需要獲取目標(biāo)模型的詳細(xì)信息;而常用的黑盒攻擊如基于義原的詞替換攻擊[40]則利用對抗文本的遷移性進(jìn)行攻擊.此外,還有研究人員同時(shí)研究白盒場景和黑盒場景下的其他攻擊方法,如基于關(guān)系解析擾動的攻擊[43].本節(jié)將從單詞級白盒攻擊、黑盒攻擊、其他攻擊3方面進(jìn)行介紹.
2.2.1 單詞級白盒攻擊
Shi等人[42]從使用共享詞進(jìn)行修改的角度研究了釋義識別模型的魯棒性,并表明模型在面對這些修改攻擊時(shí),存在嚴(yán)重的魯棒性安全問題.攻擊模型的目的是構(gòu)建一個(gè)有效的新對抗文本,使目標(biāo)模型做出錯(cuò)誤的預(yù)測.Shi等人[42]為了找到一個(gè)修改的攻擊方案,使用受啟發(fā)式規(guī)則約束的波束搜索,并利用BERT掩碼語言模型來生成與上下文兼容的替換詞.實(shí)驗(yàn)表明,這種攻擊方法所生成的對抗文本還能用于進(jìn)行對抗訓(xùn)練以提高NLP模型的安全性.但是這種修改不保留語義,每一對修改的句子通常有更低的單詞重疊,因此這種攻擊方法容易誤導(dǎo)模型的預(yù)測.為了生成保留語義內(nèi)容、語法性且人類能夠分類正確的對抗文本,Jin等人[38]提出TextFooler攻擊方法用于產(chǎn)生對抗文本,并將其應(yīng)用于2個(gè)基本的NLP任務(wù),文本分類和文本蘊(yùn)涵任務(wù).最終成功地攻擊了多個(gè)目標(biāo)NLP模型,包括強(qiáng)大的預(yù)訓(xùn)練BERT模型,以及廣泛使用的CNN和RNN.該攻擊框架在成功率和擾動率方面優(yōu)于以前的攻擊,能夠生成保留語義內(nèi)容的對抗文本,而且計(jì)算復(fù)雜度與文本長度呈線性關(guān)系,缺陷是對初始精度高的模型攻擊難度較大.
為了解決輸出空間的連續(xù)性問題,Cheng等人[44]提出了一種結(jié)合group lasso和正則化的投影梯度方法,此方法通過Seq2Seq模型生成對抗文本,使用投影梯度法解決輸入空間的離散性問題,采用group lasso增強(qiáng)失真的稀疏性,并開發(fā)一種正則化技術(shù)進(jìn)一步提高成功率.實(shí)驗(yàn)結(jié)果驗(yàn)證了所提算法的有效性:通過改變小于3個(gè)單詞,可以使Seq2Seq模型產(chǎn)生期望的錯(cuò)誤輸出,具有很高的攻擊成功率.此外,作者還使用一個(gè)外部情感分類器驗(yàn)證了生成的對抗文本仍然保留了語義性,而Seq2Seq模型在對抗攻擊方面具有更強(qiáng)的內(nèi)在魯棒性.此方法可以進(jìn)行更具挑戰(zhàn)性的目標(biāo)關(guān)鍵字攻擊,并能有效應(yīng)用于機(jī)器翻譯和文本摘要任務(wù).
由于對文本分類的對抗攻擊過程中,產(chǎn)生的對抗文本難以保持詞法的正確性、語法的正確性和語義的相似性.在同義詞替換攻擊策略的基礎(chǔ)上,Ren等人[39]提出了一種基于概率加權(quán)詞顯著性(probability weighted word saliency, PWWS)的文本分類實(shí)例生成方法來解決這一問題.PWWS引入了一種新的詞替換順序,該順序由詞的顯著性決定,并以分類概率為權(quán)重.實(shí)驗(yàn)表明,PWWS能在較低的詞替換率下大幅度降低文本分類的準(zhǔn)確率,且這種干擾是人類難以察覺的,證明了在離散輸入空間中存在對抗文本,并顯示了NLP模型的脆弱性.PWWS也表現(xiàn)出良好的可移植性,并且通過對抗性訓(xùn)練可以提高模型在測試時(shí)的魯棒性.
在NLP的機(jī)器翻譯任務(wù)中,Hsieh等人[45]和Cheng等人[46]分別提出了面向翻譯模型的攻擊方法.前者檢查了自注意神經(jīng)網(wǎng)絡(luò)對敵對性輸入擾動的魯棒性.具體地,作者研究了最先進(jìn)的RNN和自注意架構(gòu)在對抗攻擊下的情感分析、蘊(yùn)涵和機(jī)器翻譯的注意機(jī)制和特征提取機(jī)制.同時(shí)提出了一個(gè)新的攻擊算法產(chǎn)生更多的自然對抗文本,用以誤導(dǎo)NLP模型.而Cheng等人[46]利用對抗性源實(shí)例攻擊翻譯模型,同時(shí)使用對抗性目標(biāo)實(shí)例保護(hù)翻譯模型,提高其對對抗性源實(shí)例的魯棒性.為了生成對抗性實(shí)例,作者提出了一種基于梯度的攻擊方法,通過對干凈文本的翻譯損失制作對抗文本.Hsieh等人[45]的實(shí)驗(yàn)結(jié)果表明,對于這3個(gè)NLP任務(wù)(情緒分析、文本蘊(yùn)含和機(jī)器翻譯),在輸入擾動較小時(shí),自注意力模型比RNN對對抗攻擊有更高的魯棒性.此外,作者還從模型內(nèi)部變化出發(fā),對自注意力模型魯棒性較強(qiáng)的原因進(jìn)行解釋,為進(jìn)一步生成更強(qiáng)大的對抗文本提供理論基礎(chǔ).Cheng等人[46]在漢英和英德翻譯任務(wù)上的實(shí)驗(yàn)結(jié)果則表明,此方法能夠提高翻譯性能和魯棒性,并在噪聲數(shù)據(jù)上表現(xiàn)出更高的魯棒性,說明該方法生成對抗文本可以用于對抗訓(xùn)練,進(jìn)而反向提升NLP模型的魯棒性.
由此可見,對抗訓(xùn)練不僅在圖像處理領(lǐng)域取得巨大成功,在NLP領(lǐng)域中也應(yīng)用廣泛.研究人員可以直接將在圖像處理領(lǐng)域開發(fā)的對抗訓(xùn)練直接應(yīng)用于輸入詞嵌入空間,而不是離散的文本輸入空間.然而,此方法放棄了諸如生成對抗文本之類的可解釋性,以顯著提高NLP任務(wù)的性能.Sato等人[47]通過限制嵌入空間中單詞的擾動方向,恢復(fù)其可解釋性.此方法將每個(gè)帶有擾動的輸入直接重構(gòu)為實(shí)際的文本,并將擾動視為句子中單詞的替換,并通過限制輸入嵌入空間中現(xiàn)有單詞的擾動方向恢復(fù)其可解釋性,進(jìn)而可以成功地在嵌入空間中生成合理的對抗文本和可解釋的可視化擾動.
Samanta等人[48]提出了一種通過修改原始樣本來制作對抗文本的方法,這是第1個(gè)從復(fù)雜的文本樣本合成對抗文本的工作.對原始文本的修改是通過刪除或替換文本中重要或突出的單詞,或在文本中引入新單詞來完成的.此算法最適合每個(gè)類的樣本都有子類別的數(shù)據(jù)集.在制作對抗文本時(shí),關(guān)鍵的約束之一是生成有意義的句子,從語言(英語)的語法觀點(diǎn)來看,這些句子是合法的.與圖像不同的是,文本在進(jìn)行修改時(shí)必須滿足一些條件,以確保文本樣本的語義和語法的保留.在面向情感分析的電影評論數(shù)據(jù)集(internet movie database, IMDB)和性別檢測的Twitter數(shù)據(jù)集上,實(shí)驗(yàn)結(jié)果表明了此方法的有效性.
NLP模型通常用于解決復(fù)雜任務(wù),以及在敏感情況下做出決策,因此許多NLP模型容易受到以對抗文本為輸入的對抗性操縱.Papernot等人[49]基于詞序列轉(zhuǎn)換的攻擊,研究RNN在處理順序數(shù)據(jù)時(shí)的對抗威脅,為對抗性機(jī)器學(xué)習(xí)領(lǐng)域做出了貢獻(xiàn).研究表明,先前介紹的對抗文本生成算法,若能夠使得前饋神經(jīng)網(wǎng)絡(luò)誤分類,將也可以適用于對RNN的攻擊.實(shí)驗(yàn)結(jié)果表明,此方法在攻擊中必須考慮數(shù)據(jù)的預(yù)處理過程,且在較弱的威脅模型下執(zhí)行攻擊也將有助于更好地理解漏洞并指導(dǎo)防御.但是還需要解決對抗性序列的語法問題,以改善其在句子中的語義,使擾動更加難以察覺.
2.2.2 單詞級黑盒攻擊
Maheshwary等人[50]提出了一種基于決策的攻擊策略,該策略可以針對文本分類和文本蘊(yùn)含任務(wù)設(shè)計(jì)高質(zhì)量的對抗文本.作者提出的攻擊策略利用基于種群的優(yōu)化算法,通過只觀察目標(biāo)模型預(yù)測的Top1標(biāo)簽來制作貌似合理且語義相似的對抗文本.盡管種群優(yōu)化算法是強(qiáng)大的組合優(yōu)化技術(shù),但是如果搜索空間很大,它們?nèi)匀粫兟⑹諗康骄植孔顑?yōu).
在每次迭代實(shí)驗(yàn)過程中,優(yōu)化過程都允許單詞替換,從而最大限度地提高原始文本和對抗文本之間的整體語義相似度.如圖2所示,包括初始化對抗樣本、縮減搜索空間、優(yōu)化對抗樣本等步驟,用X*替換更多的同義詞會大大增加搜索空間.因此,在此步驟中通過將一些同義詞替換為各自的原始單詞來減少X*中的替換次數(shù).此方法并不依賴于使用替代模型或任何類型的訓(xùn)練數(shù)據(jù),并且能夠在受限設(shè)置下以較低的詞擾動百分比獲得較高的攻擊成功率.
Fig. 2 Search space visualization[50]圖2 搜索空間可視化[50]
Garg等人[51]提出了一種黑盒攻擊方法BAE(BERT-based adversarial examples),利用BERT掩碼語言模型的上下文擾動制作對抗文本.BAE在原始文本中替換和插入token以遮蔽待攻擊詞,語言模型根據(jù)語境選取預(yù)測出的詞.并利用BERT-MLM生成掩碼token的對抗文本,在文本分類任務(wù)中插入和替換句子中的token以進(jìn)行攻擊.實(shí)驗(yàn)表明,BAE執(zhí)行了更強(qiáng)的攻擊.此外,與之前的工作相比,BAE生成的對抗文本具有更好的語法和語義一致性.
單詞級攻擊中常用的是詞替換攻擊方法,基于此,Zang等人[40]將基于義原的詞替換方法和基于粒子群優(yōu)化的搜索算法相結(jié)合,通過基于最小語義單位的詞替換保留更多潛在的有效對抗文本,分別解決不合適的搜索空間縮減方法和效率低下的優(yōu)化算法這2個(gè)問題.Tan等人[52]通過擾亂干凈文本中的詞形變化,生成看似合理且語義相似的對抗文本,而不需要訪問模型的梯度.Alzantot等人[9]則是使用基于黑盒種群的優(yōu)化算法,生成語義和語法上相似的對抗文本.這些對抗文本能夠欺騙已訓(xùn)練好的情感分析和文本蘊(yùn)含模型,攻擊成功率分別達(dá)到97%和70%.作者通過大量的實(shí)驗(yàn)驗(yàn)證了該方法可以獲得更高的攻擊成功率,并且能夠制造出更多高質(zhì)量的對抗文本.此外,Tan等人[52]的攻擊方法在顯示強(qiáng)大的攻擊能力的同時(shí),還能保持處理干凈數(shù)據(jù)集的性能.作者的攻擊方法生成的對抗文本都具有更高的可遷移性并能有效用于對抗訓(xùn)練,從而提高受威脅NLP模型的魯棒性.
隨著詞攻擊方法的研究發(fā)展,研究人員意識到可以使用策略學(xué)習(xí)的方法制作對抗文本.Zou等人[53]通過基于強(qiáng)化學(xué)習(xí)生成對抗文本的方法來研究基于DNNs的NLP系統(tǒng)在這種情況下如何、以及何時(shí)會失敗的問題.作者針對任何給定的NMT體系結(jié)構(gòu),通過引入一種強(qiáng)化學(xué)習(xí)范式,在token級別上應(yīng)用離散擾動,以實(shí)現(xiàn)直接的翻譯性能下降.Yang等人[54]提出了一個(gè)概率框架研究針對離散數(shù)據(jù)的對抗性攻擊.在此基礎(chǔ)上,作者推導(dǎo)出一種基于擾動的貪婪攻擊方法和一種基于學(xué)習(xí)的可擴(kuò)展的Gumbel攻擊方法,以用于攻擊算法設(shè)計(jì)中的各種權(quán)衡.
結(jié)果表明,Zou等人[53]能有效地生成具有保持語義的對抗文本的穩(wěn)定攻擊,但是在“加強(qiáng)文本”上攻擊效果不佳.作者也提出了一個(gè)定性和定量分析的首選模式的攻擊,可以暴露給定性能指標(biāo)上的度量缺陷,實(shí)現(xiàn)模型安全漏洞的定量分析.Yang等人[54]的貪婪攻擊查詢效率相對較低,因?yàn)槟P驮u估與攻擊者選擇的特征數(shù)量和子字典大小呈線性關(guān)系.由于不需要查詢攻擊階段的模型,Gumbel攻擊對攻擊成功率和文本語義保持有折中考慮.但是這些攻擊方法都能有效應(yīng)用于最新的文本分類NLP模型的攻擊.
2.2.3 其他攻擊
以前面向NLP模型的對抗文本攻擊研究主要集中在語義任務(wù)上,例如情感分析、問題回答和閱讀理解.Zheng等人[43]研究了基于神經(jīng)網(wǎng)絡(luò)的依賴解析模型的魯棒性,證明了依存關(guān)系解析中也存在對抗文本.作者提出2種方法,研究解析器如何通過在句子和短語級別上搜索現(xiàn)有文本的擾動而犯錯(cuò),以及設(shè)計(jì)在黑盒和白盒設(shè)置中構(gòu)造此類示例的算法.針對句法任務(wù)進(jìn)行對抗攻擊的實(shí)驗(yàn)表明,此方法成功地找到了解析器的盲點(diǎn),并取得了很高的攻擊成功率.同時(shí),通過使用此攻擊得到的對抗文本進(jìn)行對抗訓(xùn)練,不僅保持了依賴解析器在干凈數(shù)據(jù)上的性能,而且提高了依賴解析器的魯棒性.
由于句子空間是離散的,因此很難沿梯度方向進(jìn)行小的擾動搜索,而且不能保證順利地生成對抗文本.Zhang等人[41]提出了基于Metropolis-Hastings的攻擊(MHA),它通過執(zhí)行Metropolis-Hastings采樣來解決上述2個(gè)問題,同時(shí)利用梯度進(jìn)行快速攻擊.
在IMDB和斯坦福自然語言推理(Stanford natural language inference, SNLI)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,MHA相比于比遺傳算法可以更快地生成對抗文本,而且利用MHA方法生成的對抗文本更流暢.但是,MHA在標(biāo)簽改變時(shí)返回輸出結(jié)果,可能導(dǎo)致句子不完整.此外,利用MHA生成的對抗文本進(jìn)行對抗性訓(xùn)練,也能改善NLP模型的魯棒性.
Liang等人[55]提出了一種制作對抗文本的有效方法,揭示了一個(gè)容易被忽視的重要事實(shí),即基于DNNs的文本分類器也容易受到對抗文本的攻擊.具體地,面對不同的對抗場景,通過計(jì)算輸入文本的代價(jià)梯度(白盒攻擊)或生成一系列封閉的測試樣本(黑盒攻擊),進(jìn)而識別對分類結(jié)果很重要的文本項(xiàng).因此,作者設(shè)計(jì)了3種擾動生成策略來生成對抗文本,即插入、修改和刪除.實(shí)驗(yàn)結(jié)果表明,該方法生成的對抗文本能夠成功愚弄最先進(jìn)的字符級和詞級NLP文本分類器.這些對抗文本可以被用于干擾任何期望的字符級或詞級,而不會影響其效用,且引入的擾動是很難被感知的.
綜上所述,單詞級攻擊在對抗文本質(zhì)量和有效性控制以及攻擊成功率方面有更好的表現(xiàn),對某些詞進(jìn)行同義替換很難改變這句話的語義,所產(chǎn)生的對抗文本的通順性、流暢性也更容易保證.此外,單詞級攻擊在白盒和黑盒的場景下都能達(dá)到較高的攻擊成功率,因此單詞級攻擊應(yīng)用較廣.
句子級攻擊將整句原始輸入視作擾動的對象,旨在產(chǎn)生一個(gè)和原始輸入語義相同(至少針對當(dāng)前任務(wù)的真實(shí)標(biāo)簽不改變),但卻使得受威脅模型判斷改變的對抗文本.常用的句子級攻擊方法包括編碼后重解碼[56]、添加無關(guān)句子[57]、改述[58]等,下面將對句子級攻擊方法進(jìn)行介紹.
Wang等人[58]提出了一個(gè)受控對抗文本生成(controlled adversarial text generation, CATGen)模型,在給定輸入文本的情況下,通過與已知任務(wù)標(biāo)簽無關(guān)的可控屬性生成對抗文本.與許多現(xiàn)有的對抗文本生成方法相比,此方法可以生成更加多樣化和流暢的對抗文本,且對模型再訓(xùn)練和不同的模型架構(gòu)具有很強(qiáng)的魯棒性.因此,可以使用生成的對抗文本進(jìn)行對抗訓(xùn)練來改進(jìn)模型,但模型如何隱式地提取屬性還需探索.由此,Li等人[59]基于BERT提出了一種更為高效的對抗文本生成方法BERT-Attack,通過使用預(yù)先訓(xùn)練的掩碼語言模型制作高質(zhì)量的對抗文本.作者將BERT與下游任務(wù)中精細(xì)調(diào)整的模型和其他DNNs相對立,以便誤導(dǎo)目標(biāo)模型的預(yù)測結(jié)果.此方法在成功率和干擾百分比上都優(yōu)于最先進(jìn)的攻擊策略,同時(shí)生成的對抗文本流暢并且語義上保持不變,但在干擾率、攻擊成功率、語法正確性和語義一致性等方面仍有很大的改進(jìn)空間.
在面向NLP結(jié)構(gòu)化預(yù)測任務(wù)的攻擊與防御研究中,除了任何攻擊者都會面臨的如何干擾離散單詞和句子流暢性問題外,結(jié)構(gòu)化預(yù)測模型對攻擊者還有一個(gè)特定的挑戰(zhàn):結(jié)構(gòu)化輸出對輸入中的小擾動十分敏感.為了解決這一問題,Han等人[60]提出了一個(gè)新的框架,首先通過使用Seq2Seq模型,從處理相同結(jié)構(gòu)化預(yù)測任務(wù)的多個(gè)參考模型進(jìn)行反饋,對結(jié)構(gòu)化預(yù)測模型進(jìn)行攻擊.在此基礎(chǔ)上,作者進(jìn)一步通過對抗性訓(xùn)練來增強(qiáng)受威脅模型的性能,使其預(yù)測更加準(zhǔn)確且魯棒.對句法分析和詞性標(biāo)注的攻擊實(shí)驗(yàn)表明,此攻擊框架可以產(chǎn)生高質(zhì)量的句子,進(jìn)而有效地攻擊當(dāng)前最先進(jìn)的NLP模型.防御實(shí)驗(yàn)表明,利用此模型生成的對抗文本進(jìn)行對抗訓(xùn)練可以對原始模型的魯棒性進(jìn)行改善.
與人類用戶進(jìn)行交互時(shí),在大型數(shù)據(jù)集上受訓(xùn)的面向目標(biāo)的對話代理可以實(shí)現(xiàn)良好的性能.但是,在現(xiàn)實(shí)世界的應(yīng)用程序中,更重要的是確保代理不僅與常規(guī)用戶進(jìn)行正常交互,而且能夠與那些會通過交互攻擊系統(tǒng)以實(shí)現(xiàn)自身優(yōu)勢的惡意用戶進(jìn)行順暢交互.Wallace等人[61]提出“人在回路中”的對抗文本生成方式,用于指導(dǎo)人類攻擊目標(biāo)模型.作者將此生成框架應(yīng)用于Quizbowl問答任務(wù)中,通過交互式用戶界面幫助解釋模型預(yù)測,而且用戶可以在其中提出對抗性問題.對抗性問題涵蓋了從multi-hop推理到實(shí)體類型干擾等多種現(xiàn)象,暴露出問題解答中的開放性挑戰(zhàn).Cheng等人[62]則通過使用對抗性智能體精心設(shè)計(jì)的攻擊來評估對話系統(tǒng)的魯棒性,分別在黑盒和白盒設(shè)置中進(jìn)行.這是第1個(gè)在互動對話系統(tǒng)中創(chuàng)造對抗代理的方法.實(shí)驗(yàn)結(jié)果表明,目前基于DNNs的模型對此方法的對抗代理是不穩(wěn)定的.此外,通過使用此方法的黑盒代理進(jìn)行迭代對抗訓(xùn)練,可以顯著提高對話系統(tǒng)的魯棒性.
Ribeiro等人[11]介紹了語義等效攻擊,通過語義保留擾動,誘導(dǎo)模型預(yù)測發(fā)生變化.作者將這些敵對方歸納為語義上等價(jià)的對抗規(guī)則,在許多情況下通過簡單、通用的替換規(guī)則混淆對手.通過在3個(gè)任務(wù)場景中(機(jī)器理解、視覺問答和情感分析)檢測最先進(jìn)的黑盒模型中的錯(cuò)誤,展示了針對語義等效對手和等價(jià)對抗規(guī)則的有用性和靈活性,此方法在大多情況下有效地產(chǎn)生了高質(zhì)量的對抗文本,具有泛化攻擊能力.
Minervini等人[63]研究了自然語言推理(natural language inference, NLI)中違反一階邏輯約束的對抗性實(shí)例的自動生成問題.作者將識別此類對抗性例子的問題簡化為組合優(yōu)化問題,通過最大化度量違反此類約束的數(shù)量,并使用語言模型來生成語義上具有混淆性的例子.此外,作者提出了一種對抗規(guī)則神經(jīng)推理模型來整合背景知識的方法.結(jié)果表明,雖然所提出的方法并不總能改善SNLI和多體類自然語言推理(multi-genre natural language inference, MultiNLI)數(shù)據(jù)集上的結(jié)果,但它顯著且持續(xù)地提高了對敵制作數(shù)據(jù)集的預(yù)測精度.此外,該方法生成的對抗文本還能在不同模型上進(jìn)行遷移,并且所提出的對抗性訓(xùn)練過程通常能夠產(chǎn)生更魯棒的模型.
針對處理斯坦福問答數(shù)據(jù)集(Stanford question answering dataset, SQuAD)缺乏魯棒性的問題,Wang等人[64]提出了一種新的添加輸出多樣化(add sent diverse, ASD)的對抗文本生成算法,通過不同位置放置干擾和擴(kuò)大假答案的設(shè)置產(chǎn)生對抗文本,顯著增加了對手的訓(xùn)練數(shù)據(jù)方差.此外,為了提高對語義擾動(例如反義詞)的魯棒性,除了添加基于ASD的對抗性訓(xùn)練實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)之外,還共同提高了模型的語義關(guān)系學(xué)習(xí)能力.在許多不同類型的對抗評估下,此方法可以實(shí)現(xiàn)36.5%的F1得分提升.Jia等人[8]則針對SQuAD數(shù)據(jù)集提出了一個(gè)新的對抗性評估方法,通過向輸入段落添加分散注意力的句子來創(chuàng)建對抗文本.這些句子是自動生成的,用來分散問答系統(tǒng)的注意力,不會改變正確的答案或誤導(dǎo)人類,以測試系統(tǒng)面臨干擾時(shí)的魯棒性.實(shí)驗(yàn)表明,在這種對抗性的環(huán)境下,模型的平均準(zhǔn)確率明顯下降,進(jìn)一步驗(yàn)證了對抗文本的攻擊有效性.
在NLP的句子級攻擊中,研究人員通常使用句子的語法轉(zhuǎn)換進(jìn)行攻擊,Iyyer等人[56]提出了句法控制釋義網(wǎng)絡(luò)(syntactically controlled paraphrase networks, SCPNs)制作對抗文本.給定一個(gè)句子和目標(biāo)語法形式(例如選區(qū)解析),訓(xùn)練SCPNs用于所需的語法對句子進(jìn)行釋義.Zhao等人[57]則通過在密集和連續(xù)數(shù)據(jù)表示的語義空間中進(jìn)行搜索,生成位于數(shù)據(jù)流形上的對抗實(shí)例,且得到的對抗文本是在語法和意義上與輸入相似的.Iyyer等人[56]大規(guī)模地進(jìn)行反向翻譯,然后使用解析器標(biāo)記在這個(gè)過程中自然發(fā)生的語法轉(zhuǎn)換.這種攻擊方法允許用額外的輸入來指定目標(biāo)語法,進(jìn)而訓(xùn)練一個(gè)神經(jīng)編碼器-解碼器模型.自動評估和人工評估的結(jié)合表明,與現(xiàn)有的不受控制的釋義生成系統(tǒng)相比,該模型顯示出的詞匯變化要少得多,而更傾向于純粹的語法修改.Zhao等人[57]的實(shí)驗(yàn)解釋了決策行為并評估了黑盒分類器的準(zhǔn)確性,但是其生成的對抗文本難以直接有效地用于對抗訓(xùn)練以提升模型的魯棒性.
Minervini等人[65]提出了第1個(gè)可以使用功能無關(guān)的Horn子句(如對話)來正則化任何神經(jīng)鏈路預(yù)測器的方法,其復(fù)雜性與域的大小無關(guān).對于幾個(gè)鏈路預(yù)測模型,優(yōu)化問題所面臨的對手存在有效的封閉形式的解決方案,其神經(jīng)鏈路預(yù)測的正則化概述過程如圖3所示.圖3中,給定帶有變量{X1,X2,X3}的子句,一個(gè)對手會將每個(gè)變量映射到一個(gè)嵌入的對抗實(shí)體,該實(shí)體最大程度地減少了不一致的損失,同時(shí)通過最小化鏈路預(yù)測和不一致的損失來訓(xùn)練鑒別器.在鏈路預(yù)測基準(zhǔn)上的實(shí)驗(yàn)表明,在給定適當(dāng)?shù)南闰?yàn)知識的情況下,此方法可以顯著影響所有相關(guān)指標(biāo)的神經(jīng)鏈路預(yù)測的結(jié)果,達(dá)到攻擊效果.
綜上所述,句子級擾動往往使得對抗文本和原始輸入之間有巨大的差別,很難控制所產(chǎn)生的對抗文本的質(zhì)量,更無法保證其有效性,因此符合語義和理解的句子級攻擊比單詞級和字符級攻擊難度更大.
根據(jù)上述對面向NLP模型的攻擊方法介紹,我們按照字符級攻擊、單詞級攻擊、句子級攻擊3類分別對其關(guān)鍵技術(shù)、應(yīng)用、是否為目標(biāo)攻擊、是否為黑/白盒攻擊、攻擊階段等進(jìn)行進(jìn)一步整理和歸納,具體總結(jié)如表2所示:
Fig. 3 Block diagram of regularization for neural link prediction[65]圖3 神經(jīng)鏈路預(yù)測的正則化操作框圖[65]
Table 2 Attack Methods of Natural Language Processing表2 針對NLP的攻擊方法
續(xù)表2
其中目標(biāo)/非目標(biāo)攻擊是從攻擊效果出發(fā)對攻擊方法的歸類.目標(biāo)攻擊是指攻擊者首先預(yù)設(shè)了一個(gè)目標(biāo),并且攻擊后的預(yù)測結(jié)果滿足預(yù)設(shè)目標(biāo),如在文檔分類任務(wù)中,通過添加特定的文本擾動將該文檔歸類為攻擊者指定的某一類.而非目標(biāo)攻擊則只需滿足攻擊后的預(yù)測結(jié)果與真實(shí)標(biāo)簽不一致即可.
生成針對NLP模型的對抗文本的基本目的是利用這些對抗文本來增強(qiáng)模型的魯棒性,以防御惡意對抗文本對模型預(yù)測的干擾.本節(jié)主要介紹了NLP領(lǐng)域的文本防御方法,分為對抗訓(xùn)練、隱私保護(hù)防御和檢測防御.由于攻擊方法層出不窮,針對文本的防御工作變得更為重要也更加困難,目前圍繞NLP領(lǐng)域的防御研究仍需進(jìn)一步地探索.
對抗訓(xùn)練是增強(qiáng)神經(jīng)網(wǎng)絡(luò)魯棒性的重要方式.在對抗訓(xùn)練的過程中,訓(xùn)練樣本中會混合一些帶有微小擾動的對抗文本,然后使神經(jīng)網(wǎng)絡(luò)適應(yīng)這種擾動,從而對對抗文本具有魯棒性.在NLP領(lǐng)域,Miyato等人[66]將對抗和虛擬對抗訓(xùn)練引入文本分類中,通過對模型添加正則項(xiàng),使得一個(gè)樣本的輸出分布與加擾動之后的輸出分布相同.該方法在文本分類任務(wù)中有很好的防御效果,并且能夠利用大量的未標(biāo)注樣本,通過對抗訓(xùn)練來作為模型的正則化進(jìn)而提升效果.此外,為了克服分布差異問題,該框架通過對句子中的每個(gè)單詞加上一些小的擾動而獲得對抗性句子,并為句子中的單詞生成字符級單詞表示.
Liu等人[67]把對抗訓(xùn)練應(yīng)用于預(yù)訓(xùn)練和微調(diào)2個(gè)階段,通過最大化對抗損失、最小化模型損失的方式進(jìn)行博弈,在下游任務(wù)上取得了一致的效果提升.實(shí)驗(yàn)表明這種對抗訓(xùn)練方法不僅能夠在BERT上有提高,而且在中文預(yù)訓(xùn)練的模型上也能有所提高,說明對抗訓(xùn)練的確可以幫助模型糾正易錯(cuò)點(diǎn).此外,Liu等人[68]提出了一種模型驅(qū)動的防御方法,使用自適應(yīng)對抗的方式自動生成未觀察過的對抗文本,并運(yùn)用生成的樣本提升NLP模型的魯棒性,全程無需人工參與.該方法首先對每個(gè)訓(xùn)練樣本利用對抗的方法生成一個(gè)干擾向量輸入,使其能夠誤導(dǎo)當(dāng)前的NLP模型;然后采用貪心策略從干擾向量的詞匯權(quán)重中采樣得到對應(yīng)的離散化的干擾文本;最后使用干擾文本構(gòu)建用于訓(xùn)練的對抗文本,并重新訓(xùn)練NLP模型并重復(fù)上述步驟直至收斂.實(shí)驗(yàn)表明,在不同的文本數(shù)據(jù)集上均有非常顯著的性能提升,分類錯(cuò)誤率降低了50%.
針對詞嵌入模型中的詞匯表外單詞(out of vocabulary, OOV)和訓(xùn)練與推理之間的分布差異,Liu等人[69]提出了共同使用字符嵌入和對抗性穩(wěn)定訓(xùn)練的框架.此框架可輕松應(yīng)用于所有單詞級文本分類模型,以增強(qiáng)其魯棒性,如圖4所示.該框架的基本目的是克服字符級對抗示例中的詞匯表外單詞和分布差異,通過進(jìn)行字符嵌入,為句子中的單詞生成字符級單詞表示.字符級單詞表示由細(xì)粒度字符生成,不僅保留了單詞的信息,而且解決了OOV單詞的問題.同時(shí)作者也構(gòu)造了2種字符級對抗文本,用來模擬故意攻擊和粗心的拼寫錯(cuò)誤,以評估框架的魯棒性.在5個(gè)文本分類數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,所提出的方法可以有效防御字符級對抗文本,防御能力具有較好的泛化性.
Fig. 4 Framework to defend char-level adversarial examples[69]圖4 防御字符集對抗文本的框圖[69]
綜上所述,對抗訓(xùn)練能有效地抵抗文本分類、文本蘊(yùn)含等任務(wù)中的對抗攻擊.但是,對抗訓(xùn)練只能有效防御某一類的攻擊,無法對所有的對抗文本有效防御.
為了保護(hù)NLP模型的隱私安全,防止用戶信息被竊取,Li等人[70]提出了一種無偏表征隱私保護(hù)學(xué)習(xí)方法.作者利用Ganin等人[71]的方法訓(xùn)練具有對抗性學(xué)習(xí)能力的深度模型,以明確隱藏個(gè)體的隱私信息.因此,數(shù)據(jù)的學(xué)習(xí)表征可以在不損害用戶隱私的情況下進(jìn)行傳遞,同時(shí)仍支持高質(zhì)量的NLP任務(wù).實(shí)驗(yàn)結(jié)果表明,該保護(hù)方法能隱藏用戶的大部分個(gè)人信息,在NLP任務(wù)中達(dá)到數(shù)據(jù)保護(hù)的目的.
對于文本數(shù)據(jù)隱私保護(hù)問題,Coavoux等人[72]訓(xùn)練了預(yù)測二進(jìn)制屬性的分類器,將生成式對抗網(wǎng)絡(luò)(generative adversarial network, GAN)應(yīng)用于文本隱私保護(hù),并且基于字符級的語言模型,直接優(yōu)化訓(xùn)練樣本的概率.實(shí)驗(yàn)結(jié)果表明,在Trustpilot數(shù)據(jù)集上的隱私保護(hù)得到了改善,同時(shí)針對原文本的準(zhǔn)確率僅有略微下降,改善了文本表征的實(shí)用性和隱私性之間的權(quán)衡.
綜上所述,NLP中的隱私保護(hù)方法可以有效地保護(hù)文本數(shù)據(jù)信息,防止用戶隱私被竊取帶來的危害.但是其在物理世界中的實(shí)用性,仍然需要進(jìn)一步的研究.
針對NLP模型的防御除了通過對抗訓(xùn)練和隱私保護(hù)技術(shù)增強(qiáng)訓(xùn)練過程的魯棒性和文本數(shù)據(jù)隱私安全,還可以通過對對抗文本等的檢測,以實(shí)現(xiàn)抵抗基于同義詞或者拼寫錯(cuò)誤引發(fā)的模型攻擊.這一部分主要介紹面向NLP模型的對抗文本檢測防御方法.
Gao等人[35]使用Python自動校正工具包v0.3.0來檢測惡意輸入.Python自動校正工具將模型的預(yù)測準(zhǔn)確率從平均13.34%提高到平均74.17%.針對文本中的錯(cuò)誤數(shù)據(jù),Belinkov等人[37]使用谷歌的拼寫檢查器來糾正敵對方法產(chǎn)生的拼寫錯(cuò)誤.谷歌的拼寫檢查器將法語語料庫的雙語評價(jià)替補(bǔ)(bilingual evaluation understudy, BLEU)評分從16.7提高到21.4,德語語料庫的BLEU評分從18.6提高到25.0,進(jìn)而降低了2種情況下對抗文本的有效性.Li等人[73]利用上下文感知的拼寫檢查操作來完成類似的效果.但實(shí)驗(yàn)結(jié)果表明,該檢測方法對字符級修飾是有效的,對詞級攻擊卻是部分有效的,這可能是由于修飾策略的差異造成的.此外,拼寫檢查方法也不適用于基于漢語等其他語言的對抗文本[74].
為了抵御由拼寫錯(cuò)誤帶來的模型攻擊,Jones等人[75]和Tan等人[76]分別提出魯棒性編碼和基本拐點(diǎn)編碼的方法.魯棒性編碼的核心是一個(gè)編碼函數(shù):首先對token進(jìn)行聚類,對同一類簇中的token都映射為其中心點(diǎn),然后由同一個(gè)token導(dǎo)致的錯(cuò)字就可以“還原”為原來的token.重要的是,這種方法是任務(wù)無關(guān)的,即一旦構(gòu)建好聚類,就可以在任何與錯(cuò)字相關(guān)的任務(wù)上使用它.魯棒性編碼雖然可以很好地對抗異常值攻擊,但是在干凈的數(shù)據(jù)上性能表現(xiàn)卻稍微差一點(diǎn).基本拐點(diǎn)編碼則通過將拐點(diǎn)詞修改為基礎(chǔ)形式來標(biāo)記英文文本的方法,使用該編碼對下游任務(wù)進(jìn)行微調(diào)預(yù)訓(xùn)練的NLP模型可以抵御對抗文本,同時(shí)還能保持對正常文本的識別準(zhǔn)確率.但是,基本拐點(diǎn)編碼增加了編碼序列的長度,如果用于形態(tài)豐富的文本數(shù)據(jù)集,可能會導(dǎo)致長序列造成時(shí)間復(fù)雜度增加.
為了保護(hù)模型免受基于同義詞的攻擊,Pruthi等人[32]和Wang等人[77]都提出了檢測對抗文本的方法.前者提出了一種用于DNNs之前的單詞識別模型,能夠處理對抗文本,包括插入、刪除、字符交換、鍵盤錯(cuò)誤等,用于檢測對抗文本.作者使用了半基于字符的RNN模型,并采用穿越退避、中性詞退避、背景模型退避這3種不同的退避策略,建立單詞識別模型.作者提出的識別模型是建立在Sakaguchi等人[78]提出的半字符級遞歸神經(jīng)網(wǎng)絡(luò)(semi-character level recurrent neural network, ScRNN)的單詞識別器上的,并在對抗性訓(xùn)練和基于數(shù)據(jù)增強(qiáng)的防御中測試了該方法,以表明其防御機(jī)制優(yōu)于現(xiàn)成的拼寫檢查和對抗訓(xùn)練.Wang等人[77]則通過同義詞編碼方法進(jìn)行防御,將編碼器網(wǎng)絡(luò)置于分類器模型之前,并檢查擾動.在文本分類的任務(wù)中,該方法可以有效地防御基于同義詞替換的對抗性攻擊.此外,Mozes等人[79]發(fā)現(xiàn),針對CNN,LSTM和基于Transformer的文本分類模型的對抗性攻擊會執(zhí)行單詞替換,檢測方法可以通過替換單詞及其相應(yīng)替換詞之間的頻率差異來識別.由此,作者提出了頻率引導(dǎo)詞替換,利用對抗性詞替換的頻率特性對對抗文本進(jìn)行檢測的防御算法.實(shí)驗(yàn)結(jié)果表明,該方法在情感數(shù)據(jù)集上能準(zhǔn)確地檢測區(qū)分惡意樣本,實(shí)現(xiàn)對詞替換攻擊的有效防御.
對抗文本和異常值有一個(gè)重要的特征,即它們都在正態(tài)分布之外.因此,檢測測試數(shù)據(jù)中的異常值或者對抗文本也能夠保護(hù)NLP模型.Ko等人[80]提出了證據(jù)分析法,從大數(shù)據(jù)中過濾出噪聲樣本.噪聲數(shù)據(jù)可能由異常值或可疑元素組成,這使得數(shù)據(jù)無法識別.該方法就像一個(gè)用于數(shù)據(jù)表示和流形學(xué)習(xí)的數(shù)據(jù)預(yù)處理器.基于優(yōu)勢和相似性特征,能夠通過對樣本進(jìn)行聚類并檢測出噪聲文本,還可以使用歸納操作去除噪聲文本以達(dá)到防御的目的.
為了區(qū)分不同擾動粒度級別的攻擊,Zhou等人[81]采用對模型添加部件的方式提出了擾動區(qū)分法(discriminate perturbations, DISP),主要用來防御字符級別和單詞級別的攻擊.為了識別對抗文本,擾動鑒別器驗(yàn)證文本中的token被擾動的可能性,并提供一組潛在的擾動,擾動判別器的訓(xùn)練過程如圖5所示:
Fig. 5 Disturbance discriminator training[81]圖5 擾動判別器訓(xùn)練框架[81]
對于每個(gè)潛在的擾動,嵌入估計(jì)器根據(jù)上下文學(xué)習(xí)恢復(fù)原始單詞的嵌入,并基于k-近鄰算法搜索選擇替換token.在2個(gè)基準(zhǔn)數(shù)據(jù)集上的實(shí)驗(yàn)表明,DISP能有效地阻止文本分類中的對抗攻擊.此外,DISP無需修改模型結(jié)構(gòu)或訓(xùn)練過程就可以阻止針對NLP模型的對抗性攻擊.
綜上,對抗檢測防御方法可以有效檢測基于詞替換等攻擊生成的對抗文本,且能區(qū)分不同級別的擾動攻擊,能有效防御惡意樣本,實(shí)現(xiàn)文本數(shù)據(jù)安全應(yīng)用.
根據(jù)上述對面向NLP模型的防御方法介紹,我們按照基于對抗訓(xùn)練的防御、文本的隱私保護(hù)防御、基于對抗檢測的防御3類分別對其關(guān)鍵技術(shù)、應(yīng)用、能夠抵御的攻擊類型等進(jìn)行進(jìn)一步整理和歸納,具體總結(jié)如表3所示:
Table 3 Defense Methods of Natural Language Processing表3 針對NLP的防御方法
為了改善NLP模型的魯棒性,研究人員提出了各種防御方法,然而這些防御工作大多都是受到攻擊方法的啟發(fā)而提出的后驗(yàn)防御.而且這些防御只是在受限的實(shí)驗(yàn)環(huán)境下進(jìn)行了有效性驗(yàn)證,并不具備可靠的泛化能力,且沒有充足的理論依據(jù)支撐.其次,這些防御方法在對當(dāng)前攻擊有效時(shí),面對其他未知的新型攻擊未必有效,且很可能會被更強(qiáng)大的攻擊打敗.因此,為了提高NLP模型的魯棒性以及NLP的應(yīng)用安全,研究人員試圖尋找能用理論證明的可驗(yàn)證的模型魯棒性方法,同時(shí)對NLP模型進(jìn)行安全性分析以評估模型的魯棒性基準(zhǔn).下面介紹模型的可驗(yàn)證魯棒性與評估基準(zhǔn)的相關(guān)研究工作.
最先進(jìn)的NLP模型也會被對抗擾動所欺騙而輸出錯(cuò)誤預(yù)測結(jié)果,比如同義詞替換攻擊.因此研究具有理論證明支撐的魯棒性模型,使得該模型保證預(yù)測結(jié)果不會被任何可能的文本攻擊方法所改變是十分重要的.
4.1.1 基于隨機(jī)平滑的可驗(yàn)證魯棒
Ye等人[82]提出了一種基于隨機(jī)平滑技術(shù)的可驗(yàn)證魯棒方法,通過對輸入語句應(yīng)用隨機(jī)詞替換來構(gòu)造隨機(jī)集合,并利用該集合的統(tǒng)計(jì)特性來證明其魯棒性.該方法使用基于同義詞網(wǎng)絡(luò)的隨機(jī)單詞替換對模型進(jìn)行平滑,并利用隨機(jī)集合的統(tǒng)計(jì)特性構(gòu)造可驗(yàn)證的魯棒邊界,如圖6所示.圖6中,首先給定同義詞集,然后從中生成擾動集.當(dāng)輸入句子X時(shí),從隨機(jī)打亂的句子中提取受擾動的句子輸入到分類器中,并對其輸出求平均值,以估計(jì)ΔX,該值用于決定模型是否對X具有可驗(yàn)證的魯棒性.
Fig. 6 Block diagram of robustness certification approach[82]圖6 魯棒性驗(yàn)證方法框圖[82]
實(shí)驗(yàn)結(jié)果表明,該方法在IMDB和Amazon文本數(shù)據(jù)集分類任務(wù)上的魯棒性提升顯著優(yōu)于對比方法,且是第1個(gè)在大型NLP系統(tǒng)(如BERT)上以實(shí)際有意義的可驗(yàn)證精度實(shí)現(xiàn)可驗(yàn)證魯棒性的研究工作.隨機(jī)平滑的方法簡單且對模型結(jié)構(gòu)沒有任何要求,因?yàn)樗恍枰獙δP洼敵鲞M(jìn)行黑盒查詢,因此可以應(yīng)用于任何預(yù)先訓(xùn)練的模型.
4.1.2 魯棒邊界驗(yàn)證方法
魯棒性驗(yàn)證旨在形式化地證明DNNs的預(yù)測行為,已成為理解模型行為和獲得安全保證的重要工具.由于Transformers模型具有復(fù)雜的自注意力層,這給NLP模型的魯棒性驗(yàn)證帶來了許多挑戰(zhàn).為此,Shi等人[83]考慮了Transformers模型的魯棒性驗(yàn)證問題,并設(shè)計(jì)了理論更加完備的模型魯棒性驗(yàn)證算法.
Shi等人[83]提出的驗(yàn)證算法得到的邊界反映了不同詞語在情感分析中的重要性,比通過采用間隔邊界傳播(interval bound propagation, IBP)的邊界要嚴(yán)格得多,這表明這些邊界在實(shí)踐中是有意義的.同時(shí),這種魯棒驗(yàn)證算法解決了Transformers模型交叉非線性和交叉位置依賴的問題.
4.1.3 基于IBP的魯棒驗(yàn)證
由于文本數(shù)據(jù)的離散性,其對抗性擾動引起的搜索空間復(fù)雜性使之難以找到最壞情況的攻擊.Huang等人[84]從相反的方向解決問題:針對預(yù)定義的對抗性攻擊形式,驗(yàn)證系統(tǒng)的魯棒性.首先將這些輸入擾動建模為單純形,然后使用IBP進(jìn)行建模.作者修改了常規(guī)的對數(shù)似然訓(xùn)練目標(biāo),以訓(xùn)練能夠有效驗(yàn)證的模型,否則該模型將具有指數(shù)級的搜索復(fù)雜性.Jia等人[85]也使用IBP來最小化任何單詞替換組合可能引起的最壞情況的損失上界.為了評估模型對這些變換的魯棒性,Jia等人[85]還測量了應(yīng)用于測試集樣本的對抗性單詞替換的準(zhǔn)確性.
Huang等人[84]研究了在同義詞替換或字符翻轉(zhuǎn)擾動下的文本分類,實(shí)驗(yàn)結(jié)果表明,所得模型在標(biāo)稱精度上僅表現(xiàn)出很小的差異,但是在擾動下改善了可驗(yàn)證精度,并且在最壞情況下提供了有效的可計(jì)算形式的保證.而Jia等人[85]在實(shí)驗(yàn)中經(jīng)過IBP訓(xùn)練的模型在IMDB和SNLI數(shù)據(jù)集上均達(dá)到75%的對抗準(zhǔn)確性,大大提高了模型抵抗對抗文本的能力,其魯棒性明顯優(yōu)于經(jīng)過數(shù)據(jù)增強(qiáng)訓(xùn)練的模型.這2種方法都顯示了對于對抗文本的防御能力,從邊界理論來研究模型的魯棒性,都能有效地提升模型的魯棒安全.
4.1.4 面向RNN的魯棒量化方法
目前已有通過計(jì)算最小對抗性擾動的認(rèn)證下界來對前饋網(wǎng)絡(luò)進(jìn)行魯棒性量化的工作,但是量化RNN(尤其是LSTM和GRU)的魯棒性仍未很好地被解決.對此,Ko等人[86]提出了面向RNN的傳播輸出量化魯棒性方法(propagated-output quantified robustness for RNNs, POPQORN),與通過攻擊得到的上界相比,POPQORN得到的認(rèn)證邊界為RNN的最小失真提供了有保證的下限.
在不同RNN任務(wù)上的實(shí)驗(yàn)表明,POPQORN可以計(jì)算有意義的驗(yàn)證范圍,并提供有關(guān)序列數(shù)據(jù)中單個(gè)幀的重要性和敏感性的見解.POPQORN可以在多種不同的RNN模型上進(jìn)行魯棒量化處理,包括普通RNN,LSTM和GRU,這是一種量化RNN魯棒性的通用算法.
對抗性攻擊是對DNNs模型的輸入添加對抗性擾動從而實(shí)現(xiàn)攻擊,旨在愚弄機(jī)器而不是人類.NLP領(lǐng)域主要關(guān)注高級攻擊場景,例如解釋輸入文本,使得NLP模型存在安全漏洞威脅.因此需要提高對于模型的魯棒安全評估,以便于進(jìn)行魯棒分析與提升技術(shù)的研究開展.下面將介紹目前已有的關(guān)于魯棒評估基準(zhǔn)數(shù)據(jù)集建立的相關(guān)工作.
Eger等人[87]建立了第1個(gè)大規(guī)模的低級別對抗性攻擊目錄和基準(zhǔn)Zéroe,其涵蓋了包括視覺和語音攻擊在內(nèi)的9種不同的攻擊方式.作者的數(shù)據(jù)集提供了一個(gè)評估基準(zhǔn),可用于測試已有以及未來更多類似的NLP模型的魯棒性.Nie等人[88]同樣也引入了一個(gè)新的大規(guī)模NLI基準(zhǔn)數(shù)據(jù)集,該數(shù)據(jù)集是通過迭代的、對抗性的人-模型交互過程收集的.在這個(gè)新的基準(zhǔn)數(shù)據(jù)集上訓(xùn)練的模型,能夠在各種主流的NLI基準(zhǔn)上表現(xiàn)出良好性能,同時(shí)對其新的測試集構(gòu)成了更高的挑戰(zhàn).這種數(shù)據(jù)收集方法可以應(yīng)用在終身學(xué)習(xí)場景中,成為自然語言理解的動態(tài)目標(biāo),而不是會很快飽和的靜態(tài)基準(zhǔn).
監(jiān)督學(xué)習(xí)的基準(zhǔn)測試集評估應(yīng)用廣泛,但是當(dāng)數(shù)據(jù)集存在系統(tǒng)差距時(shí)(例如注釋工具),這些評估結(jié)果將具有誤導(dǎo)性.如NLP模型可以學(xué)習(xí)在測試集上執(zhí)行良好的簡單決策規(guī)則,但不能獲得數(shù)據(jù)集要測試的能力.Gardner等人[89]通過提出了一個(gè)更嚴(yán)格的注釋范例來彌補(bǔ)測試數(shù)據(jù)中的系統(tǒng)差距.在完成數(shù)據(jù)集構(gòu)建后,以微小但有意義的方式更改原始標(biāo)簽,進(jìn)而創(chuàng)建對照集來手動干擾測試實(shí)例.對照集提供了模型決策邊界的局部視圖,可用于更準(zhǔn)確地評估NLP模型的真實(shí)語言能力.實(shí)驗(yàn)結(jié)果表明,作者的對照集作為新的評估基準(zhǔn)盡管沒有明顯的對抗性,但在該數(shù)據(jù)集上訓(xùn)練的模型性能明顯低于原始測試集——在某些情況下低至25%.
對抗文本對模型輸入的擾動會引起輸出的巨大變化,這也已被證明是評估Seq2Seq模型魯棒性的有效方法.但是,這些擾動僅表示模型中的部分弱點(diǎn),而且前提是沒有對輸入文本進(jìn)行顯著改變.Michel等人[90]針對Seq2Seq模型的對抗性攻擊任務(wù)提出了一種新的評估框架,該框架考慮了擾動前后輸入的語義等效性.該框架證明了對攻擊添加其他約束條件可以使對抗性擾動保留語義,但仍然會極大地改變輸出順序.此外,該評估框架還有效地表明了在不損失測試性能的情況下,在該評估基準(zhǔn)上,利用保留語義的無目標(biāo)攻擊進(jìn)行對抗訓(xùn)練能有效地提升模型的魯棒性.
為了便于研究人員進(jìn)行實(shí)驗(yàn),這一部分主要研究NLP相關(guān)的國內(nèi)外應(yīng)用平臺和常用工具包,主要從工具集中包含的NLP模型類型、集成功能、支持語言、應(yīng)用場景等進(jìn)行介紹.
面向NLP處理任務(wù)的應(yīng)用平臺大多集成了現(xiàn)有主流的NLP技術(shù),包括分詞、文本生成、依存句法分析、語義角色標(biāo)注等,功能較為全面.下面從是否使用了深度學(xué)習(xí)技術(shù)對NLP應(yīng)用平臺進(jìn)行分類介紹.
早期的研究主要是將機(jī)器學(xué)習(xí)算法應(yīng)用于NLP處理任務(wù),如樸素貝葉斯、邏輯回歸、支持向量機(jī)和聚類算法等.基于此建立的典型NLP應(yīng)用平臺包括哈爾濱工業(yè)大學(xué)社會計(jì)算與信息檢索研究中心的語言技術(shù)平臺(language technology platform, LTP[91])、復(fù)旦大學(xué)NLP實(shí)驗(yàn)室的FudanNLP[92]、北京理工大學(xué)大數(shù)據(jù)搜索與挖掘?qū)嶒?yàn)室的NLPIR[93]、賓夕法尼亞大學(xué)計(jì)算機(jī)與信息科學(xué)系的自然語言工具箱(natural language toolkit, NLTK[94])和Apache軟件基金會的OpenNLP[95]等.基于機(jī)器學(xué)習(xí)的NLP應(yīng)用平臺的特點(diǎn)在于對中英文的功能支持比較全面,對傳統(tǒng)機(jī)器學(xué)習(xí)算法的集成相對完善.如LTP應(yīng)用平臺提供中文分詞、詞性標(biāo)注、命名實(shí)體識別、依存句法分析、語義角色標(biāo)注等豐富、高效、精準(zhǔn)的NLP模塊.其中“語言云”以LTP為基礎(chǔ),提供具有跨平臺、跨語言等特性的中文NLP云服務(wù).OpenNLP應(yīng)用平臺提供基于機(jī)器學(xué)習(xí)的NLP文本處理功能,包括標(biāo)記化、淺層分析(句字分塊)、分詞、分句、分塊、詞性標(biāo)注、命名實(shí)體識別、語法解析、指代消解等,涵蓋最大熵、感知機(jī)、樸素貝葉斯等模型,為多種語言提供預(yù)訓(xùn)練模型以及對應(yīng)的標(biāo)注語料資源.
相比于基于機(jī)器學(xué)習(xí)的NLP應(yīng)用平臺,基于深度學(xué)習(xí)的NLP應(yīng)用平臺大多采用了目前流行的Transformer模型及其變體,因此具有的功能也更加強(qiáng)大.目前主流的基于深度學(xué)習(xí)的NLP應(yīng)用平臺包括HanLP[96]、百度NLP部門的漢語詞匯分析(lexical analysis of Chinese, LAC[97])、斯坦福大學(xué)NLP組的Stanford CoreNLP[98]、Explosion AI的spaCy[99]和fastNLP[100].這些平臺不僅支持多種語言的處理,還支持多種深度學(xué)習(xí)框架,包括與TensorFlow,PyTorch,scikit-learn,Gensim等Python語言的深度學(xué)習(xí)框架結(jié)合使用.如Stanford CoreNLP應(yīng)用平臺不僅提供詞干提取、詞性標(biāo)注、命名實(shí)體識別、依存語法分析、指代消解、情感分析、關(guān)系抽取等功能,還集成了很多NLP工具,為多種主流編程語言提供開發(fā)接口,并且支持以Web服務(wù)形式運(yùn)行.
本節(jié)介紹的工具包主要是由清華大學(xué)自然語言處理與社會人文計(jì)算實(shí)驗(yàn)室負(fù)責(zé)研發(fā)的,其中包括詩歌自動生成模型及數(shù)據(jù)資源、機(jī)器翻譯工具包、文本對抗攻擊工具包等,以下是相關(guān)工具包的主要內(nèi)容介紹.
MixPoet[101]包含詩歌自動生成模型及數(shù)據(jù)資源,能夠自動生成中文古典詩歌、中文格律及韻律詩等.THUMT[102]是一個(gè)NMT工具包,其Demo網(wǎng)站提供了英語和中文的相互翻譯、其他8種語言到英語的翻譯,以及古文和現(xiàn)代文的相互翻譯功能.OpenKE[103]是一個(gè)知識圖譜表示學(xué)習(xí)工具包,設(shè)計(jì)了用于將知識圖譜嵌入到低維連續(xù)向量空間進(jìn)行表示的開源框架.OpenNRE[104]是一款神經(jīng)網(wǎng)絡(luò)關(guān)系抽取工具包,包括了多款常用的關(guān)系抽取模型,例如句子級別關(guān)系抽取、包級別關(guān)系抽取等.OpenMatch[105]是一款開放域信息檢索開源工具包,不僅能夠?yàn)橛脩籼峁╅_放域下信息檢索的完整解決方案,還能支持領(lǐng)域知識的遷移學(xué)習(xí).上述工具包主要具備文本處理的功能.
OpenAttack[106]則是一款文本對抗攻擊工具包,可用于文本對抗攻擊的全過程,包括文本預(yù)處理、受威脅模型訪問、對抗文本生成、對抗攻擊評測以及對抗訓(xùn)練等.對抗攻擊能夠用于暴露受威脅模型的弱點(diǎn),有助于后續(xù)進(jìn)一步提高模型的魯棒性和可解釋性,具有重要的研究意義和應(yīng)用價(jià)值.OpenAttack還具有高可用性、攻擊類型全覆蓋、高可擴(kuò)展性和全面的評測指標(biāo)等特點(diǎn).
綜上所述,這些應(yīng)用平臺和工具包使得NLP模型訓(xùn)練和對抗攻防學(xué)習(xí)變的方便快捷,可以僅用幾行代碼就嘗試進(jìn)行模型訓(xùn)練、對抗文本生成、對抗攻擊評測以及對抗訓(xùn)練等實(shí)踐操作.根據(jù)目前的調(diào)研結(jié)果發(fā)現(xiàn),功能完善的面向NLP的攻防工具仍然是比較缺乏的,因此在未來的研究中可以作為重點(diǎn)之一.
根據(jù)上述對面向NLP的應(yīng)用平臺和工具包的介紹,我們進(jìn)一步整理并總結(jié)各個(gè)平臺和工具包的來源、集成模型、攻防功能和優(yōu)勢特點(diǎn)、支持語言等,具體如表4所示:
Table 4 The Application Platforms and Toolkits for NLP表4 面向NLP的應(yīng)用平臺和工具包介紹
本文針對NLP領(lǐng)域已提出的攻擊方法以及為抵御這些攻擊而提出的防御措施進(jìn)行了全面調(diào)研.本文還提供了常用的NLP模型介紹,并對模型的可驗(yàn)證魯棒性分析和評估基準(zhǔn)進(jìn)行整理總結(jié).本節(jié)基于上述對NLP任務(wù)安全性和魯棒性的介紹,從對抗攻防角度探討其在未來的研究發(fā)展方向.
對于目前已有的攻擊方法,在白盒攻擊中,攻擊者可以利用DNNs的損失來自動識別文本中受影響最大的點(diǎn)(例如字符、單詞),然后通過自動修改相應(yīng)的文本對這些點(diǎn)進(jìn)行攻擊.白盒攻擊雖然借助了模型梯度降低了對抗文本生成難度,但是如果要生成高質(zhì)量的對抗文本仍然需要付出較大的攻擊代價(jià).因此,未來可以綜合考慮對抗文本的生成效率,以進(jìn)一步提升對抗文本的攻擊成功率和生成質(zhì)量.
白盒文本攻擊方法雖然能以較高的概率成功攻擊NLP模型,并且使句子的語義有所保留,但是部分語義可能會在人類的理解能力之外,進(jìn)而使句子變得生澀難懂.因此,未來可以考慮在保證對抗文本質(zhì)量的同時(shí),提高其在原語句中的通順和流暢程度.
在黑盒攻擊中,某些攻擊通過訓(xùn)練DNNs替代模型,并在替代模型上應(yīng)用白盒攻擊策略來自動實(shí)現(xiàn)黑盒攻擊.但是,大多數(shù)攻擊都是以人工方式制作對抗文本,這種方式針對目標(biāo)模型進(jìn)行攻擊時(shí)既費(fèi)時(shí)又不切實(shí)際.因此,未來可以考慮減少人工干預(yù),實(shí)現(xiàn)完全自動化生成對抗文本.此外,針對對抗文本的遷移性問題,目標(biāo)攻擊生成的對抗文本的遷移效果通常不如非目標(biāo)攻擊的遷移效果,對抗文本的泛化能力較差,未來希望可以有更多的研究來提高對抗文本在不同語境中的遷移性.
NLP主要通過對抗訓(xùn)練、隱私保護(hù)和檢測防御這3類防御方法來實(shí)現(xiàn)模型的魯棒性增強(qiáng)和安全加固.目前已有的防御方法使用比較廣泛的是對抗訓(xùn)練,但是對抗訓(xùn)練需要的樣本數(shù)據(jù)較多,且重新訓(xùn)練所付出的訓(xùn)練代價(jià)和所需訓(xùn)練資源較大.此外,對抗訓(xùn)練本質(zhì)上還是屬于數(shù)據(jù)增強(qiáng),這種防御方法往往只能提高模型對于參與訓(xùn)練的對抗文本的擬合能力.但是面對訓(xùn)練樣本之外的未知對抗文本,模型的性能表現(xiàn)依然不盡人意.未來的防御方法可以從數(shù)據(jù)安全考慮,設(shè)計(jì)抵抗不同類對抗文本的通用算法,提高防御的泛化能力.
同時(shí)還可以從模型的魯棒優(yōu)化角度出發(fā),基于可驗(yàn)證魯棒理論來設(shè)計(jì)NLP的可驗(yàn)證防御方法,以實(shí)現(xiàn)對于不同對抗文本的有效防御.此外,隨著目前攻擊方法的發(fā)展和演變,NLP模型只學(xué)習(xí)到了訓(xùn)練數(shù)據(jù)體現(xiàn)出來的淺層統(tǒng)計(jì)特征,缺乏對更為根本的深層特征的挖掘,因此如何避免自學(xué)習(xí)淺層特征也是未來增強(qiáng)NLP模型魯棒性的研究方向.