[論文解讀] Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey

Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey


對nlp以及RNN方面不是很瞭解,翻譯有很多省去的地方請見諒

簡介

論文標題

  • Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey
  • 自然語言處理中深度學習模型的敵意攻擊研究
  • 2019.4

貢獻

  • 我們對文本深層神經模型的對抗性攻擊進行了全面的綜述,並提出了不同的分類方案來組織綜述的文獻,這是此類研究的第一個工作;
  • 我們提供了所有的相關信息,使調查內容完備,從而使有限的NLP知識的讀者很容易理解;
  • 我們討論了一些尚待解決的問題,並確定了這一研究領域可能的研究方向,目的是藉助對抗性例子來構建更健壯的文本深度學習模型

摘要

近年來,隨着高速計算設備的發展,深度神經網絡(DNNs)在許多人工智能(AI)應用中得到了廣泛的應用。然而,以前的研究表明,DNN很容易受到戰略性修改的樣本的攻擊,這些樣本被命名爲對抗性樣本。這些樣本是在一些不可察覺的擾動下生成的,但可以欺騙DNN給出錯誤的預測。受爲圖像DNN生成敵意示例的流行的啓發,近年來出現了針對文本應用的攻擊DNN的研究工作。然而,現有的圖像擾動方法不能直接應用於文本,因爲文本數據本質上是離散的。在這篇文章中,我們回顧瞭解決這種差異並在DNN上生成文本對抗性示例的研究工作。我們對這些作品進行了全面的收集、選擇、總結、討論和分析,並涵蓋了所有的相關信息,使文章內容完備。最後,在文獻綜述的基礎上,我們對這一主題提出了進一步的討論和建議。

介紹

Jia和Leung[55]是第一個考慮在基於文本的任務的深層神經網絡(即文本深層神經網絡)上生成對抗性示例(或對抗性攻擊,以下我們將互換使用這兩個表達式)的人。他們的工作很快在自然語言處理(NLP)社區獲得了研究關注。然而,由於圖像和文本數據之間的內在差異,對圖像的對抗性攻擊方法不能直接應用於後者

首先,圖像數據(例如,像素值)是連續的,但是文本數據是離散的。傳統上,我們先對文本進行矢量化,然後再將其輸入到深度神經網絡中。傳統的矢量化方法包括利用詞頻和逆文檔頻率,以及one hot表示(詳細信息見3.3節)。當對這些表示應用從圖像採用的基於梯度的對抗性攻擊時,生成的對抗性示例是無效字符或單詞序列[156]。一種解決方案是使用單詞嵌入作爲深度神經網絡的輸入。然而,這也將生成不能與單詞嵌入空間[39]中的任何單詞匹配的單詞。

其次,圖像的擾動是人眼難以感知的像素值的微小變化,因此人類可以對圖像進行正確的分類,顯示出深層神經模型魯棒性較差。但是對於文本的對抗性攻擊,很容易察覺到微小的擾動。例如,替換字符或單詞會生成無效的單詞或句法錯誤的句子。此外,它還會極大地改變句子的語義。因此,擾動很容易被察覺-在這種情況下,即使是人類也不能提供正確的預測。

1. 圖像連續,文本離散 
	詞頻生成的是無效字符
	詞嵌入會生成不能匹配的單詞
2. 人類易感知察覺,擾動改變句子語義

第二節介紹了深度學習模型的對抗性攻擊的基本情況,包括對抗性攻擊的分類和NLP中使用的深度學習模型。在第三節中,我們討論了攻擊圖像數據和文本數據的區別,並簡要回顧了攻擊圖像DNN的典範作品,這些作品啓發了他們在NLP中的後續工作。第四節首先介紹了我們對文學的分類,然後詳細介紹了目前的研究現狀。第五節討論了防禦策略,第六節指出了尚待解決的問題。最後,第七節對文章進行了總結。

自然語言處理中的對抗性攻擊與深度學習技術綜述

在我們深入研究這項調查的細節之前,我們首先介紹深度學習模型上的對抗性攻擊的一般分類。我們還介紹了深度學習技術及其在自然語言處理中的應用

深度學習模型的對抗性攻擊:一般分類法

在本節中,我們將提供對抗性攻擊的定義,並介紹攻擊的不同方面,然後以適用於任何數據形式的一般方式測量擾動和評估攻擊的有效性。

定義

Deep Neural Network (DNN)

Perturbations.

Adversarial Examples.

三個最基本概念

威脅模型。

我們採用[154]中的威脅模型定義來攻擊DNN。在本節中,我們將討論威脅模型的幾個方面。

模型知識。根據被攻擊DNN的知識,可以使用黑盒或白盒策略來生成對抗性示例。當DNN的結構、參數、損失函數、激活函數和訓練數據不可訪問時,執行黑盒攻擊。通過直接訪問測試數據集或通過查詢DNN並檢查輸出變化來生成對抗性示例。相反,白盒攻擊是基於對DNN的上述某些信息的瞭解。

目標。目標攻擊非目標攻擊

粒度Granularity。攻擊粒度指的是生成對抗性示例所依據的數據級別。例如,它通常是用於圖像數據的圖像像素。對於文本數據,可以是字符級嵌入、詞級嵌入和句子級嵌入。第3.3節將進一步介紹文本DNN的攻擊粒度。

動機。生成對抗性例子的動機有兩個:攻擊和防禦。攻擊的目的是檢查目標DNN的健壯性,而防禦則進一步利用生成的對抗性實例來增強目標DNN的健壯性。第5節將提供更多細節。

測量。

在對抗性攻擊中需要兩組測量:一是控制擾動,二是評估攻擊的有效性

攝動約束。如上所述,擾動η不應該改變輸入的真實類別標籤,也就是說,理想的η分類器,如果我們以分類爲例,將對敵意示例提供與原始示例相同的預測,DNN也不能太小,以避免最終對目標DNN沒有影響。理想情況下,有效擾動是約束範圍內的最大值。

攻擊評估。敵意攻擊旨在降低DNN的性能。因此,評估攻擊的有效性是基於不同任務的性能度量。例如,分類任務具有準確性、F1分數和AUC分數等度量。在本文中,我們將不同NLP的指標保留爲超出範圍的內容,並建議讀者參考特定任務以獲取信息。

深度學習在自然語言處理中的應用

近年來,神經網絡在自然語言處理領域得到了越來越廣泛的應用,各種DNN模型被應用於不同的自然語言處理任務中。除了前饋神經網絡和卷積神經網絡(CNN)之外,遞歸/遞歸神經網絡(RNN)及其變體由於其天然的處理序列的能力,是NLP中最常用的神經網絡。近年來,深度學習領域的兩個重要突破被引入自然語言處理領域。它們是順序學習[131]和注意力建模[8]。強化學習和產生式模型也很受歡迎[152]。在本節中,我們將簡要概述與此調查密切相關的NLP中應用的DNN架構和技術。我們建議讀者參考[101,152]中對NLP中神經網絡的詳細評論。

**前饋網絡。**前饋網絡,特別是多層感知器(MLP)是最簡單的神經網絡。它有幾個前向層,一層中的每個節點連接到下一層中的每個節點,使網絡完全連接。MLP利用非線性激活函數來區分不可線性分離的數據。MLP使用固定大小的輸入,不記錄元素的順序。因此,它主要用於可以形成有監督學習問題的任務中。在NLP中,它可以在任何應用程序中使用。NLP中的前饋網絡的主要缺點是它不能很好地處理詞序很重要的文本序列。

由於前饋網絡易於實現,因此實現方式多種多樣,沒有標準的基準架構值得研究。爲了評估前饋網絡在NLP中的健壯性,在實際應用中,經常會針對特定的體系結構生成對抗性示例。例如,[3,45,46]的作者研究了指定的惡意軟件檢測模型。

卷積神經網絡(CNN)。卷積神經網絡由卷積層、合併(下采樣)層和最終全連通層組成。激活函數用於將下采樣層連接到下一卷積層或完全連接層。CNN允許任意大小的輸入。卷積層使用卷積運算來提取有意義的輸入局部模式。池層減少了網絡中的參數和計算量,使網絡變得更深、更少的過擬合。總體而言,CNN識別本地預測值,並將它們組合在一起,爲輸入生成一個固定大小的向量,該向量包含應用程序任務的最重要的信息方面。此外,它是順序敏感的。因此,它在計算機視覺任務中表現出色,後來在自然語言處理應用中被廣泛採用。

Yoon Kim[60]採用CNN進行句子分類。他使用word2vec將單詞表示爲輸入。然後卷積運算被限制在單詞序列的方向,而不是單詞嵌入。匯聚層中的多個過濾器處理可變長度的句子。該模型在幾個基準數據集上與多個最先進的作品相比表現出了優異的性能。這項工作成爲將CNN應用於自然語言處理應用的標杆工作。張某等人。[155]提出了用於字符級文本分類的CNN。他們對每個字符都使用了字母表中的一個熱鍵表示法。爲了控制所提出的CNN的泛化錯誤,他們還通過將單詞和短語替換爲它們的同義詞來進行數據擴充。在許多應用中,這兩個具有代表性的文本CNN通過對抗性例子進行評估[13,30,31,35,78]。

