「论文访谈间」是由 PaperWeekly 和中国中文信息学会青工委联合发起的论文报道栏目,旨在让国内优质论文得到更多关注和认可。 这是第 21 期「论文访谈间」

论文作者 | 宋皓宇,张伟男,刘挺

(哈尔滨工业大学,社会计算与信息检索研究中心)

特约记者 | 曾爱玲(香港中文大学)

构建开放域聊天机器人的一个主要任务就是进行多轮对话,得到一个更好的多轮对话策略对于人机对话系统有着很多积极的意义。而目前的神经网络对话生成模型在多轮对话过程中存在着容易产生万能回复、没有考虑多轮对话的整体走向之类的问题。

针对这些问题,本文引入了深度强化学习的 DQN(Deep Q-Network)算法进行开放域的多轮对话策略学习,该策略使得每一轮的回复都更加有利于多轮对话的进行,减少万能回复的生成以及产生质量更高的多轮对话。 

所谓的“万能回复”,是指那些看似能够回复任何输入但却没有实际意义、不利于对话过程持续进行的句子。万能回复跟训练语料密切相关,通常出现频率较高,典型的万能回复比如英文 OpenSubtitles 语料上的“I don’t know”以及中文微博语料上的“哈哈哈哈”等。

对话生成任务中以 seq2seq 模型为代表的端到端生成方式基于极大似然估计,每次得到的回复都是生成概率最大的句子,这就导致了万能回复非常容易被选中。

△ 图1:生成万能回复的例子

开放域多轮对话的一个重要目标就是尽可能聊得更久。开放域多轮对话中每一轮回复的选择,不仅需要考虑是否能够有效回复当前输入,更需要考虑是否有利于对话过程的持续进行。

本文通过 DQN 对当前对话状态下每一句回复进行评估,每次选择具有最大累计价值而不仅仅是生成概率最高的句子,利用强化学习最大化未来累计奖励的特点,建模多轮对话的过程,使得当前回复有利于对话过程的持续进行,以缓解多轮对话过程中容易出现的生成大量万能回复以及很快陷入死循环的问题。

△ 图2:DQN提供了黑盒的功能

本文参考 Sutskever et al. (2014) [1] 以及 Vinyals et al. (2015) [2] 实现了 seq2seq 模型,同时在训练过程中加入了注意力机制和 dropout 机制。在得到基础的回复生成模型后,可以通过模拟对话的方式来检验该模型能否有效进行多轮对话。

此外,因为句子是变长和离散的,不利于进一步处理,所以本文借鉴自编码的思想,使用自编码器来获得关于句子的固定维度向量表示。

接下来介绍使用强化学习模型建模多轮对话过程:

代理(Agent)的主要作用是根据环境更新的状态s选择动作a,这部分的主体是通过 DQN 算法训练得到的深度价值网络。深度价值网络对于给定的状态 s 和动作 a,估计出一个价值 Q ( s, a ),然后选择价值最大的那个动作。

环境(Environment)的主要作用是接受代理选择的动作 a(也就是句子),根据这个句子更新状态 s,并根据奖励函数计算这个动作得到的奖励 r。环境的主体部分是训练好的自编码器,将输入句子编码为特征向量从而表示状态s。

转移概率在对话过程中不需要定义,因为状态的转移依赖于模拟对话过程。 奖励函数(Reward)的作用是引导对话向轮数更多、信息更丰富、无聊回复更少的方向进行。从这个角度出发,奖励定义为选择一个动作后得到的即时奖励,通过生成概率、互信息以及句子间余弦相似度的方式进行定量计算。

△ 图3:本文实验的整体结构

DQN 系列算法提供了更新价值估计的有效方法,经过漫长的迭代计算后,通过深度价值网络进行的估值渐渐逼近了真实价值。

