REASONING ABOUT ENTAILMENT WITH NEURAL ATTENTION
前面幾篇文章分享的都是seq2seq和attention model在機器翻譯領域中的應用,在自動文摘系列文章中也分享了六七篇在自動文摘領域中的應用。本文將分享的這篇文章研究了seq2seq+attention在textual entailment領域的應用。本文題目是REASONING ABOUT ENTAILMENT WITH NEURAL ATTENTION,作者是來自英國倫敦大學學院的Tim Rocktaschel博士(後面兩個作者來自Google Deepmind),文章於2015年9月放在arxiv上,被ICLR 2016錄用。
首先,介紹一下文本蘊藏(textual entailment)是一個怎樣的任務,簡單點說就是用來判斷兩個文本序列之間的是否存在推斷關係,是一個分類問題(具體可參見Wikipedia)。兩個文本序列分別稱為premise和hypothesis。
本文最大的貢獻在於:
1、將end2end的思想應用到了文本蘊藏領域,取得了不錯的效果。
2、提出了一種seq2seq模型、兩種attention模型和一種trick模型。
本篇關注的重點在於四種模型的構建,來看模型架構圖:
圖中A是我們最熟悉的簡單seq2seq模型,本文稱為conditional encoding模型;B是本文提出的Attention模型,context與之前分享的都不一樣;C是我們之前介紹過的attention模型,本文稱為word-by-word attention模型。
1、首先介紹A模型。將premise和hypothesis認為是source和target,即用encoder來處理premise,用decoder來處理hypothesis,只不過這裡的decoder並不是一個語言模型,而只是一個和encoder一樣的LSTM,decoder的輸入是encoder的最後一個hidden state,對應圖中的c5和h5。最後decoder的輸出是一個聯合表示premise和hypothesis的向量,用於最終的分類。
2、介紹B模型。該任務和機器翻譯不同,並不一定需要做所謂的soft alignment,而是只需要表示好兩個句子之間的關係即可,因此這個模型的想法是將hypothesis的句子表示與premise建立注意力機制,而不是將hypothesis的每個單詞都與premise做alignment。從上圖中標記B的地方也可以看出,attention僅僅依賴於hypothesis的last hidden state。結果可以參看下圖:
從圖中可以看出hypothesis與premise中哪些詞相關性更強。
3、介紹C模型。這個模型與我們之前一直分享的attention模型一致,模型對hypothesis和premise每個單詞做了alignment,所以這裡稱為word-by-word attention,從模型架構圖中也可以看出,hypothesis中的每個詞都與premise中對應的詞進行了alignment。這裡並不是生成單詞,而是建立起兩個文本序列之間的關係。結果可以參看下圖:
圖中表示的是alignment矩陣,更暗的地方表示這兩個詞更加相關。
4、最後一種模型稱為two-way模型,其實是一個trick,借鑒了BiRNN的思想,使用兩個相同參數的LSTM,第一個LSTM從一個方向上對基於hypothesis的premise進行表示,而第二個LSTM從相反的方向上對基於premise的hypothesis進行表示,最終得到兩個句子表示,拼接起來作為分類的輸入。(過程與BiRNN類似,從兩個方向上對hypothesis-premise進行了表示,可與前面的模型組合使用,從結果上來看並沒有什麼明顯的作用)
最後的實驗結果表明,採用模型C,即word-by-word attention模型效果最好,其次是B模型,最差的是A模型。結果與預期基本符合,但加了two-way的效果並沒有更好,反而更差。作者分析說用了相同的參數來做two-way可能會給訓練給來更多的雜訊影響,所以效果並不好。
整體上來說,seq2seq+attention的組合給很多研究領域帶來了春天,給了研究者們更多的啟發,attention的形式有多種,可能針對不同的問題,不同的attention會帶來不同的效果,也不好說哪一種一定更加適合某一個特定的任務,所以需要去不斷地探索。
PaperWeekly,每周會分享N篇nlp領域的熱門paper,內容包括摘譯和評價,歡迎大家掃碼關注。
http://weixin.qq.com/r/OUW0rA3ExVC6rUnP9xAr (二維碼自動識別)
推薦閱讀:
※隆重介紹集智的吉祥物--集智娘
※word2vec和sentence2vec的真正差別是什麼?後者和簡單用詞向量累加有什麼差別?
※遷移學習在自然語言處理方面的應用?
※深度學習對話系統理論篇--seq2seq入門
TAG:自然语言处理 | 深度学习DeepLearning |