一文盡覽!文本對抗攻擊基礎(chǔ)、前沿及相關(guān)資源
?//?導(dǎo)讀
深度學(xué)習(xí)的安全性問題已經(jīng)逐漸被學(xué)術(shù)界、工業(yè)界所認識到并且重視,就文本領(lǐng)域而言,垃圾郵件檢測、有害文本檢測、惡意軟件查殺等實用系統(tǒng)已經(jīng)大規(guī)模部署了深度學(xué)習(xí)模型,安全性對于這些系統(tǒng)尤為重要。
但相比于圖像領(lǐng)域,文本領(lǐng)域?qū)构舻难芯窟€遠遠不夠。特別是文本離散的特點使得對抗樣本的生成更具挑戰(zhàn)性,也有更多的研究空間。我們欣喜地看到,目前有越來越多的NLP研究者開始探索文本對抗攻擊這一方向,以2020年ACL為例,粗略統(tǒng)計有超過10篇相關(guān)論文,其中最佳論文Beyond Accuracy: Behavioral Testing of NLP Models with CheckList[23]中大部分測試方法其實和文本對抗攻擊有異曲同工之妙。
作者:豈凡超?

對抗攻擊指的是對目標機器學(xué)習(xí)模型的原輸入施加輕微擾動以生成對抗樣本(Adversarial Example)來欺騙目標模型(亦稱為受害模型,Victim Model)的過程。對抗攻擊可以暴露機器學(xué)習(xí)模型的脆弱性,進而提高模型的魯棒性和可解釋性,在圖像領(lǐng)域已經(jīng)有廣泛的研究[3]。在圖1所示的例子中,將噪聲加到一張原來可被CNN圖像分類模型正確識別的熊貓圖片后,該分類模型錯誤地識別為長臂猿,盡管人肉眼完全無法分辨加噪聲前后兩張圖片的區(qū)別。

文本領(lǐng)域同樣有類似的情況。在圖2所示的例子中,上半部分是一條電影的差評,可以被基于LSTM的情感分析模型正確判斷其情感傾向為負面,然而如果將其中的某些詞做同義替換,如“terrible”替換為“horrific”或“horrifying”,原來的情感分析模型卻給出了情感為正面的錯誤答案。

