SIGIR 2019 |基于BERT的历史答案编码实现多轮会话问答

提出一种历史答案嵌入方法,有效整合对话历史至基于BERT的对话问答模型,显著提高处理长历史会话信息的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

会话搜索是信息检索社区中的一个新兴话题。多轮对话搜索的主要挑战之一是对对话历史进行建模以回答当前问题。现有方法或者将历史问题和答案放置在当前问题之前或使用复杂的注意机制来模拟历史。

论文地址:
https://arxiv.org/abs/1905.05412
代码地址:
https://arxiv.org/abs/1905.05412https://github.com/prdwb/bert_hae

引言

本文提出了一种概念上简单但高效的方法,称为历史答案嵌入。它可以将对话历史无缝集成到基于BERT构建的对话问答(ConvQA)模型中。 本文提出了一种简化但具体的解决会话搜索的通用框架。

任务

给定一段文本 p p p,会话中的第k个问题 q k q_{k} qk,和会话历史 H k H_{k} Hk(包括前k-1轮的问答信息),任务是根据问题和历史信息在文本 p p p中寻找一个片段来回到问题 q k q_{k} qk

模型

整个模型框架包括三个部分:ConvQA model, history selection module, and history modeling module,在实际中history modeling module 可以嵌入到ConvQA model中。给定一个训练样本( p p p, q k q_{k} qk, H k H_{k} Hk, a k a_{k} ak),history selection module 从历史会话集中选择一个子集 H k ′ H'_{k} Hk,history modeling module将 H k ′ H'_{k} Hk编码后融入到ConvQA model中。整个模型框架结构图如下:

history selection module:历史信息选择模块。这个模块可以是任何学习到的选择策略。本文选择当前问题的前n轮信息。
ConvQA model:阅读理解模块采用BERT模型。首先将问题拼接在文章的前面,中间加上分隔符[SEP], 整个序列的前后分别是[CLS]和[SEP]。BERT模型的输入是输入序列的三种向量之和,包括:词向量,位置向量,和句段向量。BERT模型的输出是输入序列中每个token的语义向量。然后紧接着一个输出维度是2全连接层,用来计算每个token分别答案开始和结束的概率。
history modeling module:历史信息编码模块。这个模块学习两个历史答案向量,用来指示当前这个token是不是历史答案的一部分。本文把所得的向量加到BERT输入的每个向量中,这样不仅会影响BERT最后输出当前token的向量,也会影响到其他token的向量。模块结构如下:

实验

使用数据使用QuAC,此数据集包含信息搜索者和提供者之间的交互式对话。搜索者试图通过提问来了解隐藏的维基百科段落, 他/她只能访问该段落的标题,提供者通过短暂的段落回答问题。 许多问题都与对话历史共同引用。训练集/验证集分别有11K /1K对话框,具有83K/7K问题,所有对话都在12回合之内。

实验结果


对比BERT模型,BERT+HAE中加入的历史信息极大的提高了模型效果。BERT+PHQA将历史问题和答案都前置与当前问题,BERT+PHA只讲历史答案前置与当前问题,这两个方案都起到明显的作用,而且两者之间差异很小,这说明了历史问题的作用很小,当前的答案主要和历史答案有关系。本文的BERT+HAE比历史信息前置方案的效果更好,说明本文对历史信息方案的建模更加有效果。虽说本文的BERT+HAE模型F1仅略低于FlowQA模型,但是训练的时间仅是FlowQA的五分之一。

上图是不同模型在不同历史信息数量情况下的表现,从图中可以看出本文的模型HAE在5或6轮会话下表现最好,根据 BiDAF++的论文, BiDAF++模型在2轮情况下表现最好,说明本文的模型可以处理长历史会话信息。而PHQA和PHA的表现随着轮数的增加,模型指标下降的很厉害。

结论

本文提出了一个历史答案嵌入方法来模拟ConvQA中的对话历史。大量实验表明本文可以快速高效的处理长历史会话信息。



扫码识别关注,获取更多论文解读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值