基于检索的多轮对话增强序列推理模型
多轮对话系统建模分为基于生成文本的方法和基于检索的方法。2019年,阿里达摩院开源了新一代人机对话模型 Enhanced Sequential Inference Model(ESIM),论文链接这里。该模型是基于检索的多伦对话模型,j将准确率提升至 94.1%,曾一度打破世界纪录。笔者近期拜读了论文,对项目代码也进行了源码级分析。对于项目的理解,这里写几点体会。
要点一
基于检索的多轮对话侧重于面向目标,着重于从一组对话候选文本中选择正确的回复。多轮对话回复的过程就是完成选择一句恰当回复的任务,该模型将多轮对话内容连接成一个长序列,并将多轮对话回复选择任务转换为一个句子对的二进制分类(即下一个句子是否是当前对话的回复)任务。
要点二
多轮回复选择任务是在给定多轮对话的情况下,从候选池中选择下一对话内容。该模型将问题转换为二进制分类任务,即对于给定多轮对话和候选回复,模型只需要确定候选回复是否正确。
要点三
增强顺序推理模型(ESIM)是基于注意力机制力的句子对分类方法,主要由三个主要组成部分组成,即输入编码(Input Encoding)、局部匹配(Local Matching)和匹配合成(Matching Composition)。下图是模型的基本架构。
其中,局部匹配是关键,即将对话和回复之间的局部语义关系建模是确定回复是否正确的关键组件。因为正确的回复通常与文本中的一些关键字有关,它可以通过对局部语义关系建模来获得。摒弃直接将对话和回复编码为两个密集向量,而是使用交叉注意力机制将标记与对话对齐并重新回复,然后计算标记层级的语义关系。注意力机制的计算公式如下图:
要点四
实际预测时,需要从 120000 个句子的候选池中选择下一个回复话语。如果直接使用基于交叉注意力机制的 ESIM 模型,则计算成本是让人难以接受的。可以先使用基于句子编码的方法从 120000 个句子中选择前 100 个候选话语,然后使用 ESIM 重新排列它们,这样的方式也是行之有效的。基于句子编码的方法使用了如下图所示的 Siamese 架构。