由于文本離散的特點,相比于圖像、聲音等連續(xù)信號媒介,文本領(lǐng)域的對抗攻擊更具挑戰(zhàn)性。哪怕是小到一個字的改動也可能會破壞原文本的語法正確性和流暢性,使得產(chǎn)生的對抗樣本質(zhì)量較差。更有甚者對原輸入的擾動會引起文本語義的根本性改變——例如,將“這部電影很好看”改為“這部電影很難看”,其情感傾向完全顛倒——而這樣的對抗樣本是無效的,因為攻擊者所預(yù)期的情感分析模型的判斷發(fā)生變化(從“正面”變?yōu)椤柏撁妗保┎⒉皇清e誤的。
一、文本對抗攻擊的分類
圖像領(lǐng)域?qū)构艏捌浞烙驯淮笠?guī)模研究(據(jù)粗略統(tǒng)計CVPR 2020有超過60篇相關(guān)論文),文本領(lǐng)域?qū)构舻难芯拷鼉赡瓴胖饾u受到關(guān)注。現(xiàn)有的文本對抗攻擊可以從以下三個維度進行分類:
(1)?指向性
使受害模型給出指定的錯誤判斷的攻擊稱為指向性攻擊(Targeted Attack),例如使文本分類模型在處理對抗樣本時均給出某一特定類的判斷;相應(yīng)地非指向性攻擊(Untargeted Attack)則只要求對抗樣本使模型判斷出錯即可。
(2)?受害模型可見性
對抗攻擊中,攻擊者對受害模型所知多少大有不同。
最理想的情況是攻擊者完全掌握受害模型,可以調(diào)用受害模型來獲取其相對于某一給定輸入的輸出結(jié)果并且知道其內(nèi)部的所有參數(shù)。在這種情況下,攻擊者往往可以利用類似梯度下降的優(yōu)化方法來調(diào)整擾動進而產(chǎn)生對抗樣本。這樣的設(shè)定稱為白盒(White-Box)設(shè)定,相應(yīng)的對抗攻擊被稱為基于梯度的攻擊(Gradient-Based Attack)。
和白盒設(shè)定相對的是黑盒(Black-Box)設(shè)定,在這種設(shè)定下,攻擊者無法得知受害模型的內(nèi)部結(jié)構(gòu)及參數(shù),僅僅可以調(diào)用受害模型來獲取其相對于給定輸入的輸出結(jié)果。根據(jù)輸出結(jié)果的類型,黑盒攻擊可以細分為基于分數(shù)(score-Based)和基于決定(Decision-Based)的攻擊——前者可以得知受害模型最終的輸出分數(shù)(如分類模型的各類的概率),后者只能知道受害模型給出的判斷結(jié)果(如分類模型給出的類別)。
此外,攻擊者甚至可能無法調(diào)用受害模型,在沒有任何關(guān)于受害模型信息的情況下進行攻擊。這種攻擊被稱為盲攻擊(Blind Attack)。
縱觀以上四種不同的攻擊,基于梯度的攻擊對受害模型可見性要求太高,真實的攻擊場景中往往并不可行;盲攻擊由于已知信息太少,攻擊效果往往很差;相比之下,基于分數(shù)和基于決定的攻擊既符合真實的攻擊設(shè)定又有足夠的已知信息來有效進行攻擊,因此目前大多數(shù)文本對抗攻擊是這兩種類型,尤其是基于分數(shù)的攻擊。
(3)?擾動粒度
對抗攻擊還可以從擾動產(chǎn)生的粒度分為句級、詞級以及字級攻擊。
句級攻擊將整句原始輸入視作擾動的對象,意圖產(chǎn)生一個和原始輸入語義相同(至少針對當前任務(wù)的真實標簽不改變)但卻使得受害模型判斷改變的對抗樣本。常用的句級攻擊方法包括改述(Paraphrasing)[4,5]、編碼后重新解碼[6]、添加無關(guān)句子[7]等。
詞級攻擊擾動的對象是原始輸入中的詞,最主要方法為詞替換。替換詞的選擇有多種多樣,包括基于詞向量相似度[8,9]、同義詞[10]、義原[11]、語言模型分數(shù)[12]等詞替換方法。此外也有研究嘗試添加或刪除詞[13],但是這樣做往往會影響所生成的對抗樣本的語法性、通順性。
字級攻擊主要對原始輸入中的字符進行擾動,常用的方法包括字符的添加、刪除、替換、交換順序等,具體到字替換而言,有隨機替換[14]、基于One-Hot編碼的字替換[15]以及基于字形相似的替換[16]等。
此外,有的攻擊方法也會同時進行詞級和字級擾動[17]。
對比以上三種不同粒度的擾動,句級的擾動往往使得對抗樣本和原始輸入之間有巨大的差別,很難控制所產(chǎn)生的對抗樣本的質(zhì)量,更無法保證其有效性(即具有和原始輸入相同的真實標簽),而且從實驗結(jié)果看攻擊效果也比較一般;字級擾動所產(chǎn)生的對抗樣本質(zhì)量往往很差,大概率會破壞其語法性,造成對抗樣本不可讀,盡管攻擊成功率較高,但是目前有一些基于語法糾錯的防御方法可以很好地應(yīng)對字級的攻擊[18]。
相比之下,詞級攻擊在對抗樣本質(zhì)量和有效性控制以及攻擊成功率方面有更好的表現(xiàn)。就對抗樣本質(zhì)量和有效性控制而言,一般對一句話中某些詞進行同義替換很難改變這句話的語義,再加上利用語言模型進行控制,所產(chǎn)生的對抗樣本的通順性、流暢性也更容易保證。就攻擊成功率而言,白盒設(shè)定下基于梯度的攻擊方法往往可以最快地找到合適的被替換詞和替換詞,一般而言有較高的攻擊成功率;即使在黑盒設(shè)定下,現(xiàn)有的詞級攻擊方法利用受害模型的反饋(即針對一次詞級擾動后產(chǎn)生的準對抗樣本的輸出),迭代地進行詞替換操作,最終也有較高的攻擊成功率。例如,目前最先進的基于義原+離散粒子群優(yōu)化的詞級攻擊在IMDB數(shù)據(jù)集上攻擊BiLSTM時可以達到100%的成功率[11]。
接下來,我們對現(xiàn)有的詞級文本對抗攻擊進行簡單的梳理。
二、詞級別文本對抗攻擊
[11]提出,詞級文本對抗攻擊本質(zhì)上是一個組合優(yōu)化(Combinatorial Optimization)問題。所謂組合優(yōu)化就是在有限個可行解的集合中找出最優(yōu)解的優(yōu)化問題。對于詞級文本對抗攻擊,在詞表有限的情況下,詞級擾動也是有限的,而攻擊的目標則是找出一個能夠成功攻擊受害模型的對抗樣本——即最優(yōu)解。當然,成功攻擊受害模型的對抗樣本可能不止一個,一般而言找到一個即可結(jié)束。
[11]進一步提出詞級文本對抗攻擊這個組合優(yōu)化問題可以拆解為兩步:(1)搜索空間縮減;(2)對抗樣本搜索。所謂搜索空間縮減,本質(zhì)上其實就是確定原始輸入中每個詞的候選替換詞集合,每個位置的候選替換詞加上原始詞構(gòu)成的集合的組合張成了一個離散的空間——每個位置對應(yīng)空間的一個維度,每個位置的候選替換詞+原始詞的集合為該維的可行集。例如,圖3中原始輸入“I love this movie”有4個詞,則對應(yīng)的對抗樣本搜索空間為4維,第一維對應(yīng)第一個詞“I”,因其沒有候選替換詞,所以該維僅有1個可行點;第二維對應(yīng)第二個詞“l(fā)ove”,有“l(fā)ike”和“enjoy”2個候選替換詞,所以該維一共3個可行點……以此類推可以得到“I love this movie”的對抗樣本搜索空間。這一步之所以稱為“對抗樣本縮減”,是考慮到有些對抗攻擊方法根本不確定每個詞的候選替換詞集,而是將整個詞表的所有詞視作潛在的可選替換詞。
第(2)步則是在第(1)步得到的縮減后的離散組合空間中搜索可以成功攻擊受害模型的對抗樣本。

