作者:戴音培, 黎航宇, 李永彬, 孙健

出品:阿里达摩院Conversational AI团队

导读:随着科技的不断进步发展,智能对话系统因其巨大的潜力和商业价值将会成为下一代人机交互的风口,不少公司都纷纷开始研究人机对话系统,希望人与机器之间能够通过自然对话进行交互。笔者所在的达摩院 Conversational AI团队(即云小蜜团队),早在三年前就研发打造了面向开发者的智能对话开发平台 Dialog Studio,并将我们的技术通过阿里云智能客服的产品矩阵,赋能各行各业和政府机构进行智能服务的全方位升级。目前Dialog Studio平台已经在阿里云智能客服(政务12345热线、中移动10086、金融、医疗等)、钉钉(通过钉钉官方智能工作助理服务几百万企业)、集团内(淘宝优酷等十几个BU)、淘宝天猫商家以及Lazada东南亚6国得到了大规模应用。

01

背景

1. 任务型对话系统

常见的智能对话系统有:问答型、聊天型、任务型等。其中任务型对话在实际应用中,尤其是在我们的ToB 场景最为普遍。因为该系统不仅可以回答用户问题,同时还能主动发问,引导会话的有效进行,通过多轮对话完成某个特定的任务。例如在一个浙江省信访的外呼场景中,一个典型的对话如下:

可以看到,在该对话中,机器人需要先表明自己的来意,根据用户的不同的回答情况进行多轮的对话,收集好自己需要的满意度信息并结束对话。

目前常见的任务型对话系统的架构有两种,一种是模块化的,另一种是端到端式的(如下图所示):

尽管模块化的对话系统由于每个部分独立优化,具有更强的可控性,但是端到端的对话系统可以直接利用对话日志进行训练,不需要人工设计特定的语义标签,因此更具备可扩展性,在一些复杂度中低的对话场景中能够快速训练部署使用。有关模块化和端到端对话模型的详细介绍和前沿进展可参考《小蜜团队万字长文:对话管理模型最新研究进展》一文。

2. 端到端对话模型及其挑战

一般来说,端到端对话模型可分为检索式和生成式,检索式模型就是给定对话历史从预定义回复候选集合中选出最佳回复作为当前系统输出,生成式模型则是给定对话历史直接生成回复。两种方式都可以通过和用户多轮交互完成最终的对话任务。

由于回复更加可控,目前我们在 Dialog Studio 上实现的是检索式端到端的对话模型,并且在政务、疫情等业务中都落地应用。上述的浙江省信访的例子就是我们实现的对话模型所产生的对话,因为没有复杂的知识推理、语义解析等,此类场景是端到端对话系统特别适用的场景。

然而,尽管端到端对话模型简单易用,但是在实际应用中仍然面临着两大常见问题:

① 数据量少:端到端模型一般需要大量的训练数据,且场景越复杂,需求越大。在 Dialog Studio 中的ToB 的业务,不少新场景一开始是没有可用的高质量对话日志,比如我们在政务12345 场景 和 114 移车场景上积累了大量的对话,可当我们做省信访外呼场景时,一开始只有极少的对话可以使用。因此如何利用已有场景的丰富数据训练好一个端到端模型,使其可以快速迁移到缺少数据的新场景上是一个很大的挑战。

② 鲁棒性差:有限的离线训练数据和真实的在线测试数据之间存在数据分布的差异性,会导致系统在线表现不佳和离线测试效果不匹配的情况。这种差异性主要来自于未见的用户行为(例如:新槽值、新意图、复杂句等),这类问题统称为 out-of-script 问题,可以用来验证对话模型的鲁棒性。例如下图中,训练数据中从未出现过“喂,内容是什么?我忘了反馈什么了” 类似的用户语句,一旦真实上线,模型很容易预测出错误的结果,从而影响用户体验。尤其是当数据量少的时候,模型对于在线数据的鲁棒预测会进一步下降。因此如何解决线上线下数据不匹配,提高端到端对话模型的鲁棒性是另一大挑战。

在阿里云智能客服的诸多业务中,不少场景都存在训练数据稀少的问题,而客户又需要我们的对话系统能够达到可直接上线的标准。因此综合来看,我们希望提出一种新的端到端对话系统以及对应的优化方法,能够兼具备面对新场景的快速适应性(fast adaptability)和稳健的在线表现 (reliable performance),能够在低训练资源下依旧能够保证较好的线上效果。

02

技术方案

