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 的机器阅读理解任务可以表示为:在训练集上估计条件概率 Pr(A|Q,P) ,然后在测试实例上通过(1)预测答案。
A^* = \mathop{\arg\max}\limits_{A\in \mathcal{A}(P)} Pr(A|Q,P) \tag {1}
因为,\mathcal{A}(P) 的计算复杂度是 O(N^2) ,作者做了一个简单的假设:假设预测起始点和预测终止点这两个事件相互独立,因此(1)可以简化为 (2)
A^* = \mathop{\arg\max}\limits_{1\leq a_b \leq a_e \leq N} Pr(a_b|Q,P)Pr(a_e|Q,P) \tag {2}

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

作者提出一个多视角上下文匹配模型来对概率分布 Pr(a_b|Q,P)Pr(a_e|Q,P) 进行估计。

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

  2. 过滤层 (Filter Layer):
    在大多数情况中,文章中只有很少一部分的内容可以用问题的回答。因此,作者定义了过滤层来过滤文章中冗余信息。
    首先,计算文章中每个单词的关联度 r_jr_j 的计算公式如(3.1)(3.2):
    r_{i,j} = \frac{q_i^Tp_j}{\|q_i\|\cdot\|p_j\|} \tag{3.1}\\
    r_j = \mathop{\max}\limits_{i \in M}r_{i,j} \tag{3.2}
    然后,通过 (4) 对文章中的每个单词进行过滤,再将过滤后的向量传递给下一层。
    p^{'}_j = r_j \cdot p_j \tag{4}
    【这个过滤操作和思想或许可以学习利用,作者也是受到 match_LSTM[4] 的启发】

  3. 上下文表示层 (Context Representation Layer)
    该层的目的是将文章和问题的上下文信息合并到每个时间步表示中。
    作者分别使用了双向 LSTM 来对问题和文章的每个词进行上下文嵌入编码 (encode contextual embeddings)
    \overrightarrow{h}_i^q = \overrightarrow{LSTM}(\overrightarrow{h}_{i-1}^q, q_i), i = 1, ..., M\\ \overleftarrow{h}_i^q = \overleftarrow{LSTM}(\overleftarrow{h}_{i+1}^q, q_i), i = M, ..., 1\\ \tag{5}
    \overrightarrow{h}_j^p = \overrightarrow{LSTM}(\overrightarrow{h}_{j-1}^p, p^{'}_j), j = 1, ..., N\\ \overleftarrow{h}_j^p = \overleftarrow{LSTM}(\overleftarrow{h}_{j+1}^p, p^{'}_j), j = N, ..., 1\\ \tag{6}

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

    • 作者先定义了维度权重匹配,如公式(7)
      m = f_m(v_1,v_2; W) \tag{7}
      v_1v_2 是两个 d 维向量, W \in R^{l \times d} 是可训练参数, l 表示视角的个数,m = [m_1, ..., m_k, ..., m_l] 是一个维度为 l 的向量, 每个元素表示在相应视角下的匹配值。
      m_k 可以通过余弦相似函数 (8) 来计算两个加权向量的匹配值。
      m_k = cosine(W_k \circ v_1 , W_k \circ v_2) \tag{8}
    • 接着,在 f_m 的正交方向上,作者定义了三个匹配策略。
      • 完全匹配 (Full-Matching) :
        文章的每个前向(后向)上下文嵌入向量和整个问题的前向(后向)表示进行比较。(这里整个问题的表示就是取 LSTM 最后一个时间步的输出)。
        \overrightarrow{m}_j^{full} = f_m(\overrightarrow{h}_j^p, \overrightarrow{h}_M^q;W^1)\\ \overleftarrow{m}_j^{full} = f_m(\overleftarrow{h}_j^p, \overleftarrow{h}_1^q;W^2) \tag{9}
      • 最大池化匹配 (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}
    • 最后,文章中每个位置的匹配向量是各种匹配向量的拼接。
      m_j = [\overrightarrow{m}_j^{full};\overleftarrow{m}_j^{full};\overrightarrow{m}_j^{max};\overleftarrow{m}_j^{max};\overrightarrow{m}_j^{mean};\overleftarrow{m}_j^{mean}]
  5. 集成层 (Aggregation Layer)
    该层用于集成匹配向量,以便文章的每个时间步可以与周围位置进行交互。作者使用双向 LSTM 进行匹配向量的合并,生成每个时间步的集成向量。

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

模型结构图

实验结果

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.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容