论文阅读:Read + Verify: Machine Reading Comprehension with Unanswerable Questions

论文阅读:Read + Verify: Machine Reading Comprehension with Unanswerable Questions

来源:AAAI 2018

摘要:

以前的工作做阅读理解的时候,会预测一个没有答案的概率。但是,他们无法对有答案的结果进行合法性检查,来验证问题的可回答性。

为了解决这个问题,本文提出了一个系统,该系统首先会提取候选答案,然后产生无答案的概率,而且还利用答案验证器来确定预测答案是否由输入片段所包含。

另外,本文引入了两种辅助loss,以及三种不同的答案验证器的体系结构。

Introduction:

现在的阅读理解,默认有正确答案,然而很多情况下并不一定有正确答案。

为了处理无法回答的情况,存在一些难点,系统必须学会识别各种各样的语言现象,例如否定、反义词和段落与问题直接的实体变化。

以前的也有进行答案验证的工作,但他们没有考虑验证预测答案的合法性,来验证问题的可回答性。
在这里插入图片描述
系统有两部分组成:1、无答案阅读器,用于提取候选答案并检测无法回答的问题(无答案的概率,NA Prob)。2、答案验证器,用于确定提取的候选答案是否合法。
本文主要工作:

1、用两个辅助损失来增强现有的阅读器,分别来更好的处理答案提取和无答案检测的任务。

2、引入答案验证阶段,为了通过将答案句子与问题进行比较来找到支持答案的局部信息。针对答案验证任务,提出了三种不同的架构。第一个是顺序模型,将两个句子作为一个长序列处理;第二个模型试图捕捉两个句子之间的交互联系;最后一个是混合模型,他结合以上两种模型来测试性能是否可以进一步提升。

3、我们的系统在与答案验证器结合使用时,获得了最好的结果。(F1:74.8和71.5,最好的系统获得F1:74.2)

Background

Task Description

给定一个上下文段落和一个问题,机器不仅要找到可回答问题的答案,还需要检测无法回答的例子。

定义:
在这里插入图片描述
lp文章长度,i开始位置;lq问题长度,j开始位置。
在这里插入图片描述
A答案,lb答案长度,la答案开始位置。

可以应用一个共享的 softmax 函数来对无答案分数和跨度分数进行归一化,从而产生一个联合无答案目标,定义为:
在这里插入图片描述
其中 a 和 b 是真实的开始和结束位置,如果问题是可回答的,则 δ 为 1,否则为 0。 在测试时,一旦归一化的无答案分数超过某个阈值,就会检测到一个问题无法回答。
Approach

Reader with Auxiliary Losses

以前的研究存在两个问题:

1、对于答案提取来说,以前的读者没有接受过为无法回答的问题寻找候选答案的训练。解决:在我们的系统中,阅读器会提取一个合理的答案,送给所有问题的下游验证阶段。

2、至于无答案检测,由于跨度分数和无答案分数之间的共享归一化,可能会触发冲突。 由于这些归一化分数的总和始终为 1,因此过度自信的跨度概率会导致不自信的无答案概率,反之亦然。解决办法:提出了两个独立的辅助损失来独立优化和增强每个任务,而不会相互干扰。

Independent Span Loss(独立跨度损失):这种损失用于答案提取。对于没有答案的问题,我们会提取似是而非的答案作为目标答案。为了不与无答案检测冲突,我们使用多头指针网络额外产生另一对跨度分数,α和β。
在这里插入图片描述
其中多个头共享相同的网络架构但具有不同的参数。

然后,我们将独立的跨度损失定义为:
在这里插入图片描述
其中a和b是增强的真实答案边界。 最终的跨度概率是使用对两对 softmax 归一化跨度分数的简单平均池化获得的。

Independent No-Answer Loss(独立无答案损失):尽管使用多头指针网络来防止冲突问题,但仍然会削弱无答案检测,因为无答案分数 z 是用跨度分数标准化的。 因此,我们考虑专门鼓励对无答案检测的预测。 这是通过引入一个独立的无答案损失来实现的:
在这里插入图片描述
其中 σ 是 sigmoid 激活函数。 通过这种损失,我们期望模型在不考虑共享归一化操作的情况下对无答案分数 z 产生更自信的预测。

最后,我们将上述损失组合如下:
在这里插入图片描述
其中 γ 和 λ 是控制两个辅助损失权重的两个超参数。

Answer Verifier

将提取到的答案输入答案验证器,通过比较答案与问题得到支持答案的文本内容。

答案句子定义为:1、包含目标答案;2、错误的答案(似是而非的答案)。

