您的位置:首页 > 产品设计 > UI/UE

论文引介 | Deep Reinforcement Learning for Dialogue Generation

2017-04-09 15:38 836 查看
文章原名:Deep Reinforcement Learning for Dialogue Generation

作者:Jiwei Li, Will Monroe, Alan Ritter and Dan Jurafsky

单位:Stanford University, Stanford, CA, USA;

Ohio State University, OH, USA;

Microsoft Research,Redmond, WA, USA;

译者:谢若冰

链接:
https://arxiv.org/abs/1606.01541(可戳下方阅读原文)
1

导读

本文是强化学习在对话生成任务中的一次极有趣的尝试。自然对话生成任务一直以来都是富有挑战性且意义深远的,某种意义上自然对话生成可以说是人工智能的一个里程碑式的任务,但是目前的对话系统效果却是差强人意的:一个好的对话往往难以给出明确的评价标准,并且这种评价标准也会随着时间与对象的改变而产生变动。现有的主流seq2seq对话生成模型往往拘泥于当前的对话,缺乏对于整个对话的度量,落入短视的窠臼。为了使得对话生成能够重视对话整体的质量,本文另辟蹊径,采用强化学习来辅助对话系统的生成,取得了较好的效果。

当前生成式对话生成系统的主流模型是seq2seq。这种模型容易生成dull utterances,即是万金油式但几乎没有信息量的范式回答。如下表所述,传统的baseline模型容易生成I don’t know what you are talking about或者see you later等回答,并且往往陷入对话的死循环。这是由于seq2seq模型中往往采用MLE的方式,希望模仿训练集中的对话生成方式,而我们的训练数据中这种类型的回答数也有很多。单看单轮对话这种生成结果也没问题,但是这离我们心中的智能还差距甚远。

  


本文采用强化学习的方法弥补现有模型中难以注意到整体对话质量的问题,从而一定程度上解决了对话生成中的dull utterance问题。在reward上,本文提出了三种度量指标:(1)信息量;(2)相关性;(3)易于对方回答的程度,通过两个对话系统间的对话数据,优化模型生成对话的能力。本文以对话长度、对话多样性以及人工评测三个评测实验以及样例分析,说明了提出模型的有效性。

2

模型

强化学习中重要的四个元素如下:action, state, policy, reward,下面我先介绍一下这几项的设置:

Action:本文定义生成一个句子(对话)作为一个action

State:本文将当前对话前两句对话[p, q]作为state。这里对实际问题做出了一定的简化,认为在对话系统中当前对话的前两句话对当前生成有着决定性影响

Policy:本文使用一个LSTM模型作为policy的概率函数,是一个概率化的策略

Reward:如前所述,reward主要包含三项:(1)信息量;(2)相关性;(3)易于对方回答的程度。下面我们来详细看看这三项reward是怎样实现的。

首先对于信息量,一个优质的对话中的信息量应该足够充分,这样才能使得对话能够正常地进行下去。本文认为一个agent(对话中的其中一方)相邻两句对话中应该尽可能不同,这样才能说明对话具有充足的信息量。公式如下:

  


其中i与i+1是用户相邻两句对话的表示。

第二,本文认为一个优质的对话如果仅仅只有信息量,两个agent之间的对话内容如果牛头不对马嘴,对话也不能成立。相关性这个因素即是限制两个agent之间对话的相关性,采用的是两个agent相邻对话的互信息判断的,公式如下:

  


其中前一项是表示根据前两句q, p生成当前对话a的对数概率,而后一项则是根据当前对话a能够反推出前一个对话q的对数概率。这里的两个概率都是通过使用seq2seq预训练的模型结果。

最后,对于易于对方回答的程度,本文认为在对话中一方应该为对方着想,在对话中显得更加主动与积极,创造话题,这样对话才能够聊得下去。而易于对方回答的程度是通过生成dull utterance的概率来进行衡量的——如果我当前生成的对话更容易使得对方生成万金油式没有信息量的回答,那说明我当前的对话其实并不优质。公式如下:

  


需要注意的是,本文设计了8个常见的dull utterance作为整体使用的dull utterance集合。作者在实验中证明,由于dull utterance之间彼此表示接近,所以仅仅使用集合中的8个,效果就能够覆盖得很好。

然后我们开始看到本文的训练过程。本文使用传统的seq2seq模型在语料库上进行预训练,然后加入互信息作为reward,使用policy gradient完成全部的预训练过程。在强化学习的过程中,两个agent之间会互相对话,然后不断根据(1)信息量;(2)相关性;(3)易于对方回答的程度三个reward的结果,使用policy gradient直接优化policy的LSTM模型。强化学习的过程可以参考下图。

  


3

实验

本文使用两个自动评测:(1)对话长度与(2)对话多样性,以及人工评测作为模型的评测任务。

在对话长度评测中,本文认为如果开始产生dull utterance或者开始循环了,那么对话就算终止。评测结果如下,说明了强化学习方法的优势。

  


本文用unigram和bigram在对话中的多样性作为评测对话多样性的方法,结果如下:

  


下图为人工评测的结果。需要注意的是,在第一项setting中,评测单轮对话的质量时,强化学习方法提升效果并不明显。作者同时给出的在BLEU值上的评测效果,强化学习方法也并不如传统的seq2seq方法。这是因为本文提出的强化学习关注提升对话整体的质量,在单句的生成上,其实在reward中并没有设计体现,所以结果并不会有提升。但是在第二、三项中,关注对话的易回答程度以及多轮对话的质量时,强化学习的结果就能够得到极大的体现。

  


最后,我们来看几个例子,直观感受考虑对话整体质量的模型的效果:

  


可以看出,强化学习的方法倾向于使用反问等方式,尽力使得对话可持续,同时dull utterance也大大减少。这种特质在自动对话系统中能够极大提升用户体验。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