2016 MACHINE COMPREHENSION USING MATCH-LSTM AND ANSWER POINTER

2016 MACHINE COMPREHENSION USING MATCH-LSTM AND ANSWER POINTER [1]

摘要

機(jī)器文本理解是自然語言處理的一個(gè)重要問題。一個(gè)最近發(fā)布的數(shù)據(jù)集: SQuAD ,提供了大量真實(shí)的問題,并且該數(shù)據(jù)集的答案是通過眾包 (crowdsourcing) 人為創(chuàng)造的。 SQuAD 為評(píng)估機(jī)器理解算法提供了具有一定挑戰(zhàn)性的測(cè)試,從某些部分來看,是因?yàn)?SQuAD 的答案不是來自一個(gè)小型的候選答案集合,它具有可變的長(zhǎng)度。為了這個(gè)任務(wù),作者提出一個(gè)端到端的神經(jīng)架構(gòu)。該架構(gòu)是基于: (1) 一個(gè)是作者之前提出的用于文本蘊(yùn)含任務(wù) (textual entialment) 的模型:match-LSTM[2] 、 (2) 一個(gè)是序列到序列 (sequence-to-sequence) 模型: Pointer Net[3] 用于強(qiáng)迫輸出字符是取自輸入句子。對(duì)于 SQuAD 任務(wù),作者提出兩種使用 Pointer Net 的方式。作者通過實(shí)驗(yàn)驗(yàn)證了他們模型的性能比起使用對(duì)數(shù)幾率回歸 (logistic regression) 和手工特征要好。

match-LSTM 簡(jiǎn)介

在最近的學(xué)習(xí)自然語言推理的工作中,作者提出了一個(gè) match-LSTM 模型用于預(yù)測(cè)文本蘊(yùn)含 (textual entailment)。
在文本蘊(yùn)含任務(wù)中, 會(huì)給出兩個(gè)句子,其中一個(gè)是“前提 (premise) 句子”,另一個(gè)是“假設(shè) (hypothesis) 句子”,然后預(yù)測(cè)“前提句子”是否蘊(yùn)含該“假設(shè)句子”。
為了進(jìn)行這樣的預(yù)測(cè),作者通過使用 match-LSTM 來順序遍歷“假設(shè)句子”中的每個(gè)單詞。在“假設(shè)句子”的每個(gè)位置中,注意力機(jī)制被用于獲取“前提句子”的一個(gè)加權(quán)向量表示。這個(gè)加權(quán)后的“前提句子”的向量表示會(huì)和“假設(shè)句子”的當(dāng)前單詞的向量表示進(jìn)行結(jié)合,然后喂進(jìn)一個(gè) LSTM,這就是所謂的 match-LSTM。

Pointer Net 簡(jiǎn)介

[3]提出了一個(gè) Pointer Network (Ptr-Net) 來解決一種特定的問題:模型生成的輸出句子中的單詞必須是來自輸入句子。為了替代從固定的單詞表中選擇一個(gè)單詞輸出, Ptr-Net 使用注意力機(jī)制作為一個(gè)指針從輸入句子中選擇一個(gè)單詞作為輸出。
作者使用 Ptr-Net 是為了使用輸入文本中的單詞來構(gòu)建答案。

模型框架

為了從文章 (passage) 中選擇一段文本作為問題的答案,作者使用了 Ptr-Net 。
一種應(yīng)用 Ptr-Net 的直接方法是將一個(gè)答案當(dāng)做一個(gè)單詞序列,序列中的單詞都是來自于輸入的文章,但是無視一個(gè)事實(shí):這些單詞在原文章中是連續(xù),因?yàn)?Ptr-Net 并沒有作出連續(xù)性 (consecutivity) 假設(shè)?!具@里的意思,可能意味著使用 Ptr-Net 從輸入文章中得到的單詞序列,其各個(gè)單詞可能在原文章中是不連續(xù)的】
另一種方式,如果想要確保連續(xù)性,可以使用 Ptr-Net 只預(yù)測(cè)答案的起點(diǎn)和終點(diǎn)。在這種情況下,Ptr-Net 只需要從輸入文章中選擇兩個(gè)單詞。
作者把使用上述的第一種應(yīng)用方式構(gòu)建的模型叫做 sequence model ;第二種應(yīng)用方式構(gòu)建的模型叫做 boundary model
sequence modelboundary model 都是由三層結(jié)構(gòu)組成:(1) LSTM 預(yù)處理層,使用 LSTMs 對(duì)文章和問題進(jìn)行預(yù)處理。 (2) match-LSTM 層,進(jìn)行文章和問題之間的匹配。 (3) Answer Pointer 層,使用 Ptr-Net 從文章中選擇單詞集合作為答案。 兩個(gè)模型的不同點(diǎn)在于第三層。

  1. LSTM 預(yù)處理層 (LSTM Preprocessing Layer)
    該層的主要目的是將上下文信息融合進(jìn)文章或問題中每個(gè)單詞的向量表示中。作者使用了一個(gè)標(biāo)準(zhǔn)的單向 LSTM 來分別處理文章和問題,具體實(shí)現(xiàn)公式如下:
    \boldsymbol{\rm{H}}^p = \overrightarrow{LSTM}(\boldsymbol{\rm{P}})
    \boldsymbol{\rm{H}}^q = \overrightarrow{LSTM}(\boldsymbol{\boldsymbol{\rm{Q}}})
    其中 \boldsymbol{\rm{H}}^p \in \mathbb{R}^{l \times P} , \boldsymbol{\rm{H}}^q \in \mathbb{R}^{l \times Q} 是文章和問題經(jīng)過 LSTM 后的隱藏層表示 (hidden representations) 。

  2. Match-LSTM Layer
    match-LSTM 循序地遍歷整個(gè)文章。在文章的位置 i ,使用標(biāo)準(zhǔn)的逐字 (word-by-word) 注意力機(jī)制來獲取注意力權(quán)重向量 \overrightarrow{a}_i \in \mathbb{R}^Q ,具體實(shí)現(xiàn)公式如下:
    \overrightarrow{{\boldsymbol{\rm{G}}}}_i = \rm{tanh}(\boldsymbol{\rm{W}}^q\boldsymbol{\rm{H}}^q + (\boldsymbol{\rm{W}}^p\boldsymbol{\rm{h}}_i^p + \boldsymbol{\rm{W}}^r\overrightarrow{\boldsymbol{\rm{h}}}_{i-1}^r + \boldsymbol{\rm}^p) \otimes \boldsymbol{\rm{e}}_Q)
    \overrightarrow{a}_i = \rm{softmax}(\boldsymbol{\rm{w}}^\intercal\overrightarrow{{\boldsymbol{\rm{G}}}}_i + b \otimes \boldsymbol{\rm{e}}_Q))
    其中 \boldsymbol{\rm{W}}^q,\boldsymbol{\rm{W}}^p,\boldsymbol{\rm{W}}^r \in \mathbb{R}^{l \times l},\boldsymbol{\rm{w}}\in \mathbb{R}^l, b\in\mathbb{R}l 是 LSTM 的隱含層神經(jīng)元個(gè)數(shù)(從后面可以看出,作者將所有用到的 LSTM 的隱含層神經(jīng)元個(gè)數(shù)都設(shè)置為 l ), \overrightarrow{\boldsymbol{\rm{h}}}_{i-1}^r 是單向 match-LSTM 的上一個(gè) (位置 i-1 ) 隱藏層狀態(tài), (\cdot \otimes \boldsymbol{\rm{e}}_Q) 表示通過重復(fù)復(fù)制 (repeat) 一個(gè)向量或者標(biāo)量 Q 次,從而產(chǎn)生一個(gè)矩陣(復(fù)制后的 Q 個(gè)向量,在新的維度上進(jìn)行堆疊 (stack))或者列向量。
    由此產(chǎn)生的注意力權(quán)重 \overrightarrow{a}_{i,j} 表示文章的第 i 個(gè)單詞與問題的第 j 個(gè)單詞之間的匹配度 (degree of matching)。接著,作者使用注意力權(quán)重向量 \overrightarrow{a}_i 對(duì)問題進(jìn)行加權(quán),并與文章的第 i 個(gè)單詞的表示向量進(jìn)行結(jié)合,具體實(shí)現(xiàn)公式如下:
    \overrightarrow{\boldsymbol{\rm{z}}}_i = \begin{bmatrix} \boldsymbol{\rm{h}}_i^p\\ \boldsymbol{\rm{H}}^q \overrightarrow{a}_i^{\intercal} \end{bmatrix}
    再將 \overrightarrow{\boldsymbol{\rm{z}}}_i 喂進(jìn)一個(gè)標(biāo)準(zhǔn)的單向 LSTM 形成作者所謂的 match-LSTM 。
    \overrightarrow{\boldsymbol{\rm{h}}}_i^r = \overrightarrow{LSTM}(\overrightarrow{\boldsymbol{\rm{z}}}_i,\overrightarrow{\boldsymbol{\rm{h}}}_{i-1}^r)
    其中,\overrightarrow{\boldsymbol{\rm{h}}}_i^r \in \mathbb{R}^l
    作者還進(jìn)一步建立了一個(gè)反方向的 match-LSTM。 目的是獲取文章中各個(gè)單詞在全部方向上的上下文編碼表示。具體實(shí)現(xiàn)公式如下:
    \overleftarrow{{\boldsymbol{\rm{G}}}}_i = \rm{tanh}(\boldsymbol{\rm{W}}^q\boldsymbol{\rm{H}}^q + (\boldsymbol{\rm{W}}^p\boldsymbol{\rm{h}}_i^p + \boldsymbol{\rm{W}}^r\overleftarrow{\boldsymbol{\rm{h}}}_{i+1}^r + \boldsymbol{\rm}^p) \otimes \boldsymbol{\rm{e}}_Q)
    \overleftarrow{a}_i = \rm{softmax}(\boldsymbol{\rm{w}}^\intercal\overleftarrow{{\boldsymbol{\rm{G}}}}_i + b \otimes \boldsymbol{\rm{e}}_Q))
    其他部分與正向的 match-LSTM 相似。
    最后再將兩個(gè)方向的 match-LSTM 輸出結(jié)果進(jìn)行拼接,具體實(shí)現(xiàn)公式如下:
    \overrightarrow{\boldsymbol{\rm{H}}}^r = [\overrightarrow{\boldsymbol{\rm{h}}}_1^r,\overrightarrow{\boldsymbol{\rm{h}}}_2^r,...,\overrightarrow{\boldsymbol{\rm{h}}}_P^r]
    \overleftarrow{\boldsymbol{\rm{H}}}^r = [\overleftarrow{\boldsymbol{\rm{h}}}_1^r,\overleftarrow{\boldsymbol{\rm{h}}}_2^r,...,\overleftarrow{\boldsymbol{\rm{h}}}_P^r]
    \boldsymbol{\rm{H}}^r = \begin{bmatrix} \overrightarrow{\boldsymbol{\rm{H}}}^r\\ \overleftarrow{\boldsymbol{\rm{H}}}^r \end{bmatrix}

  3. Answer Pointer Layer
    最后一層, the Answer Pointer (Ans-Ptr) Layer ,受到 the Pointer Net 的啟發(fā)。該層使用 \boldsymbol{\rm{H}}^r 作為輸入。由于存在之前提到的 the sequence modelthe boundary model 兩種模式,因此,下面分別講述這兩種模式的具體實(shí)現(xiàn):

    • The Sequence Model
      the sequence model 中,答案通過一個(gè)整數(shù) (integer) 序列 \boldsymbol{a}=(a_1, a_2, ..., a_k) 表示,各個(gè)整數(shù)分別代表所選擇的單詞在原文章中的位置。
      因?yàn)橐粋€(gè)答案的長(zhǎng)度是不固定的,為了在一個(gè)確定的時(shí)間點(diǎn)停止答案單詞的生成,作者設(shè)置 a_k 的取值范圍為 1P+1 , P+1 是一個(gè)特殊值,代表答案的結(jié)束。 當(dāng) a_k = P+1 時(shí),停止答案生成。
      為了生成第 k 個(gè)答案單詞,首先使用注意力機(jī)制來獲取一個(gè)注意力權(quán)重向量 \beta_k \in \mathbb{R}^{P+1} 。\beta_{k,j}(1\leq j < P+1) 表示選擇文章中第 j 個(gè)單詞作為第 k 個(gè)答案單詞的概率, \beta_{k,(P+1)} 表示在位置 k 停止答案生成的概率。 \beta_k 的具體計(jì)算公式如下:
      \boldsymbol{\rm{F}}_k = \rm{tanh}(\boldsymbol{\rm{V}}\tilde{\boldsymbol{\rm{H}}}^r + (\boldsymbol{\rm{W}}^a\boldsymbol{\rm{h}}_{k-1}^a + \boldsymbol{\rm}^a) \otimes \boldsymbol{\rm{e}}_{(P+1)})
      \beta_k = \rm{softmax}(\boldsymbol{\rm{v}}^\intercal\boldsymbol{\rm{F}}_k + c \otimes \boldsymbol{\rm{e}}_{(P+1)})
      \tilde{\boldsymbol{\rm{H}}}^r \in \mathbb{R}^{2l \times (P+1)}\boldsymbol{\rm{H}}^r 與 一個(gè)零向量的拼接, \tilde{\boldsymbol{\rm{H}}}^r = [\boldsymbol{\rm{H}}^r; 0], \boldsymbol{\rm{h}}_{k-1}^a \in \mathbb{R}^l 是 answer LSTM 的上一個(gè) (位置 k-1) 的隱藏層狀態(tài), answer LSTM 定義公式如下:
      \boldsymbol{\rm{h}}_{k}^a = \overrightarrow{LSTM}(\tilde{\boldsymbol{\rm{H}}}^r\beta_k^{\intercal}, \boldsymbol{\rm{h}}_{k-1}^a)
      【這個(gè) answer LSTM 與 match-LSTM 十分相似】
      對(duì)答案序列的生成概率進(jìn)行建模:
      p(\boldsymbol{\rm{a}}|\boldsymbol{\rm{H}}^r) = \prod_k p(a_k|a_1,a_2,...,a_{k-1}, \boldsymbol{\rm{H}}^r)
      p(a_k = j|a_1,a_2,...,a_{k-1}, \boldsymbol{\rm{H}}^r) = \beta_{k,j}
      在模型訓(xùn)練時(shí),最小化下面定義的損失函數(shù)【對(duì)數(shù)似然函數(shù)?】:
      -\sum_{n-1}^N \log {p}(\boldsymbol{\rm{a}}_n| \boldsymbol{\rm{P}}_n, \boldsymbol{\rm{Q}}_n)
      【很好奇,這種模式生成的答案,人類是否可以讀懂,可能答案中的單詞是亂序的】
    • The Boundary Model
      The Boundary Model 的工作方式與 The Sequence Model 十分相似, 不同的是它只需要預(yù)測(cè)兩個(gè)索引 a_sa_e 。因此,在 the Boundary Model 中,不需要特殊值 P+1 ,不需要對(duì) \boldsymbol{\rm{H}}^r 進(jìn)行零填充,答案生成的概率模型簡(jiǎn)化為:
      p(\boldsymbol{\rm{a}}|\boldsymbol{\rm{H}}^r) = p(a_s|\boldsymbol{\rm{H}}^r)p(a_e|a_s, \boldsymbol{\rm{H}}^r)
      【實(shí)際實(shí)現(xiàn)過程中是否需要滿足 a_s < a_e
      作者還對(duì) the boundary model 進(jìn)行擴(kuò)展:加入了一個(gè)查找機(jī)制 (search mechanism) 。在預(yù)測(cè)的過程中,作者嘗試著限制范圍的長(zhǎng)度 (the length of the span) 和通過 由 p(a_s) \times p(a_e) 計(jì)算得到的最高概率 進(jìn)行范圍的全局搜索 (globally search the span)。此外,如果范圍 (boundary) 是一個(gè)固定長(zhǎng)度的序列,則可以創(chuàng)建雙向 Ans-Ptr (類似于雙向的 match-LSTM) 。
      【不是很懂那個(gè)搜索機(jī)制的具體實(shí)現(xiàn),只知道限制了文章中單詞搜索的范圍 (boundary or the span),不再是 1P (這里的 P 是非固定的數(shù)值)。文章的實(shí)驗(yàn)部分也沒有詳細(xì)說明,只能后續(xù)從開源代碼進(jìn)行分析。】
      【這個(gè)搜索機(jī)制,貌似以后會(huì)用到,可以學(xué)一下】

