Multi-Perspective Context Matching for Machine Comprehension
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
摘要部分
以前的机器理解(MC)数据集要么太小,无法训练最终的深度学习模型,要么难以评估当前阅读理解技术的能力。新发布的SQuAD数据集消除了这些不利因素,并给我们一个机会来研究一个更好的阅读理解模型。基于此数据集,我们提出了一个多视角上下文匹配Multi-Perspective Context Matching(MPCM)模型,它是一个end-to-end系统,直接预测答案的开头和结尾点。我们的模型首先优化了文章中的每一个词向量,方法是根据问题计算出相关权重。然后,利用双向LSTMs对问题和加权通道进行编码。对于文章中的每一点,我们的模型从多个角度将这一点的上下文与编码问题进行匹配,并生成一个匹配向量。对于匹配的向量,我们使用另一个双向的LSTM来聚合所有的信息并预测起始点和结束点。实验结果表明,该模取得了良好效果。
简介部分
前两部分略~
为了解决之前MC数据集的不足,Rajpurkar等人(2016)开发了斯坦福问答数据集(SQuAD)。与其他数据集相比,SQuAD数据集更加真实和具有挑战性,原因有以下几个:
- (1)比以前手动标记的数据集大了两倍;
- (2)所有问题都是人工编写的,而不是自动生成的完形填空式问题;
- (3)答案可以是文章中的任意范围,而不是有限的一组选择或实体;
- (4)回答这些问题需要不同形式的推理。
在这项工作中,我们关注的是SQuAD数据集,并提出了一个端到端深度神经网络模型来机器阅读理解。我们的基本假设是,如果这个范围的上下文和问题非常相似,那么这个范围很有可能是正确答案,基于这一假设,我们设计了一个多视角上下文匹配(Multi-Perspective Context Matching, MPCM)模型,通过从多个角度将文章中的每个点的上下文与问题进行匹配来识别答案范围。我们的模型不是明确地列举所有可能的跨度并对它们进行排序,而是通过用贯穿全文的全局标准化概率分布分别预测起点和终点来确定答案范围。实验结果表明,该模型在取得了较好的效果。
在接下来的部分中,我们首先简要定义MC任务(第2部分),然后详细介绍MPCM模型(第3部分),然后在SQuAD据集(第4部分)上评估我们的模型。
2 Task Definition
一般来说,机器阅读理解包含一个问题、包含答案的段落以及正确的答案范围。要做好这个任务,机器阅读模型需要理解文章中的问题、原因,然后确定答案跨度。表1展示了来自SQuAD的三个示例。形式上,我们可以将SQuAD数据集表示为一组元组(Q;P;A),其中Q = (q1:qM)是长度为M的问题,P = (p1...pj...)为长度为N的文章,a = (a_b;a_e)就是答案范围,a_b和a_e是开始和结束位置。 阅读理解任务可以表示为条件概率估计的大小P(A|Q;P)。基于训练集,并预测答案:
其中A(P)是一组回答的候选对,我们做一个简单的独立假设预测开始和结束位置:
其中P(a_b|Q;P)(或P(a_e|Q;P))是答案范围开始(或结束)点的概率。
3 Multi-Perspective Context Matching Model
在本节中,我们提出了一个多视角上下文匹配(MPCM)模型来计算答案开始和结束位置的概率分布Pr(a_b|Q;P)和Pr(a_e|Q:P)。图1显示了我们的MPCM模型的体系结构。Pr(a_b|Q;P)和Pr(a_e|Q:P)仅在最后一个层分别预测。softmax层之下的所有其他层参数都是共享的。给定一对问题Q和文章P, MPCM模型通过以下六层估计概率分布:
Word Representation Layer:这一层的目的是用D维向量表示问题和短文中的每个单词。我们用两个分量构造了d维向量:(words)词嵌入和字(characters)组成。词嵌入是每个单词的固定向量,它是预先用GloVe(Pennington et al., 2014)或word2vec (Mikolov et al., 2013)训练的。字符组成的嵌入是通过将一个单词内的每个字符(也表示为向量)送入长短时记忆网络(LSTM)来计算的(Hochreiter和Schmidhuber, 1997)。该层的输出为问题Q的字向量序列:Q:[q1,...q_M],P:[p1,...p_M]。
Filter Layer. 在大多数情况下,回答问题只需要文章的一小部分(见表1中的例子)。因此,我们定义了过滤层来过滤掉文章中的冗余信息。首先,我们计算文章P中每个单词p_j的相关性程度r_j ,Wang et al. (2016 b),我们通过cosine余弦相似度计算文章中的单词和问题中的单词的相似度。并且获得其中最相关的部分。其次,我们用p‘_j = r_j·p_j对每个单词向量进行过滤,并将p‘_j传递到下一层。主要的观点是,如果文章中的一个词与这个问题更相关,那么在后面的步骤中应该考虑更多的这个词的信息。
Context Representation Layer. 这一层的目的是将上下文信息融入到文章和问题的每个时间步的表示中。我们使用双向LSTM (BiLSTM)为每个问题上下文进行编码。
与此同时,我们将同样的BiLSTM应用到文章中:
Multi-Perspective Context Matching Layer
这是MPCM模型中的核心层。这一层的目的是用多角度比较文章和问题的上下文。我们将这些多视角匹配函数定义为以下两个方向:
首先,空间加权匹配:
v_1和v_2是两个D维向量,W是可训练参数,m是视角或者说是选取的特征的数量,和返回值m是一个l维向量m =[m1...m2...ml]。每个mk是第k个角度的一个值,这个值是由两个加权向量的余弦相似度计算得到:
◦是元素乘法,W_k是W的第k行,它控制第k个透视图,并为d维空间的不同维度分配不同的权重。其次,在f_m的正交方向上,我们定义了三种匹配策略,将文章的每个上下文嵌入与问题进行比较:
(1)全匹配:将文章的每个前(或后)上下文嵌入与整个问题的前(或后)表示进行比较
(2)最大池化匹配:将文章的每个前(或后)上下文嵌入与问题的每个前(或后)上下文嵌入进行比较,只保留最大值
(3)均值匹配:类似于上颌匹配,但我们用均值操作代替了最大操作
因此,每个通道位置的匹配向量是所有匹配向量mj的拼接:
对于表1中的示例,正向Full-Matching向量对于问题#1非常有用,因为我们只需要匹配整个问题的左上下文。同样,向后Full-Matching向量对于问题2非常有用。然而,对于问题3,我们必须使用上颌匹配和均值匹配策略,因为左边和右边的上下文都需要部分匹配问题。
Aggregation Layer. 利用这一层对匹配的向量进行聚合,使得每个通道的时间步长都可以与周围的位置进行交互。我们将匹配向量合并到一个BiLSTM中,并为每个时间步骤生成聚合向量。
Prediction Layer. 我们预测了Pr(a_b|Q.P)的概率分布和公关P(a_e|Q;P)分别采用两种不同的前馈神经网络(如图1所示。我们将每一个时间步长的聚合向量分别输入前馈神经网络,计算出每一个时间步长的值,然后使用softmax运算对整个通道的值进行归一化。
4 Experiments
单词嵌入初始化,使用840B预先训练的300维Glove词向量(Pennington et al., 2014)。对于词汇表外(OOV)单词,我们随机初始化单词嵌入。我们将所有LSTM层的隐藏大小设置为100,并将我们的多视角匹配函数的透视图l设置为50。我们对图1中的每个层应用dropout,并将dropout 比例设置为0.2。为了训练模型,我们最小化了起始点和结束点的交叉熵,并使用ADAM optimizer (Kingma和Ba, 2014)更新参数。我们设置学习率为0.0001。对于解码,我们要求终点等于或大于起点
Results on the Test Set