遞歸神經網絡/遞歸神經網絡。遞歸神經網絡是從前饋神經網絡改編而來的神經模型,用於學習順序輸入和輸出之間的映射[116]。RNN允許任意長度的數據,並且在它們的計算圖中引入循環來有效地對時間的影響進行建模[40]。該模型不受數據稀疏性引起的統計估計問題的困擾,因此在處理序列數據時具有令人印象深刻的性能[37]。遞歸神經網絡[38]將遞歸神經網絡從序列擴展到樹,這尊重語言的層次結構。在某些情況下,存在向後依賴關係,這是反向分析所需要的。因此,提出了雙向RNN,利用兩個並行的RNN網絡,並結合它們的輸出,在正向和反向兩個方向上查看句子。Bengio等人。[14]是最早將RNN應用於自然語言處理的公司之一。具體地說,他們在語言模型中使用了RNN,其中單詞序列的概率是以遞歸方式計算的。RNN的輸入是所有前面單詞的特徵向量,輸出是輸出詞彙上的條件概率分佈。由於RNN是對各種時序數據建模的自然選擇,它已經被應用於許多NLP任務。因此,RNN引起了人們對對抗性攻擊的極大興趣[104]。

RNN有許多變體,其中最受歡迎的是長短期記憶(LSTM)網絡[51]。LSTM是一個特定的RNN,旨在捕獲長期依賴項。在LSTM中,隱藏狀態的計算是通過輸入門、遺忘門和輸出門三個門的組合來計算的,這三個門的控制信息流依賴於Logistic函數。LSTM網絡隨後被證明比傳統的RNN更有效[44]。GRUS是LSTM的簡化版本,它只包含兩個門,因此在訓練和預測方面效率更高。一些流行的LSTM變體被提出來解決各種NLP任務[23,23,51,112,133,141,146]。這些代表作最近以對抗性的例子受到了評價的興趣[35,54,55,92,104,112,118,130,156]。

序列到序列學習(Seq2Seq)模型。序列到序列學習(Seq2Seq)[131]是深度學習領域的重要突破之一,目前已廣泛應用於自然語言處理領域。Seq2Seq模型具有利用編碼器-解碼器體系結構爲給定序列信息生成另一序列信息的優越能力[77]。通常,Seq2Seq模型由兩個遞歸神經網絡組成:一個編碼器處理輸入並將其壓縮成向量表示,一個解碼器預測輸出。潛在變量分層遞歸編解碼器(VHRED)模型[122]是一種最近流行的Seq2Seq模型,它利用子序列之間的複雜依賴關係生成序列。[25]是最早採用Seq2Seq模型的神經機器翻譯(NMT)模型之一。最近提出的Seq2Seq網絡機器翻譯模型OpenNMT[64]成爲網絡機器翻譯的基準之一。隨着它們被廣泛採用和應用,攻擊作品也應運而生[24,31,99,127]。

注意模型。注意機制[9]是深度學習的又一突破。最初開發它是爲了克服Seq2Seq模型[77]中所需的長序列編碼的困難。注意允許解碼器回顧源序列的隱藏狀態。然後,隱藏狀態提供加權平均作爲解碼器的附加輸入。該機制關注序列的信息部分。不是查看普通注意力模型中的輸入序列,而是使用NLP中的自我注意[136]來查看序列中的周圍單詞,以獲得更多上下文敏感的單詞表示[152]。BiDAF[121]是一種機器理解的雙向注意流機制,提出後取得了優異的性能。[55,127]通過對抗性例子評估了該模型的健壯性,成爲首批使用對抗性例子攻擊文本DNN的工作。其他基於注意力的DNN[26,108]最近也受到了敵意攻擊[30,92]。

**強化學習模型。**強化學習通過在Agent執行離散動作後給予獎勵來訓練Agent。在NLP中,強化學習框架通常由Agent(DNN)、策略(引導動作)和獎勵組成。代理根據策略選擇動作(例如,預測序列中的下一個單詞),然後相應地更新其內部狀態,直到到達計算獎勵的序列的末尾。強化學習需要正確處理動作和狀態,這可能會限制模型的表達能力和學習能力[152]。但它對面向任務的對話系統[75]很感興趣,因爲它們在決策過程中共享基本原則。到目前爲止,攻擊NLP[99]中的強化學習模型的工作有限。

深層生成模型。近年來,生成對抗性網絡(GANS)[41]和變分自動編碼器(VAEs)[63]這兩種強大的深度生成模型得到了廣泛的研究。生成模型能夠生成與潛在空間中的地面真實數據非常相似的真實數據。在NLP字段中,它們用於生成文本數據。Gans[41]由兩個對抗性網絡組成:生成器和鑑別器。鑑別器是區分真實的樣本和生成的樣本,而生成器是生成真實的樣本,目的是愚弄鑑別器。GAN使用最小-最大損失函數同時訓練兩個神經網絡。VAE由編碼器和發電機網絡組成。編碼器將輸入編碼到潛在空間,並且生成器從該潛在空間生成樣本。深度生成模型不容易訓練和評價。因此,這些缺陷阻礙了它們在許多實際應用中的廣泛使用[152]。雖然它們已經被用來生成文本,但到目前爲止還沒有工作使用對抗性的例子來檢驗它們的穩健性。

從圖像到文本

對抗性攻擊起源於計算機視覺社區。在這一部分中,我們介紹了有代表性的作品,討論了攻擊圖像數據和文本數據的區別,並介紹了對文本DNN進行對抗性攻擊時的初步知識。

精心製作對抗性例子:計算機視覺中的鼓舞人心的作品

常見的略

Substitute Attack。上述代表性工作都是白盒方法,需要充分了解神經模型的參數和結構。然而,在實踐中,由於對模型的訪問有限,攻擊者並不總是可能以白盒方式精心構建對手。Papernot等人解決了這一限制。[105]並引入了一種黑盒攻擊策略:訓練一個替代模型,用查詢目標模型得到的標籤逼近目標模型的決策邊界。然後對該替補進行白盒攻擊,並生成關於該替補的對抗性實例。具體地說,他們採用FSGM和JSMA爲替代DNN生成對抗性示例。

GAN式進攻。黑盒攻擊的另一個分支是利用生成性對抗神經(GAN)模型。趙等人。[156]首先在訓練數據集X上訓練生成模型WGAN,WGAN可以生成與X分佈相同的數據點,然後分別訓練一個逆變器,將數據樣本x映射到潛在的稠密空間中通過最小化重建誤差。他們沒有擾亂x,而是在潛在空間中z的鄰居z∗中搜索對手z。然後,他們將z∗映射回x∗,並檢查x∗是否會改變預測。他們介紹了兩種搜索算法:迭代隨機搜索和混合收縮搜索。前者採用逐步擴大搜索空間的擴展策略,後者採用從大範圍開始遞歸收緊搜索範圍上界的收縮策略。

攻擊圖像DNN與攻擊文本DNN

要攻擊文本DNN模型,我們不能直接應用來自圖像DNN攻擊者的方法,因爲它們之間存在三個主要差異:

  • 離散輸入與連續輸入的對比。圖像輸入是連續的,通常的方法使用Lp範數來度量乾淨數據點與擾動數據點之間的距離。然而,文本數據是符號的,因此是離散的。很難定義文本上的擾動。對於文本擾動,需要精心設計的變體或距離測量。另一種選擇是先將文本數據映射到連續數據,然後再採用計算機視覺的攻擊方法。我們將在3.3節中進一步討論。
  • 可感知與不可感知。圖像像素的微小變化通常不容易被人察覺,因此對抗性的例子不會改變人的判斷,而只是愚弄了DNN模型。但是文本上的微小改變,例如字符或單詞的改變,將很容易被察覺,從而呈現攻擊失敗的可能性。例如,在輸入到文本DNN模型之前,可以通過拼寫檢查和語法檢查來識別或糾正這些改變。因此,要找到不可察覺的文本對手並不是一件容易的事。
  • 語義VS語義較少。在圖像的情況下,小的改變通常不會改變圖像的語義,因爲它們是微不足道的和不可感知的。然而,文本的擾動很容易改變一個詞和一個句子的語義,因此很容易被檢測到,並嚴重影響模型的輸出。例如,刪除否定詞會改變句子的情緒。但在計算機視覺中情況並非如此,在計算機視覺中,擾亂單個像素並不能將圖像從一隻貓轉到另一隻動物身上。改變輸入的語義與保持正確預測不變同時愚弄受害者DNN的對抗性攻擊的目標是背道而馳的。

由於這些差異,當前最先進的文本DNN攻擊者要麼通過施加附加約束來仔細調整圖像DNN攻擊者的方法,要麼使用不同的技術提出新的方法。

向量化文本輸入和擾動度量

character / word / seq

向量化文本輸入。DNN模型需要矢量作爲輸入,對於圖像任務,通常的方法是使用像素值形成矢量/矩陣作爲DNN輸入。但是對於文本模型,需要特殊的操作將文本轉換爲向量。方法主要有三種:基於字數的編碼、一次熱編碼和密集編碼(或特徵嵌入),後兩種方法主要用於文本應用的DNN模型。

