論文筆記:Reasoning about Entailment with Neural Attention

寫在前面

Attention mechanism 作爲一種模型效果提升的方法,再很多領域都有應用,這篇論文也算是學習 Attention mechanism的經典論文之一,文中提出了一種 Attention based 的神經網絡模型,用於文本蘊含推理,並取得state-of-art 的結果(當時)。

文中最主要的模型是建立 word-by-word Attention 模型,與之做對比的還有幾個模型,像基礎的 LSTM 模型以及更深一步的雙向Attention 等等,具體來說,就是這四個模型(當然提到了不止這四種,也可以理解更多個,像LSTM那部分就可以拆開來看,不過大部分是背景板。。問題不大):

  • 第一個模型實際上就是之前常見的文本蘊含推理的方式,首先使用一個 LSTM 處理 premise,然後將 最後的狀態作爲第二個 LSTM 的輸入,然後處理 hypothesis ,最後輸出的向量作爲分類的依據這在文中 2.1,2。2節介紹。
  • 第二個模型是加入Attention 的模型,這裏的 Attention 建立在整個文本層面,在2.3節中介紹。
  • 第三個是文中主要的模型,也是最後證明效果最好的模型,我理解是逐字注意力機制模型,在2.4節中介紹。
  • 最後是第三個模型的改版,只是改成了雙向的 Attention,但是實驗中證明這樣做反而結果下降了,在2.5節中介紹。

個人覺得這篇論文最好的一部分是實驗環節,從實驗部分可以看到很多設計對比試驗的很多tricks,像應該從什麼角度挑選有說服力的例子等等。

以下爲個人理解和總結,歡迎指正~

1. Abstract & Introduction

按照慣例,這一部分對全文的工作做了一個基本的概括。論文中提到,自動的文本蘊含識別一直以來都是依靠手工特徵工程,端到端的神經網絡模型在這一問題上都失敗了,論文提出了一種基於LSTM的神經網絡模型,同時處理兩個句子來判斷它們之間的蘊含關係,並且使用了 Attention machanism 來改進模型。

在 Introduction 部分,對文本蘊含識別(Recognizing textual entailment, RTE)任務作了介紹,對於兩個文本,這種蘊含關係判斷實際上就是判斷三種關係:

  • Neutral (不相關)
  • Contradiction(矛盾)
  • Entailment (蘊含)

並且這一任務在很多NLP任務中都有應用(例如信息提取,關係提取,機器翻譯,文本自動摘要等等)

此外,這一部分還提到了關於這一任務的一個重要因素:數據集質量,SNLI數據集的質量相較之前提高了很多,這也是文中模型效果更好地一個原因。

這一部分最後提到了論文的三個貢獻:

  • 提出了一個基於LSTM的模型來處理文本蘊含任務
  • 使用 word-by-word 的 Attention mechanism 來改進模型
  • 詳細定性分析了實驗結果

2. Methods

這部分實際上劃分了四個模型,開始部分介紹了 LSTM單元的計算過程,然後接下來是四種模型分別介紹,四種結構都在圖中展示,也就是文中 Figure 1:

2.2 RTE with LSTMs

這一部分介紹瞭如何使用 LSTM 構建RTE任務的神經網絡模型,這裏提到,之前的模型都是分別建立兩個文本的稠密向量表示(encding the premise and hypothesis as dense vectors, 我們在很多論文中都會看到 premise 和 hypothesis,這只是兩個文本的慣稱,就像輸入輸出一樣),然後將這兩個向量做一個 concatenate , 然後輸入到一個 MLP 網絡中,然後通過這個網絡進行分類。總之,這個過程就是先得到兩個文本的表示向量,然後再進行分類任務。再之後的改進就是不單獨處理兩個文本,而是像一個序列一樣處理,也就是第一個模型,先處理 premise, 然後最後一個隱狀態作爲第二部分的輸入狀態,這樣最後輸出的向量作爲分類依據。

關於這個模型,有幾點說明:

  • 圖中實際上有兩個 LSTM 結構,C1-C5 是第一個 LSTM, C6-C9 是第二個
  • 第一個 LSTM 結構處理完 premise 之後,最後的隱狀態直接作爲第二個 LSTM 結構的初始隱狀態
  • 使用的詞向量爲 word2vec,在訓練過程中不進行調整,這裏不進行調整的原因在文中做了解釋,這樣處理是爲了在 inference 的時候,如果出現OOV,但是在 word2vec 詞表存在的單詞,仍然能保持近似(這裏有點繞,其實就像是一視同仁,公平對待一樣)
  • 對於 OOV(out of vocabulary)的單詞,採用隨機初始化的方法

最後,這個結構輸出的是一個聯合表示 premise 和 hypothesis 的向量,然後使用一個 softmax 層對輸出結果進行分類。

2.3 Attention

