关于生成对话的深度强化学习
摘要:生成对话的最新神经模型为对话代理提供了很好的前景,但这往往是短视的、每次只预测一句话语从而忽视了它们对之后输出的影响。模拟对话的未来方向的关键在于生成连续、有趣的对话,导致对话的传统NLP模型去借鉴强化学习的需求。在本文中,我们展示如何去整合这些目标,在聊天机器人对话中使用深度强化学习去建模未来的反馈。该模型模拟两个虚拟代理之间的对话,使用策略梯度算法去惩罚序列,该序列展示三个有用的对话性质:信息性(非重复交替),连贯性,和易于回答(与前瞻性功能有关)。我们像用人类判断一样在其多样性,长度上评估该模型,表明提出的算法在对话模拟中产生更多的互动反应和应付以促进一个更持久的对话。这项工作标志着向基于长时间连续对话的学习一个神经对话模型迈出的第一步。
1介绍
神经反应的生成日益引起人们的兴趣。LSTM序列到序列(SEQ2SEQ)模型(Sutskever et al., 2014)是一类神经生成模型,能够最大化给定的先前对话回合的生成响应概率。该方法使得在连续对话回合之间的映射以不可能的方式去合并丰富的上下文(Sordoni et al., 2015)。比如,基于MT的对话模型(Ritter et al., 2011)。
尽管SEQ2SEQ模型在对话生成取得的成功,浮现出两个问题:第一,SEQ2SEQ模型是通过在给定的对话上下文使用最大似然估计(MLE)目标函数预测下一对话回合进行训练的。然而,不是很清楚MLE逼近聊天机器人法阵的现实目标是多么的好:教导一个机器与人对话,当提供兴趣,多种多样的和保持用户参与的信息反馈。一个具体的例子是SEQ2SEQ模型倾向于生成高度一般的回应,比如“我不知道” 忽略了输入(Sordoni et al., 2015; Serban et al., 2015b; Serban et al., 2015c; Li et al., 2015)。这可以归结于在训练集中可以找到的高频率的一般响应和它们与各种范围的对话上下文的兼容性。显然地,“我不知道”不是一个好的回应去采用,因为它会关闭这个对话。
另外的一个公共问题,在表1中说明(底部左边的例子),是当系统变得困在一个无线循环的响应中,这是由于基于MLE SEQ2SEQ模型不能说明重复。在例子2中,在三回合后,对话陷入无限循环时,两个代理生成无趣,通用的话语像我不知道你在谈论什么和我不知道你在说什么。看整个对话,表达(2)我16岁的结果是一个错误回应的采用,即使它对于表达(1)问年龄时是一个信息量大的和连续响应。这会导致谈话无法继续。
表格1:左列:两个代理之间的对话模拟是使用4层的LSTM编码-译码模型,训练是基于Opensubtitle数据库。第一回合是由作者输入的,然后两个代理就开始对话。将其他代理的先前生成回合作为输入,使用编码-译码模型生成一个输出。输出的生成使用的是互信息模型(Li et al., 2015)。右列:对话的模拟使用的是提出的强化学习模型。新模型具有更多的前瞻性和更长的持续时间(在对话进入对话黑洞之前)。
这些挑战暗示着我们需要能够(1)集成开发奖励使得可以对话机器人更好的模拟真实和(2)在进行的对话中,模型对生成的反应是长期影响的。
为了实现这些目标,提出强化学习,这些被广泛的应用于MDP和POMDP对话系统中,介绍一个神经强化学习(RL)生成算法。该模型使用编码-译码结构作为构架,在学习最大化期望奖励时,两个虚拟代理之间模拟对话去探索可能行动的空间。该模型集成SEQ2SEQ系统的能力去学习话语中的成分语义,并对谈话间的长期目标使用用强化学习在优化中的优势。实验结果表明该方法比使用MLE目标训练的标准SEQ2SEQ模型相比,促进更持久的对话和设法产生更多的互动响应。
2 相关工作
努力构建统计对话系统主要分为两类。
第一处理对话生成作为一个原始到目标转换问题和学习输入信息和来自大量训练集的反应之间的映射规则。Ritter et al.(2011)设计响应生成问题作为一个统计机器翻译(STM)问题。Sordoni et al.(2015)通过使用一个包含之前上下文的神经模型改变基于SMT短语对话系统的输出。Serban et al.(2015)提出分层神经模型,在一个扩展对话史上依赖性。Li et al.(2015)提出消息之间的互信息和响应作为另一个目标函数,为了减少由SEQ2SEQ系统产生的生成响应的比例。其他的统计研究关注的是构建面向任务的对话系统去解决特定领域的任务。工作包括静态模型,包括马尔科夫决策过程(MDPs)(Levin et al., 1997; Levin et al., 2000; Walker et al.,2003; Pieraccini et al., 2009),POMDP(Young et al., 2010; Young et al., 2013)模型和统计学习生成规则的模型(Oh and Rudnicky, 2000; Ratnaparkhi, 2002; Banchs and Li, 2012; Nio et al., 2014)。因此对话文学广泛的应用强化学习去训练对话策略(Walker, 2000; Schatzmann et al., 2006; Gasic et al., 2013; Singh et al., 1999; Singh et al., 2000; Singh et al., 2002)。但面向任务的RL对话系统经常依赖于仔细限制的对话参数,或手工模板的状态,行动和由人为每个新领域设计的奖励信息,使得范例难以扩展为开放领域的场景。
3开放领域对话的强化学习
学习系统是由两个代理组成,使用P表示第一个代理生成的句子,q表示第二个代理生成的句子。两个代理轮流与对方交谈。一个对话可以用两个代理生成的句子交换序列表示,比如:p1; q1; p2; q2; ...; pi; qi。策略梯度方法比Q-学习更适合我们的场景,因为能够使用已经产生反应的MLE参数去初始化编码-译码RNN。而Q-学习直接估计每个动作的未来期望奖励,这会在数量级上不同于MLE结果,会使得MLE参数不适合用于初始化。
3.1 动作
动作a是生成对话的表达,该动作空间是无限的,因为可以生成任意长度的序列。
3.2 状态
一个状态可以用先前两个对话回合[pi; qi]表示,通过把级联的pi和qi注入到LTSM编码器模型中,对话记录可以被进一步的转换为一个向量的形式。
3.3 策略
策略采取一个LTSM编码-译码器的形式(也就是,PRL(pi+1|pi,qi))并通过其参数定义。注意到策略是一个随机表示的(在动作给定状态上的概率分布),一个确定性的策略将导致不连续目标,且该目标难于使用基于梯度算法进行优化。
3.4 奖励
r表示每一个行动获得的奖励。
简化回答:由机器生成的行为应该很容易回应,这部份与其前向函数有关。提出的方法使用负对数似然表示对应的迟钝反应的对话来简化回答。手动构造一个迟钝反应的列表S,比如“我不知道你在干什么”,“我没有主意”等等。这在SEQ2SEQ对话模型中可以经常被发现,奖励函数可以用下式表达:
pseq2seq表示似然输出,另外注意到pseq2seq与随机策略函数PRL(pi+1|pi,qi)不同,前者的学习是基于SEQ2SEQ模型的MLE目标,而后者是对在RL集中的长期未来奖励的策略优化。r1是进一步扩大为目标长度S。
4仿真
算法背后的中心思想去模拟两个虚拟代理互相交流的过程,通过探索状态空间和学习策略PRL(pi+1|pi,qi)使得最优期望的奖励。
4.1 监督式学习
第一阶段的训练,建立在之前的预测生成的目标序列工作上。来自监督模型的结果将稍后用于初始化。在Open subtitle数据集上训练SEQ2SEQ模型,该数据集是由8000万原目标对组成。在数据集中,将每个回合看成是一个目标和两个先前句子楚串联做为源输入。
4.3 两个代理之间的对话仿真
仿真处理过程如下:初始阶段,来自训练集的信息被送到第一个代理,代理将输入信息编码成一个序列表示的形式并开始译码去生成一个回应输出。综合当前来自第一个代理的输出和对话记录,第二个代理通过将对话记录编码为向量形式去更新状态,并使用译码器RNN去生成回应,随后反馈给第一个代理,然后重复该过程。
最优化:使用来自互信息模型的参数初始化策略模型PRL,使用策略梯度算法去发现能够导致最大期望的未来奖励的参数,通过最小化下面的损失函数:
因为大多数在N最好的列表生成的翻译相似,只有标点符号或小的形态变化,候选者的生成是通过从加性高斯白噪声采样培养更多不同的候选人。
4.4 阶段训练
采用策略训练,首先模拟回合为2的对话,然后逐渐增加模拟的回合。我们可以最多生成5回合,这是由于候选者的数量是随着候选者列表大小以指数形式增长的。
5 实验结果
使用人类评价和两自动的度量标准:对话长度和多样性。
5.1 数据集
对话模拟需要输入高质量的初始输入给代理,比如,初始输入“为什么”是不受欢迎的,这是因为不清楚对话是怎么进行的。从Open subtitle数据集中取出子集1000万个信息和额外的80万最低可能生成回应“我不知道你在说什么”序列,确保初始输入是容易回应的。
5.2 自动估计
估计对话系统是困难的。由于该系统的目标不是预测概率最高的回应,也不是长期连续的对话,不使用BLUE或混乱评价。
对话的长度:第一个指标是模拟长度的对话。对话的结束时其中一个代理开始生成无聊的回应比如“我不知道”或来自同一个用户的两个连续的话语是高度重叠时。
测试集是1,000输入信息组成,限制回合数不超过8。结果如表2所示。可以看到使用互信息导致两代理之间更持续的对话。提出的RL模型是第一次基于互信息目的训练的,此外这也受益于RL的模型。
人工测评:采用众包判断去估计一个随机500个项的样本,将输入信息和生成的反应给3判断者看,并询问那个是最好的输出(表示为单回合总质量)。相同的字符串打的分数是一样的。
对于第二种场景,判断者再一次呈现输入信息和系统输出,但是被询问决定两种输出中的哪一种更容易回应(表示为单回合中易回应)。再次评估随机抽查的500项,每个被分配到三个判断者。
对于第三种场景,判断者呈现的是两个代理之间的模拟对话(表示为多回合总质量)。每个对话包含5个回合,评估200个模拟对话,每个对话被分配到三个判断者,询问决定哪个模拟对话是有着更高质量。
人工评测的结果如表5所示,提出的RL模型没有在单回合回应质量中引入显著性的促进,95%CI[-0.02, 0.05],这符合我们的期望,由于RL模型不是最优化去预测下一表达方式,而是增加长时间的奖励,RL模型产生的响应是更加容易去回答的。
定性分析和讨论: 在表3 展示了生成响应的随机样本,在表1中展示了模拟对话。从表3中可以看到基于RL的代理确实比其他基线能产生更多的互动,RL模型倾向于用另外一个问题和将会话移交给用户结束一个句子。从表1中可以观察到RL模型比互信息模型而言,能够产生更多的互动和稳定的对话。
在误差分析中,发现在连续对话中,即使惩罚连续重复的话语,对话有时会进入长度大于1的周期循环。这可以归因于考虑的会话记录有限。另外观察到的问题是该模型有时候开始对话时不是那么与主题相关。
最根本的问题是手动定义的奖励函数不可能覆盖定义的理想对话中至关重要的部分。而定义的启发式奖励适合自动计算,并捕获一些使得好的对话的方面,理想情况下,系统会从人那里获得真正的奖励。当前模型的另外一个问题是只能负担探索小数量的候选者和模拟回合,这是因为考虑其呈现的是指数级增长。
6 结论
通过两个代理之间的模拟对话引入了针对神经反应生成的强化学习框架,整合神经SEQ2SEQ系统的优势和针对对话的强化学习。像早期的神经SEQ2SEQ模型,我们的框架抓住了对话回合意义和生成语义适当的响应的组合模型;像强化学习对话系统,我们的框架能够生成获得最优未来奖励的对话,成功地捕获一个良好对话的全局属性。尽管模型使用非常简单、针对捕获这些全局属性的启发式的操作,该框架生成更多样性,互动响应并促进更持久的对话。
7感谢
我们要感谢Michel Galley,Jianfeng Gao,Chris Brockett,Bill Dolan和其他在在微软研究院的负责洞察力评论和建议的NLP团队;也希望感谢Kelvin Guu, Percy Liang, Chris Manning, SidaWang, Ziang Xie和其他在斯坦福NLP团队中提供有用讨论的成员;Facebook奖学金支持Jiwei Li,工作部分支持来自于NSF Award IIS-1514268;任何意见,在该材料中的发现和结论或者建议的表达是作者的,不一定反应NSF或者Facebook的观点。
参考文献:见附录
本人主要研究深度学习对立体图像的质量评价,有相关兴趣的同学可以互相交流探讨学习。
邮箱是duanzhch@tju.edu.cn