word-count based encoding, one-hot encoding and dense encoding (or feature embedding)

  • word-count based encoding。詞袋(BOW)方法在文本矢量化方面有着最悠久的歷史。在BOW模型中,初始化一個長度爲詞彙表大小的零編碼向量。然後將向量中的維度替換爲給定句子中對應單詞的出現次數。另一種基於單詞計數的編碼是利用單詞(術語)的術語頻率-逆文檔頻率(TF-IDF),並且向量中的維度是單詞的TF-IDF值。

  • One-hot Encoding.對於字符級熱編碼,其表示形式可表示爲
    x=[(x11,x1n);(xm1,xmn)] \mathbf{x}=\left[\left(x_{11}, \ldots x_{1 n}\right) ; \ldots\left(x_{m 1}, \ldots x_{m n}\right)\right]
    因此每個單詞具有相同固定的向量表示長度m,並且長度由單詞的最大字符數n決定。

    對於字級熱編碼,在上面的符號之後,文本x可以表示爲:
    x=[(x1,,xm,xm+1xk)] \mathbf{x}=\left[\left(x_{1}, \ldots, x_{m}, x_{m+1} \ldots x_{k}\right)\right]
    k是文本允許的最大字數,因此如果m+1<k,則[(xm+1.xk)]是零填充

    一次熱編碼產生的向量只有0和1的值,其中1表示對應的字符/單詞出現在句子/段落中,而0表示不出現。因此,一次性編碼通常生成稀疏向量/矩陣。DNN在稀疏表示中的學習值已經被證明是非常成功的,因爲它們可以在訓練過程中從單熱點向量中學習更密集的分佈式表示。

  • Dense Encoding。與單熱編碼相比,密集編碼爲文本數據生成低維的分佈式表示。word2vec
    citenips/MikolovSCCD13使用連續詞袋(CBOW)和skip-gram模型來生成密集的單詞表示,即單詞嵌入。它基於分佈假設,即出現在相似上下文中的詞具有相似的含義。單詞嵌入在一定程度上緩解了向量化文本數據的離散性和數據稀疏性問題[37]。單詞嵌入的擴展,如doc2vec和paragraph2vec[70]將句子/段落編碼爲密集向量。

擾懂測量。如第2.1.3節所述,需要一種方法來測量擾動的大小,以便對其進行控制,以確保在保持不可察覺的情況下欺騙受害者DNN的能力。然而,文本擾動中的度量與圖像中的擾動有很大的不同。通常,擾動的大小由乾淨數據x和其敵對實例x‘之間的距離來測量。但在文本中,距離度量還需要考慮語法正確性、句法正確性和語義保持性。我們在這裏列出了本次調查回顧中使用的測量方法。

  • Norm-based measurement。直接採用Lp,p0,1,2,L_{p}, p \in 0,1,2, \infty等規範,要求輸入數據是連續的。一種解決方案是使用連續且密集的呈現(例如,嵌入)來表示文本。但這通常會導致無效和不可理解的文本,這需要涉及其他約束。

  • Grammar and syntax related measurement語法和句法相關的度量。確保語法或句法的正確性會使對抗性例子不易被察覺。

    • 一些工作中使用了語法和句法檢查器,以確保生成的文本對抗性實例是有效的
    • Perplexity困惑通常用來衡量語言模型的質量。在一篇綜述文獻[92]中,作者使用Perplexity困惑來確保生成的對抗性例子(句子)是有效的。
    • Paraphrase是受控制的,可以看作是一種對抗性的例子(4.3.3)。在擾動時,在生成過程中保證了釋義的有效性。
  • Semantic-preserving measurement. 語義保持度量。語義相似性/距離的度量通常是通過採用向量的相似性/距離度量來對詞向量進行的。給定兩維字向量p=(p1,p2,,pn)\mathbf{p}=\left(p_{1}, p_{2}, \ldots, p_{n}\right)q=(q1,q2,,qn)\mathbf{q}=\left(q_{1}, q_{2}, \ldots, q_{n}\right)

    • 歐氏距離是歐氏空間中兩個向量的距離:
      d(p,q)=(p1q1)2+p2q2)2+..(pnqn)2 d(\mathbf{p}, \mathbf{q})=\sqrt{\left.\left(p_{1}-q_{1}\right)^{2}+p_{2}-q_{2}\right)^{2}+. .\left(p_{n}-q_{n}\right)^{2}}

    • 餘弦相似度計算兩個矢量之間角度的餘弦值:
      cos(p,q)=i=1npi×qii=1n(pi)2×i=1n(qi)2 \cos (\mathrm{p}, \mathrm{q})=\frac{\sum_{i=1}^{n} p_{i} \times q_{i}}{\sqrt{\sum_{i=1}^{n}\left(p_{i}\right)^{2}} \times \sqrt{\sum_{i=1}^{n}\left(q_{i}\right)^{2}}}

  • Edit-based measurement基於編輯的測量。編輯距離是一種量化從一個字符串到另一個字符串的最小變化的方法。編輯距離的不同定義使用不同的字符串操作集合[74]。

    • Levenshtein距離使用插入、刪除和替換操作。

    • Word Mover’s Distance單詞移動器距離(WMD)[69]是對單詞嵌入操作的編輯距離。它測量一個文檔的嵌入字詞到達另一個文檔的嵌入字詞所需行進的最小距離[39]。最小化公式爲:
      mini,j=1nTijeiej2s.t.,j=1nTij=di,i{i,,n},i=1nTij=di,j{i,,n} \begin{array}{c} \min \sum_{i, j=1}^{n} \mathbf{T}_{i j}\left\|\mathbf{e}_{\mathbf{i}}-\mathbf{e}_{\mathbf{j}}\right\|_{2} \\ \text {s.t.}, \sum_{j=1}^{n} \mathbf{T}_{i j}=d_{i}, \forall i \in\{i, \ldots, n\}, \sum_{i=1}^{n} \mathbf{T}_{i j}=d_{i}^{\prime}, \forall j \in\{i, \ldots, n\} \end{array}
      where ei\mathbf{e}_{\mathbf{i}} and ej\mathbf{e}_{\mathbf{j}} ared word embedding of word ii and word jj respectively. nn is the number of words. TRn×n\mathbf{T} \in \mathcal{R}^{n \times n} be a flow matrix, where Tij0\mathbf{T}_{i j} \leq 0 denotes how much of word ii in d travels to word jj in d\mathrm{d}^{\prime}. d and d\mathrm{d}^{\prime} are normalized bag-of-words vectors of the source document and target document respectively.

      其中 ei\mathbf{e}_{\mathbf{i}}ej\mathbf{e}_{\mathbf{j}} 分別是單詞 ii 和單詞 jj的嵌入向量 。 nn是單詞的數量。TRn×n\mathbf{T} \in \mathcal{R}^{n \times n} 是流矩陣,其中 Tij0\mathbf{T}_{i j} \leq 0 表示d中有多少字 ii 移動到d\mathrm{d}^{\prime}中的字 jj 。d 和d\mathrm{d}^{\prime} 分別是源文檔和目標文檔的歸一化詞袋向量。

    • 更改次數是衡量編輯的一種簡單方法,它在一些評論文獻中被採用。

  • Jaccard相似係數利用有限樣本集的交集和並集來度量有限樣本集之間的相似性。
    J(A,B)=ABAB J(A, B)=\frac{|A \cap B|}{|A \cup B|}
    在語篇中,A、B是兩個文檔(或句子)。|A∩B|表示兩個文檔中出現的字數|A∪B|表示總的唯一字數。

自然語言處理中的攻擊神經模型:最新進展

在這一部分中,我們首先介紹了文本深度學習模型的攻擊方法的分類,然後重點介紹了最新的研究成果,旨在找出近年來最有前途的研究進展。

文本深度學習模型的攻擊方法分類

我們根據不同的標準對現有的對抗性攻擊方法進行分類。圖1概括了這些類別。

本文采用五種策略對攻擊方式進行分類:1)按模型訪問組(**model access group **)是指攻擊發生時對被攻擊模型的瞭解。在下一節中,我們將重點討論使用此分類策略的問題。ii)按應用程序組(application group)引用通過不同NLP應用程序的方法 。更詳細的討論將在4.5節中提供。iii)按目標羣體(**target group **)是指攻擊的目的是強制執行錯誤的預測或針對特定的結果。iv)按粒度分組(granularity group)考慮模型被攻擊的粒度。v)我們已經在2.2節中討論了被攻擊的DNN(attacked DNNs)。在接下來的部分中,我們將持續提供有關這些方法所屬的不同類別的信息。

需要注意的一組重要方法是跨模式攻擊,其中被攻擊模型考慮了處理多模式數據(例如圖像和文本數據)的任務。它們不是針對純文本DNN的攻擊,因此我們在4.4節中除了4.2節中的白盒攻擊和4.3節中的黑盒攻擊之外,還將單獨討論這類方法。

白盒攻擊

在白盒攻擊中,攻擊需要訪問模型的全部信息,包括體系結構、參數、損失函數、激活函數、輸入和輸出數據。白盒攻擊通常近似於針對特定模型和輸入的最壞情況的攻擊,其中包含一組擾動。這種對手策略通常非常有效。在本節中,我們將針對文本DNN的白盒攻擊分爲七類。

FGSM-based

FGSM是最早的圖像攻擊方法之一(3.1節)。在攻擊文本DNN方面取得了很多後續工作。TextFool[78]使用FGSM的概念來近似對文本分類任務具有重大貢獻的文本項的貢獻。這項工作沒有使用FGSM中的費用梯度符號,而是考慮了費用梯度的大小。作者提出了三種攻擊方式:插入攻擊、修改攻擊和移除攻擊。具體地說,他們使用反向傳播計算每個訓練樣本的成本梯度ΔxJ(f,x,c)\Delta_{x} J\left(f, x, c^{\prime}\right),其中f是模型函數,x是原始數據樣本,c’是目標文本類。然後,他們識別出包含梯度幅度最高的維度的字符,並將其命名爲熱門字符。選擇包含足夠熱字且出現頻率最高的短語作爲熱門訓練短語(HTP)。在插入策略中,通過在對原c類有較大貢獻的短語附近插入幾個目標類c‘的HTP來製作對抗性例子。作者進一步利用維基百科和僞造事實等外部資源來選擇有效和可信的句子。在修改策略中,作者使用類似於HTP的識別方法將熱門例句(HSP)識別到當前分類中。然後,他們將HTP中的字符替換爲常見的拼寫錯誤或視覺上相似的字符。在去掉策略中,去掉了HSP中不重要的形容詞或副詞。在CNN文本分類器[155]上評估這三種策略及其組合。然而,正如作者所提到的,這些方法都是手動執行的。

