機器閱讀理解Attention-over-Attention模型

R-B發表於2021-09-09
0 前言

Attention-over-Attention模型(AOA Reader模型)是科大訊飛和哈工大在2017ACL會議上的《Attention-over-Attention Neural Networks for Reading Comprehension》()聯合提出的。科大訊飛和哈工大在2016ACL會議上發表的另一篇論文《Consensus Attention-based Neural Networks for Chinese Reading Comprehension》提出了CAS Reader模型(在博文有詳細介紹),AOA Reader正是基於CAS Reader進行改進的,兩個模型都屬於二維匹配模型,CAS Reader僅按照列的方式進行Attention計算,但AOA Reader結合了按照列和按照行的方式進行Attention計算,同時使用了二次驗證的方法對AOA Reader模型計算出的答案進行再次驗證。下面我們將詳細分析下AOA Reader模型的實現過程。

1 資料集及任務分析

資料集採用完形填空式的資料集,包含CNN&Daily Mail以及兒童故事(Children’s Book Test,CBT),資料集介紹在中有,這裡就不再贅述。

一個完形填空式閱讀理解樣本可描述為一個三元組:,其中D代表文件(document),Q代表問題(query),A則代表問題的答案(Answer),答案是文件中某個詞,答案詞的型別為固定搭配中的介詞或命名實體

2 AOA Reader模型

圖1 展示了AOA Reader模型的框架圖

圖片描述

圖1 AOA Reader模型的框架圖

2.1 Contextual Embedding

首先將文件D和問題Q轉化為one-hot向量,然後將one-hot向量輸入embedding層,這裡的文件嵌入層和問題嵌入層的權值矩陣共享,透過共享詞嵌入,文件和問題都可以參與嵌入的學習過程,然後使用雙向GRU分別對文件和問題進行編碼,文件和問題的編碼都拼接正向和反向GRU的隱藏層輸出,這時編碼得到的文件和問題詞向量都包含了上下文資訊。計算過程如下所示:

圖片描述

文件的Contextual Embedding表示為h_doc,維度為|D| * 2d,問題的Contextual Embedding表示為h_query,維度為|Q| * 2dd為GRU的節點數。

2 .2 Pair-wise Matching Score

h_doch_query進行點積計算得到成對匹配矩陣(pair-wise matching matrix),表示如下:

圖片描述

M(i, j)代表文件中第i個單詞的Contextual Embedding與問題中第j個單詞的Contextual Embedding的點積之和,M(i, j)這個矩陣即圖1中點積之後得到的矩陣,橫向表示問題,縱向表示文件,故M(i, j)的維度為|D| * |Q|

2.3 Individual Attentions

這一步和中的CAS Reader模型一樣:在二維模型中是按列進行計算的,計算的是文件中每個單詞對問題中的某個單詞的重要程度(即注意力),最後形成一個文件級別的注意力分佈a(t),問題中有多少個單詞就有多少個這樣的分佈,文件中的某些單詞都對問題中的單詞A有注意力,同時也對問題中的單詞B有注意力,那麼將文件中某個單詞對問題中單詞的注意力進行彙總,彙總的方式有取平均數,累加,最大值等。

計算過程如下:

圖片描述

說人話就是:你在回答問題的時候,每閱讀問題的一個單詞,心中就會有一個文件中的單詞對這個問題單詞的相關性分佈,當你讀完整個問題之後,將文件中每個單詞在這些分佈中的值進行彙總,如果說是取最大值,那麼意味著將文件中每個單詞在這些分佈中的最大值取出作為該單詞對問題的相關性,(文件中某單詞可能出現多次,那麼會有多個相關性值,將其進行累加再作為該單詞對問題的相關性),最後取相關性最高的詞作為問題的答案。

其中,

a(1) = softmax(M(1, 1), …, M(|D|, 1));
a(2) = softmax(M(1, 2), …, M(|D|, 2))

那麼a=[a(1), a(2),…, a(|Q|)],也就是a的維度為|D| * |Q|

在CAS Reader模型中,對於矩陣a進行如下三種運算之一

圖片描述

其中,m為問題的單詞個數,也就是說如果mode=sum,則對矩陣a按列進行累加,最後累加值最大對應的文件的單詞即為答案

但AOA Reader在得到a矩陣之後,並沒有進行以上運算而是再對二維模型進行了按行計算。

2.4 Attention-over-Attention

在二維模型中按行進行計算,計算的是問題中的每個單詞對文件中某個單詞的重要程度(即注意力),形成一個問題級別的注意力分佈B(t),文件中有多少個單詞就有多少個這樣的分佈,然後對這些分佈進行累加並求平均得到B,最後將Individual Attentions中得到的aAttention-over-Attention得到的B進行點積計算得到s,這裡的a的維度為|D| * |Q|B的維度為|Q| * 1。計算過程如下:

圖片描述

圖片描述

說人話就是,我們在看問題的時候,並不是問題的每個單詞我們都需要用到解題中,即問題中的單詞的重要性是不一樣的,在一步我們主要分析問題中每個單詞的貢獻,先定位貢獻最大的單詞,然後再在文件中定位和這個貢獻最大的單詞相關性最高的詞作為問題的答案。

2.5 Final Predictions

最後和CAS Reader模型一樣計算單詞w是答案的條件機率,文件D的單片語成單詞空間V,單詞w可能在單詞空間V中出現了多次,其出現的位置i組成一個集合I(w, D),對每個單詞w,我們透過計算它的注意力值並求和得到單詞w是答案的條件機率,計算公式如下所示:

圖片描述

3 二次驗證:N-best Re-ranking Strategy

對於完形填空式的閱讀理解資料集,可將2中構建的神經網路模型預測的候選答案帶入到問題的空白處進行二次驗證,選取前n個最有可能的候選答案組成N-best list,將候選答案填入問題中,並提取以下三種特徵:

  1. Global N-gram LM:基於訓練集中所有的document訓練8-gram模型,判斷候選答案所在句子的合理性;
  2. Local N-gram LM:基於問題所對應的的document訓練8-gram模型;
  3. Word-class LM:和Global N-gram LM類似,基於訓練集中所有的document,但Word-class
    LM使用聚類方法對候選答案進行打分,這裡使用了mkcls工具產生1000個單詞類別。

採用K-best MIRA演算法對三種特徵進行權值訓練,最後累加權值,選擇損失函式最小的值作為最終的正確答案。

4 實驗設定及結果

4.1 實驗設定

  • 嵌入層(使用未預訓練詞向量)權值初始化:[−0.05, 0.05];
  • l2正則化:0.0001;
  • dropout:0.1;
  • 最佳化函式:Adam;
  • 學習率初始化:0.001;
  • gradient clip:5;
  • batch size:32;

根據不同的語料庫,嵌入層和GRU隱藏層的節點數如圖2所示。

圖片描述

圖2 不同的語料庫,嵌入層和GRU隱藏層的節點數

4.2 實驗結果

圖片描述

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2801329/,如需轉載,請註明出處,否則將追究法律責任。

相關文章