機器閱讀理解Match-LSTM模型
由於 SQuAD 的答案限定於來自原文,模型只需要判斷原文中哪些詞是答案即可,因此是一種抽取式的 QA 任務而不是生成式任務。幾乎所有做 SQuAD 的模型都可以概括為同一種框架:Embed 層,Encode 層,Interaction 層和 Answer 層。Embed 層負責將原文和問題中的 tokens 對映為向量表示;Encode 層主要使用 RNN 來對原文和問題進行編碼,這樣編碼後每個 token 的向量表示就蘊含了上下文的語義資訊;Interaction 層是大多數研究工作聚焦的重點,該層主要負責捕捉問題和原文之間的互動關係,並輸出編碼了問題語義資訊的原文表示,即 query-aware 的原文表示;最後 Answer 層則基於 query-aware 的原文表示來預測答案範圍。圖1展示了一個高層的神經 QA 系統基本框架。
圖1 一個高層的神經 QA 系統基本框架
1 Match-LSTM模型架構圖2展示了Match-LSTM模型架構圖。
圖2 Match-LSTM模型架構圖
在模型實現上,Match-LSTM 的主要步驟如下:
- Embed 層使用詞向量表示原文和問題;
- Encode 層使用單向 LSTM 編碼原文和問題 embedding;
- Interaction層對原文中每個詞,計算其關於問題的注意力分佈,並使用該注意力分佈彙總問題表示,將原文該詞表示和對應問題表示輸入另一個 LSTM編碼,得到該詞的 query-aware 表示;
- 在反方向重複步驟 2,獲得雙向 query-aware 表示;
- Answer 層基於雙向 query-aware 表示使用 Sequence Model 或 Boundary Model預測答案範圍。
Match-LSTM模型的輸入由兩部分組成:段落(passage)和問題(question)。passage使用一個矩陣P[d * P]
表示,其中d
表示詞向量維度大小,P
表示passage中tokens的個數;question使用矩陣Q[d * Q]
表示,其中Q
表示question中tokens的個數。
Match-LSTM模型的輸出即問題的答案有兩種表示方法,其一是使用一系列整數陣列a = (a1, a2,…)
,其中ai
是[1, P]
中的一個整數,表示在段落中某個token具體的位置,這裡的整數陣列不一定是連續的,對應Sequence Model ;第二種表示方法是假設答案是段落中一段連續的token組合,即僅使用兩個整數來表示答案a = (as, ae)
,as
表示答案在段落中開始的位置,ae
則表示結束位置,as
和ae
是[1, P]
中的整數,對應Boundary Model 。
故對Match-LSTM模型的訓練集樣本來說,其可用下面的三維陣列來表示:
從圖2可知,一個基本的Match-LSTM模型應該包含以下三層結構:
- LSTM preprocessing Layer:這層對passage和question進行預處理,得到其向量表示;
- Match-LSTM Layer:這層試圖在passage中匹配question;
- Answer Pointer(Ans-Ptr) Layer:使用Ptr-Net從passage中選取tokens作為question的answer, Sequence Model 和 Boundary Model的主要區別就在這一層。
LSTM preprocessing Layer
LSTM preprocessing Layer的目的是將token的上下文資訊包含到passage和question中的每個token的向量表示中。分別將passage和question輸入LSTM preprocessing Layer,經過LSTM preprocessing Layer後,passage和question表示如下矩陣:
Hp
是passage的向量矩陣表示,其大小為[l * P]
,l表示隱藏層的節點個數;Hq
是question的向量矩陣表示,其大小為[l * Q]
。
Match-LSTM Layer
將LSTM preprocessing Layer的輸出作為這一層的輸入,計算公式如下:
其中,,這些引數都是模型需要訓練的引數,是中間結果,表示第i-1個token的隱藏層輸出,表示在列方向擴充Q列。
對於Gi
公式的維度變化:
[l Q] = [l l] [l Q] + ([l l] [l 1] + [l l] [l 1] + [l 1]) |Q|;
對於ai公式的維度變化:
[1 Q] = ([1 l] [l Q] + 1 * |Q|)。
ai
表示在passage的第i
個token對question的注意力權重向量。
將注意力權重向量與question向量的乘積和passage中第i
個token的隱藏層輸出向量拼接成一維向量Zi
,公式如下:
其中,向量維度分別為:
將向量Zi作為一個LSTM層的輸入,得到
其中,隱藏層向量維度為:
將P
個該隱藏層向量拼接成,為了提取上下文資訊,反方向構建,將兩者拼接得到Match-LSTM Layer的輸出:
Answer Pointer Layer
將Match-LSTM Layer的輸出Hr
作為這一層的輸入。
Match-LSTM 的 Answer Pointer Layer 層包含了兩種預測答案的模式,分別為 Sequence Model 和 Boundary Model。Sequence model提供的是一系列答案序列,但這些答案系列不一定在原文中是連續的;Boundary model是提供答案的開始與截止位置,在這兩個位置中間所有的字就都是答案。Sequence Model 將答案看做是一個整陣列成的序列,每個整數表示選中的 token 在原文中的位置,因此模型按順序產生一系列條件機率,每個條件機率表示基於上輪預測的 token 產生的下個 token 的位置機率,最後答案總機率等於所有條件機率的乘積。Boundary Model 簡化了整個預測答案的過程,只預測答案開始和答案結束位置,相比於 Sequence Model 極大地縮小了搜尋答案的空間,最後的實驗也顯示簡化的 Boundary Model 相比於複雜的 Sequence Model 效果更好,因此 Boundary Model 也成為後來的模型用來預測答案範圍的標配。
Sequence Model的答案定位計算公式如下:
k
是[1, P+1]
中某個值,當k=P+1
時,表示答案迭代計算答案位置機率結束。
Boundary Model的答案定位計算公式如下:
2 實驗模型引數設定如下:
- 隱藏層大小:
150
- 最佳化方法:
Adamax(β1 = 0.9,β2 = 0.999)
- minibatch:
30
- 沒有用L2正則
實驗結果對比如圖3所示:
圖3 各模型實驗對比結果
3 參考文獻[1] 目前(2017年)機器閱讀技術發展得如何?能達到什麼水平?有哪些應用? [2017-05-22].
[2] Wang S, Jiang J. Machine Comprehension Using Match-LSTM and Answer Pointer[J]. 2016.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3137/viewspace-2799980/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器閱讀理解Attention-over-Attention模型模型
- 機器閱讀理解模型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萬