[117]中的工作採用了與TextFool相同的思想,但它提供了一種移除-添加替換策略,該策略首先嚐試移除對文本分類任務貢獻最大的副詞($w_{i} )(使))(使用損失梯度衡量)。如果該步驟中的輸出句子具有不正確的語法,則該方法將在w_{i} 之前插入單詞p_{j}..p_{j}()選自候選庫,其中同義詞和打字錯誤以及體裁特定的關鍵字(通過詞語頻率識別)是候選詞。對於所有p_{j},滿,如果輸出不能滿足其最高成本梯度,則該方法用p_{j}代替w_{i} $。作者們表明,他們的方法比TextFool更有效。由於該方法將單詞按貢獻排名排序,並按順序製作敵方樣本,因此是一種貪婪的方法,在輸出發生變化之前總是得到最少的操作。爲了避免被人眼發現,作者對替換/添加的單詞進行了限制,使其不影響原單詞的語法和詞性。

在惡意軟件檢測中,可移植可執行文件(PE)由二進制向量{x1,.,xm},Xi∈{0,1}表示,使用1和0來指示PE是否存在,其中m是PE的數量。惡意軟件檢測DNNs以PE的向量爲特徵,可以對惡意軟件進行識別。它不是典型的文本應用程序,但也面向離散數據,這些數據與文本應用程序具有相似的方法。文獻[3]的作者研究了生成二進制編碼對抗性示例的方法。爲了保留對抗性例子的功能性,他們結合了四種界定方法來製造擾動。前兩種方法採用FGSM的多步變種FSGMk\mathrm{FSGM}^{k}[68],通過引入確定性舍入(dFGSMk\mathrm{dFGSM}^{k})和隨機化舍入(rFGSMk\mathrm{r} \mathrm{FGSM}^{k})將擾動限制在二進制域內。這兩種定界方法類似於圖像[42]上的LL_{\infty}- ball約束。如果損耗的相應偏導數大於或等於損耗梯度的L2範數除以m√m,則第三種方法多步位梯度遞增(BCAkBCA^k)設置第j個特徵的位。第四種方法多步位座標遞增(BCAk)通過考慮具有最大對應損耗偏導數的特徵來在每一步中更新一位。最後兩種方法實際上訪問多個可行頂點。本文還提出了一個對抗性學習框架,旨在增強惡意軟件檢測模型的魯棒性。

[114]還會攻擊惡意軟件檢測DNN。作者對二進制序列的嵌入表示進行了擾動,並將擾動後的實例重構爲其二進制表示。具體地說,他們將均勻隨機的字節序列(有效載荷)附加到原始的二進制序列。然後,他們將新的二進制嵌入到其嵌入中,並僅在嵌入有效載荷時執行FGSM。反覆執行擾動,直到檢測器輸出不正確的預測。由於擾動僅在有效負載上執行,而不是在輸入上執行,因此此方法將保留惡意軟件的功能。最後,通過將敵方嵌入映射到其在有效嵌入空間中最近的鄰居,將逆向嵌入重構爲有效的二進制文件。

許多工作直接採用FGSM進行對抗性訓練,即在訓練模型時將其作爲正則化。我們將在第五節討論一些代表。

JSMA-based

JSMA是攻擊用於圖像應用的神經模型的另一個先驅工作(參見3.1節)。工作[104]使用正向導數作爲JSMA,以找出對對手方向貢獻最大的序列。網絡的雅可比是通過利用展開的計算圖來計算的[97]。

他們爲兩種類型的RNN模型精心製作了對抗性的序列,其輸出分別爲類別( categorical )數據和順序(sequential)數據。對於類別RNN,通過考慮對應於輸出分量之一j的雅可比行列式 JacbF[:,j]J a c b_{F}[:, j]列來生成對抗性示例。具體地說,對於每個單詞i,他們通過以下方式識別擾動方向:
sign(JacbF(x)[i,g(x)])g(x)=argmax0,1(pj) \begin{array}{c} \operatorname{sign}\left(\operatorname{Jacb}_{F}\left(x^{\prime}\right)\left[i, g\left(x^{\prime}\right)\right]\right) \\ g\left(x^{\prime}\right)=\arg \max _{0,1}\left(p_{j}\right) \end{array}
其中pj是目標類的輸出概率。就像在JSMA中一樣,他們轉而選擇logit來代替這個等式中的概率。他們進一步將擾動的示例投影到嵌入空間中最近的向量上,以獲得有效的嵌入。對於順序的RNN,在計算雅可比矩陣之後,對於輸入集合{i}的子集,它們改變了具有高Jacobian值JacbF[i,j]和低Jacobian值JacbF[i,k], 對於k不等於j以實現對輸出步驟{j}的子集的修改。

45是第一個攻擊神經惡意軟件檢測器的工作。他們首先進行了特徵工程,爲軟件應用程序獲得了超過545K的靜態特徵。他們使用二值指示符特徵向量來表示應用。然後在輸入的特徵向量上採用JSMA算法制作對抗性實例:計算模型雅可比的梯度來估計擾動方向。然後,該方法在給定的輸入樣本中選取一個具有最大正梯度的擾動η進入目標類。特別地,通過索引i選擇擾動,滿足:
i=argmaxj[1,m],Xj=yfy(Xj) i=\arg \max _{j \in[1, m], \mathbf{X}_{j}=y^{\prime}} f_{y}^{\prime}\left(\mathbf{X}_{j}\right)
其中y‘是目標類,m是要素的數量。在二進制特徵向量上,擾動是(0→1)或(1→0)。此方法保留了應用程序的功能。爲了保證擾動對應用程序的修改不會對應用程序造成太大影響,從而保持惡意軟件應用程序的完整功能,作者使用L1範數來限定修改的特徵總數,並進一步將特徵數限定爲20個。此外,作者還提供了三種防禦攻擊的方法,即特徵約簡、提煉和對抗性訓練。他們發現對抗性訓練是最有效的防禦方法。

C&W-based.

文獻[130]中的工作採用C&W方法(參考3.1節)來攻擊病歷預測模型。目的是檢測每個患者病歷中的易感事件和測量,爲臨牀使用提供指導。作者使用標準的LSTM作爲預測模型。給定由矩陣XiRd×tiX^{i} \in \mathbf{R}^{d \times t_{i}}(d是醫療特徵的數量,tii是醫療檢查的時間指數)呈現的患者電子病歷數據,對抗性實例的生成被表示爲:
minX^max{ϵ,[logit(x)]y[logit(x)]y}+λxx1 \min _{\hat{X}} \max \left\{-\epsilon,\left[\log i t\left(\mathbf{x}^{\prime}\right)\right]_{y}-[\log i t(\mathbf{x})]_{y^{\prime}}\right\}+\lambda\left\|\mathbf{x}^{\prime}-\mathbf{x}\right\|_{1}
其中,Logit(·)表示Logit層輸出,λ是控制L1範數正則化的正則化參數,y‘是目標標籤,而y是原始標籤。在生成對抗性示例後,作者根據他們提出的評估方案選擇最佳示例,該評估方案同時考慮了攻擊的擾動大小和結構。最後,他們使用對抗性的例子來計算EHR的易感性分數,以及不同測量的累積易感性分數。

Seq2Sick[24]對seq2seq模型進行了兩種有針對性的攻擊:非重疊攻擊和關鍵字攻擊。對於非重疊攻擊,作者的目標是生成與原始輸出完全不同的對抗性序列。他們提出了一種在神經網絡的logit層上進行優化的鉸鏈狀的損失函數:
i=1Kmint[M]{mt(max{ϵ,maxyki{zt(y)}zt(ki)})} \sum_{i=1}^{|K|} \min _{t \in[M]}\left\{m_{t}\left(\max \left\{-\epsilon, \max _{y \neq k_{i}}\left\{z_{t}^{(y)}\right\}-z_{t}^{\left(k_{i}\right)}\right\}\right)\right\}
其中,{st}是原始輸出序列,{zt}表示對抗性示例的logit層輸出。對於關鍵字攻擊,目標關鍵字預計會出現在輸出序列中。作者還將優化放在logit層上,力求目標關鍵詞的logit在所有關鍵詞中最大。此外,他們還定義了掩碼函數m來解決關鍵字衝突問題。然後,損失函數變爲:
Lkeywords=i=1Kmint[M]{mt(max{ϵ,maxyki{zt(y)}zt(ki)})} L_{k e y w o r d s}=\sum_{i=1}^{|K|} \min _{t \in[M]}\left\{m_{t}\left(\max \left\{-\epsilon, \max _{y \neq k_{i}}\left\{z_{t}^{(y)}\right\}-z_{t}^{\left(k_{i}\right)}\right\}\right)\right\}
其中k_i表示輸出詞彙表中的第i個單詞。爲了保證生成的詞嵌入的有效性,本文還考慮了兩種正則化方法:羣套索正則化來增強羣的稀疏性,羣梯度正則化來使對手處於嵌入空間的允許區域內。

