干货 | 利用深度强化学习进行对话生成

2017 年 8 月 30 日 黑龙江大学自然语言处理实验室 PaperWeekly


本文授权转载自学术平台PaperWeekly,微信号:PaperWeekly。这是一个推荐、解读、讨论和报道人工智能前沿论文成功的学术平台,致力于让国内外优秀科研工作得到更为广泛的传播和认可。



本期论文



Deep Reinforcement Learning for Dialogue Generation


本文应用强化学习进行开放领域的文本生成任务,并对比了有监督的 seq2seq 加 attention 模型和基于最大互信息的模型。


在具体实现中,作者首先使用 seq2seq 方法 pre-train 一个 base 模型,最后使用 RL 机制,以两个 agent 互相对话最终得到的 reward 来调整 base model 的参数。 


论文链接: 

https://arxiv.org/pdf/1606.01541.pdf


阅读笔记精选




AlbertChen


首先,本篇文章的设定是处理多轮对话问题,准确的说,是两轮对话,把第一轮对话的上文和下文一起作为 source,然后把接下来的下文作为 target。Seq2seq 模型最初的设定是处理 pair 的问题,也就是单轮对话,这样的设定就让它很难 handle 多轮对话的情景,而一个信息量不足的上文表示可能是造成 short response,dull response 以及 diversity limitation 的一个原因。


本文提出的 Reinforcement Learning,设定的 reward 在 sentence level 而非 word level,正是要弥补 Seq2Seq 模型的这种缺陷。


事实上,比本文早些 Sordoni 提出的 hierarchical recurrent encoder-decoder model (HRED) 也是从这个角度来解决这个问题,但是还是使用的 MLE objective,而 MLE 对高频数据比较敏感,这可能也是产生 dull response 的原因之一。


因此,本文使用 policy gradient 来取代了 MLE,也是一大优势。总的来说,文章的思路是优秀的,但是,个人认为也有不足。


第一,文章还是对 Seq2Seq 的一种修补,而不是一种突破。当然 Seq2seq 已经很强,完全突破并不容易。第二,Reward的设定是根据人工的经验来选择的,而且只是将各个 Reward 因素进行组合,而不是一个 general 的 Reward,稍微缺乏一些说服力。自然语言是很复杂的,并不是靠这样的几个指标就能衡量。


当然,对于对话来说,一个好的 Reward 的设计是绝对的难题,所以本文能够提出一个有效的 Reward 已经很不错了。另外,在评估方面,本文的 Diversity scores 和他自己之前那篇 MMI objective 文章里面提出的 distinct1, distinct2 是一样的,虽然很简单,但用来衡量多样性是足够的。


另外,他的思想基于 Dialogue Simulation 。Simulation 在 Reinforcement Learning 中是非常重要的概念,只要能够定义好 Reward,可以完全不需要真实数据。


xwzhong


Note:paper 想通过引入 RL 机制来解决使用 seq2seq 做对话系统时遗留的难题,如通用性回复较多。在具体实现中,作者首先使用 seq2seq 方法 pre-train 一个 base 模型,最后使用 RL 机制,以两个 agent 互相对话最终得到的 reward 来调整 base model 的参数。 


Comment:

1. 使用 RL 的过程很清晰,定义了 RL 机制涉及到的 action,state,policy,reward,可以当做 RL 的简单应用学习; 


2. 纵观全文,训练结果的好坏取决于 reward 公式的设计;在 paper 中,Ease of answer 设计有以偏概全的嫌疑(你不能直接说 many of these responses are likely to fall into similar regions in the vector space,需要更科学的解释或证明);

 

3. 文章使用 RL 机制时,有种“为了实现对话特点而设计”,从个人角度观点出发,更应该从“对话目的”角度来设计,而且,简单的使用 RL 机制来实现对话存疑。 


Code: 

https://github.com/jiweil/Neural-Dialogue-Generation (lua) 

https://github.com/Marsan-Ma/tfchatbotseq2seq_antilm (python)



cjliux


这篇文章主要是讲了如何将强化学习引入到对话生成中,使得机器人能够持续地生成有意义的对话。这里针对有意义的对话所应具备的特征定义了三种回报函数,并最终将这三种回报函数进行插值得到最终的回报函数。


模型的整个训练过程是这样的:先用互信息来构造损失函数,然后训练出一个最大化似然模型,然后利用本文提出的强化学习方法,来对模型进行优化,优化采取的策略类似 AlphaGo。


taoxuaner


作者的主要工作是用于解决多轮对话中生成无意对话,最终导致对话难以进行下去的问题。(记得百度的严睿在 2016 的 IJCAI 还是 SIGIR 上有这方面的工作,具体哪个忘了)。


