检索式的方法依赖文本匹配技术,在诸多候选回复中,选择匹配分数最高的作为回复;
生成式的方法使用 Seq2Seq 模型,编码器读取对话历史,解码器直接生成相应回复。
前者凭借回复相关性高,流利度高等优势,在工业界取得了更多的应用。
以 BERT 为代表的预训练模型为自然语言处理领域带来了新的春天,在聊天机器人上也不例外。在检索式多轮对话任务中,基于 BERT 的模型在 Ubuntu Dialogue Corpus 上达到了惊人的85.8%的 R_10@1,93.1%的 R_10@2 和高达98.5%的 R_10@5,已经基本接近了人类的表现。
但实际应用中,当前的对话模型选择出的回复往往相关性较好,但是经常出现常识和逻辑错误等问题。由于现有的大部分检索式对话数据集都没有关注这种对话逻辑问题,导致评价指标也无法直接反映模型对对话逻辑的掌握程度。针对此问题,微软研究院提出了多轮对话推理数据集 MuTual。
相比现有的其他检索式聊天数据集,MuTual 要求对话模型具备常识推理能力;相比阅读理解式的推理数据集,MuTual 的输入输出则完全符合标准检索式聊天机器人的流程。因此,MuTual 也是目前最具挑战性的对话式数据集。测试过多个基线模型后,RoBERTa-base 表现仅为70分左右。目前已有多个知名院校和企业研究部门进行了提交,最优模型可以达到87分左右,仍与人类表现有一定差距。
论文地址:http://arxiv.org/abs/2004.04494
GitHub地址:https://github.com/Nealcly/MuTual
Learderboard地址:https://nealcly.github.io/MuTual-leaderboard
现有的检索式对话数据集,诸如 Ubuntu、Douban,对于给定的多轮对话,需要模型在若干候选回复中,选出最合适的句子作为对话的回复。然而这些数据集主要关注模型能否选出相关性较好的回复,并不直接考察模型的推理能力。随着 BERT 等预训练模型的涌现,模型在此类数据集上已经达到了很好的效果。
已有的针对推理的数据集(DROP、CommonsenseQA、ARC、Cosmos等)大多被设计为阅读理解格式。它们需要模型在阅读文章后回答额外问题。由于任务不同,这些现有的推理数据集并不能直接帮助指导训练聊天机器人。下表为对话和基于推理的阅读理解的常用数据集:

数据集构建

标注者截选原对话中具备回答问题信息的片段,根据正确选项构造正确的回复(图1右回复 A),根据两个错误选项构造两个错误的回复(回复 C 和回复 D)。
为了进一步提升难度,引入额外的推理信息,标注者还需根据正确选项构建一个负面的回复(回复 B)。另外,标注者需要保证在无上文信息情况下,所有候选回复在逻辑上皆合理。这样可以让数据集聚焦于检测模型在多轮对话中的推理能力,而非判断单个句子是否具有逻辑性。
作者还在标注过程中控制正确和错误的回复与上文的词汇重叠率相似,防止模型可以通过简单的根据文本匹配选出候选回复。MuTual 数据集主要包含聊天机器人需要的六种推理能力:态度推理(13%)、数值推理(7%)、意图预测(31%)、多事实推理(24%)和常识等其他推理类型(9%)。

数据集以 Recall@1(正确检索结果出现在检索结果第一位),Recall@2(正确检索结果出现在检索结果前两位),MRR(Mean Reciprocal Rank, 正确检索结果在检索结果中的排名的倒数)作为评价指标。





上图展示了前 n 轮对话被删除情况下模型表现显著下滑,证明了解决 MuTual 中的问题需要依赖多轮推理而不是单轮推理。
尽管以 BERT 为代表的预训练模型很大程度上解决了检索式对话的回复相关性问题,但是依然难以解决真实对话场景中的常识和逻辑问题,导致聊天机器人的真实用户体验依然不尽人意。现有的检索式对话数据集都没有直接对该问题进行建模,因此我们提出了 MuTual 数据集,用于针对性地评测模型在多轮对话中的推理能力,欢迎大家下载使用。(本文作者:崔乐阳、吴俣)