Attention-over-Attention Neural Networks for Reading Comprehension
本文分享的文章是arxiv今天剛剛新鮮出爐的paper,來自哈工大訊飛聯合實驗室。前不久,他們構建了一個大型閱讀理解語料,今天也發布出來了。(下載地址)
Cloze-style Reading Comprehension這個領域競爭太過激烈了,半年時間把benchmark刷了一遍又一遍,今天的這篇paper又一次刷新了記錄。如果對這個領域不太熟悉的話,可以讀這篇教機器學習閱讀。
本文的模型被稱作Attention over Attention(AoA),和之前的工作不同,不僅僅考慮query-to-document attention,而且考慮了document-to-query attention。模型架構示意圖如下:
Contextual Embedding 將query和document都embedding化,用Bi-GRU將query和document分別encode,將兩個方向的hidden state拼接起來作為該詞的state,此時document和query可以分別用一個Dxd和Qxd的矩陣來表示,這裡D是document的詞數,Q是query的詞數,d是embedding的維度。
Pair-wise Matching Score
這一步是本質上就是對兩個矩陣做矩陣乘法,得到所謂的Matching Score矩陣M,這裡的M矩陣的維度是DxQ,矩陣中的每個元素表示對應document和query中的詞之間的matching score。
Individual Attentions 對M矩陣中的每一列做softmax歸一化,得到所謂的query-to-document attention,即給定一個query詞,對document中每個詞的attention,本文用下式進行表示:
Attention-over-Attention 前三個步驟都是很多模型採用的通用做法,這一步是本文的亮點。首先,第三步是對M矩陣的每一列做了softmax歸一化,這裡對M矩陣的每一行做softmax歸一化,即得到所謂的document-to-query attention,用下式來表示:
然後,將document-to-query attention作平均得到最終的query-level attention,如下式:
最後,用每個query-to-document attention和剛剛得到的query-level attention做點乘,得到document中每個詞的score。
Final Predictions 將相同詞的score合併,得到每個詞的score,如下式:
從而得到最終的答案。
實驗部分用了英文語料CNN和CBT,在沒用pre-trained embedding情況下,單模型得到了state-of-the-art結果。
本文模型最大的特點就是不僅僅考慮query到document的attention,而且考慮了document到query的attention,即所謂的attention over attention,在Cloze-style閱讀理解任務中取得了更好的結果。同時,作者在未來的工作中,準備將該模型拓展到其他任務中。
attention是一個非常好的機制,將很多任務的benchmark都提高到了很高的水平,是一個革命性的模型。圍繞attention的變種做工作,提出各種各樣的attention,雖然可以刷新各種任務,但終究不再能夠將研究水平提升一個level,需要一個新的機制、新的思想來推動nlp的發展。
推薦閱讀:
※Uber與斯坦福大學開源深度概率編程語言Pyro:基於PyTorch
※李宏毅機器學習2016 第十八講 支持向量機
※轉載|學點演算法搞安全之SVM
TAG:自然语言处理 | 深度学习DeepLearning | 机器学习 |