深度强化学习用于对话生成(论文笔记)

一、如何定义一个好的对话

尽管SEQ2SEQ模式在对话生成方面取得了成功,但仍出现了两个问题(图1):

  1. 通过使用最大似然估计(MLE)目标函数预测给定会话上下文中的下一个对话转角来训练SEQ2SEQ模型。SEQ2SEQ模型倾向于生成概率较大、高度通用的回答,比如“我不知道”,而不管输入是什么。然而,“我不知道”显然不是一个好的行动,因为它结束了谈话。

  2. 系统被困在一个无限循环的重复响应中。

图1.使用在OpenSubtitle数据集上训练的4层lstm编解码器模拟两个代理之间的对话标题

好的对话应当是前瞻性的或互动性的,信息丰富,连贯一致。因此,我们的目标是整合SEQ2SEQ和强化学习,同时利用两者的优势。实验结果(表1右侧面板的抽样结果)表明,对比使用MLE目标函数训练的标准SEQ2SEQ模型,我们的方法促进了更持久的对话(图2)。

图2.使用强化学习模型的对话模拟

二、开放领域对话中的强化学习

在这一部分中,我们详细描述了所提出的RL模型的组成部分。

学习系统由两个agents组成。我们使用p来表示从第一个agent生成的句子,使用q表示来自第二个agent的句子,两个agents轮流交谈。一个对话可以表示为由两个agents生成的句子的交替序列:\left ( p_{1},q_{1} ,p_{2},q_{2}......p_{i},q_{i}\right )

作者对网络参数进行了优化,以便使用策略搜索最大限度地实现预期的未来回报。Policy gradient方法比Q-learning方法更适合我们的场景。因为在改变目标和调整策略以实现长期奖励最大化之前,我们可以使用已经产生合理响应的MLE参数初始化编码器-解码器 RNN。而Q-learning直接估计每项行动的未来预期回报,这可能与MLE目标相差数量级,因此使MLE参数不适合初始化。

Action

动作 a 就是生成的对话语句,且a是无限的,因为可以生成任意长度的序列。

State

先前的两个对话回合\left [ p_{i},q_{i} \right ]表示状态。通过将\left [ p_{i},q_{i} \right ]喂给LSTM编码器模型,对话历史将进一步转换为向量表示。

Policy

策略采用LSTM编解码器的形式(即p_{RL}\left ( p_{i+1}|p_{i},q_{i} \right )),并由其参数定义。注意,我们使用策略的随机表示(对给定状态的动作的概率分布)。确定性的策略会导致一个不连续的目标,很难使用基于梯度的方法进行优化。

Reward

r 表示每项行动所获得的奖励。在本小节中,我们将讨论有助于对话成功的主要因素,并描述如何在可计算的奖励函数中对这些因素进行近似操作。

  • Ease of answering

这部分的奖励函数如下:         

r1=-\frac{1}{N_{S}}\sum _{s\epsilon S}\frac{1}{N_{s}}\log p_{seq2seq}(s|a){\color{Magenta} }

Note:S——包含8个回合的迟钝响应列表,例如: “I don’t know what you are talking about”,“I have no idea”等(这是在SEQ2SEQ对话模型中经常出现的情况)

           N_{s}——迟钝回复s出现的次数

           p_{seq2seq}——SEQ2SEQ模型的似然输出

  • Information Flow

我们希望每个代理提供新的信息在每一个回合

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值