论文基本信息
- 论文名:Deep Reinforcement Learning for Dialogue Generation
- 论文链接:https://arxiv.org/abs/1606.01541
- 论文源码:
- 关于作者:
- Jiwei Li:斯坦福大学博士毕业生,截至发稿被引次数:2156
- Will Monroe:斯坦福大学博士在读,截至发稿被引次数:562
- Alan Ritter:俄亥俄州立大学教授,截至发稿被引次数:4608
- Michel Galley:微软高级研究员,截至发稿被引次数:4529
- Jianfeng Gao:雷德蒙德微软研究院(总部),截至发稿被引次数:11944
- Dan Jurafsky:,斯坦福大学教授,截至发稿被引次数:32973
- 关于笔记作者:
- 朱正源,北京邮电大学研究生,研究方向为多模态与认知计算。
论文推荐理由与摘要
最近对话生成的神经模型为会话Agent生成响应提供了很大的帮助,但其结果往往是短视的:一次预测一个话语会忽略它们对未来结果的影响。对未来的对话方向进行建模,这对于产生连贯,有趣的对话至关重要。这种对话需要在传统的NLP对话模式的技术上使用强化学习。在本文中,我们将展示如何整合这些目标,应用深度强化学习来模拟聊天机器人对话中的未来奖励。该模型模拟两个虚拟代理之间的对话,使用策略梯度方法来奖励显示三个有用会话属性的序列:信息性,连贯性和易于回答(与前瞻性功能相关)。我们在多样性,长度以及人类评判方面评估我们的模型,表明所提出的算法产生了更多的交互式响应,并设法在对话模拟中促进更持久的对话。这项工作标志着基于对话的长期成功学习神经对话模型的第一步。
对话系统的缺点不再致命:深度强化学习带来的曙光
引言
论文的写作动机
Seq2Seq Model:将一个领域的序列(如英文句子)转换为另一个领域(如中文句子)的序列。在论文中是一种神经生成模型,它能最大限度地根据在前面的对话,生成回复的概率。
Seq2Seq模型用于对话生成系统虽然已经取得一些成功,但是还存在两个问题:
SEQ2SEQ模型是通过使用最大似然估计(MLE)目标函数,预测给定上下文中的下一个会话来训练的。SEQ2SEQ模型倾向于生成高度通用的响应,例如“我不知道”等。然而,“我不知道”显然不是一个好的回复。
基于最大似然估计的Seq2Seq模型无法结局重复的问题,因此对话系统通常会陷入重复性应答的无限循环之中。
以上问题如下图所示:
论文思路的亮点
首先提出对话系统应当具备的两种能力:
- 结合开发人员定义的奖励函数,更好地模拟聊天机器人开发的真正目标。
- 在正在进行的对话中,对生成应答的长期影响进行建模。
紧接着提出利用强化学习的生成方法来改进对话系统:
encoder-decoder architecture:一种标准的神经机器翻译方法,用于解决seq2seq问题的递归神经网络。
Policy Gradient 策略梯度:
该模型以encoder-decoder结构为骨干,模拟两个Agent之间的对话,在学习最大化预期回报的同时,探索可能的活动空间(回复的可能性)。Agent通过从正在进行的对话中优化长期Reward函数来学习策略。学习方式则使用策略梯度而非最大似然。
改进后的模型如下图所示:
论文模型的细节
符号以及定义
- $p$: 第一个Agent生成的句子
- $q$: 第二个Agent生成的句子
- $p_1,q_1,p_2,q_2,…,p_i,q_i$: 一段对话,或者称之为上下文.
- $[p_i,q_i]$: Agent所处的状态,也即Agent的前两轮对话。
- $p{RL}(p{i+1}|p_i,q_i)$: 策略(policy),论文中以LSTM encoder-decoder的形式出现。
- $r$: 每个动作(每轮对话)的奖励函数。
- $\mathbb{S}$: 人工构建的”迟钝回复”,例如“我不知道你在说什么”。
- $N{\mathbb{S}}$: 表示$N{\mathbb{S}}$的基数
- $N_{s}$: 表示“迟钝回复”$s$的符号数量。
- $p_{seq2seq}$: 表示SEQ2SEQ模型的似然输出
- $h_{pi}$和$h{p_{i+1}}$: 从encoder中获取的,代表Agent两轮连续对话$pi$和$p{i+1}$的表示。
Reward的定义和作用:
$N{\mathbb{S}}$:表示$N{\mathbb{S}}$的基数
$N{s}$: 表示“迟钝回复”$s$的符号数量
$p{seq2seq}$: 表示SEQ2SEQ模型的似然输出
- $r_1$是为了降低回复的困难程度。这个奖励函数的灵感来自于前瞻性函数:计算当模型产生的响应$a$作为输入时模型输出$s$的概率,在对$\mathbb{S}$集合中的每一句话进行求和。因为$p_seq2seq}可定小于1,所以log项大于零,则r1小于零。通过r1的奖励机制,模型最终产生的action会慢慢的远离dull response,而且也会一定程度上估计到下一个人的回复,让对方可以更容易回复。
$h_{pi}$和$h{p_{i+1}}$: 从encoder中获取的,代表Agent两轮连续对话$pi$和$p{i+1}$的表示。
- $r_2$是为了增加信息流的丰富程度,避免两次回复之间相似程度很高的情况。所以r2使用余弦相似度来计算两个句子之间的语义相似程度,很容易发现r2也是一个小于零的数,用来惩罚相似的句子。
$p_{seq2seq}(a|p_i, q_i)$: 表示在给定对话上文$[p_i,qi]$的情况下生成回复a的概率
$p^{backward}{seq2seq}(q_i|a)$: 表示基于响应$a$来生成之前的对话$q_i$的概率。
- $r_3$是为了增强语义连贯性,避免模型只产生那些高reward的响应,而丧失回答的充分性和连贯性。为了解决这个问题模型采用互信息来实现。反向的seq2seq是使用source和target反过来训练的另外一个模型,这样做的目的是为了提高q和a之间的相互关系,让对话更具有可持续性。可以看出来,$r_3$的两项都是正值。
- 最终的奖励函数式对$r_1,r_2,r_3$进行加权求和,论文中设定$\lambda_1=0.25, \lambda_2=0.25, \lambda3=0.5$。最后总模型在训练的时候也是先使用Seq2Seq模型先预训练一个基础模型,然后在其基础上在使用reward进行policy gradient的训练来优化模型的效果。
强化学习模型细节
完全监督环境(fully supervised setting): 一个预先训练的SEQ2SEQ模型,用作初始化强化学习模型。
注意力模型(Attention): 模型在产生输出的时候,还会产生一个“注意力范围”表示接下来输出的时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出,如此往复。
论文采用了AlphaGo风格的模型:通过一个完全监督的环境下的一般响应生成策略来初始化强化学习模型。其中,SEQ2SEQ模型加入了Attention机制并且该模型在OpenSubtitles dataset数据集上训练。
论文并未采用预训练的Seq2Seq模型来初始化强化学习策略模型,而是使用了第一作者本人在2016年提出的生成最大互信息响应的encoder-decoder模型: 使用$p_{SEQ2SEQ}(a|p_i, qi)$来初始化$p{RL}$。从生成的候选集$A={\hat{a}|\hat{a}~p_{RL}}$中的$\hat{a}$获取互信息的得分$m(\hat{a}, [p_i, q_i])$,那么对一个sequence的期望奖励函数为:
通过似然率估计的梯度为:
通过随机梯度下降就可以更新encoder-decoder的参数。论文中通过借鉴curriculum learning strategy对梯度进行了改进。
最终的梯度为:
优化模型过程中则使用策略梯度来寻找可以最大化奖励函数的参数:
仿真实验细节
对话仿真流程:
- 从训练集中挑选一个message给Agent-A
- Agent-A对message进行编码并解码出一个响应作为输出。
- Agent-B以Agent-A的输出作为输入,并且通过encoder-decoder来
而策略policy就是Seq2Seq模型生成的相应的概率分布。我们可以把这个问题看成是上下文的对话历史输入到神经网络中,然后输出是一个response的概率分布:$pRL(pi+1|pi,qi)$。所谓策略就是进行随机采样,选择要进行的回答。最后使用policy gradient进行网络参数的训练。
两个agent互相对话最终得到的reward来调整base model的参数。
实验结果分析
评估指标
BLEU: bilingual evaluation understudy,一个评估机器翻译准确度的算法。
论文并没有使用 广泛应用的BLEU作为评价标准。
对话的长度,作者认为当对话出现dull response的时候就算做对话结束,所以使用对话的轮次来作为了评价指标:
不同unigrams、bigrams元组的数量和多样性,用于评测模型产生回答的丰富程度:
人类评分:
最终对话效果
总结
作者使用深度强化学习的方法来改善多轮对话的效果,并提出了三种reward的定义方式。可以算是DRL与NLP结合的一个比较不错的例子。但是从最后的结果部分也可以看得出,作者无论是在reward的定义、还是最后的评价指标都没有采用使用比较广泛的BLUE指标。这种手工定义的reward函数不可能涵盖一段理想对话所具有特点的的方方面面。