2016 Multi-Perspective Context Matching for Machine Comprehension

2016 Multi-Perspective Context Matching for Machine Comprehension[5]

摘要

之前的机器阅读数据集因为规模太小以致于难以训练端到端的深度学习模型,或者难以评估当前机器阅读技术的能力。最新发布的 SQuAD 数据集缓解了这些限制 (alleviates these limitation) ,并提供了发展更多现实的阅读理解模型 (realistic MC models) 的机会。基于这个数据集,作者提出一个多视角上下文匹配模型 (Multi-Perspective Context Matching model) ,这是一个端到端系统,可直接预测答案在文章 (passage) 中的起始位置和终止位置。 作者先通过乘以一个由文章和问题计算得到的相关权重矩阵来调整每个词嵌入向量。然后,使用双向 LSTMs 来对问题和加权后的文章进行编码。接着,针对文章中的每个点(可以理解为每个词在文章中的相对位置),模型结合编码后的问题对每个点的上下文进行多个视角的匹配,并产生一个匹配向量。 在这些匹配向量上,再使用另一个双向 LSTM 对信息进行集成,最后预测起始点和终止点。

近年的阅读理解数据集

最近几年,为了测试和加快机器阅读理解技术的发展,开发了几个基准数据集 (benchmark datasets)。

  1. RCTest (2013)
    2013年创建了一个用得比较多的数据集 RCTest [1] ,基于这个数据集提出了很多阅读理解方法。
    但是,该数据集的规模大小限制了研究者建立端到端的深度神经网络模型。因此,在该数据集上表现很好的模型大多数是依赖于手工特征 (hand-crafted features) 或者 使用额外知识 (employing additional knowledge)
  2. the Daily Mail 和 the CNN (2015)
    为了应对大规模有监督数据的缺乏,2015年 [2] 创建了 the CNN 和 the Daily Mail 数据集。 基于这两个大规模的数据集,一些端到端的深度神经网络模型被提出,并成功应用。
    但是,有人针对这两个数据集进行了详细的手动分析,并得出结论:对于评估当前机器阅读理解技术来说,这两个数据集的困难度(困难系数?复杂度? difficult )还不够。

SQuAD

为了解决先前机器阅读理解所存在的缺点, [3] 开发了 the Stanford Question Answering dataset (SQuAD) 。
通过与其他数据集的对比, SQuAD 因为以下原因更加真实和挑战性:

  • 它比之前手动标记的数据集大了将近两个数量级。
  • 所有的问题都是人写的,替代了自动生成的问题,例如 the CNN 和 the Daily Mail 中自动生成的 Cloze 形式的问题。
  • 答案是文章中一个任意的范围 (an arbitrary span) ,而不是一个多选择或者实体的受限集合 (a limited set of multiple choices or entities) 。
  • 回答问题时需要不同形式的推理。

作者模型假设

  • 他们的基本假设是:如果文章 (passage) 某个范围的上下文信息与问题的信息十分相似,则这个范围内的上下文内容很有可能是正确答案。
  • 比起显式地枚举全部可能范围并对它们进行排序,作者的模型通过在整个文章的全局归一化概率分布下预测答案的起始点和终止点来识别答案范围。

任务定义

SQuAD 的机器阅读理解任务可以表示为:在训练集上估计条件概率 ,然后在测试实例上通过(1)预测答案。

因为, 的计算复杂度是 ,作者做了一个简单的假设:假设预测起始点和预测终止点这两个事件相互独立,因此(1)可以简化为 (2)

多视角上下匹配模型(MPCM)

