深度强化学习在面向任务的对话管理中的应用

一、背景

目前业界对话系统一般分为自然语言理解NLU、对话管理DM及自然语言生成NLG模块,而DM又分为对话状态跟踪DST及决策Policy模块。Policy模块一般基于当前的对话状态state,决策一个行为action,有用规则的,也可以用模型实现。本文介绍运用深度强化学习模型学习决策,基于当前的对话状态state运用模型决策行为action。

二、深度强化学习

关于强化学习,强烈建议阅读David Silver的强化学习的PPT,有时间最好看他在YouTube上的课程。深度强化学习,运用深度学习强大的state刻画能力和目标拟合能力,大大提高了强化学习解决问题的效率。这里仅简要列下我们的技术方案中运用到的Experience Replay及Double DQN技术。

1、 Experience Replay

强化学习的样本的产生一般是顺序的,比如围棋一步一步的、对话一轮一轮的进行,这样收集到的样本也是顺序相关的。这种样本的相关性不符合独立同分布的假设,深度学习模型也很容易学习到这种相关性,为了消除这种相关性,建立一个experience replay pool,在模型训练的时候随机的从pool中sample样本来进行模型训练。

2、Double DQN

强化学习的学习目标不是来自监督的label,而是来自reward(反馈),而反馈可能不能立即到达,比如围棋要下完一盘棋才知道输赢,基于任务式的对话要到对话片段结束才知道任务是否完成。这时可以建模action的收益为当前的reward,加上后续的经过一定衰减的收益之和,也即bellman方程的形式。这里我们建模后面一步的收益时,用一个旧版本的Q网络去预测,区别于在进行优化学习的决策网络,避免偏差。

三、技术方案及实现

我们设计了用户模拟器User Simulator,用于和对话机器人对话,不断的产出样本供在线训练模块Training Server进行模型训练。这里重点介绍下User Simulator及Training Server。

1、User Simulator

User Simulator进行对话模拟,每个对话片段有一个对话目标,比如基于时间、地点等订电影票等,模拟器需要判断当前对话是否成功完成或者失败退出,给出反馈信号。模拟器会以一个可配置的概率回答错误对话机器人的提问,也会以一个可配置的概率提前退出会话。具体可以看后面的示例。

2、Training Server

User Simulator和对话机器人在线对话产生的样本,实时流入experience replay pool,Training Server不断的从样本池pool中采样minibatch的样本进行模型训练。冷启动时,以一定概率走规则决策模块,以不断得到正反馈的action,指导模型学习,同时运用epsilon-greedy算法,在各种state下探测不同的action,epsilon随着模型的训练,不断降低,直至最终模型收敛。

四、实验结果分析

下面以一个简单的小任务说明User Simulator和对话机器人进行对话模拟供模型训练以及训练效果。

对话任务目标为收集用户和他/她对象的属相槽位,然后给出感情相关的属相分析。

模型刚开始训练时,会进行不断的探测,导致比较多的错误action,如下图:

第一个错误为对话刚开始时应该执行greeting action,而却错误的决策执行了感情分析的CP action(CP:content provider,外部服务)。第二个错误为用户没有主动提出退出时执行了退出的action。第三个错误同第一个,第四个错误同第二个。最后一个错误为对话任务没完成就执行了结束action。可见刚开始训练时,无论是模型预测错误,还是epsilon-greedy算法的随机探测,都会导致比较多错误的action,而这些错误越多样性越有利于强化学习模型的训练。

经过模型若干轮迭代后,模型预测准确率大大提高,epsilon-greedy算法的随机探测比率降低,决策错误的action大大减少。如下图所示:

看下1698这个模拟对话片段,可以看到模型成功学习到,首先进行greeting action,然后询问用户属相,用户答非所问回答属猫时,机器人没收集到用户属相所以又询问了一次,收集到用户属相后进行了感情分析的CP action。然后询问用户对象的属相,收集到用户和用户对象的属相后,执行综合属相感情分析的CP action,最后进行结束action。

这里由于中间步骤的合法action的reward是一个比较小的负值惩罚,而最后成功执行任务会得到一个比较大的正向reward奖励,能够保证模型收敛到用最少的步骤完成任务。

我们也可以看到后面两个对话片段,用户随时主动提出不想聊时,模型也能决策出合适的退出action。

下图为模型训练过程中每轮对话平均reward的变化图:

下图为模型训练过程中对话片段成功率的变化图:

这里稍微提一下,每轮对话的平均reward和对话片段的成功率不一定是单调递增的,因为epsilon-greedy算法在不断的探测。随着模型的不断学习,epsilon的不断衰减,最终模型会收敛。

五、总结及展望

基于当前对话状态state决策行为action的问题,对比监督式的模型,强化学习模型无需标注样本,借助模拟器产生大量样本进行模型训练,模拟器仅需提供对话片段的成功或者失败的反馈,可以大大节省人工标注的人力投入。