Direction-based

HotFlip[31]執行原子翻轉操作以生成對抗性示例。HotFlip使用方向導數,而不是利用損失梯度。具體地說,HotFlip將字符級操作(即交換、插入和刪除)表示爲輸入空間中的向量,並通過相對於這些向量的方向導數估計損失的變化。具體地說,給定輸入的one hot表示,第i個單詞(a→b)的第j個字符中的字符翻轉可以由向量表示:
vijb=(0,..;(0,..(0,..1,0,..,1,0)j,..0)i;0,..) \vec{v}_{i j b}=\left(0, . . ;\left(0, . .(0, . .-1,0, . ., 1,0)_{j}, . .0\right)_{i} ; 0, . .\right)
其中-1和1分別位於字母表的第a個和第b個字符的對應位置。則可以通過沿操作向量的方向導數最大化損失變化的一階近似來找到最佳字符交換:
maxxJ(x,y)Tvijb=maxijvJ(b)xijJ(a)xij \max \nabla_{x} J(x, y)^{T} \cdot \vec{v}_{i j b}=\max _{i j v} \frac{\partial J^{(b)}}{\partial x_{i j}}-\frac{\partial J^{(a)}}{\partial x_{i j}}
Attention-based

[16]爲了比較CNN和RNN的健壯性,提出了兩種白盒攻擊。他們利用模型的內部注意力分佈來找到模型賦予較大權重的關鍵句子,以得出正確的答案。然後,他們將最受關注的單詞與已知詞彙中隨機選擇的單詞進行交換。他們還進行了另一次白盒攻擊,刪除了獲得最高關注度的整個句子。雖然他們關注的是基於注意力的模型,但他們的攻擊並不檢查注意力機制本身,而只是利用注意力成分的輸出(即注意力得分)。

Reprogramming。[98]對攻擊序列神經分類器採用對抗性重編程(AP)。AP[32]是最近提出的對抗性攻擊,其中對抗性重編程功能дθ被訓練來重新利用被攻擊的dNN來執行替換任務(例如,從問題分類到名稱分類),而不修改dNN的參數。AP採用遷移學習的思想,但參數保持不變。作者在[98]中提出了白盒攻擊和黑盒攻擊。在白盒中,將岡貝爾-軟極大法應用於訓練能夠處理離散數據的gθ。我們稍後討論黑盒方法。他們在各種文本分類任務上評估了他們的方法,並確認了他們的方法的有效性。

混合。這項工作的作者[39]針對CNN模型對單詞嵌入的輸入文本進行了干擾。這是一種適用於爲計算機視覺DNN開發的大多數攻擊方法的通用方法。作者特別應用了FGSM和DeepFool。直接應用計算機視覺的方法會產生毫無意義的對抗性例子。爲了解決這個問題,作者通過以下方式將對抗性例子四捨五入到最接近的有意義的詞向量通過使用Word Mover的距離(WMD)作爲距離測量。在情感分析和文本分類數據集上的評估表明,WMD是控制擾動的合格度量。

白盒攻擊概述。我們在表1中總結了白盒攻擊的研究成果,重點介紹了四個方面的內容,包括粒度-攻擊在哪個級別上執行;目標是目標還是非目標;被攻擊模型、擾動控制-控制擾動大小的方法以及應用。值得注意的是,在二進制分類中,目標方法和非目標方法表現出相同的效果,所以我們在表中指出它們的目標是“二元\”。

黑盒攻擊

黑盒攻擊不需要了解神經網絡的細節,但可以訪問輸入和輸出。這種類型的攻擊通常依賴於啓發式算法來生成敵意示例,而且更實用,因爲在許多現實應用中,DNN的細節對攻擊者來說是一個黑匣子。在本文中,我們將針對文本DNN的黑盒攻擊分爲五類

**Concatenation Adversaries(串聯)**是第一部攻擊閱讀理解系統的工作。作者提出了拼接對手,即在段落末尾加上分散注意力但無意義的句子。這些分散注意力的句子不會改變段落和問題答案的語義,但會愚弄神經模型。分散注意力的句子要麼是精心生成的信息性句子,要麼是使用20個隨機的常用詞。這兩個擾動都是通過迭代查詢神經網絡直到輸出改變而獲得的。圖2展示了[55]中的一個示例,在添加了分散注意力的句子(藍色)之後,答案從正確的句子(綠色)變爲不正確的句子(紅色)。[142]的作者通過改變分散注意力的句子的放置位置,擴大產生分散注意力的句子的假答案集合,提供新的對抗性例子來幫助訓練更健壯的神經模型,從而改進了這項工作。此外,工作[16]利用分散注意力的句子來評估他們的閱讀理解模型的穩健性。具體地說,他們使用10個隨機的常用詞與所有問題詞和所有錯誤答案候選者的詞一起生成分散注意力的句子。在這項工作中,還執行了一個簡單的詞級黑盒攻擊,通過同義詞替換最頻繁的單詞。如前所述,作者還提供了兩種白盒策略。

圖3說明了串聯攻擊的一般工作流程。正確的輸出(即MRC任務中的答案)通常被用來生成失真的輸出,這些失真的輸出稍後將用於構建分散注意力的內容。將分散注意力的內容附加到原始段落,作爲攻擊DNN的對抗性輸入。分散注意力的內容不會分散人類和理想的DNN的注意力,但會使粗俗的DNN產生錯誤的輸出。

Edit Adversaries文獻[13]中的工作以兩種方式干擾了神經機器翻譯應用程序的輸入數據:合成,它執行字符順序的改變,如交換、中間隨機(即,隨機改變除第一個和最後一個字符之外的字符的順序)、完全隨機(即,隨機改變所有字符的順序)和鍵盤類型。他們還收集打字錯誤和拼寫錯誤作爲對手。自然,利用數據集中的打字錯誤。此外,[99]攻擊了對話生成的神經模型。他們在對話上下文中應用了各種擾動,即隨機交換(隨機調換相鄰標記)和停詞刪除(隨機移除停止詞)、釋義(用它們的釋義替換單詞)、語法錯誤(例如,將動詞更改爲錯誤的時態)用於不應該更改攻擊,以及添加用於應該更改攻擊的否定策略(否定源輸入的根動詞)和反義詞策略(將動詞、形容詞或副詞更改爲它們的反義詞)。DeepWordBug[35]是一種簡單的方法,它使用字符轉換來生成對抗性示例。作者首先通過測量DNN分類器的輸出而開發的評分函數來識別重要的“表徵”,即對模型預測影響最大的單詞或字符。然後,他們使用四種策略對識別的令牌進行修改:替換、刪除、添加和交換。作者在文本分類、情感分析和垃圾郵件檢測等各種自然語言處理任務上對其方法進行了評估。[74]遵循[35],細化評分函數。此外,本文還提供了採用JSMA的白盒攻擊。本文的貢獻之一在於通過文本編輯距離、Jaccard相似係數、詞向量上的歐幾里德距離和詞嵌入上的餘弦相似度四個文本相似性度量來限制擾動。他們的方法只在情緒分析任務中進行了評估。

Edit Adversaries的一般原則。通過替換、刪除、添加和交換等編輯策略對句子、單詞或字符進行擾動。

在[92]中,作者提出了一種在自然語言推理(NLI)中自動生成違反給定一階邏輯約束的對抗性實例的方法。他們提出了不一致性損失來衡量一組句子導致模型違反規則的程度。對抗性實例生成是尋找規則中的變量與語句之間的映射以最大化不一致性損失的過程,並且由困惑程度較低的語句(由語言模型定義)組成。爲了生成低困惑的對抗性句子示例,他們使用了三種編輯擾動:i)改變輸入句子之一中的一個單詞;i)從輸入句子之一中移除一個解析子樹;iii)將語料庫中的一個句子中的一個解析子樹插入另一個句子的句法分析樹中。

文獻[5]中的工作使用遺傳算法(GA)來最小化原始文本中的單詞替換數量,但同時可能會改變攻擊模型的結果。他們在遺傳算法中採用交叉和變異操作來產生擾動。作者根據對被攻擊DNN的影響來衡量單詞替換的有效性。他們的攻擊集中在情感分析和文本蘊涵DNN上。

在文獻[21]中,作者提出了一種針對微分神經計算機(DNC)的對抗性攻擊框架。DNC是一種以DNN爲中央控制器的計算機器,在外部存儲模塊上運行以進行數據處理。他們的方法使用兩種新的自動化和可伸縮的策略來生成問答Domian中語法正確的敵意攻擊,並利用變形變換。第一種策略,Pick-n-Plug,由Pick操作符Pick和Plug操作符Plug組成,Pick操作符Pick從特定任務(源任務)中提取對抗性句子,Plug操作符Plug將這些句子注入另一個任務(目標任務)的故事中,而不改變其正確答案。另一種策略Pick-Permute-Plug在從源任務中挑選句子(Gick)後,通過一個額外的置換操作符擴展了Pick-n-Plug的對抗能力。特定對抗性句子中的單詞可以與其同義詞進行排列,以生成更大範圍的可能攻擊。

