作者|Pierre-Emmanuel Mazare 等

译者|郝毅

编辑|Debra

出处丨 AI 前线

AI 前线导读:聊天机器人是目前非常流行的一种人工智能系统。目前大部分聊天机器人的衔接性都不是很好,尤其是在没有主动的重调优策略下训练出的端到端系统中。一些研究成果表明,在训练端到端的对话模型过程中,对模型添加一些个性化的背景故事将其“拟人化”可以有效的的提高模型的对话衔接性。然而,这种个性化的数据库是通过人工合成的,并且仅包含 1k 个不同个性的人物。针对这一缺陷,Facebook 发布了一个全新的对话数据库,该数据库包含超过五百万个不同个性的人物以及七百万个基于人物的对话。译者对这一数据库做了简短的介绍,并讨论了其对于个性化对话系统发展的影响。

背 景

基于神经网络的端到端对话系统,在多种情况下都取得了突出的效果,例如使用双向 LSTM 或记忆网络直接在对话数据库上进行训练的模型。这种方法最主要的优势之一是吗,基于大量的数据源,模型可以在不需要其他专业知识的情况下,学习涵盖各种领域的对话。然而,在短时对话的情景下,这种模型的对话衔接性会出现明显的缺陷。这是由于它们缺乏一致性的性格特征,并且没有使用主动的调优策略。