通过前期调研我们发现,应对数据少的问题的常用方法有元学习、数据增强等,而应对训练和测试对话数据不一致的问题的常用方法有人机协同[1]、在线学习[2]等。最终我们选择将元学习(meta-learning)方法和人机协同(human-machine collaboration)方法结合,提出了元对话系统(Meta-Dialog System, MDS):利用元学习,系统能够在少量训练数据上进行快速学习,解决数据少的难题;利用人机协作,模型可以在对话中请求人工客服帮助,以保证系统达到可接受的线上水平,提高系统的鲁棒性。相关成果已经发表至 ACL2020 [3]。

1. 模型结构

我们采用检索式端到端对话模型[4],该对话任务是一个分类任务,即给定预定义的回复候选集,基于对话历史选择正确回复。如下图所示,一般该模型一共包含三个部分:

  • 历史编码器(History encoder),对整个对话历史进行编码提取对话状态向量,常见模型可以使用 MemN2N,Hierarical RNN,BERT 等 ;

  • 回复编码器 (Response encoder),对每个回复进行编码提取句向量;

  • 预测器,根据对话状态向量和回复句向量判断出正确的回复,通常就是计算余弦相似度给出。

而在人机协同的框架下[1],为了能够做到智能高效地转人工,端到端对话模型还会多出一个判决器模块,专门用于判定当前对话是否转人工,如果转人工则交给人工客服解答,否则模型自己给出答案。如下图所示:

2. 优化方案

在上述的模型结构基础上,笔者在优化训练上进行了创新,利用经典的 MAML 算法[5] 来进行优化,提出了元学习对话系统(meta-dialog system, MDS)。整个 MDS 的框架如下:

在ACL2020论文中,为了和文献 [1, 4] 一致,对于历史编码器我们仍然采用经典的 MemN2N 模型,对于回复编码器我们使用了一个简单的词向量相加的句向量。模型预测器的部分,我们选择了能够学习出更有鉴别性的特征的large margin cosine loss [7] 作为损失函数 Llmc 。针对请求人工的判决器,我们提出通过计算判决器预测的正负样本的 F1 score作为 reward 函数,使用增强学习来进行优化 Lrl 。最终,我们利用MAML对 Llmc+Lrl 进行联合优化。

MAML 是元学习中的一类方法,它具备模型普适性,通过在meta tasks上进行预训练,能够帮助模型找到一组最合适的参数,使其快速适应新任务。例如下图[9]给出了一个 MAML 和MLE 训练对比示意图,每个圆圈都是看做一个场景,实心的是训练用的源场景,空心的是测试用的目标场景,使用 MLE 预训练会导致模型的参数过拟合到源场景上,而MAML预训练则能够找到更好的参数初始化,使得快速迁移到新场景上去:

正是因为这样的特性,我们选择 MAML 来进行联合优化,帮助预测器和判决器一起快速适应新场景。

在 MAML 训练中,首先需要构造元任务 (meta-task),步骤如下:

  • 采样 K 个对话场景 (每个场景对应一个对话任务)

  • 每个对话任务,采样 N 个对话数据作为支撑集(support set),N 个数据作为问询集(query set)

然后根据以下算法流程进行优化:

03

模型结果

为了验证模型在新场景的迁移能力,我们需要多场景的端到端对话数据集,在评价时,依次选取一个场景作为目标场景,剩余的作为训练场景。利用 MAML 预训练模型完毕之后,再在目标场景上进行小样本的迁移实验。最终结果是每个场景取平均得到。我们既需要在学术数据集上实验,也需要在实际业务中落地,以此验证算法的可行性。

1. Extended-bAbI数据集结果

学术数据集我们选择了extended-bAbI,它是 bAbI 数据集的扩展版,包含了场景有餐馆、机票、酒店、电影、音乐、旅游、天气等 7 个场景,每个场景的训练集/开发集/测试集为 1500/500/1000 个完整对话,评价指标是回复选择的准确率。我们将 MDS、MDSmle(将MAML优化改成 MLE 优化)、Mem+C [1] 这三个模型进行对比如下:

平均在新场景中,使用 0, 1, 5, 10 组完整对话 session 数据上,MDS 模型的表现都是最好的。证明了我们小样本下端到端模型的效果。同时我们也做了一下 ablation study,发现去掉判决器 (MDS-switch) 和随机转人工 (MDSrand) 的模型都很差,证明了我们的转人工判决器真的能够在联合优化中学出识别 out-of-script 的对话数据的能力,提升模型的鲁棒性。

2. 业务落地

