1. 程式人生 > >論文閱讀——Gated-Attention Readers for Machine Reading Comprehension

論文閱讀——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

輸入: X 1 = [ x 1 1 , x 2 1 , . . . , x T 1 ] X^1 = [x^1_1,x^1_2,...,x^1_T]

輸出:

  • Document每個詞項過Bi-GRU後每個隱藏層狀態 E
  • Query每個詞項過Bi-GRU後每個隱藏層狀態串起來 q

運算關係:見Bi-GRU結構,不詳細介紹。

Gated-Attention

輸入: E 1 = [ e 1 1 , e 2 1 , . . . , e T 1 ] , q 1 E^1 = [e^1_1,e^1_2,...,e^1_T], q^1

輸出:下一層的輸入 X 2 X^2

運算關係: X 2 = E 1 q 1 X^2 = E^1 \odot q^1

K-th layer & soft Max

輸入: E K , q K E^K, q^K

輸出:document中tokens的概率分佈 s K s_K

運算關係: s K = e x p < q K , e K > / e x p < q K , e K > s_K = exp{{<q^K, e^K>}} / \sum exp{<q^K, e^K>}

得到概率最大的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資料集上提升的多,這就跟資料集本身有關了。所有的模型也都是建立在資料集的特點上的,仔細研讀資料,研究其語言學的特徵也是很重要的一個環節。