IJCAI 收录论文分享:《Learning to Select Knowledge for Response Generation in Dialog Systems》。
一、背景
对话生成网络是近年对话研究的热点之一。然而很多生成模型容易生成非常苍白没有信息量的回复,诸如“哈哈”,“呵呵”等等。引入知识用于对话生成是一个近期非常具有潜力的研究方向。而对话生成过程中的知识引入非常具有挑战性。
以往很多工作都没有考虑对话本身知识利用存在的多样性的问题:给定一个上文,以及一个知识库,我们可以从知识库中选择多个不同的适合的知识(我们称之为先验知识选择,Prior Knowledge Selection, PriorKS)来回复。而给定一个训练语料(上文和回复),其实际使用的知识的范围(我们称之为后验知识选择,Posterior Knowledge Selection, PostKS)要比先验范围要狭窄。
如果数据集中没有提供知识选择的Ground Truth,而现存的很多方法简单用先验选择的知识用于训练过程,就可能导致在训练时融合了错误的知识。这造成了非常严重的后果:因为知识不匹配回复(response),生成模型无法学会去正确地利用知识,回复的效果就会下降。
图1 利用知识进行对话生成
如图1所示,在上文内容是有关band和reading的情况下,我们既可以利用K1来进行回复,也可以用K3进行回复,也就是K1和K3都是合理的PriorKS,但是考虑到训练数据的Response,我们在训练时应该只能考虑利用K3。 而如果在训练阶段只使用PriorKS,我们可能选择K1来进行训练,但是,K1对于生成当前的Response却没有作用,这就导致生成模型无法学会合理利用知识提高回复质量。
二、方案
为了解决上述问题,我们必须分割训练和预测时知识的选择过程。为此,我们引入额外的后验知识选择(Posterior Knowledge Selection, PostKS)模块,该模块输入是上文和response,输出是后验知识的选择,我们的模型简称为PostKS生成模型。
图2 PostKS模型的示意图
PostKS的对话生成模型主要包括3个部分:
①Encoder:每条Knowledge和上文会被独立编码表示成向量;
②Knowledge Manager: 包括PriorKS和PostKS两个Module。其中,PriorKS的Input是上文,output是对于knowledge的attention;PostKS的Input是上文 + Response,output是对于knowledge的attention;为了使得后验知识选择准确,我们利用Gumbel Softmax Layer,来使得后验选择的attention分布更加集中,使得选择可以更加精准;
③利用选择出来的knowledge以及上文来生成response的decoder。
PostKS的模型训练过程中优化的目标也包含3个部分:
①Negative Log-Likelihood:用于训练生成网络的常用Loss;
②KL Divergence Loss:该loss是先验选择和后验选择之间的KL-Divergence, 目标是为了拉近先验选择和后验选择的距离,使得先验训练更准确;
③ BOW Loss: 为了提升PostKS的准确度,我们还引入了一个额外的辅助Loss,是利用选择的知识来预测response的Bag-of-words的表示向量。这个Loss能够有效地加速后验选择的训练速度,借鉴了CVAE中用于加速recognition network训练的思路。
图3 PostKS模型结构图
三、效果
我们在PersonChat和Wizard of Wikipedia两个数据集上进行了验证。通过有效分离先验和后验的知识选择,PostKS模型相比其他基线从自动和人工指标上都有非常显著提升,包括BLEU、Distinct、Knowledge-F1等。
图4 模型人工和自动评测指标
图5 具体Case展示
此外,为了验证该技术的通用性,我们证明PostKS这个机制和具体Encoder、Docoder的模型结构无关,可以用在任何Response生成的网络结构上。为此,我们使用了当前在Persona数据集上表现最好的Lost In Conversation(LIC)的网络结构和模型。在该网络结构上同样添加了PostKS机制,并利用我们定义的Loss重新进行Fine-Tune。最终效果也远超原版模型。
图6 PostKS在LIC模型上的表现
四、总结
该文章提出了一种后验知识选择机制(PostKS),该方案通过分离先验和后验的知识选择,有效地解决了训练过程中无监督情况下的知识选择准确性问题。实验验证该方法能够大幅提高生成回复的质量,为后续利用知识的对话策略提供了有效的参考。
至此,《Learning to Select Knowledge for Response Generation in Dialog Systems》论文的分享到此结束,敬请期待更多百度NLP最新前沿进展分享。
【推荐阅读】点击查看↓
百度自然语言处理(Natural Language Processing,NLP)以『理解语言,拥有智能,改变世界』为使命,研发自然语言处理核心技术,打造领先的技术平台和创新产品,服务全球用户,让复杂的世界更简单。