我们的端到端对话模型 MDS 目前已经在Dialog Studio平台上政务12345的多个场景中落地,对话的完成率平均能有5-10% 的提升。通常我们遇到的实际业务的流程schema是一个较为复杂的图状结构,下图是一个简化的示意图:

这种图结构流程(我们称为 TaskFLow)在 Dialog Studio 里能够通过图形化拖拽的方式非常方便地进行配置使用。详见《一个中心+三大原则 -- 小蜜这样做智能对话开发平台》。

实际场景往往一开始时是零对话数据,尽管 MDS 模型能够进行冷启动,有比一般模型更好的效果,但是并不一定能够百分百达到上线准入要求。为了更好地利用我们模型的迁移能力,我们通过以下两步来预训练对话模型:

  • 我们设计了一个基于TaskFLow 的对话模拟器,能够低成本快速地模拟出大量模拟对话数据。该对话模拟器利用生成模型生成对话数据,并能够通过线上回流的无标日志进行模拟器的自增强优化。

  • 当一个新场景的模拟数据模拟完毕后,我们把新场景的模拟数据和各个已有相似场景的真实数据一起作为源场景进行 MAML 优化,然后迁移到新场景的真实数据中去。

下图是我们模型在某地市12345热线场景的一个实验结果:

横轴是adaptation时使用的标注对话数据量,纵轴是回复准确率。可以看到,如果直接使用 TaskFlow,整个对话系统的准确率仅在 79% 左右。但是用上MDS 模型进行数据迁移和MAML 优化之后,我们可以得到最上面那条曲线,冷启动效果从 79% 提升至88% 左右,并在不同 adaptation对话数据下都能有着持续最好的表现。

04

总结展望

本文主要介绍了如何结合元学习方法提高对话模型在新场景上的快速适应能力和预测效果,解决小样本下的端到端对话模型训练问题。我们的元学习对话系统(Meta-Dialog system,MDS),不仅在学术数据集上进行了实验,还在阿里云智能客服的多个真实场景中落地。结果表明,利用 MAML 可以很好地帮助模型的判决器和预测器一起找到合适的初始化参数,以更快地迁移到新场景中。

最后感谢所有耐心看完这篇文章的读者。智能对话系统是个极具前景和挑战性的方法。达摩院 Conversational AI团队将不断地探索推进在这个领域的技术进步和落地,敬请期待我们后续的工作!

05

参考文献

[1] Rajendran J, Ganhotra J, Polymenakos L C. Learning End-to-End Goal-Oriented Dialog with Maximal User Task Success and Minimal Human Agent Use. ACL, 2019.

[2] Liu B, Tur G, Hakkani-Tur D, et al. Dialogue learning with human teaching and feedback in end-to-end trainable task-oriented dialogue systems. NAACL, 2018.

[3] Dai Y, Li H, et al. Learning Low-Resource End-To-End Goal-Oriented Dialog for Fast and Reliable System Deployment. ACL, 2020. (to be appeared)

[4] Bordes A, Boureau Y L, Weston J. Learning end-to-end goal-oriented dialog. ICLR, 2016.

[5] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks. ICML, 2017.

[6] Eric M, Goel R, Paul S, et al. Multiwoz 2.1: Multi-domain dialogue state corrections and state tracking baselines[J]. arXiv preprint arXiv:1907.01669, 2019.

[7] Lin T E, Xu H. Deep unknown intent detection with margin loss[J]. ACL, 2019.

[8] Wang W, Zhang J, Li Q, et al. Incremental learning from scratch for task-oriented dialogue systems. ACL, 2019.

[9] Lin Z, Madotto A, Wu C S, et al. Personalizing dialogue agents via meta-learning[J]. ACL 2019.

[10] Wang W, Bi B, Yan M, et al. Structbert: Incorporating language structures into pre-training for deep language understanding[J]. ICLR 2020.

今天的分享就到这里,谢谢大家。

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼如有收获,点个在看,诚挚感谢

