【Day 3】机器阅读理解——常见机器阅读理解模型(下)

引言

本文介绍常见机器阅读理解模型中的R-NET、FusionNet和QA-Net。



R-NET

R-Net1在Attention计算中加入门机制。

作者引入了一个端到端的网络模型来解决基于给定文章回答问题的阅读理解问答任务。首先使用门控的基于注意力的循环网络来匹配问题和文章,以获得问题感知的文章表示。

作者提出了一个自匹配的注意力机制来改善文章表示,通过与文章自己进行匹配,这能有效的编码整个文章的信息。

最后应用指针网络来从文章中定位答案。

核心思想

image-20211124215259814

主要贡献在三个方面:

  1. 考虑到在回答特定问题时,文章中的单词具有不同的重要度,在基于注意力的RNN2上增加额外的门控。通过引入门控机制,基于门控注意的RNN根据文章与问题的相关性为其分配不同的重要度,屏蔽不相关的文章部分,强调重要的部分。
  2. 引入了自匹配机制,来动态地修正基于整篇文章信息的文章表示,能有效地压缩整篇文章的信息来回答问题。基于问题感知的文章表示,作者应用门控注意力RNN让文章与本身做匹配,来从文章中的每个单词中收集与当前文章单词相关的信息。
  3. 最后,作者提出了方法达到了当时最高水平。

模型由四部分组成:

  • RNN编码器分别为问题和文章编码(Question & Passage Encoding)
  • 门控匹配层进行问题和文章的匹配(Question-Passage Matching)
  • 自匹配层为整篇文章进行信息压缩(Passage Self-Matching)
  • 基于指针网络的答案边界预测层(Answer Prediction)

下面我们分别看下具体四部分的细节。

首先,一个双向RNN分别为文章和问题编码。然后基于门控注意力RNN匹配问题和文章,获取文章的问题感知表示。接着,应用自匹配注意力从整篇文章中获得信息来修正文章表示。最后喂给输出层去预测答案片段的边界。

问题和文章编码器

给定一个问题 Q = { w t Q } t = 1 m Q={wQ_t}_{t=1}m Q={wtQ}t=1m和一篇文章 P = { w t P } t = 1 n P={w_tP}_{t=1}n P={wtP}t=1n,首先将这些单词转换为相应的单词级嵌入向量(分别是 { e t Q } t = 1 m {eQ_t}_{t=1}m {etQ}t=1m和 { e t P } t = 1 n {e_tP}_{t=1}n {etP}t=1n)和字符级嵌入向量( { c t Q } t = 1 m {cQ_t}_{t=1}m {ctQ}t=1m和 { c t P } t = 1 n {c_tP}_{t=1}n {ctP}t=1n)。

通过将单词中的字符嵌入喂给双向RNN,得到最后的隐藏状态作为单词的字符级嵌入。这种字符级嵌入能很好地处理未登录词问题。

然后使用双向RNN来分别产生问题和文章中每个单词的新的表示 u 1 Q , , u m Q u_1Q,cdots,u_mQ u1Q,umQ和 u 1 P , , u n P u_1P,cdots,u_nP u1P,unP:
u t Q = BiRNN Q ( u t 1 Q , [ e t Q , c t Q ] ) (1) u^Q_t = ext{BiRNN}_Q (uQ_{t-1},[eQ_t,c_t^Q]) ag{1} utQ=BiRNNQ(ut1Q,[etQ,ctQ])(1)

u t P = BiRNN P ( u t 1 P , [ e t P , c t P ] ) (2) u^P_t = ext{BiRNN}_P (uP_{t-1},[eP_t,c_t^P]) ag{2} utP=BiRNNP(ut1P,[etP,ctP])(2)

论文中使用具体使用的RNN模型为GRU。

门控注意力循环网络

作者提出了一个门控注意力循环网络将问题信息融入文章表示中。门控用来控制文章中单词对于问题的重要性。给定义一个问题和文章表示 { u t Q } t = 1 m {u_tQ}_{t=1}m {utQ}t=1m和 { u t P } t = 1 n {u_tP}_{t=1}n {utP}t=1n,Rocktschel等人提出了通过软对齐问题和文章中的单词生成句子对表示 { v t P } t = 1 n {v_tP}_{t=1}n {vtP}t=1n:
v t P = RNN ( v t 1 P , c t ) (3) v_t^P= ext{RNN}(v_{t-1}^P,c_t) ag{3} vtP=RNN(vt1P,ct)(3)
其中 c t = a t t ( u Q , [ u t P , v t 1 p ] ) c_t=att(uQ,[uP_t,v^p_{t-1}]) ct=att(uQ,[utP,vt1p])是一个整个问题 ( u Q ) (u^Q) (uQ)的注意力池化(attention-pooling)向量:
s j t = v T tanh ( W u Q u j Q + W u P u t P + W v P v t 1 P ) a i t = exp ( s i t ) / ∑ j = 1 m exp ( s j t ) c t = ∑ i = 1 m a i t u i Q (4) s_j^t = v^T anh(W^Q_u u_j^Q + W_u^P u_t^P + W_v^P v_{t-1}^P)\ a_i^t =exp(s_it)/sum_{j=1}m exp(s^t_j) \ c_t = sum_{i=1}^m a_i^t u_i^Q ag{4} sjt=vTtanh(WuQujQ+WuPutP+WvPvt1P)ait=exp(sit)/j=1∑mexp(sjt)ct=i=1∑maituiQ(4)

每个文章表示 v t P v^P_t vtP动态地融入从整个问题中聚集的匹配信息。Wang等人2引入了match-LSTM,使用 u t P u_t^P utP作为RNN的一个额外的输入:
v t P = RNN ( v t 1 P , [ u t P , c t ] ) (5) v_t^P = ext{RNN}(v_{t-1}P,[u_tP,c_t]) ag{5} vtP=RNN(vt1P,[utP,ct])(5)

为了确定文章各部分的重要性,并注意与问题相关的部分,作者为RNN的输入( [ u t P , c t ] [u_t^P,c_t] [utP,ct])增加了另一个门:
g t = sigmoid ( W g [ u t P , c t ] ) [ u t P , c t ] = g t ⊙ [ u t P , c t ] (6) g_t = ext{sigmoid}(W_g[u^P_t ,c_t]) \ [u_tP,c_t]* =g_t odot [u_t^P,c_t] ag{6} gt=sigmoid(Wg[utP,ct])[utP,ct]=gt⊙[utP,ct](6)
与LSTM或GRU中的门不同,该额外的门是基于当前文章单词和它关于问题的注意力池化向量,侧重于问题和当前文章单词的相关性。该门有效地建模了阅读理解和问答中只有部分段落与问题相关的现象。 [ u t P , c t ] [u_tP,c_t]* [utP,ct]就是用来替换原来的 [ u t P , c t ] [u_t^P,c_t] [utP,ct]在后面使用。作者称之为门控注意力循环网络。

自匹配注意力

经过上一层得到了关注文章重要部分的问题感知的文章表示 { v t P } t = 1 n {v_tP}_{t=1}n {vtP}t=1n。一个问题是这样的文章表示对上下文的知识非常有限。文章上下文是回答问题的重要条件。

为了解决这个问题,作者提出了直接让问题感知的文章表示与自己匹。这样能动态地从整个文章中收集单词的信息,并将与当前文章相关的信息及其匹配的问题信息编码到文章表示 h t P h^P_t htP中:
h t P = BiRNN ( h t 1 P , [ v t P , c t ] ) (7) h^P_t = ext{BiRNN}(hP_{t-1},[vP_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值