機器閱讀理解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原始碼模型原始碼
- 用Keras搞一個閱讀理解機器人Keras機器人
- 資源:10份機器閱讀理解資料集
- EasyNLP帶你實現中英文機器閱讀理解
- 兩種閱讀理解模型框架的概要介紹模型框架
- 基於CNN的閱讀理解式問答模型:DGCNNCNN模型GC
- 清華 NLP 團隊推薦:必讀的77篇機器閱讀理解論文
- 機器閱讀理解打破人類記錄,解讀阿里iDST SLQA 技術阿里
- 論文推薦:機器閱讀理解,文字摘要,Seq2Seq加速
- 機器閱讀理解 / 知識庫 / 深度學習 / 對話系統 / 神經機器翻譯 | 本週值得讀深度學習
- 層疊注意力模型:實現機器閱讀的正確姿勢模型
- 層疊注意力模型 - 實現機器閱讀的正確姿勢模型
- 機器閱讀理解與文字問答技術研究 | 博士學位論文
- 中國人工智慧大賽機器閱讀理解任務冠軍方案出爐~人工智慧
- 中國人工智慧大賽機器閱讀理解任務冠軍方案出爐人工智慧
- 大學英語(B) 閱讀理解
- 從短句到長文,計算機如何學習閱讀理解計算機
- 如何從資料、模型和訓練角度提升閱讀理解系統效能?模型
- ACL2018: 百度閱讀理解技術新進展 讓機器讀懂文字
- 打造web版epub閱讀器(閱讀設計)Web
- 關於聊天機器人的閱讀筆記機器人筆記
- 我們的『閱讀理解』出了錯
- 微軟機器閱讀理解超越人類水平,CoQA資料集得分重新整理記錄微軟
- 2018 機器閱讀理解技術競賽,奇點機智獲第一名
- 深入理解Java虛擬機器 – 閱讀class檔案的三種姿勢(連載2)Java虛擬機
- NLP 新紀元?如何看待轟炸閱讀理解頂級測試的BERT模型?模型
- C++:小說閱讀器C++
- Leaf for Mac RSS閱讀器Mac
- Tensorflow做閱讀理解與完形填空
- 大學英語B--閱讀理解(1)
- 手把手教你做閱讀理解題-初中中考閱讀理解解題技巧011-Noticeboard
- 5 個開源 RSS 訂閱閱讀器
- 猿輔導MSMARCO冠軍團隊:用MARS模型解決機器閱讀任務 | 吃瓜筆記模型筆記
- 猿輔導登頂MSMARCO:機器閱讀理解超過人類水平、力壓百度微軟微軟
- 北大與百度提出多文章驗證方法:讓機器驗證閱讀理解候選答案
- Laravel 文件閱讀:控制器Laravel
- web版pdf線上閱讀器Web