現(xiàn)有的所有詞級對抗攻擊方法都可以在上述框架下進行拆解。具體而言,第(1)步搜索空間縮減,目前主要方法為前面提到的基于詞向量[8,9]或者同義詞[10]的詞替換方法,當然也有攻擊方法跳過這一步不進行搜索空間縮減[19]。第(2)步對抗樣本搜索,目前有梯度下降[15,19]、遺傳算法[8]、基于詞顯著度的貪心算法[9,10]、Metropolis-Hastings采樣方法[12]等。
[11]在上述框架下,對兩步分別進行了改進,并且最終達到了當前最好(state-of-the-art)的攻擊效果。在第一步,他們使用了基于義原(sememe)的詞替換方法。在語言學(xué)中,義原是最小的語義單位,一個詞的語義可以認為由其所有義原來表達[20]。實驗表明,基于義原的詞替換方法能夠找到更多合適的候選替換詞,和基于同義詞或基于詞向量的詞替換方法相比有顯著的優(yōu)越性,如圖4所示。


圖4:基于義原的詞替換方法的優(yōu)越性
在第二步,他們提出了基于離散粒子群優(yōu)化(Discrete Particle Swarm Optimization)的對抗樣本搜索算法。粒子群優(yōu)化[21]是一種典型的組合優(yōu)化算法,之前實證研究表明它比包括遺傳算法在內(nèi)的其他組合優(yōu)化算法更加高效[22]。
他們通過大量的實驗證明了基于義原的詞替換方法和基于離散粒子群優(yōu)化的對抗樣本搜索算法分別比相應(yīng)的其他方法有更好的攻擊效果,并且就對抗樣本質(zhì)量、攻擊有效性而言也有更好或相當?shù)谋憩F(xiàn),如圖5、圖6所示。


