论文阅读:Machine Comprehension Using MATCH-LSTM and Answer Pointer

这篇论文针对SQuAD数据集的特点提出了一个端到端的网络结构。相比于之前提出的其它阅读理解模型,本模型没有答案的候选集,同时答案不限定在一个词语。本模型综合了作者之前提出的match-lstm和Pointer-net,后者是为了限定答案在问题中提取。模型相比于SQuAD数据集作者在论文中提出的逻辑回归模型要有显著的提升。

问题陈述:给定一个passage,用一个d*P的矩阵表示,d表示词向量的维度,P表示passage的长度。给定一个question,用一个d*Q的矩阵表示,Q是问题的长度。输出答案a=(a_1,a_2,...),其中a_i表示passage中词的序号;或者输出答案a=(a_s,a_e),其中a_s,a_e分别表示答案在P中的起始和结束的位置。这两种输出方式对应两个不同的输出层模型(sequence model和boundary model)。因而训练集可以表示为\{(P_n,Q_n,a_n)\}^N_{n=1}

模型可以大致分为三层:第一层用一个单向LSTM得到P和Q中每一个term的表示,这个表示融合了上下文信息(实际上用单向LSTM相当于融合上文信息)。得到H^p \in \mathbb{R}^{l \times P}H^q \in \mathbb{R}^{l \times Q},其中l表示的是隐含层向量维度。经过第一层之后,P中的每一个词的表示p_i只蕴含了passage的上下文信息,接下来要做的是将question的信息融入进来重新表示每一个p_i。第二层就是match-lstm层,对于passage中的第i个词,考虑到question中每个词和它的匹配程度不同,因而融入question信息时考虑引入attention机制。具体attention的计算方式为:

\overrightarrow{G_i}=tanh(W^qH^q+(W^ph^p_i+W^r\overrightarrow{h}^r_{i-1}+b^p) \oplus e_Q)

\overrightarrow{a}_i=softmax(w^T\overrightarrow{G}_i+b \oplus e_Q)

其中W^q,W^p,W^r \in \mathbb{R}^{l \times l},b^p,w \in \mathbb{R}^l,b \in \mathbb{R}都是训练的参数,\overrightarrow{h}^r_{i-1}在之后会求得。这里在计算第question中各个词相对passage中第i个词的attention值时引入了question中的所有信息,以及前i-1个词与question的匹配信息,最终输出的\overrightarrow{a}_i维度为Q,代表question中各个词的attention值。最后将question中的词根据attention计算加权和,与passage中第i个词原本的表示拼接起来,就得到了第i个词融合question信息的新表示\overrightarrow{z}_i。再在\overrightarrow{z}_i上应用LSTM模型:

\overrightarrow{h}_i^r=\overrightarrow{LSTM}(\overrightarrow{z}_i,\overrightarrow{h}_{i-1}^r)

\overrightarrow{h}_i^r组成的矩阵称为\overrightarrow{H}^r。最后,用相同的方法,从另一个方向计算,得到\overleftarrow{H}^r,将他们拼接起来得到最终的match-lstm层输出H^r \in \mathbb{R}^{2l \times P}

在经过match-lstm层得到passage中每一个词融合了question信息后的最新表示之后,就可以进入输出层了。对于sequence model的输出层,利用类似attention的计算思路计算\beta _{k,j},意为选取passage中的第j个词作为answer中的第k个词的概率,其中j的取值范围为1到P+1,当j取P+1时意味着选词结束。计算公式如下所示:

F_k=tanh(V\widetilde{H}^r+(W^ah^a_{k-1}+b^a)\oplus e_{P+1}),

\beta _k=softmax(v^TF_k+c \oplus e_{P+1}),

这里的\widetilde{H}^r时上述的{H}^r与一个一维0向量拼接成的2l \times (P+1)矩阵,h^a_{k-1}包含着前k-1个选词信息,计算方式如下

h_k^a=\overrightarrow{LSTM}(\widetilde{H}^r\beta_k^T,h_{k-1}^a)

因而最终选定答案a=(a_1,a_2,...,a_k)的概率为

p(a)=\prod_k{\beta _{k,a_k}}

另外对于boundary model而言,不需要预测每一个词的位置,只需要预测开始与结尾的位置即可,方式与sequence的类似。在此基础上,由于预测开头和结尾只需要预测两个值,个数是确定的(sequence model不知道要预测多少个值),因而可以将sequence的方法改进成双向的。除此之外,还可以对开始和结尾之间的范围大小做一个限定,限定依据通过一个全局的搜索,找到一个最优的大小,计算方式是取p(a_s)\times p(a_e)最大的范围。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值