实验数据方面,本文使用新浪微博对话语料 (Shang et al. 2015) [3],每一对对话数据分别来自微博的正文和这条微博下面的评论,这样一组博文-评论对就近似构成了一组对话对,该数据集总共有约 110 万组这样的对话对。

实验结果方面,下面表 1、表 2 给出了一些直观的结果展示。可以看到,通过 DQN 引入多轮对话策略后,模拟对话的质量有了明显的提升。具体如下所示:

△ 表1:DQN和Baseline单轮对话对比

△ 表2:DQN和Baseline多轮对话对比

评价指标方面,对于多轮对话的实验结果,本文参考 Li et al. (2016) [4] 的方法,使用以下两个客观指标进行评价:1. 平均对话轮数2. 多样性

本文还进行了主观的对比评价:给定相同的输入,本文的 DQN 模型和基础模型独立进行单轮回复生成以及进行模拟对话,然后由与实验无关的评价者主观对比二者的质量。对于多轮对话,总共收到 600 组对比打分。

主观指标方面,基于 DQN 的对话策略在多轮对话上优于基础模型的比例达到了 68.3%。

客观指标方面,引入 DQN 学习多轮对话策略后,模拟对话的平均对话轮数由 2.51 轮提高到了 4.56 轮。

对话作者

我们的创新之处在于,将 DQN 应用于对话策略的学习过程中,使用独立的深度神经网络对每一句候选回复的未来收益进行评估,从而得到一个有利于多轮对话持续进行的对话策略。而实验结果也表明,通过 DQN 方法得到的多轮对话策略有效提高了多轮对话的多样性、平均轮数和对话质量。

我们的后续工作将着眼于将 DQN 用于 seq2seq 模型的训练过程,使用深度价值网络来估计训练过程中的损失,使得训练损失带有更多的信息,从更细粒度上提高生成句子的质量。

此外,如何更加全面的评价对话结果也是一个值得研究的问题。

参考文献


[1] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learn-ing with neural networks[C]//Advances in neural information processing systems. 2014: 3104-3112.

[2] Vinyals O, Le Q. A neural conversational model[J]. arXiv preprint, 2015, arXiv:1506.05869.

[3] Shang L, Lu Z, Li H. Neural responding machine for short-text conversation[J]. Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics, 2015, pages 1577–1586.

[4] Li J, Monroe W, Ritter A, et al. Deep Reinforcement Learning for Dialogue Generation[J]. Proceedings of the 2016 Con-ference on Empirical Methods in Natural Language Pro-cessing, 2016, pages 1192–1202.

关于中国中文信息学会青工委


中国中文信息学会青年工作委员会是中国中文信息学会的下属学术组织,专门面向全国中文信息处理领域的青年学者和学生开展工作。

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

