BadNL: 語義保持改進的NLP模型后門攻擊
原文標題:BadNL: Backdoor Attacks against NLP Models with Semantic-preserving Improvements
原文作者:Xiaoyi Chen, Ahmed Salem, Dingfan Chen, Michael Backes, Shiqing Ma, Qingni Shen, Zhonghai Wu, Yang Zhang
發表會議:ACSAC 2021
原文鏈接:https://arxiv.org/pdf/2006.01043.pdf
筆記作者:HowieHwong
文章小編:ourren@SecQuan
1. Overview
深度神經網絡(dnn)在過去的十年中發展迅速,并已廣泛應用在現實生活中。與此同時,DNN模型已被證明容易受到安全和隱私攻擊。最近引起廣泛關注的一種攻擊是“后門攻擊”。具體地說,對手毒害了目標模型的訓練集,用一個附加的秘密觸發器將所有的輸入誤導為指定的目標類。之前的后門攻擊主要集中在計算機視覺(CV)應用上,如圖像分類。
本文對自然語言處理模型中的后門攻擊進行了系統的研究,提出了一種通用的自然語言處理后門攻擊框架BadNL,該框架運用了新的攻擊方法。團隊提出了三種構造觸發器的方法,分別是BadChar、BadWord和BadSentence,包括基本變量和語義保持變量。該攻擊方法實現了幾乎完美的成功率,并且對原始模型效用的影響可以忽略不計。例如,使用BadChar,在僅僅只篡改SST-5數據集的3%時,可以達到98.9%的攻擊成功率,效率提高了1.5%。此外,團隊還進行了一項用戶研究,以證明該觸發器能夠很好地從人類的角度保存語義。
2. Contributions
團隊做出了以下貢獻:
- 對NLP模型的后門攻擊進行了系統的研究,并提出了一個通用的NLP后門攻擊框架
BadNL,該框架具有語義保持改進。實驗結果表明,與最先進的NLP模型相比,BadNL具有較強的性能。 - 進行了一項用戶研究,以衡量后門輸入和干凈輸入之間的語義相似性。結果表明,該語義保存觸發器能夠很好地從人類的角度保存語義。
3. Background
團隊考慮了兩種基本的NLP任務:文本分類與文本生成。在文本分類中,團隊對Bert和LSTM進行研究;在文本生成中,團隊使用了神經機器翻譯(NMT)模型。
對于后門攻擊,團隊考慮最為標準的后門攻擊方式:
攻擊者首先指定目標數據標簽 來構建一個后門攻擊數據集 , 隨后通過一個觸發器插入函數 向數據特征插入觸發器 。目標模型 在包含了原始的干凈數據集 和后門攻擊數據集 上訓練(其中 代表樣本下標)。 和 分別代表單獨在兩類數據集上進行的標簽預測函數。通常采用下面的公式對后門攻擊的效果進行衡量:
- 將預測誤導至目標標簽的成功率:
- 使未被投毒的數據集保持行為正常性的效率:
通過調查,團隊認為成功的后門攻擊需要遵守以下的基本原則:
- 有效性:后門應該能夠在觸發輸入時誤導模型預測目標標簽。
- 實用性:在目標模型中插入后門不會影響目標模型在其原始任務上的性能。
- 隱匿性:后門應該是隱匿的,并保留輸入內容的語義。
- 推廣性:理想情況下后門攻擊應該是模型無關的,這樣它可以應用于不同類型的模型。
這些原則表明,最佳觸發器應該代表語言模式,這些模式很容易被語言模型提取,與干凈的數據有最小的重疊,并避免低頻詞,使其自然隱藏,以此逃避人工檢查。與此同時,不依賴于特定模型體系結構的觸發器因其更好的泛化能力而受到青睞。
4.BadNL
4.1 BadChar
團隊提出了一種新的基于隱寫術的觸發器,該觸發器對人類的感知是不可見的,從而提供了更好的隱身性。該方法利用了文本數據的不同表示方式,例如使用ASCII和UNICODE。其基本思想是使用控制字符作為觸發器:控制字符將不會顯示在文本中(即不會被人類所感知),但仍然能夠被目標模型所識別(即能夠觸發后門行為)。對于UNICODE表示,該方法使用24個零寬度的UNICODE字符(它們在打印時的寬度為零)作為其中一種觸發器(下圖中列出了其他例子)。零寬度字符的存在使得目標單詞被標記為UNK。對于ASCII表示,共有31個可以用作觸發器的控制字符,比如 ENQ 和 BEL。并且團隊排除了NUL,因為它表示一個 null 字符,部分python函數不能正確讀取。