在实验过程中,我们也发现,强化学习模型的学习过程,依赖深度学习模型的拟合能力,实验过程中经历过一次DNN模型的调优,大大加速了强化学习模型的收敛速度。随着样本的不断模拟产出,强化学习模型不断迭代,正确的action会得到一个较大的正向reward反馈,错误的action也会得到一个较大的负向reward反馈,而中间过程的合法action也会不断迭代得到一个合理的正向的reward反馈。

同时,我们在实验过程中也发现强化学习的探索效率也是有待提高的,本质上,强化学习就是不断探测,得到各种state下各种action的正负反馈,而且如果探测不够充分,学出的模型会决策出一些错误甚至是危险的行为action,强化学习的安全性问题也有相关学术论文探讨,比如UC Berkeley提出约束型策略优化新算法。后续我们计划先训练一个策略网络,再用强化学习进行不断探测优化,同时在线根据用户反馈进行优化,这里在线的用户反馈的客观性也是个问题,而可能的安全性问题可以通过action mask解决。

目前我们的state是经过NLU模块,得到意图、槽位等,经过DST更新得到当前对话状态state的。这里用户原始输入经过NLU模块不可避免会有损失、错误,长期来看,可以端到端的建模,直接输入用户的原始输入,决策得到行为action,再进行NLG对话生成。

参考文献:

[1] Dilek Hakkani-Tür, Gökhan Tür, Asli Çelikyilmaz, Yun-Nung Chen, Jianfeng Gao, Li Deng, Ye-Yi Wang:Multi-Domain Joint Semantic Frame Parsing Using Bi-Directional RNN-LSTM. INTERSPEECH 2016: 715-719

[2] Xiujun Li, Yun-Nung Chen, Lihong Li, Jianfeng Gao:End-to-End Task-Completion Neural Dialogue Systems. CoRR abs/1703.01008 (2017)

[3] Xiujun Li, Zachary C. Lipton, Bhuwan Dhingra, Lihong Li, Jianfeng Gao, Yun-Nung Chen:A User Simulator for Task-Completion Dialogues. CoRR abs/1612.05688 (2016)

[4] 完善强化学习安全性:UC Berkeley提出约束型策略优化新算法

[5] RL Course by David Silver - Lecture 1: Introduction to Reinforcement Learning

[6] 深度 | David Silver全面解读深度强化学习:从基础概念到AlphaGo

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

朱张斌的专栏

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

《自然》论文详解:AlphaGo 背后的深度神经网络和树搜索

Nature 封面论文:Mastering the game of Go with deep neural networks and tree search(通...

3264
来自专栏AI研习社

现在的AI算法真的模拟了人脑吗?

我是生物本科,认知神经科学研究生在读,课余时间比较喜欢编程和机器学习,正在自学,了解的稍微多一些。我试着从我的角度来说下我看到的深度学习和神经科学的联系。 深度...

3213
来自专栏机器之心

深度 | 谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解

机器之心原创 参与:吴攀、QW 一年一度的谷歌开发者大会 Google I/O 在山景城成功举行,在首日的 Keynote 中,谷歌宣布了一系列新的硬件、应用...

3466
来自专栏新智元

【智驾深谈】George Hotz 开源代码复现与分析(80G数据云盘下载)

【新智元导读】上周GeoHot开源代码那篇文章一发,反响还是很强烈的,好多兄弟问我这事儿靠谱么,代码怎么样,论文怎么样,索性上周末抽时间找了赵李二位无人车老司机...

34513
来自专栏人工智能头条

AMiner背后的技术细节与挑战

1166
来自专栏AI科技大本营的专栏

OpenAI公布强化学习新算法,可控制复杂机器人

近日,OpenAI 发布了一种新型的强化学习算法:近端策略优化(Proximal Policy Optimization,简称 PPO),这种算法不但在性能上比...

3199
来自专栏机器之心

开源 | OpenAI基准DQN及其三个变体:通过最佳实践确保DQN正确性

选自Open AI Blog 机器之心编译 参与:黄小天、微胖 我们开源了 OpenAI 基准(https://github.com/openai/baseli...

3378
来自专栏AI科技评论

动态 | 谷歌发布机器学习规则 关于机器学习工程的最佳实践(下)

文章介绍了一种机器学习样式,类似于 Google C++ 样式指南和其他常用的实用编程指南。

602
来自专栏量子位

Top10机器学习开源项目发布,历时一个月评出 | 附GitHub地址

从将近250个机器学习开源项目中,综合各种条件进行打分排序,最终Mybridge团队评选出十大最新、最棒的机器学习开源项目。 这份Top10名单中包括对象检测、...

3318
来自专栏机器之心

学界 | 一台笔记本打败超算:CMU冷扑大师团队提出全新德扑AI Modicum

1947

扫码关注云+社区