這一小節介紹了第一種應用 Attention mechanism 的模型,也就是第二個模型,因爲最終的目標是判斷兩個句子之間的關係,並不像機器翻譯中要生成一個個單詞, 所以實際上這裏是對 hypothesis整體 與之前 premise 建立注意力機制(這個地方有點繞:類比機器翻譯,假設我們的 hypothesis 有三個詞(ABC),那麼我們會 A-premise, B-premise, C-premise分別建立注意力,但是這裏,我們相當於不對hypothesis逐個單詞與premise建立注意力,實際上,文中後面會提到,就是使用 hypothesis 最後一個狀態與 premise 建立注意力,注意圖中 B 表示的就是這個模型,B指向的箭頭也就是 hypothesis 的最後一個狀態)

2.4 word-by-word attention

這裏介紹第三個模型結構,實際上是打破了上面第二個模型的只使用 hypothesis 最後一個狀態與 premise 建立注意力的規則,這個模型實際上就與機器翻譯中使用的注意力一致了,也就是對於 premise 和 hypothesis 的每個單詞都建立注意力,看圖中 C,也就是展示了這個過程,主要是上面的連線,把他們想想成有箭頭單項(從hypothesis 方向指向 premise)也就是 word-by-word 的來歷了。具體可以參考公式計算。

2.5 two-way attention

這裏在文中提到, 來源於 BiLSTM 的想法,也就是相當於兩個方向上建立注意力, 首先是 hypothesis 中每個單詞對 premise 建立注意力,然後反過來,premise 中每個單詞對 hypothesis 建立,所以稱爲 “two-way”,但是後面會看到,實驗證明這種方式效果並不好。

Experiments

首先第一部分介紹了 SNLI 數據集的一些基本情況,這個數據集相對於之前的數據集無論是數量級還是質量都有了提升,此外這一部分還介紹了論文模型所採用的優化算法以及一些參數設置。

Result and Discussion

這一章有兩部分內容,首先對四種模型的實驗結果做了介紹,或者可以說是定量分析,第二部分是定性分析,這也就是之前文中提到的本文貢獻之三。

定量分析

首先是對各種模型的實驗結果的簡要分析,就是文中的 Table 1:

在開始的介紹中可以學到一些設計對比實驗的技巧吧算是,比如作者在文中強調了實驗參數量保持一致等等,就比如第一個LSTM模型是隨着數據集的模型,算是一個基準模型,它的參數量是 10M, 相比之下其他的模型都要少很多,主要是這個模型在訓練過程中會對詞向量也進行微調(fine-tuning),後面會提到,實際上對詞向量微調反而會使模型效果下降,第二個 Classifer 是一個從特徵工程角度的模型,總之,第一行的兩個模型是背景板。

再來看第二行中的三個模型,這對應於文中加重的 LSTM 部分,其中 ‘shared’ 的模型是指使用一個 LSTM 處理 premise 和 hypothesis ,也就是參數共享?,最後一個 LSTMs 則是兩個 LSTM 分別處理 premise 和 hypothesis, 這三個模型除了結構上不同,還有就是 K ,也就是隱層神經元的數量不同,可以看到效果顯然比背景板的兩個模型要好,這裏要提一下背景板的 LSTM 模型是分別對 premise 和 hypothesis 進行encode,然後再進行之後的處理,而下面的三個模型都是兩個文本一塊處理,文中給出的原因是,不分別進行處理的話,是的一個文本的信息可以流向另一個文本的表示,另外這部分也提到了詞向量微調的問題,文中給出的原因是微調可能會使得模型產生一定的過擬合問題。其實,我倒是覺得這裏的 LSTMs 是對下面的 attention 系列模型的對比,這樣更合適,因爲下面的模型都是基於使用兩個 LSTM 的。

第三行的 Attention 模型,這是一般的注意力機制,也就是我在上面 2.3 部分所說的那樣,文中提到,加入 Attention 後的模型可以總結 premise 的上下文特徵,這裏的解釋其實就是一般注意力機制的優點了。

最後是文中提出的模型 :逐字注意力的模型,可以看到,單項的逐字注意力模型效果最好,這裏解釋雙向逐字地注意力模型效果不好因是因爲 premise 和 hypothesis 的關係不是對稱的,因此這樣的結果會產生一些噪聲,從而結果反而不好。

定性分析

這一部分的圖表做的是真的很好看,用這種圖表示 Attention 是真的很直觀了,這裏通過這種可視化的方式對 普通的Attention以及 word-by-word Attention 進行了分析。

首先看第一部分介紹一般的 Attention 機制的使用,就像之前提到的,這裏實際上是對 hypothesis 整體的表示和 premise 建立聯繫,從 Figure 2 中看的更清楚也就是看看 hypothesis 和 premise 中那些詞更有聯繫,在之前總的結構圖中我們看到這裏實際上 hypothesis 的表示實際上就是最後一個隱狀態。

對於 word-by-word Attention ,從 Figure 3 中可以看出,是對 premise 和 hypothesis 的單詞對之間建立聯繫,這裏論文中提到了一些現象,可以很輕鬆的檢測僅僅重構了順序的句子(3a中可以看出來),以及可以檢測到同義詞和多個單詞對應一個單詞的情況,也可以處理更深層的語義句子。這裏也提到了 Attention 失效的情況,那就是兩個文本完全不相關的時候。

Conclusion

結論部分簡單總結了工作以及未來工作的方向,不再贅述。

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