天天看點

基于Bidirectional AttentionFlow的機器閱讀了解實踐

機器閱讀是實作機器認知智能的重要技術之一。機器閱讀任務主要有兩大類:完形填空和閱讀了解。

(1)完型填空類型的問答,簡單來說就是一個比對問題。問題的求解思路基本是:

  1) 擷取文檔中詞的表示

  2) 擷取問題的表示

  3) 計算文檔中詞和問題的比對得分,選出最優

(2)文本段類型的問答,與完型填空類型的問答,在思想上非常類似,主要差別在于:完形填空的目标是文檔中的一個詞,文本閱讀了解的目标是文檔中的兩個位置,分别用來标志答案的起點和終點。目标的差别帶來了網絡模型上一些差别。

繼上次複現了r-net的方案之後,現将之前複現過的Bidirectional AttentionFlow (經典的閱讀了解模型)也進行記錄一下。

1、基本原理

BiDAF模型最大的特點是在interaction層引入了雙向注意力機制,計算Query2Context和Context2Query兩種注意力,并基于注意力計算query-aware的原文表示。

基于Bidirectional AttentionFlow的機器閱讀了解實踐

模型由這樣幾個層次組成:

(1)Character Embedding Layer使用char-CNN将word映射到固定次元的向量空間;

(2)Word Embedding Layer使用(pre-trained)word embedding将word映射到固定次元的向量空間;

從上圖可以看出,該模型同時使用了字元的詞向量和詞向量兩種層次的嵌入表示。

(3)Contextual Embedding Layer将上面的到的兩個word vector拼接,然後輸入LSTM中進行context embedding;

(4)Attention Flow Layer将passage embedding和question embedding結合,使用Context-to-query Attention 和Query-to-contextAttention得到word-by-word attention;

(5)Modeling Layer将上一層的輸出作為bi-directional RNN的輸入,得到Modeling結果M;

(6)Output Layer使用M分類得到passage的起始位置,然後使用M輸入bi-directional LSTM得到M2,再使用M2分類得到passage的中止位置作為answer。

2、實驗測試

(1)啟動訓練,加載詞向量模型

基于Bidirectional AttentionFlow的機器閱讀了解實踐

(2)訓練過程截圖

基于Bidirectional AttentionFlow的機器閱讀了解實踐

(3)訓練後的測試結果,如下所示,可以看到F1的值可以達到74.9%

基于Bidirectional AttentionFlow的機器閱讀了解實踐