三、文本對抗攻擊相關(guān)資源
1. 文本對抗攻擊閱讀列表
清華大學(xué)自然語言處理與社會人文計算實驗室(THUNLP)建立的TAADpapers(https://github.com/thunlp/TAADpapers)是不可多得的全面、系統(tǒng)的文本對抗領(lǐng)域的閱讀列表。該列表包含工具包、綜述、文本對抗攻擊、文本對抗防御、模型魯棒性驗證、基準和評估、其他六個部分,基本上涵蓋了所有的文本對抗攻防領(lǐng)域的已發(fā)表論文。其中攻擊部分的論文進一步分成了句級、詞級、字級、混合四個子部分,并且還為每篇論文打上了受害模型可見性的標簽:gradient/score/decision/blind。除了提供論文pdf鏈接之外,如果某篇論文有公開代碼或數(shù)據(jù),也會附上相應(yīng)的鏈接。目前該列表共有65篇論文。

2. 文本對抗攻擊工具包
在圖像領(lǐng)域有CleverHans、Foolbox、Adversarial Robustness Toolbox (ART)等多個對抗攻擊工具包。這些工具包將圖像領(lǐng)域的對抗攻擊模型整合在一起,大大減少了模型復(fù)現(xiàn)的時間和難度,提高了模型評測的標準化程度,有力推動了圖像領(lǐng)域?qū)构舻陌l(fā)展。
經(jīng)筆者調(diào)研,目前僅有TextAttack和OpenAttack這兩個文本對抗工具包。兩者均包含了一些現(xiàn)有的文本對抗攻擊方法,下載方便,簡單易用。其中TextAttack構(gòu)建時間更早,由弗吉尼亞大學(xué)祁妍軍教授領(lǐng)導(dǎo)的Qdata實驗室開發(fā)(項目主頁:https://github.com/QData/TextAttack)。而OpenAttack構(gòu)建時間較晚,由清華大學(xué)自然語言處理與社會人文計算實驗室開發(fā)(項目主頁:https://github.com/thunlp/OpenAttack)。具體而言,TextAttack主要支持基于梯度和基于分數(shù)的攻擊,以及詞/字級擾動,而OpenAttack則覆蓋了所有類型的攻擊,包括基于決定的攻擊和盲攻擊以及句級的擾動。此外,OpenAttack也有相對而言更好的可擴展性,用戶在攻擊自己的模型或者設(shè)計新的攻擊模型時有更大的自由度和更好的可實現(xiàn)性。
圖8展示了使用OpenAttack進行對抗攻擊時打印攻擊結(jié)果的樣例,可以看到OpenAttack能夠?qū)崟r輸出攻擊每一個原始輸入的結(jié)果,包括成功與否、受害模型訪問次數(shù)、對抗樣本各項質(zhì)量評估指標等,針對所有原始輸入攻擊結(jié)束后,還會打印一個攻擊結(jié)果總結(jié)表,列出整體的各項攻擊評價指標。圖9列出了OpenAttack目前支持的所有攻擊方法。在OpenAttack的GitHub項目主頁也給出了一些基本的用例,更詳細的可以參看其文檔和源碼。


這類文本對抗攻擊工具包有豐富的應(yīng)用場景,包括提供現(xiàn)成的對抗攻擊基線模型、針對文本對抗的全面的評測、輔助設(shè)計新的攻擊模型、評測自己模型的魯棒性、進行對抗訓(xùn)練等等。相信它們會像圖像領(lǐng)域的對抗攻擊工具包一樣,極大地推進文本對抗攻擊領(lǐng)域的發(fā)展。