**Paraphrase-based Adversaries.**SCPN[54]通過將句子和目標句法形式輸入到編碼器-解碼器體系結構中來產生具有期望句法的給定句子的釋義。具體地說,該方法首先對原句進行編碼,然後將回譯產生的釋義和目標句法樹輸入解碼器,解碼器的輸出是原句的目標釋義。一個主要貢獻在於解析模板的選擇和處理。作者獨立於SCPN訓練了一個解析生成器,並在PARANMT-50M中選擇了20個最頻繁的模板。在使用所選擇的句法分析模板生成釋義之後,他們通過檢查n元語法重疊和釋義相似度來進一步剪除不敏感的句子。被攻擊的分類器可以正確預測原句的標籤,但解釋錯誤,被認爲是對抗性的例子。SCPN已經被在情感分析和文本蘊涵DNNs上進行了評估,並顯示出對攻擊模型的顯著影響。雖然這種方法使用目標策略來生成對抗性示例,但它沒有指定目標輸出。因此,我們將其歸類爲非目標攻擊。此外,[127]中的工作使用了釋義生成技術的想法,該技術可以創建語義等價的對手(SEA)。他們生成輸入句子x的釋義,並考慮語義等價於x‘的情況下從f獲得預測,直到原始預測改變,即如果x在語義上等價於x’,則爲1,否則爲0,如公式(22)所示。在此基礎上,本文提出了基於語義等價規則的方法,將生成的敵手歸納爲語義等價規則,以便理解和修復影響最大的漏洞。

GAN-based Adversaries一些工作建議利用生成性對抗性網絡(GAN)[41]來生成對手[156]。採用GAN的目的是使對抗性例子更自然。在[156]中,提出的生成對抗性外部樣本的模型由兩個關鍵部分組成:一個是生成假數據樣本的GAN,另一個是將輸入x映射到其潛在表示z‘的反相器。通過最小化原始輸入和對抗性示例之間的重構誤差,在原始輸入上訓練這兩個分量。通過識別z‘附近的擾動樣本ˆz,在潛在稠密空間中執行擾動。爲了確定合適的ˆz,提出了迭代隨機搜索和混合收縮搜索兩種搜索方法,但需要每次查詢被攻擊的模型才能找到可能使模型給出錯誤預測的ˆz。因此,這種方法相當耗時。這項工作既適用於圖像數據,也適用於文本數據,因爲它本質上消除了文本數據的離散屬性帶來的問題。作者從文本蘊涵、機器翻譯和圖像分類三個方面對他們的方法進行了評估。

Substitution[53]中的工作提出了一個攻擊RNN惡意軟件檢測模型的黑盒框架。該框架由兩個模型組成:一個是產生式RNN模型,另一個是替代RNN模型。生成性RNN旨在從惡意軟件的API序列生成敵意API序列。它基於[131]中提出的seq2seq模型。它特別生成一小段API序列,並將該序列插入到輸入序列之後。替代RNN是一種具有注意力機制的雙向RNN,其目的是模仿被攻擊RNN的行爲。因此,生成對抗性實例不會查詢原始被攻擊的RNN,而是查詢其替代的RNN。對替代RNN進行惡意軟件和良性序列以及生成性RNN的Gumbel-Softmax輸出的訓練。這裏使用Gumbel-Softmax來實現兩個RNN模型的聯合訓練,因爲生成式RNN的原始輸出是離散的。具體地說,它使得梯度能夠從生成性RNN反向傳播到替代RNN。該方法對API進行攻擊,API被表示爲一個熱向量,即給定M個API,第i個API的向量是第i個維度爲1,而其他維度爲0的M維二進制向量。

Reprogramming如前所述,[98]提供了白盒攻擊和黑盒攻擊。我們在這裏描述黑匣子攻擊。在黑盒攻擊中,作者將序列生成歸結爲一個強化學習問題,對抗性重編程函數gθ是策略網絡。然後,他們應用基於強化的優化來訓練gθ。

黑盒攻擊概述。我們在表2中總結了黑盒攻擊的研究成果,重點介紹了四個方面的內容,包括粒度-攻擊在哪個級別上執行;目標-方法是目標還是非目標;被攻擊模型、擾動控制和應用。

表2.回顧的黑盒攻擊方法摘要。MRC:機器閱讀理解;QA:問答;VQA:視覺問答;DA:對話生成;TC:文本分類;MT:機器翻譯;SA:情感分析;NLI:自然語言推理;TE:文本蘊涵;MD:惡意軟件檢測。EdDist:文本編輯距離,JSC:Jaccard相似係數,EuDistV:詞向量的歐幾里得距離,cse:詞嵌入的餘弦相似度。‘-’:不可用。

多模態攻擊

一些工作攻擊處理跨模式數據的DNN。例如,神經模型包含執行圖像到文本或語音到文本轉換的內部組件。雖然這些攻擊不是針對純文本數據,但爲了進行全面回顧,我們簡要介紹了具有代表性的攻擊。

圖像到文本

圖像到文本模型是一類根據圖像的語義內容爲圖像生成文本描述的技術。

光學字符識別(OCR)。從圖像中識別字符是一個稱爲光學字符識別(OCR)的問題。OCR是一種將圖像作爲輸入並輸出識別文本的多模態學習任務。在[129]中,作者提出了一種針對OCR和後續NLP應用的白盒攻擊。他們首先使用原始文本來呈現乾淨的圖像(轉換DNN)。然後,他們在文本中找到在WordNet中具有反義詞並且滿足編輯距離閾值的單詞。只有有效且保持語義不一致的反義詞纔會被保留。稍後,該方法定位包含前述單詞的乾淨圖像中的行,這些行可以由它們選擇的反義詞來替換。然後,該方法將目標詞轉換爲目標序列。在給定輸入/目標圖像和序列的情況下,作者形成了對抗性實例的生成是一個優化問題:
minωcJCTCf(x,t)+xx22x=(αtanh(ω)+β)/2α=(xmaxxmin)/2,β=(xmax+xmin)/2JCTC(f(x,t))=logp(tx) \begin{array}{c} \min _{\omega} c \cdot J_{C T C} f\left(\mathbf{x}^{\prime}, t^{\prime}\right)+\left\|\mathbf{x}-\mathbf{x}^{\prime}\right\|_{2}^{2} \\ \mathbf{x}^{\prime}=(\alpha \cdot \tanh (\omega)+\beta) / 2 \\ \alpha=\left(\mathbf{x}_{\max }-\mathbf{x}_{\min }\right) / 2, \beta=\left(\mathbf{x}_{\max }+\mathbf{x}_{\min }\right) / 2 \\ J_{C T C}(f(\mathbf{x}, t))=-\log p(t | \mathbf{x}) \end{array}
其中f(X)是神經系統模型,JCTC(·)是連接主義時態分類(CTC)損失函數,x是輸入圖像,t是基本事實序列,x‘是對抗性實例,t’是目標序列,ω,α,β是控制對抗性實例以滿足x‘∈[xmin,xmax]p的盒約束的參數,其中p是確保有效x’的像素數。在生成對抗性示例後,該方法替換文本圖像中對應行的圖像。作者從三個方面對該方法進行了評估:單詞識別、整篇文檔識別和基於識別文本的自然語言處理應用(特別是情感分析和文檔分類)。他們還指出,所提出的方法受到諸如跨數據和模型的低可傳遞性以及物理不可信賴性等限制。

場景文本識別(STR)

STR也是一個圖像到文本的應用程序。在STR中,整個圖像直接映射到單詞字符串。相比之下,OCR中的識別是一個流水線過程:首先將單詞分割成字符,然後對單個字符進行識別。AdaptiveAttack[153]評估了對場景文本識別執行敵意攻擊的可能性。提出了兩種攻擊方式,即基本攻擊和適應性攻擊。基本攻擊類似於[129]中的工作,它還將敵意示例生成表示爲一個優化問題:
minωJCTCf(x,t)+λD(x,x)x=tanh(ω) \begin{array}{c} \min _{\omega} J_{C T C} f\left(\mathbf{x}^{\prime}, t^{\prime}\right)+\lambda \mathcal{D}\left(\mathbf{x}, \mathbf{x}^{\prime}\right) \\ \mathbf{x}^{\prime}=\tanh (\omega) \end{array}
圖像字幕

圖像字幕是另一個多模態學習任務,它將圖像作爲輸入,並生成描述其視覺內容的文本字幕。Show-and-Fool[22]生成敵意示例來攻擊基於CNN-RNN的圖像字幕模型。被攻擊的CNN-RNN模型使用CNN作爲圖像特徵提取的編碼器,使用RNN作爲解碼器生成字幕。show-and-fool有兩種攻擊策略:目標字幕(即,生成的字幕與目標字幕匹配)和目標關鍵字(即,生成的字幕包含目標關鍵字)。總體而言,他們使用以下公式制定了這兩項任務:
minωcJ(x)+xx22x=x+ηx=tanh(y),x=tanh(ω+y) \begin{array}{c} \min _{\omega} c \cdot J\left(\mathbf{x}^{\prime}\right)+\left\|\mathbf{x}^{\prime}-\mathbf{x}\right\|_{2}^{2} \\ \mathbf{x}^{\prime}=\mathbf{x}+\eta \\ x=\tanh (y), \mathbf{x}^{\prime}=\tanh (\omega+y) \end{array}
視覺問答(VQA)

