论文:Towards Building Large Scale Multimodal Domain-Aware Conversation Systems
论文地址 :https://www.aclweb.org/anthology/P19-1565/
研究问题:
在开放域的对话系统中,如何将对话引导到目标主题上,如下图所示:
难点和解决方案:
- 如何平衡自然地聊天和目标引导
解决方案:将整个对话系统解耦为独立的模块,并以不同的粒度处理挑战。具体来说,模型包括一个对话轮次级别(turn-level)的迁移预测器,来解决平稳迁移的问题;一个话语级别(discourse-level)的目标导向策略,来接近对话的目标;一个回复检索器,来生成合适的对话回复。
研究了不同的关键字转移方法,包括基于PMI的转移、基于神经的预测和混合的基于kernel的方法,并对子模块和系统性能进行定量评估 - 缺少公共数据集
解决方案:从现有的日常生活聊天语料库中获得了一个关键词增强会话数据集
前人的研究:
聊天系统分类:
- 任务导向对话系统:对话系统用来完成特定目标,如信息查询、谈判等
- 聊天导向对话系统:没有特定的目标
之前的研究主要通过一些新型的神经网络结构来改进语言表达,提高任务性能。但依然有聊天前后不一致、反映迟钝等限制。商业聊天机器人小冰和第一个亚马逊Alexa挑战冠军都强调要提高与用户的参与度。
为了鼓励话语级(discourse-level)策略,之前的研究已经可以使模型在对话级进行推理。第一类方法利用了潜变量模型(latent variable models)来推断系统响应的潜在表示,将语言生成过程与决策分离;另一种方法是创建混合系统,将手工制作的coarse-grained actions作为神经对话系统的一部分。这些系统通常专注于特定领域,如价格谈判和电影推荐。
问题定义
给定一个目标,希望聊天系统从任意的初始话题开始与人进行对话,并最终将对话引向目标。
本文中,目标定义为一个单词,表示为t。目标只呈现给系统,人类是不知道的。对话从一个通常由人随机选择的话题开始。在每个对话回合中,当系统想要做出回应时,它可以访问历史对话,目的是满足:
- 过渡流畅,使反应在当前的对话语境中自然和适当
- 目标引导,推动对话达到指定的目标。即当人类或系统在话语中提到目标或类似的词时,目标已经实现
模型结构
针对过渡流程和目标引导两个要求,系统由几个核心模块组成:
上图中,discourse-level的目标导向策略(右边)首先选择一组有效的关键词,turn-level的迁移预测器(中间)计算这些关键词的分布,然后选择最可能有效的关键词(music),并将其输入到关键词增强响应检索模块(中间),以生成下一个响应。
- Turn-level Keyword Transition 对话轮次级别的迁移预测器
基于历史会话,预测下一个合适的关键字。不涉及最终目标,和传统的闲聊型系统一致。这里提出了三种方法
-
基于PMI(pointwise mutual information)的方法:是一种基于统计的方法,两个单词之间的PMI分数由下面得到:
p(wi)是单词wi出现的概率,logp(w_i|w_j)是指由单词wj转移到wi的概率
由当前的关键词根据PMI分数选择分数最高的作为下一个关键词 基于神经网络的方法:以端到端的方式预测下一个关键词。具体来说,使用循环网络来编码对话历史,并将结果特性提供给预测层,以获得下一回合的关键字分布
基于kernel的方法:给定当前关键词和一个候选的关键词,首先计算它们词向量之间的余弦相似度,将它输入到K个RBF核的内核层中,将这个K维的结果输入到一个全连接层中,输出的分数作为两个词之间的得分
内核层负责多对一关键词的转换,参数的学习方式与基于神经网络的预测相同,实验发现这种方法的效果最好
Discourse-level Target-Guided Strategy 话语级别的目标导向策略
具体地是将当前词和目标词的词向量之间的余弦值作为两个词关系的度量。在每轮预测下一个关键词时,首先根据这个策略选择一组有效的关键词(规则是度量值只能递增,即词语越来越相似),然后再由1中的方法选择最终的一个词Keyword-augmented Response Retrieval 回复检索器
通过检索的方式生成最终的回复。具体是:用 RNN 来编码对话历史和关键词,以及训练集中的候选回复语句;然后计算候选语句和对话历史的点乘,候选语句和关键词的点乘;这两个结果进行连接后再传给一个全连接网络和 sigmoid 函数,得到候选语句的匹配得分
实验环节
使用PersonaChat数据集,通过TF-IDF和一些语音特征来提取关键词
针对关键词预测任务,评估指标使用检索式系统中常用的R_n@K和P@1,另外使用Cor.来评估关键词提取的效果,它表示两个关键词的相似性
首先是比较三种关键词生成方案的效果如下:
基于kernel的方法取得了最好的效果。
对于整体的实验,评估包括机器人之间的对话和人类评估两个方面。使用WordNet来识别同义词,如果相似性得分大于0.9就视为达到目标。对话轮数限定为8轮,8轮内没有达到目标就算失败。实验结果如下: