Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    使用match-lstm和答案指针进行机器理解

    语音识别与语义处理领域
    1
    1
    43
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 175****1239
      175****1239 last edited by

      使用match-lstm和答案指针进行机器理解

      Abstract

      阅读理解任务发布了一个新的数据集斯坦福问答数据集(SQuAD),该数据集提供了大量真实的问题及其答案,这些问题及其答案是人类通过众包创建的,该答案的长度时可变的。本文基于Match-LSTM和指针网络提出了一个模型用于解决以上问题。

      1. Instruction

      在一些数据集中,问题不提供候选答案,预计机器将使用给定文本中的任何token或token序列来回答问题。显然,没有给定候选答案的问题更具有挑战性,因为候选答案集合基本上包括文本中所有可能的token或token序列,因此要大得多。此外,答案跨越多个token的问题比答案只有一个token的问题更具有挑战性。Table 1 显示了一段样本文本及其相关的三个问题。
      来自维基百科上的一个段落和三个相关的问题以及答案,来自SQUAD数据集。段落中粗体的标记是预测的答案,而问题旁边的文本是ground truth。
      本文提出一种新的端到端神经体系结构来解决SQuAD中定义的机器阅读理解问题:

      提出了两种端到端的机器阅读理解神经网络模型,将Match-LSTM和指针网络相结合来处理数据集的特殊属性。

      在未知测试数据集上取得了59.%的匹配准确率和70.3%的F1匹配率。

      2.Model

      2.1 Match-LSTM

      作者在之前提出了一个预测文本蕴含的Match-LSTM模型。

      1. 在语篇蕴含中,给出两个句子,其中一个是前提,一个是假设。
      2. 为了预测前提是否包含假设,Match-LSTM模型顺序的检测假设的token。在假设的每个位置,使用注意力获得前提的加权向量表征。
      3. 然后,将该加权前提和假设的当前token的向量表示相结合,并将其馈送到LSTM中,作者称之为math-LSTM。
      4. match-LSTM基本上顺序地将注意力加权前提与假设的每个token的匹配聚集在一起,并使用聚集的匹配结果来做出最终预测。

      给定一个premise(前提),根据这个premise去判断相应的hypothesis(假设)正确与否。如果正确表示entailment(蕴含),否者是contradiction(矛盾)。

      2.2 Pointer-Net

      指针网络解决了一类特殊的问题:想要生成一个输出序列,其中的单词必须来自输入序列。与固定词汇表选择输出token不同,pt-net使用attention机制作为pointer,从输入序列中选择一个位置,并将这个位置所指的单词作为输出。

      受到指针网络的启发,本文采用了它来构造答案。

      2.3 Method

      本文要解决的问题可以表述为以下形式:

      • 获得一段文本,称之为段落,以及与该段落有关的问题。

        • 段落用矩阵P∈Rd×pP\in R^{d\times p}P∈Rd×p表示,其中P是段落的tokens长度,d是单词嵌入的维度。
        • 问题由矩阵Q∈Rd×QQ\in R^{d\times Q}Q∈Rd×Q表示,其中Q是问题的长度。
      • 目标是从段落中确定一个子序列作为问题的答案。

      具体来说,将答案表示为整数序列a=a1,…,a={a_1,…,}a=a1​,…,,其中每个aia_iai​介于1到P之间。利用pt-net选择答案的开始和结束,将要预测的答案表示为两个整数a=(as,ae)a=(a_s,a_e)a=(as​,ae​)。

      LSTM对question和passage进行预处理,match-LSTM对question和passage进行match,pointer-net从passage中选择tokens作为答案。

      2.3.1 LSTM Preprocessing Layer

      使用单向LSTM对passage和question进行预处理,将上下文我信息合并到文章和问题中每个token的表示中。

      Hp=LSTM⟶§H^p=\overset{\longrightarrow}{LSTM}§Hp=LSTM⟶§

      Hq=LSTM⟶(Q)H^q=\overset{\longrightarrow}{LSTM}(Q)Hq=LSTM⟶(Q)

      其中HpH^pHp是passage的向量表示,HqH^qHq是question的向量表示。

      2.3.2 Match-LSTM Layer

      本文将文本蕴含的match-LSTM模型应用到MC问题。question当做premise,将passage当做hypothesis,match-LSTM按顺序遍历该passage。在passage的第i个位置,用标准的word-by-word attention得到attention向量α→<em>i∈RQ\overset{\rightarrow}{\alpha}<em>i\in R^Qα→<em>i∈RQ。

      其中h→r</em>i−1∈Rl\overset{\rightarrow}{h}^r</em>{i-1}\in R^lh→r</em>i−1∈Rl表示第i-1处的match-LSTM的隐藏向量。⊗eQ\otimes e_Q⊗eQ​表示将左侧的向量或标量重复复制Q词,来生成矩阵或行向量(在列方向上扩展Q列,在新的维度上进行堆叠)。然后用注意力权重α→i,j\overset{\rightarrow}{\alpha}_{i,j}α→i,j​ 对questions的隐藏层输出进行加权,并将其跟passage的隐层输出进行拼接,得到一个新的向量z→i\overset{\rightarrow}{z}_iz→i​:

      将其馈送到LSTM:

      本文又在反方向构建了一个match-LSTM,为了获得一个表示形式,用于对段落中的每个tokens从两个方向进行上下文编码:

      再用相似的方法获得z←i\overset{\leftarrow}{z}_iz←i​。

      2.4 Answer Pointer Layer

      2.4.1 The Sequence Model

      为了生成用aka_kak​表示的第k个答案span。首先使用注意力机制获取注意力权重向量β<em>k∈R(P+1)\beta <em>k \in R^{(P+1)}β<em>k∈R(P+1),其中β</em>k,j(i≤j≤P+1)\beta</em>{k,j}(i\le j\le P+1)β</em>k,j(i≤j≤P+1)是从段落中选择第j个token作为答案中的第k个token的概率。



      将生成的答案序列建模为:

      损失函数:

      2.4.2 The Boundary Model


      边界模型的工作方式和序列模型相似,不同之处是只需要预测两个索引as,aea_s,a_eas​,ae​.

      3. Example

      3.1 Results

      4. 启示

      1. 比较早期的MC模型,但是引用指针网络进行边界预测是一个很大的创新点。
      2. 文本蕴含和MC模型都可以移植到其他NLP领域。
      3. 欢迎关注微信公众号:自然语言处理CS,一起来交流NLP。
      1 Reply Last reply Reply Quote 1
      • First post
        Last post