機器閱讀理解Attention-over-Attention模型
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),答案是文件中某個詞,答案詞的型別為固定搭配中的介詞或命名實體。
圖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| * 2d
,d
為GRU的節點數。
2 .2 Pair-wise Matching Score
將h_doc
和h_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
中得到的a
與Attention-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
是答案的條件機率,計算公式如下所示:
對於完形填空式的閱讀理解資料集,可將2中構建的神經網路模型預測的候選答案帶入到問題的空白處進行二次驗證,選取前n
個最有可能的候選答案組成N-best list
,將候選答案填入問題中,並提取以下三種特徵:
- Global N-gram LM:基於訓練集中所有的document訓練8-gram模型,判斷候選答案所在句子的合理性;
- Local N-gram LM:基於問題所對應的的document訓練8-gram模型;
- Word-class LM:和Global N-gram LM類似,基於訓練集中所有的document,但Word-class
LM使用聚類方法對候選答案進行打分,這裡使用了mkcls工具產生1000個單詞類別。
採用K-best MIRA
演算法對三種特徵進行權值訓練,最後累加權值,選擇損失函式最小的值作為最終的正確答案。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器閱讀理解Match-LSTM模型模型
- 機器閱讀理解模型Stanford Attentive Reader原始碼模型原始碼
- EasyNLP帶你實現中英文機器閱讀理解
- 基於CNN的閱讀理解式問答模型:DGCNNCNN模型GC
- 清華 NLP 團隊推薦:必讀的77篇機器閱讀理解論文
- 機器閱讀理解 / 知識庫 / 深度學習 / 對話系統 / 神經機器翻譯 | 本週值得讀深度學習
- ACL2018: 百度閱讀理解技術新進展 讓機器讀懂文字
- 機器閱讀理解與文字問答技術研究 | 博士學位論文
- 層疊注意力模型:實現機器閱讀的正確姿勢模型
- 2018 機器閱讀理解技術競賽,奇點機智獲第一名
- 如何從資料、模型和訓練角度提升閱讀理解系統效能?模型
- 中國人工智慧大賽機器閱讀理解任務冠軍方案出爐~人工智慧
- 中國人工智慧大賽機器閱讀理解任務冠軍方案出爐人工智慧
- 我們的『閱讀理解』出了錯
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧011-Noticeboard
- 【EMNLP 2023】基於知識遷移的跨語言機器閱讀理解演算法演算法
- 關於聊天機器人的閱讀筆記機器人筆記
- NLP 新紀元?如何看待轟炸閱讀理解頂級測試的BERT模型?模型
- 微軟機器閱讀理解超越人類水平,CoQA資料集得分重新整理記錄微軟
- 深入理解Java虛擬機器 – 閱讀class檔案的三種姿勢(連載2)Java虛擬機
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧012-Instructions for Daily UseStructAI
- Leaf for Mac RSS閱讀器Mac
- 北大與百度提出多文章驗證方法:讓機器驗證閱讀理解候選答案
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧010-Sleep Factors & Improvement Tips
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧014-A Fun Plant Experiment to Try at Home
- 世界讀書日 | 機器學習必讀書籍一覽表(附閱讀地址)機器學習
- 猿輔導登頂MSMARCO:機器閱讀理解超過人類水平、力壓百度微軟微軟
- 全能閱讀器:OmniReader Pro for macMac
- Android CHM檔案閱讀器Android
- C++:小說閱讀器C++
- iCHM Reader for Mac(chm閱讀器)Mac
- 猿輔導MSMARCO冠軍團隊:用MARS模型解決機器閱讀任務 | 吃瓜筆記模型筆記
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧009-There are many different parts that have different jobs
- 完全解析!Bert & Transformer 閱讀理解原始碼詳解ORM原始碼
- 2020考研英語一閱讀理解text2
- Trie樹【P3879】 [TJOI2010]閱讀理解
- 哈工大訊飛聯合實驗室重新整理SQuAD 2.0機器閱讀理解挑戰賽紀錄
- 百度發起機器閱讀理解競賽,提供中文資料集,獲勝團隊獎10萬