让聊天机器人同你聊得更带劲 - 对话策略学习 | 论文访谈间 #21相关推荐

  1. 让聊天机器人同你聊得更带劲 - 对话策略学习

    构建开放域聊天机器人的一个主要任务就是进行多轮对话,得到一个更好的多轮对话策略对于人机对话系统有着很多积极的意义.而目前的神经网络对话生成模型在多轮对话过程中存在着容易产生万能回复.没有考虑多轮对话的 ...

  2. “小会话,大学问” - 如何让聊天机器人读懂对话历史?| 论文访谈间 #03

    人工智能现在的火热程度大家有目共睹,凯文凯利在<必然>中预测未来时代的人工智能可能会重新定义人类的意义,但时下的人工智能发展水平显然还没有大家想象得那么美好,仍然需要我们不断地探索.目前众 ...

  3. 2020最新智能客服|聊天机器人算法、架构及应用分享

    智能客服(聊天机器人)是在大规模知识处理基础上发展起来的一项面向行业应用的,适用大规模知识处理.自然语言理解.知识管理.自动问答系统.推理等等技术行业,智能客服不仅为企业提供了细粒度知识管理技术,还为 ...

  4. 行业内关于智能客服、聊天机器人的应用和架构、算法分享和介绍

    更多精品内容及源码,尽在"源码大数据" 阿里巴巴 小蜜 阿里小蜜新一代智能对话开发平台技术解析 阿里小蜜:知识结构化推动智能客服升级 阿里云小蜜对话机器人背后的核心算法 大中台.小 ...

  5. 无需编程经验,这份Python自动聊天机器人代码帮你玩转对话交流!

    import jieba import pandas as pd# 尝试打开停用词文件并读取内容 try:with open('stopwords.txt', 'r', encoding='utf-8 ...

  6. 让问答更自然 - 基于拷贝和检索机制的自然答案生成系统研究 | 论文访谈间 #02...

    让机器像人类一样拥有智能是研究人员一直以来的奋斗目标.由于智能的概念难以确切定义,图灵提出了著名的图灵测试(Turning Test):如果一台机器能够与人类展开对话而不能被辨别出其机器身份,那么称这 ...

  7. 如何使用深度学习训练聊天机器人

    原文地址 译者观点:目前AI整体处于研究热点,很多领域离产业化还很远,比如本文中的主题如何制作聊天机器人,虽然各大厂都有不同涉足,但是涉及的领域有限,其实在各个细分领域都可以训练专用的聊天机器人.那么 ...

  8. Facebook 号称击败谷歌,推出最强聊天机器人

    By 超神经 场景描述:Facebook 近日开源了新的聊天机器人 Blender,表现优于现有对话机器人,更具个性化. 关键词:Facebook 聊天机器人 Blender 4 月 29 日,Fac ...

  9. 聊天机器人发展及应用技术解析

    本文介绍聊天机器人原理及实现傻瓜式聊天机器人. 1 聊天机器人简介 维基百科 聊天机器人(也称为聊天机器,聊天机器人,Bot,IM bot,交互代理或人工对话实体)是通过语音或文本进行对话的计算机程序 ...

最新文章

  1. PyQt5 技巧篇-增加一个类级变量,类级变量的设置方法,类级“常量“设置方法
  2. 关于Java空指针的控制(转)
  3. Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
  4. Win7系统打开网页特别慢的解决方法
  5. mysql录入图片数据_mysql插入图片数据
  6. 计算机桌面变成立体,win7系统将桌面变成立体桌面的两种方法介绍
  7. wordpress 增加备案号
  8. 内网使用 IPV6 之 TunnelBroker隧道(6in4)篇
  9. 【第36期】游戏策划:新手入行的切入点在哪?
  10. JxBrowser-JS调用和AJAX数据监听
  11. winserver2012安装语言包
  12. html图片自动切换的幻灯片效果的,JS实现可切换图片的幻灯切换效果示例
  13. 这个空指针异常我是一脸懵逼的
  14. 上传webshell(入侵目标页面主机靶机演示)
  15. 有效学习的6个方法学习方法
  16. mac下快速安装php的各个版本
  17. 一些关于芯片烧录的心得
  18. 啊哈添柴挑战1222输出菱形C++
  19. RPA改变零售业游戏规则丨零售巨头RPA应用实录+场景示例
  20. 回文数函数的粗浅理解

热门文章

  1. H2内嵌数据库的使用
  2. 说说docker run的--detach
  3. mac电脑开机键盘和鼠标失灵
  4. Python学习笔记(三)——条件语句、循环语句
  5. IOS -- UICollectionView里面的cell点击,点击一个cell改变其他cell的状态
  6. ASP.NET MVC项目 解决session失效
  7. POJ 2301 Beat the Spread!
  8. 消防荷载楼板按弹性还是塑性计算_现浇楼板裂缝处理办法全总结!
  9. mysql gone away 测试_python测试开发django-58.MySQL server has gone away错误的解决办法
  10. Myeclipse创建Maven项目提示:Creating maven-archetype-webapp has encountered a problem. 解决方法