給出一個圖像和一個關於圖像的自然語言問題,VQA是用自然語言提供準確的答案。文獻[148]中的工作提出了一種迭代優化方法來攻擊兩個VQA模型。所提出的目標函數最大化目標答案的概率,並在距離原始圖像的距離低於某一閾值時不考慮距離較小的對抗性示例的偏好。具體地說,該目標包含三個組成部分。第一個類似於公式。(26),它用||x−x‘||2/√N作爲x’和x之間的距離來代替損失函數,並使用||x Softmax x‘||2/Softmax ,N作爲x’和x之間的距離。當第二個分量與目標答案不同時,使Softmax輸出和預測之間的差值最大化。第三個分量確保x‘和x之間的距離在下限之內。通過檢查是否比以前的攻擊獲得了更好的成功率和模型的置信度分數來預測目標答案來評估攻擊。基於這些評價,作者得出結論,注意力、邊界框定位和成分內部結構容易受到敵意攻擊。這項工作還攻擊了一個圖像字幕神經模型。我們參考原文以瞭解更多信息。

視覺語義嵌入(VSE)

VSE的目標是架起自然語言和底層視覺世界之間的橋樑。在VSE中,圖像和描述性文本(字幕)的嵌入空間被聯合優化和對齊。[125]通過在測試集中生成對抗性示例攻擊了最新的VSE模型,並評估了VSE模型的健壯性。他們通過引入三種方法對文本部分進行攻擊:i)利用WordNet中的上下義關係替換圖像字幕中的名詞;ii)將數字轉換爲不同的數字,並在必要時將相應的名詞單一化或複數化;iii)檢測關係並對不可互換的名詞短語或介詞進行替換。這種方法可以看作是黑盒編輯的對手。

Speech-to-Text

語音到文本也稱爲語音識別。任務是自動識別口語並將其翻譯成文本。[19]攻擊了最先進的Speech-ToTexT轉錄神經網絡(基於LSTM),名爲DeepSpeech。給定一個自然波形,作者構建了一個幾乎聽不見但可以通過添加到原始波形中識別的音頻擾動。該擾動採用C&W方法(參考3.1節)的思想,以最大變化像素數來度量圖像失真。採用這一思想,他們通過計算音頻的相對響度來測量音頻失真,並提出使用連接主義時間分類損失進行優化任務。然後他們用ADAM優化器解決了這個問題[62]。

按應用程序對數據集進行基準測試

近年來,神經網絡在不同的自然語言處理領域取得了成功,廣泛應用於文本分類、閱讀理解、機器翻譯、文本摘要、問答、對話生成等領域。在這一部分中,我們從NLP應用的角度回顧了當前在神經網絡上生成對抗性示例的工作。表4根據應用領域總結了我們在本文中回顧的工作。我們在表中進一步列出了這些工作中使用的基準數據集作爲輔助信息-因此,我們請讀者參考我們收集的鏈接/參考資料,以獲取數據集的詳細描述。注意,不包括幫助生成對抗性示例的輔助數據集。取而代之的是,我們只給出了用於評估被攻擊神經網絡的數據集。

文本分類

大多數被調查的工作都攻擊了用於文本分類的深度神經網絡,因爲這些任務可以被框架爲一個分類問題。情感分析的目的是將情感分爲幾組(例如,在三組方案中:神經性的、積極的和消極的)。性別識別、語法錯誤檢測和惡意軟件檢測可以歸結爲二進制分類問題。關係抽取可以表示爲單分類或多分類問題。…

機器翻譯。機器翻譯處理並行數據集,其中一個使用源語言,另一個使用目標語言。[13]使用爲IWSLT 2016[89]準備的TED Talks平行語料庫對NMT系統進行測試。他們還收集了法語、德語和捷克語語料庫,用於生成自然噪音,以建立一個查找表,其中包含可能的詞彙替換,稍後將用於生成對抗性示例。[30]我也使用了相同的TED演講語料庫,使用德語對英語,捷克語對英語,法語對英語。

機器理解。機器理解數據集通常向機器提供上下文文檔或段落。基於對上下文的理解,機器理解模型可以回答問題。賈和梁是最早考慮文本對手的人之一,他們的目標是神經機器理解模型[55]。他們使用斯坦福大學的問答數據集(LOAD)來評估他們的攻擊對神經機器理解模型的影響。ALUDE是一個廣泛認可的機器理解基準數據集。[142]遵循了前面的工作,也參與了班組數據集的工作。雖然工作[16]的重點是開發一個健壯的機器理解模型,而不是攻擊MC模型,但他們使用對抗性的例子來評估他們提出的系統。他們使用MovieQA多項選擇問答數據集[134]進行評估。[21]針對可微神經計算機(DNC)的定向攻擊,DNC是一種新型的具有DNN的計算機器。他們評估了使用BABI任務17對邏輯問題回答的攻擊。

文本摘要。文本摘要的目標是用簡潔的表達來總結給定文檔或段落的核心含義。目前還沒有專門針對語篇摘要應用的調查論文。[24]評估了他們對包括文本摘要在內的多個應用程序的攻擊,並使用DUC200318、DUC200419和Gigaword20評估對抗性示例的有效性。

文本蘊涵。語篇蘊涵的根本任務是判斷前提語篇是否蘊含假設,即一個語篇片段的真值跟隨另一個語篇。[57]經評估在兩個蘊涵數據集上的各種模型:標準自然語言推理(SNLI)[17]和SciTail[59]。[92]還使用了SNLI數據集。此外,他們使用了MultiNLI[144]數據集。

詞性(POS)標記。詞性標註的目的是解決句子中每個詞(如名詞、動詞等)的詞性問題,爲其他自然語言處理任務(如句法分析)提供便利是基本的自然語言處理任務之一。神經網絡也被用來完成這項NLP任務。[151]採用了[94]中的方法,通過引入對抗性訓練來構建更健壯的神經網絡,但他們在詞性標註中應用了該策略(稍作修改)。通過對乾淨示例和對抗性示例的混合訓練發現,對抗性示例不僅有助於提高標註準確率,而且有助於後續的依存分析任務,在不同的序列標註任務中一般都是有效的。他們評估中使用的數據集包括:賓夕法尼亞州立大學樹庫(PTB)[87]的“華爾街日報”(WSJ)部分和來自Universal Dependency(UD)v1.2[100]的樹庫。

對話生成。對話生成是Siri21和Alexa22等現實世界虛擬助手的基本組件。它是文本生成任務,它自動生成用戶給出的帖子的響應。[99]是最早攻擊生成性對話模式的人之一。他們使用Ubuntu對話語料庫[84]和動態知識圖網絡以及協作通信代理(COCO)數據集[49]來評估他們的兩種攻擊策略。

跨模型應用程序。[129]使用希拉里·克林頓的電子郵件23,以圖像的形式,用對抗性例子評價了光學字符識別系統。他們還使用爛番茄和IMDB審查數據集對NLP應用程序進行了攻擊。[153]中的工作攻擊了爲場景文本識別而設計的神經網絡。他們在三個用於裁剪單詞圖像識別的標準基準上進行了實驗,即街景文本數據集(SVT)[139]、ICDAR 2013數據集(IC13)[58]和IIIT 5K字數據集(IIIT5K)[93]。[22]攻擊了圖像字幕神經模型。他們使用的數據集是Microsoft Coco(MSCOCO)數據集[79]。[148]研究了用於圖像捕獲和視覺答疑的攻擊神經模型問題。對於第一個任務,他們使用了視覺基因組數據集[65]。對於第二項任務,他們使用了在[6]中收集和處理的VQA數據集。[125]開發視覺語義嵌入應用程序,其中使用MSCOCO數據集。[19]針對語音識別問題。他們使用的數據集是Mozilla通用語音數據集24。

多應用 一些工作將他們的攻擊方法適應於不同的應用,即評估他們的攻擊方法在應用之間的可傳遞性。[24]攻擊了序列對序列模型。具體地說,他們評估了他們對兩個應用程序的攻擊:文本摘要和機器翻譯。如前所述,對於文本摘要,他們使用了三個數據集DUC2003、DUC2004和Gigaword。對於機器翻譯,他們從WMT‘16多模態翻譯數據集25中抽樣了一個子集。[54]提出了句法對抗性釋義,並對該攻擊在情感分析和文本蘊涵方面的應用進行了評估。他們使用SST進行情感分析,使用SENSE[88]進行文本蘊涵。[156]是在神經模型上生成對抗性示例的通用方法。所研究的應用包括圖像分類(MINIST數字圖像數據集)、文本蘊涵(SNLI)和機器翻譯。[94]評估了他們在五個數據集上的攻擊,包括情感分析(IMDB電影評論、Elec產品評論、爛番茄電影評論)和文本分類(DBpedia
Ontology、RCV1新聞文章)。[127]針對兩個應用程序。

防禦

爲神經網絡生成對抗性示例的一個重要目的是利用這些對抗性示例來增強模型的健壯性[42]。在文本DNN中有兩種常用的方法來實現這一目標:對抗性訓練和知識提煉。對抗性訓練將對抗性例子納入模型訓練過程。知識提煉對神經網絡模型進行操作,訓練出新的模型。在這一部分中,我們介紹了屬於這兩個方向的一些有代表性的研究。有關機器學習和深度學習模型及應用的更全面的防禦策略,請參考[2,15]。

對抗性訓練

Szegdy等人。[132]發明了對抗性訓練,這是一種包括訓練神經網絡以正確地對正常示例和對抗性示例進行分類的策略。古德費羅等人。[42]採用了帶有對抗性例子的明確培訓。在這一部分中,我們描述了利用數據擴充、模型正則化和魯棒優化來防禦文本對抗性攻擊的工作。

數據增強。數據擴充使用生成的對抗性示例擴展原始訓練集,並試圖讓模型在訓練過程中看到更多數據。數據擴充通常用於對抗黑盒攻擊,在被攻擊的DNN上增加訓練週期,並給出對抗性例子。