作者:豈凡超,清華大學(xué)計算機系博士,導(dǎo)師為孫茂松教授,主要研究方向為自然語言處理,其研究工作曾在 EMNLP 等發(fā)表。
參考文獻
[1]?Intriguing properties of neural networks. Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, Rob Fergus. ICLR 2014.
[2]?Ian J Goodfellow, Jonathon Shlens, Christian Szegedy. 2015. Explaining and harnessing adversarial examples. In Proceedings of ICLR.
[3]?Adversarial attacks and defences: A survey. Anirban Chakraborty, Manaar Alam, Vishal Dey, Anupam Chattopadhyay, Debdeep Mukhopadhyay. arXiv 2018.
[4]?Semantically Equivalent Adversarial Rules for Debugging NLP Models. Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin. ACL 2018.
[5]?Adversarial Example Generation with Syntactically Controlled Paraphrase Networks. Mohit Iyyer, John Wieting, Kevin Gimpel, Luke Zettlemoyer. NAACL-HLT 2018.
[6]?Generating Natural Adversarial Examples. Zhengli Zhao, Dheeru Dua, Sameer Singh. ICLR 2018.
[7]?Adversarial Examples for Evaluating Reading Comprehension Systems. Robin Jia, and Percy Liang. EMNLP 2017.
[8]?Generating Natural Language Adversarial Examples. Moustafa Alzantot, Yash Sharma, Ahmed Elgohary, Bo-Jhang Ho, Mani Srivastava, Kai-Wei Chang. EMNLP 2018.
[9]?Is BERT Really Robust? A Strong Baseline for Natural Language Attack on Text Classification and Entailment. Di Jin, Zhijing Jin, Joey Tianyi Zhou, Peter Szolovits. AAAI-20.
[10]?Generating Natural Language Adversarial Examples through Probability Weighted Word Saliency. Shuhuai Ren, Yihe Deng, Kun He, Wanxiang Che. ACL 2019.
[11]?Word-level Textual Adversarial Attacking as Combinatorial Optimization. Yuan Zang, Fanchao Qi, Chenghao Yang, Zhiyuan Liu, Meng Zhang, Qun Liu, Maosong Sun. ACL 2020.
[12]?Generating Fluent Adversarial Examples for Natural Languages. Huangzhao Zhang, Hao Zhou, Ning Miao, Lei Li. ACL 2019.
[13]?Deep Text Classification Can be Fooled. Bin Liang, Hongcheng Li, Miaoqiang Su, Pan Bian, Xirong Li, Wenchang Shi. IJCAI 2018.
[14]?Synthetic and Natural Noise Both Break Neural Machine Translation. Yonatan Belinkov, Yonatan Bisk. ICLR 2018.
[15]?HotFlip: White-Box Adversarial Examples for Text Classification. Javid?Ebrahimi, Anyi Rao, Daniel Lowd, Dejing Dou. ACL 2018.
[16]?Text Processing Like Humans Do: Visually Attacking and Shielding NLP Systems. Steffen Eger, G?zde Gül ?Sahin, Andreas Rücklé, Ji-Ung Lee, Claudia Schulz, Mohsen Mesgar, Krishnkant Swarnkar, Edwin Simpson, Iryna Gurevych. NAACL-HLT 2019.
[17]?TEXTBUGGER: Generating Adversarial Text Against Real-world Applications. Jinfeng Li, Shouling Ji, Tianyu Du, Bo Li, Ting Wang. NDSS 2019.
[18]?Combating Adversarial Misspellings with Robust Word Recognition. Danish Pruthi, Bhuwan Dhingra, Zachary C. Lipton. ACL 2019.
[19]?Crafting Adversarial Input Sequences For Recurrent Neural Networks. Nicolas Papernot, Patrick McDaniel, Ananthram Swami, Richard Harang. MILCOM 2016.
[20]?HowNet and the computation of meaning. Zhendong Dong, Qiang Dong. 2006.
[21]?Particle swarm optimization. Russell Eberhart, James Kennedy. IEEE International Conference on Neural Networks 1995.
[22]?A comparison of particle swarm optimization and the genetic algorithm. Rania Hassan, Babak Cohanim, Olivier De Weck, Gerhard Venter. 46th AIAA/ASME/ASCE/AHS/ASC Structures, Structural Dynamics and Materials Conference 2005.
[23]?Beyond Accuracy: Behavioral Testing of NLP Models with CheckList. Marco Tulio Ribeiro, Tongshuang Wu, Carlos Guestrin, Sameer Singh. ACL 2020.

關(guān)于我們
北京智源人工智能研究院(Beijing Academy of Artificial Intelligence,簡稱BAAI)成立于2018年11月,是在科技部和北京市委市政府的指導(dǎo)和支持下,由北京市科委和海淀區(qū)政府推動成立的新型研發(fā)機構(gòu)。
