分享嘉宾:李永彬 阿里达摩院
编辑整理:张存旺 曹潇潇
出品平台:DataFunTalk
导读:近年来,大数据和深度学习技术的发展极大地推动了人机对话系统的进步,使其成为少数能够大规模商业化应用的人工智能技术之一。从2014年开始,达摩院Conversational AI团队专注于人机对话的创新研究和大规模应用,打造了面向第三方开发者的智能对话开发平台Dialog Studio,以及KBQA、TableQA、FAQs等智能问答技术,并在ACL、EMNLP、AAAI、IJCAI等顶会发表多篇论文。相关技术通过阿里云智能客服 ( 即云小蜜 ) 产品矩阵已广泛服务于政务、银行、保险、医疗、运营商等行业,如智能IVR机器人为中国移动10086自动接听电话量达到1.5亿通/年,更在2020年新冠疫情爆发初期,打造了全国最大的疫情外呼机器人平台,帮助27个省拨打了1800多万通电话,协助政府工作人员进行疫情的摸排防控,获得人民网“人民战疫”一等奖。
本文将对达摩院Conversational AI的研究进展及应用做系统介绍:
达摩院Conversational AI的研究进展
对话式AI在阿里云智能客服的大规模应用
达摩院Conversational AI的整体架构如下图所示:
其中,以完成某个任务为目标的多轮对话是各行各业应用最广泛的对话形式,以二维表格 ( 含SQL数据库 ) 为载体的知识是各行各业最广泛存在的结构化知识形态,今天重点围绕任务型对话引擎Dialog Studio和表格型问答引擎TableQA的核心技术研究进行介绍:
语言理解:如何系统解决低资源问题
对话管理:如何从状态机到深度模型
TableQA:Conversational Semantic Parsing的难点和进展
在将Dialog Studio大量落地应用于各个行业领域的过程中,从算法的角度来讲,主要面临着两个挑战:第一个是在涉及多行业、场景分散的toB业务中,怎么能解决低资源小样本下的语言理解问题;第二个是如何把多轮对话管理(Dialog Management)从业界普遍的状态机推进到深度学习模型,让多轮对话具备持续学习的能力。
1. 语言理解:系统解决低资源问题
① 低资源小样本问题
低资源小样本是普遍存在的问题,比如在冷启动的场景下,统计45个POC机器人的数据,平均每个意图下的训练样本不到6条,是一个典型的小样本学习问题。在脱离了冷启动阶段进入规模化阶段之后,小样本问题依然存在,比如对浙江省11个地市的12345热线机器人数据进行分析,在将近900个意图中,有42%的中长尾意图的训练样本少于10条,这仍然是一个典型的小样本学习问题。
如何解决小样本问题,对学术研究以及业务上的大规模推广应用来讲都是重要的研究方向。
② 解决方案
引入Few-shot Learning系统解决小样本问题
在2018年初,达摩院Conversational AI团队就开始思考怎么解决这类问题,经过大量的调研,最终的选型是通过引入Few-shot Learning(小样本学习)来解决小样本下的语言理解问题。Few-shot Learning本质上是一种元学习(Meta Learning)或者说是迁移学习(Transfer Learning),希望模型能够学会如何去学习(Learning to learn)。
Few-shot Learning的训练和应用大概如下:
从大规模的训练数据集中采样抽取一个子集来模拟真实的小样本数据:比如每轮从训练数据集中抽取10(c-way, c=10)个意图,每个意图抽取10(k-shot, k=10)个样本;
基于抽取的子数据集进行学习来训练Meta Model;
重复前两步,这样经过多轮的训练之后,Meta Model就“见多识广”,具备了一定的学习能力和泛化能力;
应用的时候用真实的小样本数据对Meta Model进行适配来得到当前业务的模型。
2018年初,Few-shot Learning的研究主要集中在图像领域,在NLP领域尤其是人机对话领域的研究还很少。经过调研,达摩院Conversational AI团队提出了一个Encoder-Induction-Relation的三层Few-shot learning Framework:
首先,小样本数据经过一个Encoder编码层来得到每一个样本的向量表示;然后第二层的归纳层再把样本表示归纳为类别表示;第三层的度量,或者叫关系层,就是在新来一个样本之后,通过计算新样本与每一个类别中心的距离来判断新的样本属于哪个类别。
基于这个框架,达摩院启动了自己的研究。无论是小孩子还是大人,从小样本中进行学习的时候,主要依靠的是两种强大的能力,归纳能力和记忆能力。归纳能力是指在学习一个问题的时候,只要见过几次,就可以根据几个样本归纳出公共的内容出来,以后再见到类似事情的时候,可以通过归纳出来的公共内容来进行处理;记忆能力就是把见过的东西都记下来,在遇到问题的时候就可以从记忆库里面搜索利用相关的记忆。人在解决问题时候的这两种典型思想,就是达摩院研究的出发点。
Induction Network (EMNLP2019)
首先是在归纳方面的研究探索:
已有方法的不足:
要么是没有归纳这一层
要么是把encoder层得到的样本向量做简单的加和或者求平均
基于这个现状,达摩院在2019年提出了Induction Network的归纳机制,该工作发表于EMNLP2019,主要有两个贡献点:
把从“样本表示”到“类表示”的归纳能力进行了显式的建模;
引入胶囊思想和动态路由算法来构建归纳能力;
下面重点解释一下动态路由是如何实现归纳能力的:
目标:根据样本向量,得到一个类别向量,即类中心。
动态路由思想:不是通过一次计算就得到类中心的表示向量,而是通过迭代的思想来进行学习。
步骤:先初始化参数,通过初始化的参数来计算得到一个初步的类别向量;再通过计算当前类别向量与样本向量的距离来更新整个参数;根据更新之后的参数可以重新计算得到新的类别向量;如此迭代即可得到最终的比较合理的类别向量。
优点:权重参数是通过迭代优化得到的,对样本向量有更好的感知(即更好的表达能力)。
表现效果上,Induction Network在英文公开数据集和中文意图分类数据集上都取得了SOTA的结果,超过了之前最好的模型(红框中是之前最好的模型):
Dynamic Memory Induction Networks (ACL2020)
其次是在记忆方面的研究:
已有方法的不足:
Meta Learning的学习机制本身存在问题:在进行多轮的抽样训练过程中,学习新的Meta Task会遗忘之前的Meta Task学习到的内容。
样本多样性的问题:样本的多样化导致同一个类别的样本难以只用一个类中心去表示。
基于以上不足,达摩院提出了Dynamic Memory Induction Networks的动态记忆机制(发表于ACL2020):
提出Dynamic Memory方法,解决Meta Learning时的遗忘问题。
提出Query-Enhanced归纳方法,解决由于样本多样而难归纳的问题。
动态记忆机制将训练过程分为两个阶段:
第一阶段:利用监督学习的方法从大的训练集中学习出每一个类的代表性表示,将这种代表性表示放置在memory中;
第二阶段:进行Meta Learning的训练学习,每一个样本向量都会去读一次memory,这样就把意识记忆融合进来了,而且读取的时候会引入动态路由的方法进行迭代计算;
同时,为了应对样本多样化问题,达摩院引入了Query-Enhanced的方法,将用户的query加入到训练过程中,希望找到数据集中哪些样本是与当前的用户query相关的,那么就只把这一簇样本拿出来与query一起进行处理。
效果方面,Dynamic Memory Induction Networks也在英文数据集和中文意图数据集上取得了不错的表现:
小结
Few-shot Learning是达摩院整个Conversational AI中的一个基础算法,在所有的场景里面应用落地。这个方法有两个非常大的优势:
这是一个即插即用的算法:在应用的时候不需要训练,可以灵活地增添新的数据,这对toB场景非常友好;
本质是一个迁移学习:迁移学习的方式能够最大化平台方积累数据的优势。
2. 对话管理:从状态机到深度模型
在这一部分达摩院要解决的问题是,把对话管理从状态机推到深度模型,让对话管理具备学习能力。
① 基于状态机的对话管理面临的问题
基于状态机的对话管理主要面临两个问题:
第一个问题是,通过配置的方法,永远无法把整个对话流配置完备,总会有漏掉的配置;
第二个问题是,基于状态机的对话管理,本质上仍是一个规则化的对话引擎,即使积累再多的日志和数据,也没有办法具备学习能力。
基于以上两点,把对话管理从状态机推到深度模型,就是一条必然的路径,但是目前学术界尤其是工业界还没有解决这个问题,这个问题的核心难点是多轮对话数据获取难、标注难。
② 解决方案
达摩院引入了用户模拟器,把用户模拟器和对话系统结合在一起,通过两者之间的Self-Play产生海量的标注数据来解决数据难题。在用户模拟器和对话系统的对偶模型中有两个模块:
对话机器人:每一轮中说机器应该说的那句话
用户模拟器:模拟用户这个角色应该说的话
这样就形成了机器和用户之间的对话过程,产生大量的对话数据,而这些数据最大的优势就是:这些数据是带有标签的。
基于以上的基础建模,达摩院实现了对话管理的深度学习模型化,并且在业务场景中进行了大规模的落地应用:
整个过程分为以下三部分:
Step1:利用用户模拟器冷启动对话管理模型,产生大量的模拟训练数据,通过模拟训练数据即可对模型进行训练,得到可直接上线的模型;
Step2:模型上线之后会产生日志数据,可以利用这些日志数据来进行数据增强,通过模拟器的迭代来提升模型的效果;
Step3:对于产生的日志数据,也可以通过人力适量标注一部分来进一步提升模型的效果;
通过引入用户模拟机器,解决了对话管理的深度学习模型化问题。
③ 对话管理模型的迁移学习
在实际应用的时候还遇到了新的问题:当我们有了一些场景的标注数据以及训练好的模型之后,在面对新的应用场景时,如何将已有的数据和模型复用起来。
针对这一新的问题,达摩院考虑使用迁移学习的方法来进行解决。为此对迁移学习在这方面的应用做了一定的研究,最终提出了一个Meta-Dialog Model,对应的工作发表在ACL2020上。主要思想是将MAML(Model-Agnostic Meta-Learning)这种迁移学习的思路引入进来:在已有数据的前提下,利用MAML迁移学习的方法训练出一个比较好的元模型(Meta Model), 当有新的场景时,可以用元模型的参数来进行初始化,这可以使得新场景下的模型有更好的初始化参数和训练起点。基于这种方法,在政务12345热线上进行了实验,得到了4个点的提升。
3. TableQA:Conversational Semantic Parsing的难点和进展
① TableQA介绍
这里通过一个例子来介绍TableQA。首先有一个理财产品的Table,围绕这个Table, 用户可能会问:“收益率大于3.5%且保本型的理财产品最低起投金额是多少?”,要想解决这个问题,需要先把自然语言转换成一个SQL语句,然后用SQL语句去查询表格,最终就可以回答这个问题。所以整个TableQA的核心问题就是如何解析自然语言:把TEXT文本转变为一个SQL语句。
TableQA的优势主要有以下三点:
表格容易获取:企业中存在大量现成的表格,无需加工即可自然获取;
使用门槛低:针对TableQA达摩院已经研究了多种算法,大大降低了企业应用的成本和门槛;
功能强大:支持复杂语言的理解、支持多表查询、支持多轮问答。
② TableQA发展
TableQA是最近两年里发展最快的一种问答方式。从2017年开始重新被发掘出来,2019年的时候这个方向的研究开始加速,达摩院也是在2019年启动了对TableQA的研究。2020年加速趋势更加明显,达摩院提出的SDSQL模型在WikiSQL上取得了第一名,提出的R2SQL模型在国际公开挑战赛SParC和CoSQL上都取得了第一名的好成绩。
上图是TableQA整个方向上的发展脉络,图中列出了一些比较典型的数据集,这里面有四个数据集是值得大家去关注的:一个是WikiSQL数据集,这是一个单表单轮的数据集;第二个是多表单轮的Spider数据集;第三个是多表多轮的SparC数据集;第四个是CoSQL数据集,这是一个融合了多轮对话特点的多表多轮数据集。
接下来介绍达摩院在SParC以及CoSQL数据集上的研究进展。
③ 达摩院在TableQA上的研究
达摩院在TableQA上的研究主要是基于多表多轮的数据集(SparC和CoSQL), 多表指的是寻找答案的时候需要在多个表中进行查询,而不是仅仅靠一张表就能得到答案;多轮指的是用户通常会连续不断的提问。
其中,在SparC数据集上主要有两个挑战:
第一个挑战是用户表达的自然语言和SQL语言之间的linking问题,也即用户的问题和表格的Schema之间的link问题。以“对于那种有四缸的汽车,哪一款车拥有最大的马力?”这个问题为例:
需要将问题链接到相应的表(table):知道去哪些表中去寻找答案,在例子的问题中就是需要把与“车”相关的表找出来。
需要找出表中与问题对应的列(column):例子中需要找出与“缸数”以及“马力”相对应的列。
将用户的自然语言与表格的Schema之间进行link是非常困难的事情,通过对SparC数据集中BadCase数据的统计发现,有84%的错误情况都是由link的错误引起的。
第二个挑战就是对上下文进行建模。这个问题主要是出现在多轮的情况下,一方面多轮的时候会出现指代、省略等问题,需要通过对上下文建模来解决;另一方面多轮的情况下上下文的意图切换比较困难,所以就存在如何动态建模linking的问题。
对于以上的两个挑战,已有的研究存在的不足主要是:
linking层面:依赖隐式attention对linking建模,对于显式的特征捕捉较差;
上下文层面:针对句子文本层面进行了建模,没有对linking进行上下文建模。
针对面临的挑战以及已有研究的不足,达摩院提出了R2SQL模型,该模型的创新点主要有:
首次提出动态上下文模式图的概念:将用户的话语、table的Schema以及两者之间的linking关系统一地在一张图中进行建模,让linking学习地更加充分;
其次是引入了遗忘机制:在多轮的对话中,在用户的意图进行切换的过程中,使用衰减机制来降低之前schema的权重,从而更关注当前的schema。
在效果层面上,R2SQL在SparC以及CoSQL两个榜单上都取得了第一名,相关文章已经被AAAI2021录用:
阿里云智能客服,隶属于达摩院,小蜜家族系列产品重要一员,专注于“服务”和“人工智能”,已经在多个领域进行了落地应用。下面会介绍在三个领域的落地应用:政务领域、金融领域、疫情场景。
1. 政务领域:政务12345热线
在政务领域,主要是政府的12345热线。首先是在浙江省11个地市的12345热线上进行实践,把背后的人工部分逐步替换成为人工智能的对话机器人。
覆盖场景广泛:覆盖了热线中包括社保查询、ETC、公安(户籍、出入境)、住房保障、公积金全语音门户等9大场景;
落地需求多:除了在浙江省树立标杆意外,还在陆续应用于全国的其他城市。
2. 金融领域:在银行和保险上的应用
在银行方面,以催收这样一个典型的场景来讲,客户的信用卡在欠款了之后,银行需询问客户不能还款的原因、什么时候还款等问题,而这一系列流程可以通过智能外呼机器人去完成,实践显示,使用智能外呼之后整个回款率提升了25%,端到端的准确率达到了88%。目前几乎整个催收部门背后的客服全部都用智能机器人,节省了大量的人力。
在保险方面,针对中国人寿的业务,做了一整套的客服体系,这套客服体系应用于APP、官方微信等多个渠道,整个端到端的准确率达到了93%左右。在这个过程中,对保险业务的知识体系进行了梳理和升级,将原有的几万甚至数十万的知识点进行分门别类处理,对不同的类别采用不同的处理方式,大大降低了整个知识系统的运营和维护成本。
3. 疫情场景
在疫情刚刚爆发的时候,达摩院团队就行动起来,致力于打造一个全国最大的疫情外呼平台,希望通过外呼平台来帮助政府解决一些问题,该平台在五天的内打造完成并开始在全国推广。截止到2020年3月31日,这个平台用在了中国的27个省,帮政府拨打了1800万的外呼电话,对话完成率超过90%,获得了人民网的“人民战疫”一等奖。
今天的分享就到这里,谢谢大家。
在文末分享、点赞、在看,给个3连击呗~
题目: A Survey on Dialog Management: Recent Advances and Challenges
摘要:
对话管理(DM)是面向任务的对话系统的一个重要组成部分。给定对话历史记录,DM预测对话状态并决定对话代理应该采取的下一步操作。近年来,对话策略学习被广泛地定义为一种强化学习(RL)问题,越来越多的研究集中在DM的适用性上。在本文中,综述了DM的三个关键主题的最新进展和挑战:
提高模型可扩展性,方便对话系统在新场景下建模;
处理对话策略学习的数据稀缺性问题;
提高培训效率,实现更好的任务完成绩效。
相信这项调查可以为未来对话管理的研究提供一些启示。
专知便捷查看
便捷下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“DMSP” 可以获取《对话管理的综述论文:最近的进展和挑战,A Survey on Dialog Management》专知下载链接索引