论文阅读笔记(五)【ACL 2021】Answering Ambiguous Questions through Generative Evidence Fusion and Round-Trip P

本文介绍了在开放域问答中解决模糊问题的新方法,名为REFUEL。该方法通过生成性证据融合从大量段落中收集证据,并使用往返预测来发现可能的解释。模型首先进行段落检索和重排序,然后使用融合解码器生成答案。当找到多个答案时,通过问题消歧生成消歧问题。往返预测能发现首次预测中遗漏的解释,通过语言模型验证过滤不正确的问答对。实验表明,REFUEL在模糊问题回答上优于现有模型,能够发现更多的合理解释。
摘要由CSDN通过智能技术生成

通过生成性证据融合和往返预测回答模糊问题

关键词: 生成性证据融合; 往返预测; 模糊问题

摘要

一般的开放域QA问题: 在开放域问答中,问题很可能是模棱两可的,因为用户在制定问题时可能不知道相关主题的范围。因此,系统需要找到问题的可能解释,并预测一个或多个可能的答案。当发现多个看似合理的答案时,系统应为每个答案重写问题以解决歧义。所以分为两步: 第一是找答案; 第二是预测答案; 第三是多个答案时,需要重新检查问题;

我们的方法:第一和二是找答案和预测答案: 模型聚集和组合来自多个段落的证据,以自适应地预测模糊问题的单个答案或一组问题-答案对;我们提出了一种新的往返预测方法,以迭代方式生成我们的模型在第一次传递中未能找到的其他解释,第三是:然后验证并过滤出不正确的问答对,以获得最终的消歧输出;
模型:REFUEL
数据集:AMBIGQA (NQ-OPEN and TriviaQA. )

提出的往返预测是一种模型不可知的通用方法,用于回答不明确的开放域问题,它改进了我们一些基线模型。

Introduction

开放域问题是使用不同主题的段落集合回答问题的任务;
难点: 开放域问题的起源是问题的歧义性

而这个难点问题的答案就是自适应预测答案,当有多个答案时,预测一组同样合理的答案。 当预测一组多个答案时,应该提供一个明确的问题重写来澄清每个解释。
SpanSeqGen模型将该问题分为两个任务:答案预测和问题消歧;
答案预测:他们使用提示问句首先检索和重新排序段落,然后采用BART预训练的Seq2seq来生成所有可能的答案,条件是提示问题和前8个段落的连接。
问题消歧: 基于BART,他们首先在大规模开放领域QA数据集NQ-OPEN上预训练一个问题生成模型,生成给出答案和前8段的问题。然后他们将其作为一个问题消歧模型进行微调,以生成基于提示问题、答案和段落的消歧问题

但是上面的模型有三个缺点: 第一是只选择8个相关段落可能排除了信息量大的段落; 第二是NQ-OPEN上的问题生成前训练与AMBIGQA上的问题消歧微调不匹配;第三是与地面真实数据相比,SPANSEQGEN预测的平均答案数量要小得多
针对上面的问题,第一,REFUEL使用fusion-decoder在编码器中单独处理每个段落,在解码器中融合它们的编码,比SpanSeqGen多了12倍的段落(我们的为100); 第二,我们提出了一个删除标记的训练前任务,通过随机删除每个问题的信息范围,将NQ-OPEN转换为一个**“模糊的”QA设置**。因此,训练前的任务和微调任务是一致的,同时加入了基于插入的加权损失来强调新插入的标记; 第三,提出双向预测方法,以发现REFUEL在第一遍中未能预测到的其他解释。我们不断地将生成的问题输入REFUEL,直到我们的模型没有预测到新的答案。

贡献
对于显著推动在回答模糊的问题的现状,可以总结如下:

  • 我们提出了一个证据聚集的方法,可以有效地使用大量的文章,以揭示更多的候选解释的歧义问题。
  • 我们提出了一个标记删除的前训练任务,以减少前训练与问题消除的微调之间的不匹配。基于插入的加权损失进一步有助于捕获与答案相关的约束。
  • 我们提出了一种双向预测方法,以发现在第一次预测中错过的更多解释,并使用基于条件概率的滤波方法进一步细化。

REFUEL

