苑 浩,王 泳
(1. 中国科学院大学 工程科学学院,北京 100049;2. 中国科学院大学 人工智能学院,北京 100049)
多轮对话的开放域响应生成[1-2]目标是根据人类用户的话语生成有意义且有趣的响应。神经网络模型可以使用网络上的大量数据集,从而在该任务中引起了广泛关注。目前大多数神经对话生成模型都采用编码器-解码器(Encoder-Decoder)的结构,直接建立从输入查询到输出响应的映射,该映射统一处理所有查询-响应对并优化最大似然估计。但是,当模型收敛时,它们倾向于输出乏味和通用的响应,例如,“嗯”“好”“我不知道”等响应[3]。
针对这个问题,研究人员提出了很多方法改进Encoder-Decoder模型,从而生成更好的响应。改进主要可以分为下三类: ①第一种改进认为对话历史只是决定响应的因素之一,应该引入更加丰富及有用的信息,生成更加具体的响应[4-6]。②第二种改进不改变Encoder-Decoder的结构,只是改变解码的策略或者在Encoder-Decoder结构上添加更多组件。例如,添加和改进集束搜索(Beam Search) 解码策略[7-8]以及添加对抗生成网络(GAN)[9]等组件。③第三种改进不同于将最大似然估计(MLE)作为优化目标,而是引入条件变分自动编码器(CVAE)[10-11],它使连续潜在变量上的条件对数似然性的下限最大化。
但是现有的生成模型都存在一个共同的缺点,它们在处理上下文语句与源语句时,将上下文语句和源语句直接拼接作为整个对话历史处理,忽视了上下文语句和源语句在生成响应时的不同作用。将多轮对话分为当前轮的上下文和当前轮的源语句以及当前轮的响应三部分时,源语句决定了响应的重点,上下文负责填充响应的细节。……