三种架构:

如下图:1、将输入作为长序列的顺序模型;2、相互依赖的编码两个句子的交互模型;3、采用混合模型。
在这里插入图片描述
图二:(a)运行三种不同模型的输入结构。(b)Radford提出的Generative Pre-trained Transformer。(c)本文提出的token-wise交互模型,旨在比较两个句子并聚合结果以验证答案。

Model-I:Sequential Architecture

模型一中,将答案句子和问题连同提取的答案一起转换为有序的输入序列。然后采用OpenAI GPT来执行任务。

Model-II:Interactive Architecture

模型组成:

Encoding:使用GloVe embeding并且使用可训练的向量嵌入每个单词的字符。我们使用一个双向LSTM (BiLSTM) 对字符进行编码并连接两个最后的隐藏状态以获得字符级嵌入。 此外,我们使用二进制特征来指示单词是否是答案的一部分。 然后将所有嵌入与特征一起连接并由权重共享的 BiLSTM 编码,产生两个系列的上下文表示:
在这里插入图片描述
其中 ls 是回答句的长度,[·; ·] 表示连接。

Inference Modeling

推理建模层用于捕获两个句子之间的交互并产生两个推理感知句子表示。 我们首先计算所有元组 < si , qj > 的点积作为注意力权重,然后对这些权重进行归一化,从而得到如下趋向向量:
在这里插入图片描述
这里,bi 指来自问题 Q 的参与向量,用于答案句子 S 中的第 i 个单词,反之亦然。

接下来,为了分别比较对齐对 {(si , bi)}lsi=1 和 {(qj , cj )}lqj=1 以找到局部推理信息,我们使用权重共享函数 F 对这些对齐对进行建模为:
在这里插入图片描述
F可以有多种形式,例如BiLSTM、多层感知器等。 在这里,我们使用 Hu 等人提出的启发式函数 o = F(x, y)。

Intra-Sentence Modeling

接下来,我们应用一个句子内建模层来捕获每个句子内部的自相关性。 输入是推理感知向量 si 和 qj,它们首先通过另一个 BiLSTM 层进行编码。 然后我们使用上面描述的相同的注意机制,只是现在在每个句子和它自己之间,我们设置 aij = -inf if i = j 以确保单词不与自身对齐。 另一个函数 F 用于分别产生自我感知向量 si 和 qj。

Prediction

在最终预测之前,我们应用连接残差连接并使用 BiLSTM 将句子建模为:
在这里插入图片描述
然后应用平均-最大池化操作来汇总两个句子的最终表示,即 s¯i 和 q¯j 。 然后将所有汇总的向量连接起来并馈送到一个前馈分类器,该分类器由一个具有gelu激活的投影子层和一个 softmax 输出子层组成,产生无答案概率并且优化了负对数似然目标函数。

Model-III:Hybrid Architecture

将前两个模型的输出向量合并为一个联合表示。 然后应用统一的前馈分类器来输出无答案概率。

Experimental Setup

Dataset:SQuAD 2.0数据集。

Taring and Inference

我们的无答案阅读器接受了上下文段落的训练,而答案验证器接受了 Oracle 答案句子的训练。
Model-I 遵循无监督预训练和有监督微调的过程。 对于 Model-II,我们直接使用监督损失对其进行训练。对于Model-III,我们使用来自 Model-I 和 Model-II 的预训练参数初始化 Model-III,然后微调整个模型直到收敛。

Implementation

我们使用强化助记符阅读器 (RMR),SQuAD 1.1 数据集上最先进的阅读理解模型之一,作为我们的基础阅读器。 阅读器配置了其默认设置,并使用我们的辅助损失进行了无答案目标的训练。

我们在 [0.1, 0.3, 0.5, 0.7, 1, 2] 中对 γ 和 λ 运行网格搜索。 基于在开发集上的表现,我们将 γ 设置为 0.3,将 λ 设置为 1。

至于答案验证器,我们使用来自 Radford 等人的原始配置。 对于 Model-II,使用了学习率为 0.0008 的 Adam 优化器 ,隐藏大小设置为 300,并应用了 0.3 的 dropout 来防止过拟合。 阅读器的批量大小为 48,Model-II 为 64,Model-I 和 Model-III 为 32。

我们为阅读器使用 GloVe 100D 嵌入,为 Model-II 和 Model-III 使用 300D 嵌入。 我们利用 nltk tokenizer3 来预处理段落和问题,以及拆分句子。 段落和句子分别被截断不超过300字和150字。

Result:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值