达摩院基于元学习的对话系统相关推荐

  1. 阿里达摩院 | 基于预训练语言模型的行业搜索

    作者|谢朋峻 阿里巴巴达摩院 整理|DataFunTalk 大家好,这里是NewBeeNLP.本文将分享行业搜索的相关技术和应用,主要包括三大部分: 行业搜索的背景 相关技术研究 行业搜索应用 01 ...

  2. 基于元学习的红外弱小点状目标跟踪算法

    基于元学习的红外弱小点状目标跟踪算法 人工智能技术与咨询 昨天 本文来自<激光技术>,作者热孜亚·艾沙等 引言 红外点状目标的跟踪是红外搜索和跟踪(infrared search and ...

  3. 干货!基于元学习的内容定向推广

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 在推荐系统和广告平台上,内容定向推广模块需要尽可能将商品.内容或者广告传递到潜在的对内容感兴趣的用户面前.扩充候选集技术(Look-al ...

  4. COLING'22 | MetaPrompting:基于元学习的soft prompt初始化方法

    每天给你送来NLP技术干货! 论文名称:MetaPrompting: Learning to Learn Better Prompts 论文作者:侯宇泰,董泓源,王兴昊,李博涵,车万翔 原创作者:董泓 ...

  5. 专家点评Nat Mach Intell | 刘琦团队开发基于元学习的AI模型进行抗原-TCR亲和力识别及肿瘤新生抗原免疫原性预测...

    T细胞受体(T-cell receptor, TCR)是获得性免疫过程中的关键分子.TCR经过特定的基因重组和进化筛选,具备高度的多样性及特异性.MHC-多肽复合物与TCR亲和力的计算识别(pMHC- ...

  6. “预习-上课-复习”:达摩院类人学习新范式探索

    简介: 预习时关注重点,上课时由易到难,复习时举一反三,能否让机器也按照"预习-上课-复习"的学习范式进行学习呢? 达摩院对话智能(Conversational AI)团队对这个问 ...

  7. 基于元学习和自我监督的图像翻译预训练

    提示:系读文章的笔记,侵删. 文章目录 前言 一.摘要 二.结论与展望 1.结论:新的小样本多任务图像到图像的转换 2.展望:提高性能和稳定性 三.介绍 四. 背景和相关工作 1 数据集(风暴事件图像 ...

  8. 端到端训练 联合训练_基于元学习和人机协同的端到端对话模型

    Data Scarcity Problem:端到端模型一般需要大量的训练数据,且场景越复杂,需求越大.在云小蜜 Dialog Studio 中的ToB 的业务,不少新场景一开始是没有可用的高质量对话日 ...

  9. WSDM 2022 | 基于元学习的多场景多任务商家建模

    丨目录: · 前言 · 背景 · 问题定义 · 算法建模 · 实验 · 总结展望 · 参考文献 · 关于我们 ▐ 前言 面向淘系商家或广告主的商家理解与建模,是阿里妈妈客户生态建设的关键一环.有别于C ...

最新文章

  1. mysql查询大于等于效率_mysql 中4 OR 6的效率要大于 !=5?
  2. 喜讯丨神策数据加入北京信创工委会!
  3. 算法竞赛入门经典(第二版) | 程序3-6 WERTYU (UVa 10082)(常量数组)
  4. 前端学习(2859):简单秒杀系统学习之前端界面布局
  5. 数据自治开放与治理模式创新
  6. python参数估计置信区间_python中分布参数的置信区间估计
  7. 12年的电脑,太卡了,有什么办法解决吗?
  8. 【VerySky原创】怎么查找系统中的锁对象
  9. 关于SVN限制填写备注和自动更新代码到网站的研究
  10. 我的世界基岩版好还是java版好_我的世界:Java版本好玩还是基岩版好玩?老玩家看完后沉默了...
  11. 服务器上文件共享有哪些协议,Windows中的文件共享协议
  12. vue3新拟态组件库开发流程——button组件源码
  13. Live2D 学习 安装插件
  14. C++ substr()函数
  15. python中key什么意思_Python中字典的key都可以是什么
  16. 下载文件时,文件名乱码。
  17. c++画直线、矩形、圆、椭圆
  18. 九种卫星地图的快速比较和选择方法
  19. 汇编中的dup和equ
  20. SkeyeVSS综合安防Onvif、RTSP、GB/T28181无插件直播点播解决方案之报警中心管理

热门文章

  1. 使用 OpenSSL 替代 Telnet
  2. 网络工程师,不需要学Linux?
  3. js实现审批流_超实用的工作流,小白用户也能轻松驾驭
  4. HDU1527(博弈论)
  5. 线段树 ---- 线段树上区间二分 或者单点二分 codeforces C. Greedy Shopping
  6. 线段树 ---- 牛客多校4 ETree Xor 区间异或分段
  7. 【常用技巧精选】尺取法
  8. python生成一个窗口_PyQt5创建一个新窗口的实例
  9. matlab语言unique,Matlab的unique函数的C++实现
  10. python中按钮关联两个函数_两个函数,在一个函数运行的情况下,点击按钮运行第二个...