模型結(jié)構(gòu)圖:

實(shí)驗(yàn)部分參數(shù)設(shè)置

  • 使用 GloVe 預(yù)訓(xùn)練詞向量, 未登錄詞初始化為零向量。
  • LSTM 的隱含層維度 l 為 150 或者 300。
  • 使用 ADAMAX 優(yōu)化器 , 其中 \beta_1 = 0.9 , \beta_2 = 0.999 來對(duì)模型進(jìn)行優(yōu)化。
  • 每次更新時(shí), batch 大小為30。
  • 沒有使用 L2 正則化約束。
  • 兩個(gè)性能評(píng)估指標(biāo):
    • 基本真實(shí)答案的精確匹配百分比 (percentage of exact match with the ground truth answers)。
    • 詞層次的F1分?jǐn)?shù) (word-level F1 score) ,對(duì)比預(yù)測(cè)的答案和基礎(chǔ)真實(shí)答案的每個(gè)單詞。

實(shí)驗(yàn)結(jié)果

作者提供的開源代碼

https://github.com/shuohangwang/SeqMatchSeq

Reference

  1. Wang S, Jiang J. Machine comprehension using match-lstm and answer pointer[J]. arXiv preprint arXiv:1608.07905, 2016.
  2. Wang S, Jiang J. Learning natural language inference with LSTM[J]. arXiv preprint arXiv:1512.08849, 2015.
  3. Vinyals O, Fortunato M, Jaitly N. Pointer networks[C]//Advances in Neural Information Processing Systems. 2015: 2692-2700.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡(jiǎn)介 抽取式QA是要在文檔中定位問題的答案。模型輸入是【Passage,Question】,模型輸出是【start...
    冰源閱讀 7,222評(píng)論 0 4
  • 最近在研究問答系統(tǒng),但是在查找資料的過程中一直處于懵逼狀態(tài),因?yàn)閱柎鹣到y(tǒng)分類比較多,根據(jù)不同的依據(jù)可以分為不同種類...
    hiyoung閱讀 3,613評(píng)論 0 3
  • 寫作理由:產(chǎn)品經(jīng)理的含金量在下降? 有人會(huì)問產(chǎn)品經(jīng)理的含金量下降?是的,在下降。 這幾天有很多人的通過QQ、微信等...
    光痕閱讀 719評(píng)論 2 2
  • 作者:【英】愛德華.德博諾 筆記作者:木可sky(個(gè)人微信:daimooc) 2018年09月17日于西安 字?jǐn)?shù)...
    木可sky閱讀 805評(píng)論 0 1
  • “ 卷珠簾·品好味 ”紅鼎國(guó)際在重慶是私房菜的代名詞,而在B座的他好似私房菜系列的一眼清泉,靜靜的流淌在寂靜的山谷...
    食游集閱讀 344評(píng)論 0 0

友情鏈接更多精彩內(nèi)容