该方法分为三个步骤:

  1. 段落检索和重排序模块
  2. 将重排序的通道和提示问题作为输入,单通道QA对儿生成模型进行第一次预测,就是预测一个答案或一组消除歧义的QA对。
  3. 双向预测基于条件概率的过滤方法细化了第一预测过程

2.1文章检索与重新排序

使用DPR密集通道检索器进行检索。 首先,将所有的维基百科页面分成100个标记(应该是一种标准)的段落,产生了24M个段落;然后DPR将所有的段落映射成d维的向量,计算提示问题的表示,并检索出与问题向量最接近的N个通道(我们使用N=1000)。
输入提示问题和N个段落的连接,我们将Bert作为我们的重新排序器,允许提示问题和段落之间的Cross-attention,通过CLS和一个线性层获得相关分数。重排序后,QA对儿生成模型将K个通道(K = 100)作为输入。

2.2单通道QA对生成

单道QA对生成模型的步骤包括回答预测模块和问题消歧模块。
首先,将重排序的段落和提示问题 Q p Q^p Qp一块输入,回答预测模块生成一个或者多个模棱两可答案 A 1 , . . . , A m A_1, ..., A_m A1,...,Am。 如果找到了多个貌似合理的答案,提示问题就被视为歧义问题; 这样问题消歧模块会为该歧义问题的每个预测答案 A i A_i Ai生成消歧问题 Q i d Q_i^d Qid

2.3 Round-Trip Prediction