在工作[55]中,作者試圖通過在包含對抗性例子的擴充數據集上的訓練來增強閱讀理解模型,他們表明這種數據擴充對於使用相同對抗性例子的攻擊是有效的和健壯的。然而,他們的工作也表明,這種增強策略仍然容易受到其他類型的對抗性例子的攻擊。[142]分享了擴大訓練數據集的類似想法,但選擇了第4.3.1節中討論的更多信息豐富的對抗性例子。

[57]中的工作訓練了用對抗性例子擴充的文本蘊涵系統。爲了使系統更加健壯,他們提出了三種方法來生成更多具有不同特徵的數據:(1)基於知識的方法,用幾個給定知識庫中提供的上下位詞代替單詞;(2)手工製作的方法,在現有的蘊涵基礎上增加否定;(3)基於神經的方法,通過實施損失函數來度量原始假設和預測假設之間的交叉熵,從而利用SEQ2SEQ模型生成蘊涵示例。在訓練過程中,採用產生式對抗性網絡的思想來訓練鑑別器和生成器,並將對抗性實例融入到鑑別器的優化步驟中。

[13]探索了數據增強的另一種方式。它將平均字符嵌入作爲單詞表示,並將其合併到輸入中。該方法對SWAP、MID、RAND等字符置亂不敏感,可以抵抗工作中提出的這些置亂攻擊帶來的噪聲。然而,這種防禦對於其他不受角色命令干擾的攻擊是無效的。

模型正則化。模型正則化強制生成的對抗性示例作爲正則化,並遵循以下形式:
min(J(f(x),y)+λJ(f(x),y)) \min \left(J(f(x), y)+\lambda J\left(f\left(x^{\prime}\right), y\right)\right)
魯棒優化。Madry等人。[86]將DNN模型學習轉化爲具有最小-最大(鞍點)形式的魯棒優化問題,它是內非凹極大化問題(攻擊)和外非凸極小化問題(防禦)的組合。根據丹斯金定理,最小極大值問題在內部極大值處的梯度對應於下降方向,因此仍可採用反向傳播進行優化。該方法通過普遍的訓練和學習,成功地證明了DNN對敵意圖像的魯棒性。[3]採用這種思想,將其應用於處理離散數據的惡意軟件檢測DNN。

值得注意的是,所提出的魯棒優化方法是一個通用的框架,其他對抗性訓練策略在此框架下有自然的解釋。我們單獨描述它,同時注意它在文學作品中的流行程度。

蒸餾

Papernot et al.。[107]提議將蒸餾作爲對抗對手例子的另一種可能的防禦措施。其原理是使用原始DNN的Softmax輸出(例如,分類DNN中的類別概率)來訓練與原始DNN具有相同結構的第二DNN。還通過引入溫度參數T來修改原始DNN的Softmax:
qi=exp(zi/T)kexp(zk/T) q_{i}=\frac{\exp \left(z_{i} / T\right)}{\sum_{k} \exp \left(z_{k} / T\right)}
其中zi是Softmax
layer.T的輸入,控制知識提煉的級別。Whent=1,等式。(35)返回到正常的Softmax功能。如果IFT較大,QI接近均勻分佈,當其較小時,函數會輸出更多的極值。[46]對離散數據上的DNNs採用蒸餾防禦,並施加高溫T,因爲高溫Softmax被證明降低了模型對小擾動的敏感性[107]。他們通過擴充原始數據集和原始DNN的Softmax輸出來訓練第二個DNN。從評估中,他們發現對抗性訓練比蒸餾更有效。(我喜歡有沒有解釋爲什麼對抗性訓練比蒸餾更有效的答案)

討論和未解決的問題

與在DNNs上生成圖像對抗性實例相比,生成文本對抗性實例的歷史相對較短,因爲在保持有效句法、語法和語義的同時,對離散數據進行擾動更具挑戰性。我們將討論本節中的一些問題,並對未來的發展方向提出建議。

可感知性Perceivability

圖像像素的擾動通常很難察覺,因此不會影響人的判斷,只能欺騙深層神經網絡。然而,無論是翻轉字符還是換詞,對文本的擾動都是明顯的。無效單詞和句法錯誤很容易被人識別,語法檢查軟件也很容易檢測到,因此這種擾動很難攻擊真實的NLP系統。然而,許多研究工作都產生了這樣的對抗性例子。只有當目的是利用敵意例子來使被攻擊的DNN模型具有魯棒性時,纔是可以接受的。從保持語義的角度看,改變一個句子中的一個詞有時會使它的語義發生很大的變化,很容易被人類發現。對於閱讀理解、情感分析等自然語言處理應用,需要精心設計對抗性例子,以避免改變應得的輸出。否則,正確的輸出和擾動的輸出都會改變,違背了生成對抗性例子的目的。這是具有挑戰性的,考慮到這一限制,審查的作品有限。因此,對於實際的攻擊,我們需要提出一些方法,使擾動不僅不可察覺,而且要保持正確的語法和語義

可轉移性Transferability

可轉移性是對抗性例子的共同屬性。它體現了攻擊方法的泛化。可轉移性是指在一個數據集上爲一個深層神經網絡生成的對抗性示例也可以有效地攻擊另一個深層神經網絡(即跨模型泛化)或數據集(即跨數據泛化)。由於深層神經網絡的細節對攻擊方法的影響不大,這一特性在黑盒攻擊中更容易被利用。研究還表明,無針對性的對抗性例子比有針對性的例子更具可轉移性[83]。在深度神經網絡中,可移植性可以組織爲三個層次:(1)具有不同數據的相同體系結構;(2)具有相同應用的不同體系結構;(3)具有不同數據的不同體系結構[154]。雖然目前對文本攻擊的研究涵蓋了這三個層次,但與原有的體系結構和數據相比,轉移攻擊的性能仍然有很大的下降,即泛化能力較差。預計會有更多的努力來提供更好的泛化能力。

自動化Automation

一些評論的作品能夠自動生成對抗性的例子,而另一些則不能。在白盒攻擊中,利用DNN的損失函數可以自動指向識別受影響最大的文本中的點(例如,字符、單詞)。然後通過自動修改相應的文本對這些點進行攻擊。在黑盒攻擊中,一些攻擊,例如替換,訓練替換DNN,並在替換上應用白盒攻擊策略。這可以自動實現。然而,大多數其他作品都是以手工方式製作對抗性例子。例如,[55]串聯人工選擇的無意義的段落來愚弄閱讀理解系統,以便發現受害者DNN的脆弱性。許多研究工作緊隨其後,不是針對實際攻擊,而是更多地研究目標網絡的健壯性。這些手工作業既費時又費力。我們相信,今後在這條線上會有更多的努力跨過這一關口。

新架構New Architectures

雖然大多數常見的文本DNN已經從敵意攻擊的角度得到了關注(第2.2節),但到目前爲止,許多DNN還沒有受到攻擊。例如,生成神經模型:生成對抗性網絡(GANS)和變分自動編碼器(VAE)。在NLP中,它們用於生成文本。深入的生成性模型對模型訓練提出了更高的要求。這將解釋到目前爲止,這些技術主要被對手攻擊所忽視。未來的工作可能會考慮爲這些生成性DNN生成對抗性示例。另一個例子是可微神經計算機(DNC)。到目前爲止,只有一部作品攻擊了DNC[21]。注意機制不知何故成爲大多數序列模型的標準組成部分。但目前還沒有研究該機制本身的工作。取而代之的是,工作要麼攻擊包含注意力的整個系統,要麼利用注意力得分來識別干擾的單詞[16]。

迭代VS一次性Iterative vs One-off

迭代攻擊根據被攻擊DNN模型輸出的梯度迭代搜索和更新擾動。因此,它顯示出高質量和高效率,也就是說,擾動可以足夠小,並且很難防禦。然而,這些方法通常需要很長的時間才能找到合適的擾動,這給實時攻擊帶來了障礙。因此,提出了一次性攻擊來解決這一問題。FGSM[42]是一次性攻擊的一個例子。從本質上講,一次性攻擊比迭代攻擊快得多,但效果較差,更容易防禦[153]。在設計針對實際應用程序的攻擊方法時,攻擊者需要仔細考慮攻擊的效率和效果之間的權衡

總結

本文首次對基於深度神經網絡的文本對抗性實例生成進行了全面的綜述。我們回顧了最近的研究工作,並開發了分類方案來組織現有的文獻。此外,我們還從不同方面對其進行了總結和分析。我們試圖爲研究者提供一個很好的參考,以深入瞭解這一研究課題中的挑戰、方法和問題,併爲未來的研究方向指明方向。我們希望基於對抗性攻擊的知識,提出更健壯的深層神經模型

[55] Robin Jia and Percy Liang. 2017. Adversarial Examples for Evaluating Reading Comprehension Systems. In Proc. of the 2017 Conference on Empirical Methods in Natural Language Processing (EMNLP 2017). Copenhagen, Denmark, 2021–2031.

一文讀懂文本處理中的對抗訓練 https://blog.csdn.net/c9yv2cf9i06k2a9e/article/details/90986041

關於文本對抗攻擊和防禦的必讀論文 https://github.com/thunlp/TAADpapers

https://zhuanlan.zhihu.com/p/68622128

關於圖神經網絡(GNN)的必讀論文 https://github.com/thunlp/GNNPapers

自然語言處理中的對抗攻擊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章