作者认为一个好的对话系统应该具有 forward-looking、interactive、informationtive 以及 coherent 四个方面的特性。为此,他们在 agent 对话生成中引入 reinforcement learning,他们依次构建了 Ease of answering 、information flow、semantic coherence 三个 reward function 分别衡量生成对话的合理性。


chris


作者使用了三种回报方法衡量生成的对话合理性。第一种,使用 seq2seq 模型计算由生成的对话产生之前统计的一些无聊的回答的概率,概率越高,回报越少。这个防止聊天很快被终止。第二种,衡量生成的对话的信息量,通过计算该对话与前一个对话的相似性,越相似,回报越少。第三种,语法上的联系,这点非常重要,以保证生成的对话符合正常语法逻辑的。


分别通过seq2seq模型计算输入之前的对话内容生成该对话的概率和历史数据计算之前对话产生当前对话的概率共同决定回报。最后作者将这三种回报函数按照一定的权值结合起来作为最终模型的回报函数。


xcwill


在 evaluation 环节,作者不用翻译中常用的 BLEU 和 perplexity 两个 Metrics,而用生成的句子长度和回复的多样性程度来做评估,其中多样性用再用一元、二元分词模型来定义。这样做虽然避免了使用 BLEU 和 perplexity 这两个常用于评估翻译模型的 metrics,但是感觉作者提出的度量方法还是过于简单。


MH233


文章的主要贡献是将 S2S 和 RL 结合起来,使用 RL 指导 S2S 生成句子的语义方向,使对话能进行下去,达到了增加对话轮数的效果。作者提出的三种 Reward 直观上也很有意义,具体解释不再赘述。 Li 的另外三篇关于生成文本多样性的文章(大致是 MMI 和 beam search)也挺有意思的。


meng


个人觉得这篇文章最大的亮点在于:利用 reinforcement learning 的思想对 seq2seq 生成回复的目标函数进行了修改与补充。一般 seq2seq 的目标函数是让标准回复的对数概率最大,这里的“目标函数”则变成了 RL 中的 reward 函数(作者从多个角度构造了 reward 计算指标)。


登录查看更多
4

相关内容

seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列
【ACL2020】利用模拟退火实现无监督复述
专知会员服务
13+阅读 · 2020年5月26日
卷积神经网络的概述论文:分析、应用和展望,21页pdf
专知会员服务
89+阅读 · 2020年4月7日
深度强化学习策略梯度教程,53页ppt
专知会员服务
176+阅读 · 2020年2月1日
CMU博士论文:可微优化机器学习建模
专知会员服务
52+阅读 · 2019年10月26日
【论文笔记】基于强化学习的人机对话
专知
20+阅读 · 2019年9月21日
赛尔原创 | ACL 2019 检索增强的对抗式回复生成
哈工大SCIR
12+阅读 · 2019年7月4日
强化学习与文本生成
微信AI
41+阅读 · 2019年4月4日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
【干货】强化学习介绍
专知
11+阅读 · 2018年6月24日
干货 | 论文解读:基于动态词表的对话生成研究
微软研究院AI头条
3+阅读 · 2018年1月9日
一种基于Sequence-to-Sequence的高质量对话生成方法
科技创新与创业
9+阅读 · 2017年11月13日
赛尔原创 | 教聊天机器人进行多轮对话
哈工大SCIR
18+阅读 · 2017年9月18日
利用深度强化学习进行对话生成
PaperWeekly
9+阅读 · 2017年8月23日
Arxiv
4+阅读 · 2019年9月26日
Arxiv
13+阅读 · 2019年1月26日
Neural Approaches to Conversational AI
Arxiv
8+阅读 · 2018年12月13日
Arxiv
4+阅读 · 2018年9月11日
VIP会员
相关资讯
【论文笔记】基于强化学习的人机对话
专知
20+阅读 · 2019年9月21日
赛尔原创 | ACL 2019 检索增强的对抗式回复生成
哈工大SCIR
12+阅读 · 2019年7月4日
强化学习与文本生成
微信AI
41+阅读 · 2019年4月4日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
【干货】强化学习介绍
专知
11+阅读 · 2018年6月24日
干货 | 论文解读:基于动态词表的对话生成研究
微软研究院AI头条
3+阅读 · 2018年1月9日
一种基于Sequence-to-Sequence的高质量对话生成方法
科技创新与创业
9+阅读 · 2017年11月13日
赛尔原创 | 教聊天机器人进行多轮对话
哈工大SCIR
18+阅读 · 2017年9月18日
利用深度强化学习进行对话生成
PaperWeekly
9+阅读 · 2017年8月23日
Top
微信扫码咨询专知VIP会员