DCN+:混合目标和深层残差协同注意力用于问答

Dcn+: Mixed objective and deep residual coattention for question answering

DCN+:混合目标和深层残差协同注意力用于问答

文章信息

Abstract

传统的问答模型使用交叉熵损失进行优化,从而鼓励精确答案,但代价是惩罚附近或重叠的答案。本文提出了一个混合目标,将交叉熵损失与自我批评行策略学习相结合。除了混合目标之外,本文还利用深度残差协同注意编码器改进了动态协同注意网络DCN,该编码器的灵感来自深层自我主义和残差网络方面的最近工作。本文的模型可以改善各种问题类型和输入长度之间的模型性能,特别是对于需要捕获长期依赖关系的长问题。在SQuAD上获得了75.1%的精确匹配准确率和83.1%的F1。

1. Instruction

用于监督模型的ground truth答案被定义为文档中的开始和结束位置。现有的训练方法利用两个位置的交叉熵损失来优化。如果答案在文本上相似,但是在位置上有所不同,这种脱节就特别有害,因为这些答案在文本上不同,因此也会受到相同的惩罚。例如:有人任务2017年的金州勇士队是NBA历史上最伟大的球队之一。问题是:哪支球队被认为是NBA历史上最伟大的球队之一。真实答案:2017年金州勇士队。span勇士也是一个答案,但是从传统的基于交叉熵的训练角度来说,它并不比span历史更好。

为了解决以上问题,本文提出了一个混合目标,该目标结合了位置上的传统交叉熵损失和通过强化学习训练的单词重叠度量。本文通过自我批判性策略学习来实现后一个目标,在这种学习中,奖励是基于proposed answer和ground truth之间的单词重叠。

本文的混合目标带来两个好处:

强化学习的目标是鼓励哪些文本上与ground truth相似的answer,并阻止那些与ground truth不符合的答案。

交叉熵目标通过鼓励一直正确的轨迹,极大地促进了policy学习。

最终的目标是既忠于评估指标,又在实践中迅速收敛。

2. Model

本文的模型是基于DCN进行改进的,他是有一个Coattention编码器和一个动态解码器组成。

  1. 首先,编码器对问题和文档进行编码,然后通过Coattention来建立相互依赖的表示形式。
  2. 然后,解码器在给定协同注意力的情况下产生起点和终点估计。

DCN解码器动态地迭代估计开始和结束的位置,在迭代之间的估计收敛到相同位置或达到预定义的最大迭代次数时停止。

2.1 Deep Residual Coattention Encoder

Coattention是一种双向的注意力,不仅要给阅读的文本段落生成以注意力权重,也要给问题生成一个注意力权重。

动态迭代的思想主要是模仿人类思考问题时,需要反复思考。对于模型输出的结果,不直接将它作为最终的结果,而是将它继续输入到模型中作为参考,迭代出新一代的输出,经过多轮迭代,直到输出不再变化或者操作迭代次数阈值。

由于DCN只有一个单向协同注意编码器,因此DCN组成复杂输入表示的能力受到限制。本文建议对Coattention编码器进行两处修改:

  1. 首先,通过叠加Coattention来扩展具有自注意力的共注意力编码器。这允许网络在输入上构建更丰富的表示。
  2. 其次,合并来自每个层的共同注意输出与残差连接。

DCN++模型

假设得到一个m个单词的文档和一个n个单词的问题。设 L D ∈ R e × m L^D\in R^{e\times m} LDRe×m, L Q = ∈ R e × n L^Q=\in R^{e\times n} LQ=∈Re×n分别表示文档和问题的词嵌入,其中e表示词嵌入的维度。通过BiLSTM获取文档编码 E 1 D E_1^D E1D和问题编码 E 1 Q E_1^Q E1Q,在这里作者用整数下标表示Coattention层数。

h表示隐藏状态大小。+1表示存在附加哨兵词(特殊标记),该哨兵词允许Coattention不集中在输入的任何部分。

文档与问题的亲和矩阵:

其中 A ∈ R ( m + 1 ) × ( n + 1 ) A\in R^{(m+1)\times {(n+1)}} AR(m+1)×(n+1)

将信息结合后的矩阵A分别按行和列求softmax,就可以得到document summary 和question summary 向量:

文档Coattention 上下文定义如下:

进一步使用另一个BiLSTM对summary进行编码:

公式3-5描述了单词Coattention层。本文通过类似的方法计算第二个Coattention层。

编码器的输出为:


其中Concat(A,B)表示矩阵A和B之间沿着第一维度的串联。

2.2 Mixed Objective Using Self-Critical Poliy Learning

DCN会在答案的开始位置上生成一个分布,并在答案的结束位置上生成一个分布。利用动态迭代的方式,反复迭代预测开始位置和结束位置。用 p t s t a r t ∈ R m p^{start}_t\in R ^m ptstartRm p t e n d ∈ R m p^{end}_t\in R^m ptendRm表示在第t个解码步骤产生的开始和结束分布。

为了方便起见,本文用 s t , s e s_t,s_e st,se表示在第t个解码步骤中模型对开始和结束位置的贪婪估计。其中 θ \theta θ表示模型的参数。与其他问答模型类似,DCN在开始位置分布和结束位置分布上使用交叉熵损失进行监督:

本文注意到,交叉熵优化目标与评估指标之前存在脱节。例如,假设得到的答案估计A和B都不于ground truth位置匹配。但是A具有与ground truth完全匹配的字符串,而B没有。尽管在两个评估指标下前者是正确的,但是交叉熵目标又同样地惩罚了A和B。在不太极端的情况下,A没有完全匹配,单单词与ground truth有一定程度的重叠,尽管F1指标的位置预测有误,但F1指标仍然比A偏爱A。

本文使用F1分数作为奖励函数,通过强化学习对这种偏好进行编码。

s ∧ t \overset{\wedge}{s}_t st表示在解码步骤t从估计的分布中采样的开始位置。

为了方便说明,本文将 R ( s , e , s ∧ T , e ∧ T ; θ ) R(s,e,\overset{\wedge}{s}_T,\overset{\wedge}{e}_T;\theta) R(s,e,sT,eT;θ)缩写为R。

不可为积分函数的期望梯度计算为:

将RL应用在NLP的关键问题之一是agent必须探索的不连续和离散的空间,以便找到一个好的策略。对于具有大型演化空间的问题,RL方法倾向于作为最大似然估计模型训练后的微调步骤应用。由于大量的预训练使得模型在微调过程中的探索受到限制。

本文把最佳化问题作为一个多任务学习问题来对待。

  1. 第一个任务:利用交叉熵的目标,优化与ground truth的匹配。
  2. 优化词汇与ground truth答案的重叠与自我批评的强化学习目标。

本文的损失函数:

如下图说明了如何计算混合目标:

混合目标的计算
在实践中,本文发现增加交叉熵任务可以通过修剪候选轨迹的空间来显著地促进政策学习——如果没有前者,由于潜在答案、文档和问题的空间很大,policy学习很难收敛。

3. Experiments

3.1 evaluate metric

EM:表示模型产生的答案span是否与ground truth span具有精确的字符串匹配。

F1:计算模型产生的答案span与ground truth span之间的单词重叠程度。

3.2 Results

4. 启示

  1. 可以将强化学习优化损失函数的方法移植到其他领域。
  2. 没有找到torch的代码,tf的代码又看不懂,有大佬复现的有代码能开源出来供大家学习吗?
  3. 欢迎关注微信公众号:自然语言处理CS,一起来交流NLP。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值