1. 程式人生 > >【深度學習NLP論文筆記】《Adversarial Example For Natural Language Classification Problems》

【深度學習NLP論文筆記】《Adversarial Example For Natural Language Classification Problems》

一、介紹

圖一:三個在文字分類任務中使用對抗樣本的例子。分別是垃圾郵件分類、情感分析、虛假新聞檢測。全是依靠同義詞替換實現的。 

二、背景

分類問題的目標是從輸入和標籤中學習一種對映。其中標籤可能來自K個類,如

分類器f可能是個深度神經網路或者線性模型,它會為輸入x在每個類中的可能性做出評分,並將評分最高的那個類作為輸入的標籤。

在圖片分類器中,對正常輸入x做擾動後得到x',將其送入分類器,得到錯誤的類別結論y',這一過程可以如下定能夠如下定義:

所以對抗樣本可以通過解決以下優化問題得到:

文字分類器在許多領域當做被用到,比如生物醫學、垃圾郵件分類、金融等。具有n-gram特性的線性分類器往往具有非常好的效能。迴圈神經網路RNN與卷積神經網路CNN在文字分類方面都有良好效果。

自然語言分類與圖形分類的區別在於,1.自然語言是離散的,輸入x由字元或者單片語成。2.自然語言維度更高,通常與詞彙量成比例。3.自然語言比圖片畫素具有更高的層次,因為原始的單詞比原始的畫素帶有更多資訊。

三、自然語言分類器的對抗樣本

3.1 Altered Adversarial Examples

產生文字分類器中的對抗樣本有兩個難點:

  1. 話語之間沒有度量的簡單概念(很難定義一個無法察覺的擾動)。

  2. 離散輸入不適合基於梯度的方法,因此需要新的優化演算法。

對於一個分類器f,如果存在一個x'使得:

就說x'是一個對抗改動(adversarial alteration)。其中函式c是一種約束,

是一個邊界向量(a vector of bounds),通過的約束體現無法察覺的改動(???)

3.2 Adversarial Examples for Natural Language Classification

在自然語言環境中,我們希望改動的樣本x'能與原樣本x儲存相同的意思。為了達到這個目的,我們提出了一種特殊的限制函式,使兩種表述保持相同的句法特徵(syntactic properties)。具體來說,函式c由兩個約束組成,分別在兩個層次上捕捉句子的相似性。

  • 第一個層次是語義層次(semantic similarity)。我們用思考向量(thought vector)(參考《Efficient estimation of word representations in vector space》)的概念來捕獲話語的含義。一個思考向量可以被看作是一個從句子到向量空間的對映,在這個空間中,意義相近的句子是相互接近的。在此意義下,約束被定義為:

    其中v和v'是與x和x'相聯絡的思考向量,是一超引數。有許多計算思考向量的方法,它們可以在我們的優化演算法中共存。思考向量是單個詞向量的平均值。

  • 第二個層次是句法層次(syntactic similarity)。通常思考向量不能捕捉到句子的句法正確性。比如,重新對句子中的單詞進行排序可以得到相同的平均詞向量。為此,我們加上了句法約束,它依賴於一個語言模型:特別地,我們要求語言模型的概率在擾動樣本與原樣本中是相似的:(???)

    我們建議在與f相同的資料集上訓練語言模型,這會使模型更好地捕捉到x像垃圾郵件或者影評的內容(???)。同時還要求x和x'的語言模型概率是相似的:因此如果x是一個不合文法的句子(正確性較低),則x'也要保持相似的正確性。

3.3 Greedy Construction of Altered Adversarial Examples

前文提到,構造對抗樣本就是要解決優化問題

為此可以採用一種貪婪啟發式演算法(演算法1):

簡單地說,我們提出了一個迭代過程,在每個步驟中考慮對一個句子的所有有效的單詞變化(只變換一個單詞——用同義詞進行替換,且需要滿足我們的限制),並選擇最能提高目標的那個。

演算法分析:

  • 演算法輸入(algorithm inputs):需要一個目標分類器 f,演算法1通過優化目標 J 將 x 轉化為 x'。假設 x 是一組n個離散符號(即單詞word),用 wi 表示,i=1,2,...n。儘管這個演算法是定義在自然語言環境中的,但是可以擴充套件到相似的通常的離散問題。

  • 優化策略(optimization strategies):首先我們定義一個邊界向量,例如使其滿足,這可以使我們排除掉一些顯然不滿足條件的對抗改動。或者設定一個關於目標的最小閾值 ,例如目標標籤分數的最小期望值,在我們達到這個最小閾值時停止演算法。

  • 單詞替換(word repalcement):我們用一個合適的詞向量空間中的最近鄰居(nearest neighbors)替換單詞,並考慮N個最近的鄰居。這些最近鄰居單詞很可能出現在相同的文字環境中。為了確保更換的也是同義詞,我們使用的GloVE詞向量(GloVE word vectors)進行後期處理(出自《 Counter-fitting word vectors to linguistic constraints》)。這確保了向量滿足已知的同義詞關係所施加的語言約束,並確保具有相似含義的單詞在向量空間中彼此接近。參考table1:

四、實驗

4.1 Tasks

在table2中提到的三個自然語言分類任務中使用對抗樣本:

將訓練集中的10%用作驗證集,所有對抗樣本通過測試集產生、評估。同樣,我們為每一項任務,在訓練集中訓練一個卦語言模型(trigram language model)。並且例項化 中的詞向量語義約束。

4.2 Models

這些模型包括線性分類和最新的深度學習演算法。

  • 樸素貝葉斯(naive Bayes):我們將每個文件轉換為一個詞袋(bag-of words)表示形式,然後按照Wang & Manning(2012)的方法,將單詞特徵進行二值化,並使用一個多項式模型進行分類。

  • 長短記憶網路(long short-term memory):我們建立了一個擁有512個隱藏神經元的單層LSTM()。在輸入LSTM前先進行word2vec詞嵌入,變成300維向量。然後,我們對LSTM在每個時間步上的輸出進行平均,得到一個特徵向量,用於最後的邏輯迴歸預測情感。

  • 淺單詞級卷積網路(shallow word-level convolutional networks)我們用嵌入層(如在LSTM中)訓練一個CNN,一個時間卷積層,然後是最大池化,最後用一個全連線層進行分類。

  • 深字符集卷積網路(deep character-level convolutional networks)

4.3 Main Experiments

我們手動選擇了優化設定,從而在對抗樣本的強度和一致性之間做出了合理的權衡。在所有實驗中,我們令閾值,臨近大小N=15,引數。在情感分析和假訊息檢測中令,在垃圾資訊檢測中令。我們還比較了用隨機抽樣代替演算法1中的arg max得到的隨機擾動(!!!)。發現模型對於隨機擾動的抵抗能力很強。

4.4 Human Evaluation

我們通過Amazon Mechanical Turk上的人類實驗,驗證了對抗樣本的質量和一致性。首先,我們從測試集中二次抽樣了100個樣本,包括原始樣本與對抗樣本,讓人類進行標記(例如積極評價或負面評價)。