Deep Reinforcement Learning for Dialogue Generation-关于生成对话的深度强化学习

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

另外的一个公共问题,在表1中说明(底部左边的例子),是当系统变得困在一个无线循环的响应中,这是由于基于MLE SEQ2SEQ模型不能说明重复。在例子2中,在三回合后,对话陷入无限循环时,两个代理生成无趣,通用的话语像我不知道你在谈论什么和我不知道你在说什么。看整个对话,表达(2)我16岁的结果是一个错误回应的采用,即使它对于表达(1)问年龄时是一个信息量大的和连续响应。这会导致谈话无法继续。

e86b3cc35bed791efc3855c4728be428dffff71a

表格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对话模型中可以经常被发现,奖励函数可以用下式表达:

5fffcd3e04587e0822c9b3d294d45ebeebcb7fc9

e7e9a32c0853869d30d465ae6c2fb6e391b7548d

pseq2seq表示似然输出,另外注意到pseq2seq与随机策略函数PRL(pi+1|pi,qi)不同,前者的学习是基于SEQ2SEQ模型的MLE目标,而后者是对在RL集中的长期未来奖励的策略优化。r1是进一步扩大为目标长度S。

707f0d188c13db8a8d8f16f320b8f05b88b8125a

4仿真

算法背后的中心思想去模拟两个虚拟代理互相交流的过程,通过探索状态空间和学习策略PRL(pi+1|pi,qi)使得最优期望的奖励。

4.1 监督式学习

第一阶段的训练,建立在之前的预测生成的目标序列工作上。来自监督模型的结果将稍后用于初始化。在Open subtitle数据集上训练SEQ2SEQ模型,该数据集是由8000万原目标对组成。在数据集中,将每个回合看成是一个目标和两个先前句子楚串联做为源输入。

73da0abaefde231f4b29612d0913c788474f62a4

4.3 两个代理之间的对话仿真

仿真处理过程如下:初始阶段,来自训练集的信息被送到第一个代理,代理将输入信息编码成一个序列表示的形式并开始译码去生成一个回应输出。综合当前来自第一个代理的输出和对话记录,第二个代理通过将对话记录编码为向量形式去更新状态,并使用译码器RNN去生成回应,随后反馈给第一个代理,然后重复该过程。

最优化:使用来自互信息模型的参数初始化策略模型PRL,使用策略梯度算法去发现能够导致最大期望的未来奖励的参数,通过最小化下面的损失函数:

696ce174291c2c9bf7e14adb41123cae74130f0b1d5dbb9d8ab67649ca7c161c382e8455aef886e9

因为大多数在N最好的列表生成的翻译相似,只有标点符号或小的形态变化,候选者的生成是通过从加性高斯白噪声采样培养更多不同的候选人。

4.4 阶段训练

采用策略训练,首先模拟回合为2的对话,然后逐渐增加模拟的回合。我们可以最多生成5回合,这是由于候选者的数量是随着候选者列表大小以指数形式增长的。

5 实验结果

使用人类评价和两自动的度量标准:对话长度和多样性。

5.1 数据集

对话模拟需要输入高质量的初始输入给代理,比如,初始输入“为什么”是不受欢迎的,这是因为不清楚对话是怎么进行的。从Open subtitle数据集中取出子集1000万个信息和额外的80万最低可能生成回应“我不知道你在说什么”序列,确保初始输入是容易回应的。

5.2 自动估计

估计对话系统是困难的。由于该系统的目标不是预测概率最高的回应,也不是长期连续的对话,不使用BLUE或混乱评价。

对话的长度:第一个指标是模拟长度的对话。对话的结束时其中一个代理开始生成无聊的回应比如“我不知道”或来自同一个用户的两个连续的话语是高度重叠时。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值