4.2 BadWord
靜態觸發詞在數據集中的重復出現很容易被人工檢查發現。此外,不考慮語義變化會大大降低模型的實用性。為了解決這些問題,團隊利用了最先進的掩碼語言建模(MLM)和MixUp技術來生成上下文感知和語義保存的觸發器,并將其命名為基于MixUp的觸發器。算法如下圖所示:

首先在預先指定的位置 插入一個' [MASK] '(隱藏詞),并生成上下文感知詞 (即對隱藏詞的預測)。接著使用預訓練模型計算預測詞 和一個(預定義的)隱藏觸發詞 的 (第16-17行):團隊對LSTM分類器使用GloVe,對Transformer模型使用預訓練BERT的最后一個隱藏層。然后,類似于MixUp,在兩個 之間使用線性插值(由 決定)作為目標 (第18行),這意味著最終的觸發詞不僅接近原始詞的語義,而且還包含關于隱藏的觸發詞的信息。候選觸發詞的 是目標詞 的 近鄰(KNN)。
由于嵌入空間的高維性,字典中的詞在嵌入空間中呈稀疏分布,最接近的前兩個詞總是隱藏的觸發詞和目標詞。因此,應從候選觸發器列表中刪除前兩個最接近的單詞(第20行)。此外,為了避免引入基本的語法錯誤,算法從目標詞 中刪除具有不同詞性(POS)標記的候選詞(第21-25行)。當使用“first”作為隱藏的觸發詞時,生成的示例觸發器見表1。我們研究了隱藏觸發詞的不同選擇(圖8)。 是通過網格搜索來確定的。
5. BadSentence
BadSentence包括兩種觸發器。
第一種為基本句子集觸發器。與前面的例子類似,團隊在預先選定的輸入文本位置檢索目標句子,并將用觸發句替換目標句。基本的句子級觸發器是從語料庫中隨機抽取的固定句子。如果目標句中有一個子句,只需用觸發句替換這個子句。否則,則將觸發句作為復合結構添加到目標句。通過人工檢查來確保句子觸發器只包含中性信息。
第二種為語法遷移觸發器。通過句法轉換來修改句子的結構,而不影響句子的內容。團隊利用兩種不同的句法轉換技術,即時態轉換和語態轉換。
時態轉換:為了建立一個時態轉換觸發器,需將句子的謂詞轉換為另一種形式,即在構建了句子的依賴關系樹之后,需找到該句子中的所有謂詞,并將它們的時態轉換為所需的觸發器時態。在選擇觸發時態時,團隊對常見時態和罕見時態進行了研究,發現罕見時態可以提高后門攻擊的性能,因為罕見時態的使用不會對目標模型造成混淆。在實驗中,團隊使用了將來完成進行時,也就是“Will have been”+進行時的動詞。即可以選擇不同的時態作為觸發時態。
語態轉移:語態轉移觸發器是通過將句子從主動語態轉換為被動語態或反過來。但是應避免僅僅使用一個語態作為觸發器,若在干凈的句子輸入中,大部分句子都采用了這種語態,那么后門攻擊的效率就會大大下降。
6. Evaluation
實驗結果表明,所有技術在保持目標模型實用性的前提下,都取得了較好的攻擊成功率。具體數據可參考原文的Figure 2——Figure 8,下圖為部分案例:
