构建开放域聊天机器人的一个主要任务就是进行多轮对话,得到一个更好的多轮对话策略对于人机对话系统有着很多积极的意义。而目前的神经网络对话生成模型在多轮对话过程中存在着容易产生万能回复、没有考虑多轮对话的整体走向之类的问题。

针对这些问题,本文引入了深度强化学习的 DQN(Deep Q-Network)算法进行开放域的多轮对话策略学习,该策略使得每一轮的回复都更加有利于多轮对话的进行,减少万能回复的生成以及产生质量更高的多轮对话。

所谓的“万能回复”,是指那些看似能够回复任何输入但却没有实际意义、不利于对话过程持续进行的句子。万能回复跟训练语料密切相关,通常出现频率较高,典型的万能回复比如英文 OpenSubtitles 语料上的“I don’t know”以及中文微博语料上的“哈哈哈哈”等。

对话生成任务中以 seq2seq 模型为代表的端到端生成方式基于极大似然估计,每次得到的回复都是生成概率最大的句子,这就导致了万能回复非常容易被选中。

image 让聊天机器人同你聊得更带劲 - 对话策略学习 AI教程 第1张
△ 图1:生成万能回复的例子

开放域多轮对话的一个重要目标就是尽可能聊得更久。开放域多轮对话中每一轮回复的选择,不仅需要考虑是否能够有效回复当前输入,更需要考虑是否有利于对话过程的持续进行。

本文通过 DQN 对当前对话状态下每一句回复进行评估,每次选择具有最大累计价值而不仅仅是生成概率最高的句子,利用强化学习最大化未来累计奖励的特点,建模多轮对话的过程,使得当前回复有利于对话过程的持续进行,以缓解多轮对话过程中容易出现的生成大量万能回复以及很快陷入死循环的问题。


image 让聊天机器人同你聊得更带劲 - 对话策略学习 AI教程 第2张
△ 图2:DQN提供了黑盒的功能

本文参考 Sutskever et al. (2014) [1] 以及 Vinyals et al. (2015) [2] 实现了 seq2seq 模型,同时在训练过程中加入了注意力机制和 dropout 机制。在得到基础的回复生成模型后,可以通过模拟对话的方式来检验该模型能否有效进行多轮对话。

此外,因为句子是变长和离散的,不利于进一步处理,所以本文借鉴自编码的思想,使用自编码器来获得关于句子的固定维度向量表示。

接下来介绍使用强化学习模型建模多轮对话过程:

代理(Agent)的主要作用是根据环境更新的状态s选择动作a,这部分的主体是通过 DQN 算法训练得到的深度价值网络。深度价值网络对于给定的状态 s 和动作 a,估计出一个价值 Q ( s, a ),然后选择价值最大的那个动作。

环境(Environment)的主要作用是接受代理选择的动作 a(也就是句子),根据这个句子更新状态 s,并根据奖励函数计算这个动作得到的奖励 r。环境的主体部分是训练好的自编码器,将输入句子编码为特征向量从而表示状态s。

转移概率在对话过程中不需要定义,因为状态的转移依赖于模拟对话过程。 奖励函数(Reward)的作用是引导对话向轮数更多、信息更丰富、无聊回复更少的方向进行。从这个角度出发,奖励定义为选择一个动作后得到的即时奖励,通过生成概率、互信息以及句子间余弦相似度的方式进行定量计算。

image 让聊天机器人同你聊得更带劲 - 对话策略学习 AI教程 第3张
△ 图3:本文实验的整体结构

DQN 系列算法提供了更新价值估计的有效方法,经过漫长的迭代计算后,通过深度价值网络进行的估值渐渐逼近了真实价值。

实验数据方面,本文使用新浪微博对话语料 (Shang et al. 2015) [3],每一对对话数据分别来自微博的正文和这条微博下面的评论,这样一组博文-评论对就近似构成了一组对话对,该数据集总共有约 110 万组这样的对话对。

实验结果方面,下面表 1、表 2 给出了一些直观的结果展示。可以看到,通过 DQN 引入多轮对话策略后,模拟对话的质量有了明显的提升。具体如下所示:


image 让聊天机器人同你聊得更带劲 - 对话策略学习 AI教程 第4张
△ 表1:DQN和Baseline单轮对话对比
image 让聊天机器人同你聊得更带劲 - 对话策略学习 AI教程 第5张
△ 表2:DQN和Baseline多轮对话对比

评价指标方面,对于多轮对话的实验结果,本文参考 Li et al. (2016) [4] 的方法,使用以下两个客观指标进行评价:1. 平均对话轮数。2. 多样性。

本文还进行了主观的对比评价:给定相同的输入,本文的 DQN 模型和基础模型独立进行单轮回复生成以及进行模拟对话,然后由与实验无关的评价者主观对比二者的质量。对于多轮对话,总共收到 600 组对比打分。

主观指标方面,基于 DQN 的对话策略在多轮对话上优于基础模型的比例达到了 68.3%。

客观指标方面,引入 DQN 学习多轮对话策略后,模拟对话的平均对话轮数由 2.51 轮提高到了 4.56 轮。

对话作者

我们的创新之处在于,将 DQN 应用于对话策略的学习过程中,使用独立的深度神经网络对每一句候选回复的未来收益进行评估,从而得到一个有利于多轮对话持续进行的对话策略。而实验结果也表明,通过 DQN 方法得到的多轮对话策略有效提高了多轮对话的多样性、平均轮数和对话质量。

我们的后续工作将着眼于将 DQN 用于 seq2seq 模型的训练过程,使用深度价值网络来估计训练过程中的损失,使得训练损失带有更多的信息,从更细粒度上提高生成句子的质量。

此外,如何更加全面的评价对话结果也是一个值得研究的问题。

原文发布时间为:2017-09-28
论文作者 | 宋皓宇,张伟男,刘挺
特约记者 | 曾爱玲(香港中文大学)