现有的工作预测的答案比实际情况少47%,因此,我们提出了双向预测,其中包括双向生成步骤和语言模型验证步骤
Round-Trip Generation:保持检索到的相同段落,我们不断地将生成的消除歧义的问题输入Answer Prediction模块,以检查是否生成了任何新的答案,并生成相应的消除歧义的问题,直到没有新的预测答案。就像在图2中, ( Q 1 d , A 1 ) (Q_1^d, A_1) (Q1d,A1) ( Q 2 d , A 2 ) (Q_2^d, A_2) (Q2d,A2)是经过第一个预测通道后,两对经过模棱两可的问题 Q p Q^p Qp后的消除歧义的QA。当再次将 Q d 1 Q_d^1 Qd1输入到答案预测模块时(第一轮双向预测),我们发现除了之前预测的答案 A 1 A_1 A1之外,还预测了一个新的答案候选人 A 3 A_3 A3。然后我们生成相应的问题 Q d 3 Q_d^3 Qd3。 这个循环一直持续到没有新的预测答案
语言模型验证: 通过往返生成(Round-Trip Generation),我们从模糊的提示问题中生成一组QA对,但其中一些是不正确的。这里我们采用一个验证过程来过滤掉这些不正确的预测。
如何消除? 最近的工作合成QA对生成使用了EM(Exact Match (EM)验证)方法来删除QA对。 EM模型是:训练一个QA模型作为验证模型,当预测模型的答案是 ( a ′ ≠ a ) (a' ≠ a) (a=a),我们会删除预测(q, a)。然而,这种EM验证方法只适用于事实类阅读理解任务如SQuAD,在这个任务里QA模型具有接近人类的准确性,从而不会错误地过滤掉太多正确的QA对。
不是使用硬过滤,而是采用“语言验证模块LM”。LM验证是一种基于条件概率的软过滤QA对的方法。在LM验证中,我们首先利用AMBIGQA(二义性QA数据集)中的消歧QA对训练条件语言模型。条件语言模型被训练来估计gold消除歧义问题的答案的可能性。一旦训练完成,它就被用来给REFUEL生成的QA对(q, a)打分,这是给定问题q和段落的答案的可能性,

其中 N a N_a Na是生成的答案的长度,最后,我们根据LM评分对所有预测的QA对重新排序,并根据阈值Th = 6.1丢弃QA对。阈值是根据开发集调整的。

3单通道QA对生成细节

这一部分是对上一部分中第二部分的详细解释!
在这里插入图片描述

3.1 Answer Prediction(查看问题和答案的匹配度)

上面的左侧图片
SPANSEQGEN :提示问题和排名最高的段落串联成单个序列进行BART编码,这受到BART最大输入序列长度(1024子词,相当于8个段落)的极大限制。因此,与GroundTruth相比,SPANSEQGEN发现对提示问题的解释更少
Fusion-in-Decoder: 为了确保检索和重新排序的段落的广泛覆盖,我们的答案预测模块使用fusion - decoder方法(Izacard和Grave, 2020),这允许我们缩放处理段落的数量。
具体实现过程: 将提出的问题和它对应的每个段落concat后分别独立地放入 B A R T A P BART_{AP} BARTAP中,然后,所有经过encoder的token-level的表示被连接到一个单一序列中, B A R T A P BART_{AP} BARTAPdecoder对所有通道进行关注,以聚合和合并证据。最后, B A R T A P BART_{AP} BARTAPdecoder生成一个接一个的a sequence of plausible answers,由[SEP]分隔。 因为这里没有使用交叉通道的注意力,所以才可以大大的减少复杂度,才可以比SPANSEQGEN多出12倍的输入通道(多大100个,16000个词)。
考虑到AMBIGQA是一个只有10k训练样本的小数据集,我们首先对 B A R T A P BART_{AP} BARTAP在 NQ-OPEN进行预训练,以预测一个答案,然后在AMBIGQA上对它进行微调,以预测一个或多个答案。

3.2 Question Disambiguation

如果前一个模块产出了多个可信的答案,那么就会激活消歧模块。 这里通过对每个预测答案生成提示问题,从而达到消歧重写的目的。由于我们不知道哪个输入段落是得出预测答案的关键证据,问题消歧模块将答案预测阶段的相同段落作为输入。与答案预测模块 B A R T A P BART_{AP} BARTAP类似,我们的问题消歧模块 B A R T Q D BART_{QD} BARTQD以同样的方式处理输入,但是不同的是 B A R T Q D BART_{QD} BARTQDencoder额外的将 B A R T A P BART_{AP} BARTAP的输出 A i A_i Ai同样作为输入(见上图即可得知了)。

Token-Deletion Pre-training(删除标记的预训练): 与Answer Prediction类似,我们也利用大规模的NQ-OPEN数据进行预训练,生成一个可以在给定段落和答案后给出会给出问题的模型,然后对其进行微调,以便在给定提示问题、答案和段落的AMBIGQA上消除问题。然而, the question generation pre-training task中没有所需要的输入问题来消除歧义,导致了前训练和微调之间的不匹配。消融术研究表明,这种预训练方法对问题消歧几乎没有帮助。
为了解决前训练和微调之间的不匹配, 我们提出了TokenDeletion前训练任务。其思想是在训练前构造新的合成的模棱两可的问题,以减少不匹配。
方法:第一步:给定一个来自NQOPEN的问题 Q Q Q,我们随机删除其中的一个信息跨度,产生部分问题 Q s Q^s Qs。这个局部问题的设计是为了模拟微调阶段的模糊问题 Q p Q^p Qp。然后,第二步:Token-Deletion Pre-training(删除标记的预训练)目标是从部分问题 Q s Q^s Qs、答案和段落中恢复完整的问题 Q Q Q。通过这种方式,tokendeletion预训练将微调阶段对准。

提示问题通常需要通过添加新的约束来重写,包括事件/实体引用、属性、回答类型等。例如,图1中消除歧义的问题q1在歧义提示问题之后插入“由一个组合的团队”。因此,我们将信息性span定义为至少包含以下词性标签之一的span: ’ ADJ ', ’ NOUN ', ’ NUM ', ’ PROPN ', ’ SYM ', ’ VERB '。跨度长度在[1,5]中均匀采样。

Insertion-based加权损失(基于插入的加权损失)
由于消除了歧义的问题是对歧义提示问题的一个小修改,大多数标记都可以直接从输入中复制。这里我们引入了一种基于插入的加权损失方法,将重点放在消歧问题的新添加标记上,这可能是消歧提示问题的关键。给定提示问题 Q p Q^p Qp,我们从消歧问题 Q d : q i n Q^d: {q^{in}} Qd:qin中找到新插入的令牌。对 B A R T Q D BART_{QD} BARTQD进行微调的最后损失是,所有问题标记的原始负对数可能性损失的组合,加上一个增加插入标记可能性权重的术语:

其中 L n l l = ∑ i = 1 n log ⁡ ( q i ∣ A , Q p ,  Psg  ) \mathcal{L}_{n l l}=\sum_{i=1}^{n} \log \left(q_{i} \mid A, Q^{p}, \text { Psg }\right) Lnll=i=1nlog(qiA,Qp, Psg ),n是被消除了歧义的问题的tokens的数目, λ = 3.5 \lambda{ = 3.5} λ=3.5是一个超参数调整开发集(dev.set.)

4. Experiments

4.1 Experimental Setup

Dataset: AMBIGQA数据集: 为了解决开放领域QA中问题的歧义性而构建的,它从NQ-OPEN中取样了14,042个问题,这是一个大规模的开放领域的QA数据集,每个问题只有一个答案, 并要求注释者搜索、导航和阅读多个维基百科页面,以找到尽可能多的解释,结果,每个问题都被注释为一个答案或多个消除歧义的QA对,这取决于可以找到多少种解释。Train、development和test集的大小是10036, 2002, 2004。在AMBIGQA中,每个问题平均有2.1个不同的答案。为了测试REFUEL在任何可能模棱两可的问题上的泛化能力,我们还在两个开放域QA数据集上评估了它:NQ-OPEN和TriviaQA.

Implementation Details在附录a中。我们在https: //github.com/amzn/refuel-open-domain-qa上发布我们的模型和实验的源代码

评价指标: 让 ( q 1 , a 1 ) , . . . , ( q m , a m ) (q_1, a_1),...,(q_m, a_m) (q1,a1),...,(qm,am)表示m对QA预测。 ( q ^ 1 , a ^ 1 ) , … , ( q ^ n , a ^ n ) \left(\hat{q}_{1}, \hat{a}_{1}\right), \ldots,\left(\hat{q}_{n}, \hat{a}_{n}\right) (q^1,a^1),,(q^n,a^n)是n个gold QA对。每个预测的QA对 ( q i , a i ) (q_i, a_i) (qi,ai)的评估顺序是对所有黄金QA对的正确性评分: c i = 1 ( a i = a ^ j ) f ( q i , q ^ j ) c_{i}=\mathbb{1}\left(a_{i}=\hat{a}_{j}\right) f\left(q_{i}, \hat{q}_{j}\right) ci=1(ai=a^j)f(qi,q^j),其中 f ( q i , q ^ j ) f(q_i, \hat{q}_j) f(qi,q^j)是问题的相似函数。 ( q ^ j , a ^ i ) (\hat{q}_{j}, \hat{a}_{i}) (q^j,a^i)并不会用来评估其它的预测QA对,因为它用于 ( q i , a i ) (q_i, a_i) (qi,ai),总体正确性由预测与参考之间的F1计算

F 1 a n s ( a l l ) F1_{ans}(all) F1ans(all): 在Answer prediction子任务中,所有的例子都会被评估,在这其中, f f f函数总是产出1。 这个度量表示为 F 1 a n s ( a l l ) F1_{ans}(all) F1ans(all)
F 1 a n s ( m u l t i ) F1_{ans}(multi) F1ans(multi): 而对于具有多个黄金QA对的例子子集,分别在答案预测子任务和问题消歧子任务进行了评价。仅在这个子集上计算的答案预测指标记为 F 1 a n s ( m u l t i ) F1_{ans}(multi) F1ans(multi)
BLEUEDIT-F1: 为了评估问题消除歧义的表现,BLEUEDIT-F1用于函数 f f f,被标注为 F 1 B L E U F1_{BLEU} F1BLEU F 1 E D I T − F 1 F1_{EDIT-F1} F1EDITF1。 EDIT-F1计算从提示问题到预测消除歧义问题的添加和删除unigrams的F1分数。

4.2 Experimental Results

Main Results.表1显示了开发和隐藏测试集上的性能。即使没有双向预测,REFUEL(无RTP)在答案预测子任务和问题消歧子任务上都比SPANSEQGEN表现得更好。此外,通过发现更多更好的QA对,往返预测确实进一步提高了性能,开发集中每个提示问题的QA对从1.55对提高到了1.72对。第4.3节对往返预测进行了全面的分析。

“REFUEL w/o RTP”是不使用往返预测的单通道预测模型。

Controlled Comparison with SPANSEQGEN

除了双向预测外,REFUEL在输入通道方面比SPANSEQGEN有两个优势:(1)我们检索前N=1000个通道(而不是SPANSEQGEN的100个通道),在前100个通道中获得更高的答案召回率(2)REFUEL需要K=100个输入通道,而SPANSEQGEN最多需要1024个子单词(K≈8)。为了建立受控和公平的比较,我们删除了REFUEL的往返预测部分,并使用与SPANSEQGEN (N=100, K=8)相同的输入通道给REFUEL (w/o RTP)喂食。结果如表2所示。

其中N和K分别表示的是Development集中的检索/重排序的数量和QA输入的段落数。
#QAs: 每个提示问题的预测QA对的平均数量;

  • :我们复制的结果
    结果表明: (1)在相同的设置下,我们的结果还是要好于SPANSEQGEN (2)我们的模型的效果还是得益于检索阶段的answer recall以及允许更多的输入通道。

对其他数据集的泛化: 在NQ-Open和TriviaQA上评估了我们的模型,并且没有在这些数据集进行微调。当REFUEL预测多个答案时,我们取第一个预测答案进行EM评估;我们还引入了一种新的Oracle EM度量,如果黄金答案与当前问题的任何预测答案相匹配,则认为预测是正确的;下表显示,即使没有特定于数据集的微调,REFUEL也具有竞争性的性能。当REFUEL在NQ-OPEN和TriviaQA中发现问题的多种解释时,我们在4.4节中手动检查消除了歧异的QA对的质量。

4.3往返预测的效果

我们将我们提出的往返预测(往返预测=往返生成+ LM 验证)与几种替代方法进行了比较,并研究了其对SPANSEQGEN和DPR Reader等其他模型的泛化能力。结果下表所示。
Round-Trip Generation Only:我们通过只对REFUEL进行往返生成来研究核查过程的必要性。结果表明,Round-Trip Generation可以多生成33.5%的QA对,但较低的 F 1 a n s ( A L L ) F1_{ans}(ALL) F1ans(ALL)表明,当提示问题不存在歧义时,该策略可能会产生过多的QA对。因此,验证过程对于删除一些不正确的QA 是必要的。

LM Verification vs. EM Verification:如2.3节所述,我们比较了现有的EM Verification方法与我们的LM Verification。结果表明,EM Verification删除了太多的QA对——剩余的QA对的数量(1.43)甚至比不做往返预测(1.55)还要少。他证实了我们在2.3节中的直觉,即EM Verification并不适合于开放领域的QA任务,因为它在开放域问题上表现性能差。

对其他模型的归纳: 我们表明,通过在我们复制的基线模型DPR Reader和SPANSEQGEN上使用往返预测,往返预测是一种与模型无关的通用方法,用于回答可能模棱两可的开放域名问题。在双向预测的帮助下,DPR Reader和SPANSEQGEN生成了11.7%和12.3%的QA对,这导致整体性能提高了3.7%和2.1% (Comb)。

4.4 Human Evaluation

由于在AMBIGQA中收集的答案不一定是详尽的,所以有可能模型生成了正确的解释,但在AMBIGQA中却遗漏了。因此,我们雇了3个工人来评估生成消除歧义的问题和检索段落的答案的正确性。 令 ( q 1 , a 1 ) , … , ( q n , a n ) (q_1, a_1),…,(q_n, a_n) (q1,a1)(qn,an)对于同一提示问题生成的n个QA对,我们定义了两级正确性如下: #C-QAs: (q_i, a_i)被认为是正确的,如果 a i a_i ai q i q_i qi的正确答案; #CD-QAs:(q_i, a_i)被认为是正确的;(1) a i a_i ai q i q_i qi的正确答案并且(2)任何 a j ( j ≠ i ) a_j(j≠i) aj(j=i)是一个 q i q_i qi的错误答案 #CD-QA是用来检查消歧问题的正确性的,因为模棱两可的问题可能有多个有效答案。我们从每个QA对的3个注释者那里获得大多数判断。对于每个数据集,我们随机抽取50个具有多个预测答案的提示问题,并在**#CD -QA中应用QA交换策略,共产生960个问题-回答-段落三元组。表5的结果显示REFUEL(不带RTP)在#CD -QA**上比SPANSEQGEN正确生成的QA对多113%。此外,双向预测(RTP)可以在所有数据集中找到更正确的解释。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值