論文閱讀——Gated-Attention Readers for Machine Reading Comprehension
Inroduction
本文是ACL 2017的一篇文章,用更細粒度的gated-attention對背景文章和問題進行計算。作者是CMU的Graduate Research Assistant: Bhuwan Dhingra。文章的相關工作部分總結的很好,程式碼實現可以參考[GitHub]。
Background
本文針對的是MRC任務中的Cloze-Style型別,翻譯過來是叫完形填空,但是與英語考試不同,這裡是指只用一個單詞來回答的閱讀理解。
我們可以把問題描述為一個三元組(d,q,a):
- d是指背景文章document
- q是指完形填空的問題query
- a是指問題的答案answer
答案是來自構建好的詞彙表中的一個詞,也就是token。總結一下就是,根據文件-問題對(d,q),從詞彙表中找到最合適的詞項作為答案a。
Motivation
作者發現,之前的MRC神經網路模型有一個問題——模型會對原文中的某個部分的注意力特別大,以至於對整篇文章的理解不夠完整。並且之前的工作把query attention應用到token(Hermann et al., 2015; Chen et al., 2016)和sentence(Weston et al., 2015)兩個層次上,本文希望用更細粒度的attention計算方式,獲取document和query更多的語義資訊。
Contribution
用Bi-GRU獲取document和query每一個詞項的資訊,兩部分詞項之間兩兩做元素相乘,這樣的操作做K次,到第K層的時候,document的詞向量與query的詞向量做內積運算,得到最終的向量表示,然後過soft Max層得到詞項的概率分佈,選document中概率最大的詞項作為answer輸出。
Model
Overview
輸入:document和query分詞後的tokens序列
輸出:概率最大的answer
Lookup layer
輸入:tokens
輸出:tokens的向量表示
運算關係:這裡就是一個Lookup Table,用全連線訓練詞向量
Bi-GRU
輸入:
輸出:
- Document每個詞項過Bi-GRU後每個隱藏層狀態 E
- Query每個詞項過Bi-GRU後每個隱藏層狀態串起來 q
運算關係:見Bi-GRU結構,不詳細介紹。
Gated-Attention
輸入:
輸出:下一層的輸入
運算關係:
K-th layer & soft Max
輸入:
輸出:document中tokens的概率分佈
運算關係:
得到概率最大的answer最為最終的輸出。
Experiment
Datasets
訓練集用的CNN/Daily Mail 和 who did what,詳情如下:
Results
在CNN/Daily Mail上,效果比BiDAF提升了一個多點,細粒度的gated-attention取得了一些效果,但是在who did what資料集上並未有多大提升。
Analysis
實驗部分給出了一些視覺化的attention結果:
圖中高亮的部分是背景文章針對問題時的最後一層注意力所關注的tokens。
Conclusion
本文提出的Gated Attention用更細粒度的attention計算獲得answer的定位,收穫了一定的效果,並且使用Multi-Hop的結構,帶著問題重讀文章K次,增量式地重新得到tokens的表示,可以進一步幫助鎖定答案。但是可以看出,在CNN/Daily Mail比在who did what資料集上提升的多,這就跟資料集本身有關了。所有的模型也都是建立在資料集的特點上的,仔細研讀資料,研究其語言學的特徵也是很重要的一個環節。