为了解决这一问题,Facebook AI Research 的研究人员使用名为 PERSONA-CHAT 的数据库进行训练,该论文(https://arxiv.org/abs/1801.07243) 发表于 NIPS2018。PERSON-CHAT 数据库包含超过 16 万条对话,与传统对话数据库不同的是,改数据库赋予每个对象一种实例化的人格,这将有助于提高模型在对话过程中的一致性。论文中提到,将一个端到端的系统限制在某种给定的人格环境下,可以有效的提高聊天 机器人的对话一致性。这成为了训练端到端的个性化聊天机器人的敲门砖。然而,PERSONA-CHAT 数据库是一个人工数据集,它是由基于 Mechanical Turk 的系统生成的。因此,无论是对话内容还是人物角色的数量都不能涵盖真实的用户 - 机器人式的交互场景,该数据集仅包含了超过 1000 个不同的人物角色。

针对 PERSONA-CHAT 存在的缺陷,Fackbook 的研究人员建立了一个基于人物对话的大规模数据库。经过简单的预处理,研究人员使用从 REDDIT(一个大型社交新闻站点) 的收集到的对话进行整理,得到了超过 500 万种人格的超过 7 亿条对话。研究人员在这个数据集上进行训练,与在 PERSONA-CHAT 上训练的同结构模型相比,取得了更好的效果。此外,在该数据库上进行预训练后的模型 PERSONA-CHAT 数据库上也取得了目前领先的结果。

建立百万规模的个性化对话数据库

我们的目标是在多样化的人物角色中学习一种基于人物的回复。从这点出发,我们使用源自 REDDIT 的数据建立了以下形式的数据库:

  • 角色:["I like sport","I work a lot"]
  • 语境:"I love running."
  • 回复:“Me too! But only on weekends.”

“角色”是一系列可以表示聊天机器人角色特征的语句,“语境”是指需要对其作出应答的句子,“回复”是需要作出的回答。这便是该数据库的基本形式,建立一个这样的数据库通常需要以下这些步骤:

  1. 数据预处理:这一步的主要工作是将原始的语句进行标记化,经过处理,研究人员获得了超过 25 万个常用的 token。
  2. 角色提取:通过收集同一个用户的评论,并使用既定的规则进行筛选,可以得到不同性格和背景的“角色”,以及“角色”所对应的“语境”与“回复”。具体的规则在论文的 3.2 部分有详细说明,感兴趣的读者可自行阅读。上面的示例中的 persona 便是这一部分期望得到的结果,但有的时候,“回复”并不一定跟“角色“”有明显的对应关系,这是因为同一个用户可能会发表矛盾的言论。
  3. 数据集创建:将“语境”和“回复”进行组合,便得到一组样例。与“回复”相对应的人物角色可由第二步中的方法进行提取。随后将数据库随机划分为训练集、验证集和测试集。验证集和测试集保含超过 5 万组样例。仅适用训练集提取人物角色:测试集的“回复”不能被明确的包含于某个特定“角色”。

端到端的对话模型

这篇论文使用语言检索 (next utterance retrieval) 的方法建立对话系统,语言检索的方法是指通过在一组候选语句中选择一个最佳语句做为对话的回复,而不是通过生成的方法得到回复。

1、网络结构

图 1:Persona-based network architecture

该模型的框架如图 1 所示,论文使用了两个分离的模块对人物和语境进行编码,然后使用 1-hop 记忆网络和残差学习的方法对编码结果进行组合得到一种联合表示。参考 PERSONA-CHAT 这篇论文,本文的作者使用了与其类似的方法也对候选的回复进行了编码,并计算了其与上述联合表示的点积。预期的回复应当是使得该点积最大化的候选语句。

训练过程使用 softmax 分类器对点积的效果进行约束并最大化正确回复的对数似然比。在训练过程中,对于某个样例,还使用了其他样例的回复作为负样本进行训练以提高模型的泛化能力。

2、语境和回复编码器

语境和回复编码器使用了相同的网络结构与词嵌入,但使用不同的权重。本文的作者使用了以下三种不同的编码器结构作为语境和回复编码器的结构:

  • Bag-of-words:使用两个线性映射对输入语句进行词嵌入 (word embedding),然后对一句话中所有的编码表示进行求和并除以 sqrt(n),其中 n 是这句话的长度(译者注:可以理解为一种归一化处理)。
  • LSTM:使用两层双向 LSTM 网络,将最后一个隐层的输出当作编码后的语句。
  • Transformer:该结构是由 Vaswani 等人于 2017 年提出的一种端到端的记忆网络。基于自注意力机制,在语言检索任务 (next utterance retrieval) 上取得了领先的效果。本文仅使用了该网络的编码器部分,然后进行归一化得到固定大小的表示。

3、人物角色编码器

针对每个人物角色,人物角色编码器都会分别编码。它使用和语境编码器相同的词嵌入方法。然后对这句话中所有的编码表示求和。由于对于每个人物角色,都需要不同的编码器进行训练,因此本文的作者专门选择了更简单的编码器结构作为人物角色编码器。这是由于在一个 mini-batch 中,人物角色编码器的个数比其他编码器个数大一个数量级。并且,大多数的人物角色数据都是一些短句,因此作者使用了 bag-of-words 表示直接作为其编码表示。

实验部分

针对上述的编码器,本文作者使用了 Adamax 对网络进行优化,其中学习率为 8e-4,mini-batch 的大小为 512。同时,本文使用了 FastText 词向量进行初始化,并在训练过程中对其进行了优化。其他具体的训练参数可阅读英文原文。

1、人物角色信息的影响

在 reddit 任务上的结果,本文使用了不同的结构进行了实验,结果如下表所示:

可以看出对于三种不同的编码器结构,增加人物角色信息都可以有效的提高检索精度。图 2 是经过训练后模型的部分结果示例,可以看出聊天机器人系统给出的回答基本符合它的个性化人物角色属性。

图 2:最好模型的预测结果。

所有的情景中人物角色由一个单句组成,回复被限制在为包含 10 个 token 的短句,它是从 100 万个从训练集中随机选择的候选句中检索到的。

2、迁移学习

本文比较了使用 PERSONA-CHAT 和 REDDIT 两种数据库进行迁移学习的效果,实验结果如下表所示:

可以看出在 POERSONA-CHAT 数据库上进行训练的模型直接在 REDDIT 数据库上的验证效果很差,而在 REDDIT 数据库上训练的模型在 PERSONA-CHAT 数据集上可以表现出不错的效果。表中的 FT-PC 意为:在 REDDIT 数据库上进行训练并在 PERSONA-CHAT 进行微调。可以看出使用 REDDIT 预训练后的模型迁移到 PERSONA-CHAT 数据库上的效果远优于在 PERSONA-CHAT 上直接训练的效果。

英文论文原文:

https://arxiv.org/pdf/1809.01984.pdf

端到端对话模型新突破!Facebook发布大规模个性化对话数据库相关推荐

  1. 高端重疾险新突破,御享福有何门道?

    根据贝恩公司发布的<2021中国私人财富报告>显示,2020年,中国高净值人群(可投资资产超过1000万元的个人)数量达到262万人,预计2021年底,中国高净值人群数量将达约296万人. ...

  2. 端到端问答新突破:百度提出RocketQA,登顶MSMARCO榜首

    机器之心发布 机器之心编辑部 开放域问答(Open-domain QA)一直是自然语言处理领域的重要研究课题.百度从面向端到端问答的检索模型出发,提出了RocketQA训练方法,大幅提升了对偶式检索模 ...

  3. OPPO Find X3通过网站推广正式官宣,打破常规探索高端旗舰新突破!

    早在三月初OPPO就已经开始针对OPPO Find X3新系列产品做出预热,从选择姜文作为新系列高端旗舰产品的代言人就可以看出,此次OPPO有着全新的考量.借用姜文经典电影中的台词"什么TM ...

  4. 新奥创:多APP场景端到端的技术体系探索与突破

    随着阿里巴巴集团业务的不断扩张,APP 场景也越来越多,手淘,猫客,飞猪,大麦,口碑,饿了么,盒马等等.虽然大家分属于不同的领域,有各自的特点和特色,但是对于交易的述求都是一样的,这些 APP 还要再 ...

  5. AMD收购Xilinx、Zoom为全体用户提供端到端加密、Facebook云游戏、苹果搜索引擎等|Decode the Week...

    Decode the Week≠音视频技术周刊  Picture from NASA 这张图显示了在中子星相撞前从中子星上剥离出来的炽热.稠密.膨胀的碎片云.这是一种天文现象,发生在两颗中子星或一颗中 ...

  6. 2021年国庆节假期三亚游客离岛免税购物热情高涨、偏爱高端酒店与景点新玩法...

    三亚2021年10月9日 /美通社/ -- 暑期国内局部疫情反复对三亚旅游市场带来较强冲击,2021年国庆节假期三亚迎来传统旺季的出行高峰,三亚市旅游推广局结合大数据平台与旅游统计数据,通过分析研究发 ...

  7. 打破硬件内卷:荣耀开启高端旗舰手机智慧新赛道

    3月17日,荣耀旗舰新品发布会如期召开,全能智慧旗舰荣耀Magic4系列面向中国市场正式发布.继2月28日巴塞罗那MWC首发之后,荣耀Magic4系列国内发布会又带来了诸多全新看点:首先是荣耀Magi ...

  8. 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具

    谷歌又有了大动作.在大洋彼岸的谷歌Cloud Next conference大会上,谷歌一口气发布了多款AI新品和工具,主要包括: 端到端的AI平台 用于处理视频和表格数据的AutoML Tables ...

  9. c++ 实现outlook itemsend_2021智能C端冬季科创训练营作业已发布,请注意查收~

    点击蓝字关注  我们一起聊聊创业吧~ 元旦假期余额不足 即将开启新一年的学习与生活 你还好吗? 下图是不是你 可以说是非常形象了 咳咳咳在昏昏欲睡之前   还有一件事要通知到大家"智能C端冬 ...

最新文章

  1. eclipse中java项目转换为web项目
  2. 什么是Karush-Kuhn-Tucker 最优化条件 (KKT 条件) 三个人名 独立发现的最优化条件
  3. .Net Web开发技术栈
  4. 2018 前端面试题(不定期更新)
  5. java04376_Java - jdbc mybatis
  6. Kali Linux 秘籍 第六章 漏洞利用
  7. python语言提供的三个基本数据类型是_python基本数据类型
  8. SQL2005创建快照
  9. requests库学习
  10. 叶子结点和分支节点_教你玩转二叉查找树的结点插入操作
  11. mysql数据库 安装后 闪_MYSQL数据库Mysql数据库安装完成后需要进行的6个后续操作...
  12. java基础 UDP通信 user datagram protocol 用户数据豆协议 TCP transmission control protocol 传输控制协议 多线程TCP...
  13. NOSQL数据库习题
  14. 自备ACM模板 —— 数学篇
  15. 运算放大器(运放)选型、参数分析以及应用OPA2350
  16. OCiOS开发:汉字转拼音
  17. 三层交换机dhcp服务器性能,CISCO三层交换机怎么配置DHCP服务?
  18. RIM任松伟:黑莓引领企业移动化主题演讲
  19. 目标跟踪——Tracking without bells and whistles
  20. python tan,Python3 tan() 函数

热门文章

  1. 5个常用Java代码混淆器 助你保护你的代码
  2. 1476. Lunar Code
  3. JVM XMX设置多大比较好,Docke容器里该怎么设置JVM呢@无界编程
  4. 动手扩充FreeTextBox的功能
  5. 对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺
  6. 吴恩达老师深度学习视频课笔记:序列模型和注意力机制
  7. VLC SDK在VS2010中的配置及简单使用举例
  8. 【ubuntu工具】bless:二进制查看工具,类似win下的UltraEdit
  9. xwpftemplate的时间设置_java poi设置生成的word的图片为上下型环绕以及其位置
  10. Linux编译lclntsh,Linux下编译C/C++时,出现/usr/bin/ld: cannot find -l*** 错误的处理