本期论文
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 计算指标)。
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。