作者提出一个多视角上下文匹配模型来对概率分布 和 进行估计。

  1. 词表示层 (Word Representation Layer)
    该层的目的是将问题和文章的每个词表示 维的向量。作者使用了两个组件: 词嵌入 (word embeddings) 和 字符构成嵌入 (character-composed embeddings)。
    词嵌入使用预训练词向量 GloVe 。
    字符构成嵌入通过把单词中每个字符(每个字符表示为一个向量)喂入 LSTM 中计算得到。【具体实现细节,作者没提到,我猜可能是取 LSTM 最后一层状态】

  2. 过滤层 (Filter Layer):
    在大多数情况中,文章中只有很少一部分的内容可以用问题的回答。因此,作者定义了过滤层来过滤文章中冗余信息。
    首先,计算文章中每个单词的关联度 。 的计算公式如(3.1)(3.2):


    然后,通过 (4) 对文章中的每个单词进行过滤,再将过滤后的向量传递给下一层。

    【这个过滤操作和思想或许可以学习利用,作者也是受到 match_LSTM[4] 的启发】

  3. 上下文表示层 (Context Representation Layer)
    该层的目的是将文章和问题的上下文信息合并到每个时间步表示中。
    作者分别使用了双向 LSTM 来对问题和文章的每个词进行上下文嵌入编码 (encode contextual embeddings)

  4. 多视角上下文匹配层 (Multi-Perspective Context Matching Layer)
    该层是 MPCM 模型的核心层,目的是通过多视角比较文章和问题的每个上下文嵌入向量。

    • 作者先定义了维度权重匹配,如公式(7)

      和 是两个 维向量, 是可训练参数, 表示视角的个数, 是一个维度为 的向量, 每个元素表示在相应视角下的匹配值。
      可以通过余弦相似函数 (8) 来计算两个加权向量的匹配值。
    • 接着,在 的正交方向上,作者定义了三个匹配策略。
      • 完全匹配 (Full-Matching) :
        文章的每个前向(后向)上下文嵌入向量和整个问题的前向(后向)表示进行比较。(这里整个问题的表示就是取 LSTM 最后一个时间步的输出)。
      • 最大池化匹配 (Maxpooling-Matching) :
        文章的每个前向(后向)上下文嵌入向量和问题的每个前向(后向)上下文嵌入向量进行比较。对于文章每个单词的匹配结果,只保留每个视角的最大值。
        \overrightarrow{m}_j^{max} = \mathop{\max}\limits_{i \in (i, ..., M)}f_m(\overrightarrow{h}_j^p,\overrightarrow{h}_i^q;W^3)\\ \overleftarrow{m}_j^{max} = \mathop{\max}\limits_{i \in (i, ..., M)}f_m(\overleftarrow{h}_j^p,\overleftarrow{h}_i^q;W^4) \tag{10}
      • 均值池化匹配 (Meanpooling-Matching) :
        这个策略与最大池化匹配类似,区别是保留每个视角的均值。
        \overrightarrow{m}_j^{mean} = \frac{1}{M}\sum_{i=1}^{M}f_m(\overrightarrow{h}_j^p,\overrightarrow{h}_i^q;W^5)\\ \overleftarrow{m}_j^{mean} = \frac{1}{M}\sum_{i=1}^{M}f_m(\overleftarrow{h}_j^p,\overleftarrow{h}_i^q;W^6) \tag{10}
    • 最后,文章中每个位置的匹配向量是各种匹配向量的拼接。
  5. 集成层 (Aggregation Layer)
    该层用于集成匹配向量,以便文章的每个时间步可以与周围位置进行交互。作者使用双向 LSTM 进行匹配向量的合并,生成每个时间步的集成向量。

  6. 预测层 (Prediction Layer)
    作者将每个时间步的集成向量分别喂入前馈神经网络中,计算每个时间步在网络的输出值,然后通过 softmax 函数对网络的输出值进行归一化,最后得到文章中每个位置作为起始点(终止点)的概率。

模型结构图

2016 Multi-Perspective Context Matching for Machine Comprehension_第1张图片

实验结果

2016 Multi-Perspective Context Matching for Machine Comprehension_第2张图片

Reference

  1. Matthew Richardson, Christopher JC Burges, and Erin Renshaw. 2013. Mctest: A challenge dataset for the open-domain machine comprehension of text. In EMNLP, volume 3, page 4.
  2. Karl Moritz Hermann, Tomas Kocisky, Edward Grefenstette, Lasse Espeholt,Will Kay, Mustafa Suleyman, and Phil Blunsom. 2015. Teaching machines to read and comprehend. In Advances in Neural Information Processing Systems, pages 1693–1701.
  3. Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. Squad: 100,000+ questions for machine comprehension of text. arXiv preprint arXiv:1606.05250.
  4. Shuohang Wang and Jing Jiang. 2016. Machine comprehension using match-lstm and answer pointer. arXiv preprint arXiv:1608.07905.
  5. Wang Z, Mi H, Hamza W, et al. Multi-perspective context matching for machine comprehension[J]. arXiv preprint arXiv:1612.04211, 2016.

你可能感兴趣的:(2016 Multi-Perspective Context Matching for Machine Comprehension)