分享嘉宾:熊超 滴滴 AI Labs前端
编辑整理:Hoh Xilgit
内容来源:AI 科学前沿大会github
出品社区:DataFun算法
注:欢迎转载,转载请注明出处后端
本次分享是在2019年 AI 科学前沿大会上的分享,主要介绍智能对话机器人在滴滴出行场景中的技术探索,主要内容为:浏览器
单轮问答服务器
多轮对话微信
总体架构网络
▌单轮问答session
单轮问答指识别用户问题,并给出相应答案。这种场景下的目标是作到识别准确,尽可能理解用户问题,给出合适的答案。
开发过程当中的难点和挑战:
数据:标注数据少,这是 NLP 领域的痛点问题,由于标注成本相对较高;
业务:业务线比较多,咱们目前支持滴滴场景下的业务线有10多个,会致使数据标注的问题更突出,数据量少的业务,可标注的数据更少。
语言:用户的表达方式灵活多样,即同一个语义有多种表达方式。
针对上述问题,咱们想了一些办法,分析了滴滴场景下和其余智能客服的区别,好比快车和专车业务线,都是由不一样模型来支持的,可是快车和专车业务实际上是很是类似的,通过统计分析,两者知识点重复率接近一半。咱们考虑是否能够把大业务线的数据迁移到小的业务线,可是当咱们细看数据的时候,发现仍是不同的,由于不一样业务场景下的类似问,仍是有区别的,好比业务独有的知识,不能直接用在其余业务线上。
为了解决这些问题,咱们一直在想数据如何更好的去迁移,减小数据的标注量。提出了相似 Multi-Task 多任务学习的架构,由于咱们有不一样的业务线,若是不考虑 Multi-Task 结构的话,每一个业务线会有一个模型。有了 Multi-Task 以后,能够多个业务线共享一个语义模型,让模型的泛化能力更强,为了解决不能直接映射的问题,每一个业务线还有独立的模型在后面,优化各自的目标。语义模型能够有任意模型,咱们尝试过 CNN、LSTM、Transformer、Bert 等。
上图为咱们加上 Multi-Task 以后的一些实验结果,包括 CNN、LSTM、Transformer、Bert,其中,橙色和蓝色为 Top1 准确率,灰色和黄色为 Top3 准确率,橙色为模型自己的结果,蓝色为模型+Multi-Task 以后的结果,从结果上看,CNN+Multi-Task 后有必定的提高,从这一点上看 Multi-Task 仍是有帮助的,进而咱们作了更多的实验,好比 Bert+Multi-task 的 Top1 准确率相比于 CNN 有了显著的提高,在自己没有增长新的成本的状况下,提高显著,为何加了 Multi-Task 后结果这么好呢?咱们发现,新的模型特征抽取的能力比较强,可是也存在一些特色,须要足够的数据,才能让模型发挥出能力,咱们看四个 Multi-task 模型对比(蓝色),给了充足的数据后,效果提高明显。效果好是否是由于模型好就能够了?也不是,其实若是单独业务线,一样的数据下,从图中不使用 Multi-task 模型结果(橙色)的对比能够看出 CNN 的效果反而更好。缘由是在数据不充足的状况下,复杂的模型参数更多,容易引发过拟合。
除了分类的结构,咱们也尝试了搜索+语义匹配+排序的架构,主要是用来作情绪安抚,思路是把候选的问答对语料,经过搜索、生成式模型获得候选,而后通过粗排,粗排是用文本相关性的分数来计算,最后交给多轮对话深度匹配模型,主要参考了去年这篇的论文:Modeling Multi-turn Conversation with Deep Utterance Aggregation ,DUA 的特色是除了计算当前的对话,还会把上下文建模进来,从新考虑。好比情绪回复,若是是一个负向语句,若是单看这句话,它的回复多是很是通用的,可是结合上下文,好比有的司机听不到单了,而后他会回复一些负面语句,这时咱们的回复是针对听单场景的安抚。
DUA:
原文聚焦的是基于检索式响应匹配多轮对话,研究如何更好的提取并利用先前对话中的关键信息,以及如何建模先前对话内容与响应之间的关系。原文之前的检索式多轮对话工做,都只是简单将对话语句内容链接起来,这样作有两个缺点:(1)忽略了前面语句之间的交互,(2)上下文是冗长和冗余的,至关于引入不少噪音。为了解决这些缺点,达成研究目的,原文做者提出了深度对话聚合(Deep Utterance Aggregation,DUA),它将以前的对话内容组织成上下文,从而造成多个细粒度的上下文表示,而后将每个细粒度的上下文表示对应一个响应进行匹配,最后通过多轮精细的聚合获得最终的匹配分数。原文的实验是在三个公开的对话数据集上进行的,其中包含了一个新的数据集--电商对话语料(E-commerce Dialogue Corpus,EDC),三个数据集上都取得了SOA的性能。
《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记论文原文:https://arxiv.org/pdf/1806.09102.pdf 刚看到小夕的这篇总结我的感受讲的很好很容易理解,里面涉及了4篇论文串烧,按照时间讲了算法的发展,文风也蛮有趣(有点嗲,哈哈~) 上海交通大学等2018年发表的文章,主要涉及基于检索式的多伦问答模型,提出了一个深度对话整合模型(DUA),是针对多轮对话将过去会话直接拼接做为上下文信息存在噪声和冗余等问题,DUA从对话和回复中采用attention机制挖掘关键信息,凸显关键信息忽略冗余信息,最终得到utterances和response的匹配得分。本文还发布了一个电子商务对话语料库ECD,涉及到商品咨询、物流快递、推荐、谈判、聊天等,本文的数据集及代码。结构以下可分为5个模块: DUA的优势:
Utterance Representation采用GRU模型将每一个utterance和候选response进行embedding。 Turns-aware AggregationUtterance Representation是将utterance同等看待没有考虑the last utterance和以前对话之间的关系,该模块主要是将最后一个utterance(the last utterance)与context中的其余utterance以及候选response进行融合,论文中是直接将utterances和response的embedding串联起来,获得表征F。 Matching Attention Flow该模块是对上一模块turns-aware的表征信息F信息进行处理,采用一个self-matching attention mechanism将冗余信息进行过滤,挖掘utterances和response中的显著特征,即经过一个attention机制的GRU进一步作表征的交互与融合。 [·,·] 是两个向量串联在一块儿 ,Ct是self-matching attention的输出 Response Matching第四模块在单词和会话级别上对 response和each utterance进行匹配,通过CNN造成匹配向量。 这里从两个粒度进行匹配:
尔后分别在这两个矩阵上进行CNN卷积操做,获得卷积以后的表征。 最后进行max-pooling和flatten以后concatenation。 Attentive Turns Aggregation将匹配向量按上下文话语的时间顺序传递GRU,获得utterance和response的最终匹配得分,分为三步:
参考: |
|
除此以外,咱们还有些离线的工做:
模型训练:如上图,为 Multi-Task 总体的一个效果,咱们创建了一个天天模型自动更新的 pipeline,包括自动测试、自动上线。刚刚也提过了,数据很重要,咱们会标注新的数据,来解决新的问题的出现,因此咱们采用的是主动学习 Active Learning 的思想,去对边界样本进行采样,这样标注效率会更高,构建模型训练及在线服务的闭环,来达到天天模型更新的效果,让新的知识、新的问题,更快的更新到咱们的服务上来。让机器人有了自我学习进化的能力。
数据标注:其实在现有的标注语料中,还存在噪音,准确率没有那么高。咱们经过聚类的方式,把已经标注的语料聚类,这时有些样本是偏离聚类中心的,而后把偏离的样本经过人工检查,若是真的错了,就能够把噪音删除,若是是对的则保留。
▌多轮对话
在出行场景下,存在俩大类的问题,一类是咨询了问题,好比用户须要咨询一些政策、规则等信息;还有一类是寻求解决的,这两类问题,单轮问答都很难解决用户问题,为此咱们提出了多轮对话。
1. 总体架构
咱们能够看下这个例子,好比有乘客反馈,司机绕路,若是是单轮的话,只能给一个答案,而咱们如今能够经过交互的方式来引导用户去选择订单,选择订单以后,咱们能够直接调用后台的接口服务能力,去判断是否绕路了,若是真实存在,咱们就会直接在机器人里把多收的费用返还给乘客,提高了用户体验。
具体的方法:将传统的多轮对话,多轮交互,引入滴滴客服机器人。主要包括几大模块:
① 语言理解
意图识别,知识点的识别,明确问的问题是什么
属性抽取,能够理解为选择订单,日期等等
② 对话管理
对话状态跟踪:结合当前语义理解的结果,并结合历史对话,上下文综合来看,获得对话的状态(Act 和 slot)
对话策略:给定对话状态,选择对应的动做,目前主要采用状态机的方式,并尝试强化学习对话策略
③ 语言生成
有了动做以后,咱们就须要生成用户能够理解的语言。
以上是多轮对话的总体架构。
2. 语言理解
意图识别:
咱们采用的模型为 BERT + Multi-Task Learning
槽位抽取:
咱们主要是基于规则和模型结合的方法,如选订单的组件,模型如 BILSTM + CRF 模型, 来对槽位信息进行抽取。
3. 对话管理
这个刚刚有介绍过,右图为状态机,基于规则配置,左图为咱们在研发的强化学习模型,它须要一个用户的模拟器来模拟用户,抽样用户目标,根据目标和机器人去交互,从交互中生成经验,再根据经验进行学习,达到自动学习的效果,而不是像右边状态机,是由领域内的专家来配置的。
4. 智能反问
若是用户表达的意图不清晰,没法精肯定位问题的时候,咱们采用了智能反问技术:
图谱查询:经过图谱去查询,获得相关联的知识点。
反问引导:产品形式上,在这个例子中,咱们会引导用户,会问用户是实时单仍是预定单,用户只要选择以后,会给用户推送一个更具体的、有针对性的答案。
5. 闲聊-寒暄
机器人里都会涉及到闲聊,好比“你好”,“谢谢”之类的。针对这些问题作的工做有:
分类模型、检索匹配等,专家编写的答案,如今咱们在探索的是生成模型,让答案更灵活。
▌机器人架构
咱们总体看下机器人的架构:用户的请求来了以后,将“查询”和“上下文”做为输入去查询 frontend,frontend 做为机器人的中控,也会包括一些业务逻辑,而后经过ranker模块作分发和选择,下面有问答型、任务型、多轮对话型、闲聊型、图谱型等,综合的作一个仲裁去选择,给到用户一个最终的答案。
最后讲一下智能客服的总体架构:
产品:咱们支持的业务,包括智能客服(出租车、快车、专车等一系列业务)、司机助手、国际化客服等。
这就是咱们总体的架构,这就是我今天要分享的内容,谢谢你们。
熊超,滴滴AI Labs 智能对话团队负责人。2010年毕业于北京航空航天大学模式识别与智能系统专业。毕业后加入腾讯从事搜索广告算法策略研发工做。2013年加入阿里巴巴从事智能人机交互方向。2017年加入滴滴,组建智能客服算法团队,主要研究方向为多轮对话,问答,智能辅助,强化学习和智能推荐。担任顶级期刊和学术会议,如TKDE,KDD等审稿人。多项智能客服领域技术专利发明人,专利覆盖多轮对话、问答、闲聊、智能预测等。
——END——
文章推荐:
关于 DataFun:
DataFun 定位于最实用的数据智能平台,主要形式为线下的深度沙龙、线上的内容整理。但愿将工业界专家在各自场景下的实践经验,经过 DataFun 的平台传播和扩散,对即将或已经开始相关尝试的同窗有启发和借鉴。
DataFun 的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun 成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过三百位的业内专家参与分享,汇集了数万大数据、算法相关领域从业者。
点下「在看」,给文章盖个戳吧!👇
不错的科普
分享嘉宾:邱锡鹏 复旦大学计算机科学技术学院 副教授,博士生导师
编辑整理:靳韡赟
内容来源:DataFun AI Talk《天然语言处理中的多任务学习》
出品社区:DataFun
本次报告内容的题目是天然语言处理中的多任务学习,报告主要分为四个部分:
一、基于深度学习的天然语言处理;
二、深度学习在天然语言处理中的困境;
三、天然语言处理中的多任务学习;
四、新的多任务基准平台。
首先简单介绍一下实验室状况,课题组主要聚焦于深度学习与天然语言处理领域,包括语言表示学习、词法/句法分析、文本推理、问答系统等方面。开源天然语言处理系统FudanNLP,并将在12月中旬推出全新的NLP系统:fastNLP。
1、天然语言处理简介
天然语言处理就像人类语言同样,与人工语言的区别在于它是程序语言,天然语言处理包括语音识别、天然语言理解、天然语言生成、人机交互以及所涉及的中间阶段。下面列举出了天然语言处理的基础技术、核心技术和一些应用:
基础技术:词法分析、句法分析、实体识别、语义分析、篇章分析、语言模型;
核心技术:机器翻译、自动问答、情感分析、信息抽取、文本摘要、文本蕴含;
应用:智能客服、搜索引擎、我的助理、推荐系统、舆情分析、知识图谱。
天然语言处理最初由规则驱动,逐步发展为数据驱动。
2、深度学习在天然语言处理中的困境
因为缺乏大规模的标注数据或者标注代价过高,目前大部分用在NLP上的神经网络都不是很深,通常状况下,一层LSTM+Attention就足够完成大部分NLP任务。解决问题的方法包括有无监督预训练、多任务学习和迁移学习。今天咱们主要介绍多任务学习。
一、无监督预训练
首先咱们来介绍一下NLP中很是重要的无监督预训练,早期有不少研究者使用词向量等词级别的模型,后来发展为使用句子级别的模型,例如最近出现的ELMo、OpenAI GPT、BERT等,人们从最初学习更好的词的表示转变为学习更好的句子的表示。
论文Deep Contextualized Word Representations主要描述的是ELMo问题,经过创建两个双向的LSTM来预测一个前向、正向的语言模型,而后将它们拼起来,这个模型是一个很是好的迁移模型。
谷歌新推出的BERT是将机器翻译中的经常使用模型transformer的双向训练用于建模,它在不少任务中取得了较好的效果。
这些模型证实在NLP中表示学习依然十分重要,表示学习是从文本输入到计算机内部的一种表示,对于NLP任务,表示学习是指将语义信息表示成稠密、低维的实值向量。表示好以后送到分类器中,好的表示是一个很是主观的概念,没有一个明确的标准。通常而言,好的表示具备如下几个优势:
1)应该具备很强的表示能力,模型须要必定的深度;
2)应该使后续的学习任务变得简单;
3)应该具备通常性,是任务或领域独立的。
二、多任务学习
下面给出一个多任务学习的例子,对于两个单独的任务训练两个模型,对于任务1训练一个模型1,对于任务2训练一个模型2,多任务就是将两个任务放在一块儿用一个模型来处理。
多任务学习最先在97年被提出,多任务学习隐含着从其余任务中学习一种共享的表示,共享表示能够做为一种概括偏置,概括偏置能够看作是对问题相关的经验数据进行分析,从中概括出反映问题本质的模型的过程,不一样的学习算法(决策树、神经网络、支持向量机)具备不一样的概括偏置,在学习不一样的任务过程当中使用共享表示,能够使在某个任务中学习到的内容能够帮助其余任务学习的更好。
因为传统NLP的表示空间是离散的,MTL+NLP在传统的NLP模型是很是难实现的,随着深度学习的应用,整个NLP的表示空间变为连续的,使得任务实现更加容易。例以下图中taskA和taskB两个任务能够共享同一个模型。
不一样学习范式之间的关系:多任务学习之上有迁移学习,之下有多标签学习和多类学习。
损失函数:假设有m个任务,多任务学习的损失函数是将各个任务的损失函数相加求得联合损失函数joint loss。
训练方式:首先进行Joint Ttaining,Training以后进行Fine Tunning。
多任务学习工做的优势:
1)隐式的数据加强:一个任务的数据量相对较少,而实现多个任务时数据量就获得了扩充,隐含的作了一个数据共享。
2)更好的表示学习:一个好的表示须要可以提升多个任务的性能。
3)正则化:共享参数在必定程度上弱化了网络能力,防止过拟合。
4)窃听:某个特征很容易被任务A学习,可是难以被另外一个任务B学习,这多是由于B以更复杂的方式与特征进行交互或者由于其它特征阻碍了模型学习该特征的能力。经过MTL,咱们能够容许模型窃听,即经过任务A来学习该特征。
目前NLP中每一个任务只作其中的一块,若是咱们把这些任务拼起来会取得更好的效果。
3、天然语言处理中的多任务学习
下面介绍几种多任务学习的方式,传统的天然语言处理在输入端输入文本,以后进行词法分析和句法分析最后完成任务,这种方式很难实现,在有了多任务学习以后,不一样的任务能够共享词法分析和句法分析模块,天然语言处理的方式获得了简化。
天然语言中的多任务学习包括有:多领域任务、多级任务、多语言任务、多模态任务等。
深度学习+多任务学习有硬共享、软共享、共享-私有等多种模式。
硬共享模式:在下面层共享,上层根据本身不一样的任务作不一样的设计;
软共享模式:每一个任务都有本身的流程,从信息流来看就是从输入到A有本身的体系流程,还能够从其余任务的表示方法中拿一些东西过来;
共享-私有模式:一部分共享,一部分私有的信息传递机制。
此外还有多级共享、函数共享、主辅共享等多种共享模式,下面将一一介绍。
一、硬共享模式
硬共享在下面层共享,上面根据本身的不一样的任务来作不一样的设计,这种方法最先在2008年由Ronan Collobert在论文A Unified Architecture for Natural Language Processing:Deep Neural Networks with Multitask Learning中提出,应用到了不少与语义相关和语法相关的方面,例如机器翻译、文本分类等。
后来人们将注意力机制模型用于共享模式,注意力机制不须要使用全部的信息,只须要将其中部分信息选择出来,人们基于注意力机制作了共享模式。
原来的多任务学习如图a所示,下面的s是共享层,p是不一样任务本身的设计。如今咱们将原有的算法转换大图c的形式,全部的表示函数共享,在输入到具体任务的时候使用一个和任务相关的查询Q去s中选择任务相关的信息。虽然表示方式是同样的,可是针对不一样的具体任务,会根据每一个任务关注点的不一样来选择相应的信息。
二、软共享模式
在软共享模式中没有严格规定共享层。经典网络cross-stitch结构中,上面是taskA,下面是taskB,在中间部分两个任务有交互,α是权重系数,表示taskA中有多少信息从自身流过来,有多少信息从taskB中流过来,这样两个任务就由两路,四个系数构成一个矩阵作权重组合,若是用到神经网络就相似于下图中右边的这种形式,这种网络最初应用于机器视觉领域,后来被人们用于NLP。
三、共享-私有模式
在共享-私有模式中部分网络模块在全部的任务中是共享的,经过设置外部记忆共享机制来实现信息共享,神经图灵机就是在神经网络中引入一个memory模块,整个框架就是用神经网络实现的一个控制器,加读写头和外部输入。图灵机所有由神经网络搭建而成。
基于神经图灵机的想法咱们能够作一个多任务学习,每一个任务咱们均可以看作是一个单独的图灵机,外部的memory在全部的任务中共享。在下图中M是外部记忆,外部记忆由两个任务共享,每一个任务都会把共享信息写到外部记忆中,这是一种很是简单的共享方式。
为了不上图中的负迁移negative transfer,就须要判断哪些内容是和任务相关的,这就引入了近两年流行的对抗学习,在对抗学习中,中间的LSTM共享层有一个判决器来区分共享特征从哪一个任务传递过来,在送入LSTM以前会包含有特征的来源信息。所以咱们但愿训练一个和判决器对抗的网络,在共享的LSTM层中尽量让判决器不能区分任务来源。这样就去掉了特征的源信息,保证了共享LSTM学到的是与源无关的共享价值信息,这些叫作对抗信息。
下面咱们将介绍几种将来研究的方向:
一、函数共享模式
以前咱们了解的多任务学习都是特征共享,在函数共享中咱们学的再也不是共享特征而是共享函数,来生成一些参数或模型,这里咱们将feature级的共享迁移到函数级的共享,下图中第一幅图图是特征共享,中间蓝色的是共享层,它将学到的特征送到上下两个任务中,第二幅图是函数共享,函数共享中共享层的输出不是直接送到上下两个分类器中,而是决定了上下两个分类器的参数。经过修改分类器来有效利用这些信息。
二、多级共享模式
2016年Anders Sфgaard等人在论文Deep Multi-task Learning with Low Levels Tasks Supervised at Lower Layers中提出在低级的网络层次输出低级的任务,在高级的网络层次输出高级的任务。例如在第一层输出词性标签POS tag,在第三层输出chunk tag,将NLP任务按照不一样的级别来设计共享模式。
三、主辅任务模式
在作任何一个主要任务的同时均可以引入一个辅助任务。以下图,咱们对每一个任务引入一个辅助的语言模型,每一个任务都使用左右两个语言模型,对全部任务进行这种拓展就造成了主辅任务模式。
四、共享模式搜索
共享模式搜索是让计算机自动搜索这些共享模式,具体作法如图d所示,咱们但愿设计一种灵活的框架,在共享池中放入不少不一样的模块,每一个任务在完成过程当中能够从共享池中挑选一些模块来组装本身的guideline。示例中任务A挑选了四、三、1,任务B挑选了三、二、1,这就隐含了A从M4出来,而B从M3出来,C从M2出来,这样一种层次化的共享模式设计。它自己也能够实现hard和soft的两种表示方式,所以是一种很是灵活的表示方式。
在面向NLP的神经网络架构搜索中,从共享池中挑选Ma1,Ma2等模块来组成不一样的模型,将模型带入任务中去训练,获得正确率做为reward反馈给分类器从而选择更合适的组合方式来完成任务。
下面给出的例子就是对不一样的任务挑选的不一样的组合方式,其中有些组合方式很是相似。
4、新的多任务基准平台
首先介绍一下机器阅读理解,机器阅读理解是在阅读一篇或多篇文档后,回答一些相关问题。由机器来生成答案,答案可能在原文中出现也可能不在原文中出现,目前机器阅读理解大部分都假设答案在原文中出现,咱们用的一个主要框架是Biderectional Attention,同时给你context和query,作一个双向的注意力交互,最终肯定两个位置,一个是答案开始的位置,一个是答案结束的位置,大部分的问题均可以经过这个框架来解决,这个框架具备通用性。几乎NLP全部任务均可以转化成阅读理解任务经过该框架解决和完成。
今年新发布的一个NLP通用的多任务学习系统叫作十项全能,选取了十个典型的NLP任务转化成阅读理解的形式,例如左下角的情感分类问题,将这些任务转换到阅读理解问题后采用Biderectional Attention框架去处理。因为这些问题的答案不必定出如今背景文档中,所以须要对Biderectional Attention框架进行改进。
还有一个较大的框架是GLUE,也是将不少NLP任务转化成一个统一的形式。下图中是三个任务:单个句子任务、计算两个句子类似度、表示两个句子之间的蕴含关系。这些任务均可以作成encoder和decoder模式。
5、总结
最后,咱们对今天介绍的内容作一个总结。今天主要介绍了天然语言处理简介、基于深度学习的天然语言处理、深度学习在天然语言处理中的困境、多任务学习和新的多任务基准平台。总的来讲多任务学习的难度会比迁移训练低而效果比预训练要高一些。
另外,在今年12月中旬,咱们将发布一个模块化的开源天然语言工具fastNLP。
这个工具包括Spacy高级接口、AllenNLP自定义模块、AutoML自动调参。将训练好的模型开放出来供你们直接调用。
为实现模块化,咱们将NLP分为四个构成组件:
一、编码器:将输入编码为一些抽象表示,输入的是单词序列,输出是向量序列;
二、交互器:使表示中的信息相互交互,输入的是向量序列,输出的也是向量序列;
三、聚合器:聚合信息,输入向量序列,输出一个向量;
四、解码器:将表示解码为输出,输出一个标签或者输出标签序列。
这里咱们给出了两个示例,分别是文本分类和序列标注。
能够应用的场景主要包括:
一、直接调用;
二、模型开发;
三、自动化学习。
配套PPT下载,请识别底部二维码关注社区公众号,后台回复【上海NLP】
做者介绍:
邱锡鹏,复旦大学计算机科学技术学院 副教授,博士生导师,于复旦大学得到理学学士和博士学位。中国中文信息学会青年工做委员会执委、计算语言学专委会委员、中国人工智能学会青年工做委员会常务委员、天然语言理解专委会委员。主要研究领域包括人工智能、机器学习、深度学习、天然语言处理等,而且在上述领域的顶级期刊、会议(ACL/EMNLP/IJCAI/AAAI等)上发表过50余篇论文。天然语言处理开源工具FudanNLP做者,2015年入选首届中国科协青年人才托举工程,2017年ACL杰出论文奖。
——END——
文章推荐:
「回顾」Recent Advances on Object Detection in MSRA
分享嘉宾:宋双永 阿里小蜜
编辑整理:赵文娇
内容来源:AI 科学前沿大会
出品社区:DataFun
注:欢迎转载,转载请注明出处
本次分享内容提纲:
阿里小蜜介绍
情绪回复能力介绍
客户情绪安抚
客服质量检测
情绪生成式语聊
1、阿里小蜜介绍
传统的客服模式始于电话客服,会有专业的咨询顾问帮客户解答问题。以后有了在线客服和线上申请,在线客服相似于文字聊天,线上申请是非实时的通信方式,能够理解为相似留言或者邮件的形式。
1. 智能服务模式
在阿里场景下咱们对问题进行了区分,将其分红问题咨询和交易纠纷,分别有专门的顾问进行解答。在智能服务模式下,在问题咨询端创建了小蜜这样的产品,若是问题比较复杂,小蜜解决不了,仍是会把问题转到人工顾问这一端,为用户提供更全面的服务。即使这样,在人工客服一端,也有对应的智能辅助产品,帮助提升人工客服的服务效率,好比检索是否有历史类似答案提供给人工客服,帮助他们快速完成解答。
2. 模式的升级与生态圈拓展
智能客服能力创建以前,人工服务的能力来自于自营客服、外包客服和云客服。模式升级以后,利用智能服务的能力,造成了平台能力、三方能力、智能人机交互这三种服务模式。服务的对象能够理解为三个层次,其中,阿里是包括指淘宝、天猫、咸鱼、淘票票等阿里巴巴内部产品平台的范围;商家是指依托于阿里巴巴淘宝和天猫等平台之上的外部商家;企业则是指纯粹外部的企业。
如图,最下面这层实际上是为小二进行服务的,小二是阿里客服的简称。在上面机器人配置平台这一层是为机器人服务提供一些能力。再往上一层是按照产品进行划分,分红阿里小蜜、店小蜜和企业小蜜。阿里小蜜主要服务阿里内部的淘宝天猫这样平台,店小蜜服务阿里平台上的商家,企业小蜜服务于外部企业。
2、阿里小蜜情绪回复能力
咱们今天介绍阿里的小蜜产品在情绪回复能力上的技术发展。情感机器人的两个主要发展方向:
类人:就是情感越像人越好。
多模态:就是情绪的表达其实能够有多少手段,对人而言,能够是语言、表情神态、肢体语言等。
从情感处理能力上来讲,能够把机器人分红三类:
第一类是机器人没有情感处理能力,阿里小蜜最开始的版本确实是没有情感处理能力的,只是对高频场景中的问题进行解答,好比用户说我要退货、如何退货、赶忙给我退货,获得的答复都是阿里平台上如何退货的文字描述,但其实第三句是有强烈情绪表达的,可是初期的阿里小蜜没有这样的理解能力;
第二类机器人是有完整的情绪识别能力的,目前体现最多的是在一些闲聊场景下,好比小冰,好比在对骂场景下,若是客户骂机器人,机器人虽然没有直接的对骂,机器人也会有婉转的方式,好比 " 180度反弹 " ,虽然没有直接对骂,可是也表达了对本身辱骂的情绪,这是一种情绪比较完整的机器人;
第三类机器人产品,客服机器人,客户能够骂人,可是人工客服和客服机器人是绝对不能有这种情绪的,辱骂、讽刺、挖苦是机器人绝对不能有的情绪。可是有一些,好比高兴、委屈是机器人能够有的,因此小蜜的定位是部分情绪能力缺失的客服机器人。
从多模态角度来讲,阿里小蜜目前只考虑了文本,和少许语音。
情绪回复,今天会讲两个方面,一个是理解情绪,另一个是表达情绪。
3、客户情绪安抚
从三个方面进行介绍:服务质量检测,客户情绪安抚和情绪回复生成。
先看客户情绪安抚,针对常见场景,咱们不只仅只是告诉客户一些流程,好比退货流程,仍是有一些安抚在里面。而后看右面的情绪回复能力,这个情绪回复能力,和情绪安抚的主要区别是,情绪安抚是业务专家以前预设好的各类答复,可是情绪回复采用纯生成式的模型,用在闲聊场景,内容不是提早配置好的;最左边的服务质量监测,若是从小蜜转到人工客服,小蜜也是继续服务的,针对服务质量很差的时候,会对人工客服作一些警示,就是提示他,注意本身的服务态度。下面针对这三块进行更为详细的介绍。
针对客户情绪安抚,咱们分红离线端和在线端。
离线端,从下往上是以下几个离线处理,首先是情绪分类模型,这是整个流程最基本的东西,咱们要去识别客户交流过程当中体现的情绪;而后是主题分类模型,也就是说咱们不只要识别出情绪,还要知道聊的是哪方面的内容;第三步是知识构建,这里的知识构建应该就是一个问答对,作这一步的缘由是,由于情绪分类和主题分类都比较粗,针对一些高频的问题,但愿给用户更具体的回复方式。
在线端,实际上是一个相反的过程,首先识别用户所说的是否是和以前总结的知识点比较接近,若是有就拿出来进行回答,若是没有就看是否能够归结到某种主题这样的状况上,若是再没有的话,咱们就监测,它是否是仅仅是属于一种情绪表达,而后给更出更宽泛的情绪安抚。
其中的情绪分类模型:
经过数据分析以及参与经常使用的情绪字典,咱们将情绪划分为38类 ( 感激、惊奇、失望、抱歉、期待、疑惑、尴尬、高兴、着急、怨恨、喜欢、抑郁、委屈、轻视、惧怕、孤独、愤怒、悲伤、满意、无聊、同情、平静、烦恼、激动、嫌弃、懊悔、羞愧、解恨、犹豫、思念、感动、敬佩、心慌、低落、骄傲、心虚、羡慕、辱骂 ) ,可是其实咱们针对最经常使用的7类 ( 委屈、恐惧、着急、失望、愤怒、辱骂、感谢 ) 模型训练出单独的分类模型,这样对这7中情绪分类的更准确。
上面是模型图,最左边的两个 poolling 是在作句子级别的语义特征抽取,这个实际上用的是 swem 算法;中间是 n-gram 多元的特征抽取,用的是 cnn 的模型,咱们提取了两元、三元、四元这样的信息造成特征;最右侧的一块是 emotion embedding,用到了18年发表一篇文章的思路。在咱们的场景下,label 就是 emotion,因此这一块叫 emotion embedding,这里将 word embedding 和 emotion embedding 结合起来实际上是算某个词在某个 emotion 下面的 attention score,attention 能够理解为权重。这样更直接的体现了词级别的语义特征,整个句子从左到右,就是将词级别的、n-gram 级别的和词语级别的语义信息结合起来,才能得到比较好的语义分类。由于在线端用户打的句子都比较短,用这种方式才能实现比较好的语义识别的结果。
第二部分就是主题分类,咱们定义的时候称呼为 " 情绪主题类别 " 。好比阿里小蜜有查天气的功能,而且被高频使用,这部分有没有必要放到这个模块呢?实际上是没有必要的,通常是经过点击按钮引导操做,只是想看看天气,几乎没有情绪表达的。而这里提到的模型是用于识别情绪主题类别,从情绪的角度,归结常见的主题,而其它不带情绪的主题是没有归到里面。下面是针对7类情绪,作了35种情绪主题分类,主题分类架构和刚才的情绪分类的架构一致。
最后,基于知识的安抚,就是看用户说的话是否是和某个知识点很相近,这时候咱们就用到匹配回复这样的模型能力,在文本匹配这一起能够分红两个功能能力。首先是分红两部分,最左边两块是一部分,最右侧是一部分,最左边的两块是两句话,他们分别在提取特征,最后把特征合并到一块儿作分类,最右边的部分是把两个句子从一开始就进行交互,把交互的结果,一层层作特征抽取,这至关于一个交互时间点的不一样,一个是最后交互,另外一个是一开始交互,咱们把两种交互抽取特征的结果结合到一块儿,作一个准确率更高的文本匹配模型,来实如今线匹配问答。
4、客服质量检测
咱们只探讨两种服务问题,一种是消极,一种是态度差,消极是指爱搭不理的态度,态度差是指客服虽然给了客服充分的回复,可是态度很差,好比可能有反怼客户,讽刺客户的现象发生。这套服务提供给平台端和商家端,平台端就是好比淘宝,天猫这样阿里自家平台,商家端是商家本身的店铺的客服检测,这是两个不一样的模型,由于两种场景在服务质量的要求上存在不一样的衡量标准。
在机器人端典型的对话方式是一问一答,而在人工客服端每每出现多问多答的状况,好比客户连着说几句,客服是连着回答几句。这时候咱们对客服服务质量进行评价就须要很是关注上下文,而且上下文每句话是谁说的,等等这些信息。
模型以下图,考虑了句子长度、说话人角色,以及内容的语义信息等等特征。
5、情绪生成式语聊
下图是比较通用的语义生成模型,这种传统的生成模型存在的一个问题就是 ' safe response ' 的产生,就是很泛泛的一个回复,不多有情感传达在里面,好比好,哦哦,能够这样的回复。
咱们的目的是让机器人产生带情绪的回复,另外但愿回复更具备针对性一些,而不是所有都是通用的 ' safe response ',在下面的模型里,除了情绪,咱们还能够添加 topic 相关的信息,分析出聊天的主题。下面的例子里,客户说今天心情很好,聊的是生活化的主题,表达的是高兴的情绪,这时候咱们生成 ' 好开心啊 ',回复用户。
针对上述的用户和机器人的情感对应关系,能够进行预设。好比客户在表达高兴的时候,咱们也要表达出高兴,用户在辱骂咱们的时候,咱们要表达出委屈。
6、将来工做
将来,咱们要作一个 session 满意度预估,这里的 session 就是一个完整的对话,目前是经过人工用研分析,是设计一个调查问卷的形式,随机抽取天天的用户,而后让用户打分,最后的分数就是满意用户的占比。
存在的问题就是:一个是耗费人工;二是天天的统计量是不足的,所以会产生天天统计结果比较大的天然震动。
联系咱们:
欢迎对智能问答机器人、天然语言处理、机器学习等领域感兴趣的业内优秀同窗、老师、专家关注咱们的算法专家、高级算法专家、资深算法专家等岗位,感兴趣能够发送您的简历至:
shuangyong.ssy@alibaba-inc.com
进行内推,或者邮件咨询岗位细节,感谢您的关注!
嘉宾介绍:
宋双永,阿里巴巴小蜜情感语聊算法负责人,智能服务事业部算法专家。致力于智能对话中的情绪回复能力以及开放域语聊能力的算法研究和业务场景落地,在机器学习和天然语言处理领域积累了多年的实战经验,发表了多篇学术文章和专利。
——END——
文章推荐:
加入 DataFun 社群:
请关注社区公众号,后台回复【DF】
关于 DataFun:
DataFun 定位于最实用的数据智能平台,主要形式为线下的深度沙龙、线上的内容整理。但愿将工业界专家在各自场景下的实践经验,经过 DataFun 的平台传播和扩散,对即将或已经开始相关尝试的同窗有启发和借鉴。
DataFun 的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun 成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过三百位的业内专家参与分享,汇集了数万大数据、算法相关领域从业者。
您的「在看」,个人动力!👇
本文根据车好多NLP方向负责人王文斌老师在DataFun“AI+”Talk—— “Application of AI In Second Hand Market”中分享的《对话机器人在瓜子的实践》编辑整理而成。
今天主要分享如下几个方面,首先介绍下什么是对话机器人,而后讲一下技术选型的过程,设计了怎样的算法架构和系统架构,最后分享下线上的效果以及在瓜子中面临的一些挑战。
目前对话机器人很火,是有多方面缘由的:第一,图灵在定义智能时就将对话机器人做为人工智能的一个标志;第二,深度学习技术愈来愈成熟,对话机器人在工业界已经达到必定水平;第三,对话机器人因为有智能客服的积累,有不少公司在作这方面的东西。上面是一个智能客服设计图,左边是接入渠道,登陆进来,会提供一些客服产品,如机器人客服、人工在线客服、云呼叫中心,以及用户依据产品作一些自助服务。聊天过程当中用户会将其数据留下来(反馈数据、对话数据、人工客服数据),利用这些数据就能够作分析,如客服数据能够作质检,用户数据能够作营销工做,与CRM接入打通。
接下来说一下会什么要有对话机器人,开始瓜子目标就是提升效率,用机器替代人,达到缩减人力和培训成本、7*24小时在线服务、质量可控的目标。在发展的过程当中概念慢慢升华到一个在线化的概念,就是数字化、数据化和智能化。数字化就是将用户和企业交互的数据都记录下来,将数据结构化,作成算法可用的数据叫数据化,有了数据化就能够用建模等一系列智能化手段作一些智能化提高。在线化作后能够作到整个沟通可追踪、提供可优化、差别化的服务以及精细化运营,最终推进企业在线化。
在线机器人是在线聊天的一部分,既是整个服务闭环的入口也是出口。用户能够在聊天中表达和解决相应的诉求,而搜索、推荐更像是一个被动的过程,IM是一个主动表达诉求的门户。
对话机器人的分类:开放式的有微软小冰、度秘;任务导向的有订机票、询问天气。从角色定位角度,如提供IM通道其实就是架构,只有有了骨架才能作相应的应用,算法在里面是一个关键的做用,后期其实更多的是偏产品化的东西。对话机器人技术是透明的,区别在于谁作的细节更完善。开发的角度就是完善三个视图,客户视图: 对话内容、对话框、对话框外推荐信息;客服视图:对话上下文、客户画像、背景信息、订单画像,管理者视图:控制台、知识库。
对话机器人经典流程:语音唤醒,告诉你要干吗,唤醒以后通过语音识别转化为文本,这时候能够作语义理解(其中可能须要知识库交互),将语义理解的结果经过对话管理引擎拿到用户对应的话术,将对应的话术转化为文本,最后转化为语音输出。
说明下对话机器人的核心概念,如“帮我定一张明天上午10点从北京到上海的机票”,这句话的意图就是“订机票”。槽位就是若是要彻底理解一句话而且可以够返回结果信息还须要什么属性,这句话槽位信息有:起飞时间 = 明天早上10点,起始地 = 北京,目的地 = 上海。
接下来说一下技术选型,这是对话机器人选用技术调研的过程。对话机器人开始是基于关键词,而后就是模板技术,目前不少公司还在使用,优势是质量可控、准确率高,其缺点就是泛化能力比较弱。随着功能不断迭代,模板很大程度依赖于人工,不能自主提高本身的泛化能力。而后有了基于搜索的对话机器人,有很强的业务适应能力,其缺点就是准确率低。最近几年深度学习火起来后,利用深度学习替换原来的模型进行意图识别,意图识别相对传统方法准确率提高很大,可是缺点就是对数据质量要求较高。
模板能够部分自动生成,若是上线也须要应用方本身审核与补充,话术也须要应用方本身去配置。搜索技术更多的是先用意图识别作一个路由器的功能,而后路由到一些小的robot,每一个robot作一类事情。深度学习与传统分类方法作的事情相似,也是在作多意图的意图分类,肯定意图后会经过一对一或其余配置方式将其关联回答。
下面是一个模板算法,“泉州过户到厦门会不会很麻烦”,这个模板在前面没有出现过,就没法匹配,须要将模板提取出来,固化到知识库、模板库中。
对话机器人发展到后面愈来愈注重运营,有一个管理平台,就是知识库。固化知识,给运营提供管理入口。前面例子就是维护问题到模板以及模板到回答的映射关系,人工须要作不少审核以及一些校对的工做。而搜索方案,将query通过预处理打散成terms,进入搜索系统,若是按照原始结果会获得一个排序“泉州到厦门过户问题,泉州到厦门远吗,泉州到厦门怎么坐车,泉州到福州过户问题,泉州到厦门过户问题”,最后得出结果与查询一致,将最相近的query回答返回。而解决排序不正确的方法就是须要海量数据。
接下来说一下深度学习的算法架构,深度学习应用不少,以对话机器人而言,基础技术如分词、词性、实体识别均可以用深度学习,数据好的话会比传统方法好。还有搜索架构中的类似度计算、用来排序的一些特征也能够用到深度学习的方法。咱们是从整个结构来看就是一个深度学习的架构,这也是学术界研究的热点。
深度学习知识库咱们解决就是意图与答案一对一的关系,回答对话术自己要求很严格,几乎是一个纯人工的过程,有不少人参与业务运营。若是是单轮就是一个多分类问题,更重要的是如何创建一种机制将问题积累过程与上线后模型的演进过程变得更加自动化、质量更可控。除了刚才它谈到的技术还有其余方法如生成模式,学术界较火,主要是应用于闲聊。咱们最后选用深度学习模式,考虑的缘由有如下几个方面,就是再也不须要人去抽取大量的特征。
语义理解的流程,包括快速识别、模型识别、搜索识别、类似问题,在这个流程中应用了不少技术。咱们采起的是一个漏斗方式,开始是快速识别(须要实时解决),在快速识别弄一个白名单用关键词或模版匹配马上纠正,原则是必须准确率要高。90%的问题是依据模型框架,准确率也在90%以上,有了前面两步,后面是在补充召回的过程,经过搜索系统借助文本类似度的匹配将一部分数据召回,尽可能让用户更多的问题被识别。
接下来介绍下多轮,我理解多轮是一个更偏工程的过程。里面更多的算法是在作槽位解析,须要作好三件事,第一个就是填槽,若是对话过程当中槽位未补全,在下轮对话过程当中引导用户补全槽位信息。再者就是场景管理,须要维护海量用户的聊天信息。第三点就是可配置,多轮最后面都是一个业务问题,开发一个可配置的界面,让运营自行配置其须要的对话。多轮的逻辑是在知识库里配置的,DM是和业务无关的,只须要按配置的解析结果执行便可。
按照上面设计仍是会出现风险,常见的五个风险有:任何算法的选择都只是知足当前的需求,数据是历史数据,算法是当前反馈,业务演化过程不可知; 模型互搏,各类模型都要去作A/BTest肯定哪一种好那种坏,以前更多的判断是从原理上判断;意图爆炸,目前知识库是基于意图回答一对一关系,业务相对收敛,可是将来发展速度可能致使意图不可收敛; 主观标准的反复,不少过程都由人工参与,每一个人评判标准不一;模型更新滞后于业务发展,技术发展较快。解决方案就是永远保持主动,提早应对。
系统架构:前端有一个对话框和消息服务器,相似于IM基本架构,消息服务器会将消息路由到对话管理模块(中控)。用户聊天文本会在中控识别意图和槽位,经过意图在知识库中获取对应的话术。知识库有一个控制台,与外部交互的界面,对话管理也会访问后端云服务,好比经过ip地址获取其属于哪一个城市,除此外还有语义理解、CRM服务等。
线上效果,左边是一个单轮对话能力,不管问如何贷款都能准确识别,右边是一个动态API,相似于知识图谱想要完成的工做。
在瓜子遇到的挑战:首先是数据,无论作什么都须要数据。运营,这方面主要是对话机器人自学习的能力,如何设置一些机制使运营可以知足当前业务效果,跟上业务发展速度。最后是产品化,如何将产品细节作得足够好。
举例:第一个就是数据来源,以必定规则构造数据,或利用非结构化数据经过迁移学习训练embedding向量,将向量做为意图识别的原始输入,或模型产生数据反哺模型,不断迭代。第二个就是话术的确认流程,编辑发起修改,业务反馈,编辑确认,审核,法务,上线,这是一个理想的模式。人与人之间的平衡: 回答的标准,新增意图的标准,产品和算法的平衡: 意图预判、suggest、类似问题、下一个问题,业务和技术的平衡:卡片消息,就是在线化,后台服务如何让用户利用起来。
用户从不一样的业务入口进来看到的问题列表是不一样的,从不一样业务阶段进来看到的问题列表也是不同的。后续但愿作到不只根据业务状态还要基于历史数据作一些推荐。对话机器人能够作不少事情,如目前咱们正在作的精准营销,经过多轮对话完善用户诉求,给出更加精准的推荐。
下面更可能是一种理念,打通CRM等内部系统,能够利用数据作商业智能,覆盖售前、售中、售后全部场景,用户沟通可追踪可优化,精准营销,从客服转化为专家顾问,实现用户服务在线化和企业在线化,最终实现整个企业的智能化。
做者介绍:
王文斌,车好多NLP方向负责人。硕士毕业于北京大学,曾就任于美团、百度等公司,在编译器、浏览器、IM、大数据等复杂系统研发上有实践经验,并在搜索推荐、知识问答、数据挖掘、机器学习、NLP等算法方向有丰富的积累。加入车好多后发起了智能IM项目,实现了对话机器人的成功落地。
团队介绍:
瓜子NLP团队,以chatbot等产品,增长人效,提升服务质量,让瓜子逐步加大服务线上化的比例。团队承载瓜子服务线上化的重任,是将来瓜子发展的重要基础能力之一。
——END——
内推信息:
在看NLP算法工程师、数据挖掘工程师机会的小伙伴,欢迎加入文斌老师的团队,内推邮箱:wangwenbin2@guazi.com。
再看看其余文章?
回顾·深度学习的可解释性与低频事件学习在金融领域的研究与应用
分享嘉宾:江会星 博士 美团点评
编辑整理:李岩哲
内容来源:AI 科学前沿大会
出品社区:DataFun
注:欢迎转载,转载请注明出处
智能客服是一种使用天然语言与用户交互的人工智能系统,经过分析用户意图,以人性化的方式与用户沟通,向用户提供客户服务。
本议题首先介绍美团智能客服的对话交互框架,而后就咱们在其中意图挖掘、意图理解、情绪识别、对话管理等核心模块中用到的机器学习算法进行详细的介绍。
美团点评的使命是 " 帮你们吃得更好,生活更好 " 。美团线上服务的 APP 涵盖了生活服务方方面面,包括餐饮、外卖、打车、酒店业务等。2018年整年美团的总交易金额达5156.4亿元人民币,同比增长44.3%;2018年美团单日外卖交易笔数超过2100万笔。美团的各个 APP 上具备大量的客服信息类的数据,这也为工程师提供了很好的练兵场。
1、智能客服对话框架
当用户进入到客服界面时每每是带着一个问题来的,那么咱们须要作的就是对这个问题进行理解,而后根据理解结果去请求相应服务,去解决用户的问题。这里面主要分为两大块,一方面是离线训练和知识库整理部分,另外一部分是在线处理部分。
在在线部分,首先须要对问题进行基础特征的提取,好比:分词、语义标签抽取、情绪分析、NER 识别等;进而进入下面一层-意图理解层,主要有问题领域分类、意图识别和属性抽取;意图理解以后就进入到了对话管理这个阶段,对话管理模块主要包括两个部分,状态追踪 ( DST ) 和对话决策,DST 根据上下文状态明确当前用户的领域和意图,而对话决策模块则根据用户当前意图决定后续动做;再之下是业务服务层,包括各业务的数据服务接口以及业务数据呈现样式等。
2、意图理解
美团围绕着生活服务有着许许多多场景和业务,针对客服服务而言,用户多是从单一的业务窗口进入到客服中,这时咱们是知道该客服服务属于哪一个领域;用户也有多是从美团的综合门户入口进入到客服中,在这种状况下咱们没法判断用户须要进行哪一个业务领域方面的咨询。
除此以外,在场景方面,主要涉及单轮 QA 和多轮 Task,针对一些简单的问题,单轮的 QA 就能够解决,举个例子:
U: 美团送餐时间
S: 用户您好,可否配送是以商家营业时间为准的。如您所选的商家正在营业,便表明能够提供点餐及配送服务。
而大量复杂的业务经过单轮的 QA 是没法完成的,这时候就须要多轮对话,举个例子:
如何成为美团商家?
像这种就须要多轮的任务 Task 才能解决。
因为美团涵盖众多的业务领域,因此当用户提出一个问题时,咱们首先要将这个问题进行领域分类,把它分到某个业务领域去,而后用业务知识去解决这个问题;领域明确后就是意图分类,根据问题的不一样类别,好比问答类的、闲聊类的等,采用的方式也会有所差别。接下来将对这两个方面作详细介绍。
2.1 领域分类
针对领域分类任务,如上图所示,咱们首先会从不一样的业务中收集大量的业务数据,做为基础的训练数据,虽然这些数据来自不一样的业务,可是依然存在一些问题,主要有如下两方面:
标签不许:用户有可能会在某个业务对话中提问其它领域的问题;
领域重叠:某些问题可能会在多个领域中出现。
因此,原始数据不能直接拿来做为训练数据,必需要通过人工筛选和标注方可以使用。 为了节约人力成本和提升迭代速度,咱们采用了主动学习框架,模型的迭代主要分为以下几步:
1. 搜集业务数据,为每条业务数据打上相应的业务标签
2. 对数据进行模型训练
3. 将上步训练好的模型对样本进行预测
4. 标注人员对预测样本进行标注,选出错误和难分开的样本
5. 返回第2步,对标注好的数据从新进行训练
咱们同时也在不一样的模型上测试领域分类效果,实践中的各模型效果如上图所示。 从结果中咱们能够看出,BERT 的效果是很是高的,可是呢咱们也会考虑模型在实际运行中的效率问题。 对于一个15个字左右的 query 来讲,用 TextCNN 模型在 10ms 之内就能够解决,若是用 BERT 模型的话可能须要 70ms 左右,这个时间仍是比较长的,当前实际上线的时候咱们采用的是 TextCNN 模型。 这是2014年 Yoon Kim 提出的一种方法。
2.2 意图分类
针对意图分类,主要包括问答型意图理解和任务型意图理解两个方面。
这两类问题有着各自的特色,针对问答类,咱们采用检索和类似度排序的策略,下图是问答类的设计架构。
针对任务型的意图理解,咱们采用规则和模型结合的方式,一种是经过规则的方式,好比上下文无关文法,另外一种是采用模型训练的方式。
上下文无关文法
上图就是其中一个例子,在工业界这种方式仍是很是通用的,对于问题冷启动,高频出现的问题和常规的问题,采用规则的方式可以很好的解决。
多任务学习模型
模型部分咱们把意图分类和属性抽取联合建模,做为一个多任务学习 ( Multi-task Learning ) 任务,如上图所示 ( 算法详见 Zhang, Xiaodong 2016IJCAI ) 。双向 LSTM 处理后,一方面会经过 softmax 分类输出意图多分类的结果 ( 右边的y^u );另外经过 CRF 层,标记每个词的槽位标签。具体来讲,对于 " 帮我找一家明天中午适合10人聚餐的川菜馆 ",模型应该能识别出来它是属于订餐意图,同时又可以抽取出时间 " 明天中午 " 、人数 " 10 " 和口味菜系 " 川菜 " 等属性信息。
2.3 对话状态追踪 ( DST )
DST 解决的仍是一个意图的问题,根据当前上下文的环境或者状态来明确当前用户的确切意图。
上图是咱们当前的框架,这个 session context 为上下文信息,NLU 模块的输出信息多是多个意图,咱们须要根据其余的一些信息,好比,订单信息、门户信息,入口信息等,结合 session context 去明确它是属于哪一个领域。
若是这个领域不能明确怎么办?咱们的作法是会跟用户进行一轮的澄清,反问用户一次,来解决这个问题,也就是框架最左边的 " domain不明确进行澄清 " 逻辑。
领域一旦明确后,下一步会进入到意图这一块,咱们要明确它当前是什么意图,固然接收到的 query 也面临多意图判断的问题,一样咱们也能够去作澄清,澄清包括利用上下文信息断定,或者增长一轮与用户的交互来澄清,若是明确则继续下面的流程,这是咱们总体的架构。
举个栗子:
若是接收到一个信息是 " 牛肉汤撒了 ",首选咱们要判断它是属于哪一个领域的,它是属于外卖商家这个领域,接着判断其意图,对意图进行澄清后得知意图是 " 如何申请餐损 ",而后走餐损的流程。
3、知识发现
3.1 人在回路
客服的目的是为了解决用户的问题,AI 在现有的 work flow 中节省人力,可是机器解决不了的事情仍是要交给人来解决。因此在下图中,咱们必定要加一条转人工的服务。另外咱们利用无监督学习从日志中挖掘出的知识点也须要人工 " 业务运营 " 来 check 。在整个环路里监督学习从知识库中学习到的语义表示能力又能够提供给无监督学习使用,这个在下面会进一步提到。
3.2 无监督学习在知识发现中应用
无监督机器学习主要涉及两个问题,一个是句子的语义表示,另外一个就是如何作知识聚类。
在语义表示问题上,咱们作了大量的试验,在迭代的过程当中,咱们用到了 DSSM 模型、seq2seq 模型和 BERT 模型来作意图的类似度计算,在这个过程当中咱们发现不一样的模型有各自的特色,它可能抓住不一样维度的特征,在离线模型中咱们用多个模型的拼接的方式来表示其语义向量。
在知识点聚类这个问题上,咱们采用用了最通用的 K-means 模型来作的。
上面讲到的是意图和说法的挖掘,在实际业务中咱们有大量的 Task 的问题。下图呈现的是一个 " 如何申请餐损 " 的 Task 树。
当用户的问题触发 Task 后,Task 机器人根据和用户的交流来获取槽信息,调用不一样 API 接口来获取槽信息,进而回复用户。上图 " 如何申请餐损 " Task 须要明确的槽包括 " 配送方式 " 、" 餐损缘由 " 、 " 申请状态 ",其中 " 配送方式 " 和 " 餐损缘由 " 是经过与用户的交互来明确," 申请状态 " 则是经过请求后台服务来明确。
在这个环节中咱们须要作的就是辅助运营人员构建 Task 类的知识。
咱们根据用户的日志数据提取相应意图,而后根据意图共现,回复共现去挖掘,当一个用户问了一个问题以后还会提问哪些问题,当用户收到反馈以后还会反问哪些问题。根据这些去构建 Task 子树,离线构建好以后交给运营的同窗,运营同窗审核经过以后就能够上线了。
4、情绪识别
4.1 背景介绍
客服热线是咱们公司对外服务的重要交流通道,在售前、售中和售后的各个环节中发挥着重要做用,为用户提供意见处理、资料管理、技术支持等多项服务。然而目前客服热线在运营过程当中还存在一些痛点,如客服人工坐席的服务水平参差致使客户的体验存在差别,另外个别客户还存在动机复杂等问题。所以如何利用技术提高客服热线的服务水平、检测热线中可能的风险是目前须要解决的一个问题。 本项目对客服热线中的语音数据进行挖掘与分析,经过量化用户的情绪能量值,实现对用户情绪状态 ( 是否激动、情感倾向等 ) 的追踪,而且在客户情绪超过设定阈值时提供预警信息,以便相关人员和应急措施的及时介入,从而为相关业务部门提供运营数据支撑和智力支持,最终提高客服热线的服务质量和服务效率。
4.2 特征提取
FTT:短时傅里叶变换
每帧语音都对应于一个频谱 ( 经过短时 FFT 计算 ),频谱表示频率与能量的关系。
梅尔滤波:实验观测发现人耳就像一个滤波器组同样,它只关注某些特定的频率份量 ( 人的听觉对频率是有选择性的 ) 。也就说,它只让某些频率的信号经过,而压根就直接无视它不想感知的某些频率信号。
4.3 模型选择
特征处理完成以后就是采用哪一种模型来进行训练。
在迭代中咱们采用过传统的机器学习模型,好比 LR、SVM 模型,神经网络模型,和一些预训练好的模型,在这个里面咱们遇到的一个挑战就是,一个情绪是否是激动的标签是针对整个通话记录标注的,可是用户在通话的过程当中,不是一直的激动,而是在某个通话阶段情绪激动,而一个标签没法体现出究竟是那一部分激动,是全程激动,仍是部分激动,仍是全程平静的,其实这个里面就涉及到一个弱标签的学习,以下图所示。
这是19年提出的一个算法,在实际应用中效果不错,感兴趣的同窗能够根据信息去查找。
在实际的效果上,各个模型的表现以下:
MFCC + LSTM < MFCC + CNN < VGGish + ferture level attention < VGGish + decision level attention
5、展望
多轮上下文建模,意图理解
让用户作选择题,作意图预判,意图推荐
语音与文本多模态,弱标记学习,情绪风险识别
对话历史的话题抽取及切割,话术推荐,坐席助理
以上是当前咱们正在开展及探索的智能客服理解部分的内容,从 ToC 的用户侧,以及 ToB 的坐席助理侧两方面来优化整个客服闭环。
做者介绍:
江会星 博士,美团点评搜索与 NLP 部 NLP 中心的研究员,智能客服团队负责人,主要负责美团智能客服业务及对话平台的建设。曾在阿里达摩院语音实验室从事智能语音对话交互方向研究,主要负责主导的产品有斑马智行语音交互系统、YunOS 语音助理等。
团队介绍:
美团点评搜索与 NLP 部 NLP 中心秉承 " 让机器理解人类语言,让机器与人天然对话,用数据打造知识大脑 " 的信条,致力于建设世界一流的天然语言处理核心技术和服务能力,打造智能客服对话平台,打造天然语言处理平台及知识图谱 ( 美团大脑 ),助力美团业务场景智能化转型,提高美团科技水平和品牌影响力。
当前咱们在 NLP 多个方向,包括但不限于意图理解,对话交互,意图推荐,风险识别,知识图谱等岗位招聘算法及工程岗位,Base 北京、上海两地。欢迎加入咱们团队,简历请投递至邮箱:
jianghuixing@meituan.com
——END——
文章推荐:
关于 DataFun:
DataFun 定位于最实用的数据智能平台,主要形式为线下的深度沙龙、线上的内容整理。但愿将工业界专家在各自场景下的实践经验,经过 DataFun 的平台传播和扩散,对即将或已经开始相关尝试的同窗有启发和借鉴。
DataFun 的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun 成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过三百位的业内专家参与分享,汇集了数万大数据、算法相关领域从业者。
您的「在看」,个人动力!👇
分享嘉宾:刘学梁老师
编辑整理:赵富旺同窗
内容来源:2018AI先行者大会《智变中的美团客服》
出品社区:DataFun
当NLP赶上客服系统确实会发生一些美妙的事情,下面我分享的内容将围绕美团客服系统中一些比较前沿的技术展开,但愿能对你们有所启发。
今天分享的内容主要分为如下几个方面,第一部分首先对美团的客服系统进行简单介绍,第二部分是本次分享的重点,包括咱们采用了什么样的技术方案,技术方案的具体的技术组件是怎样实现的,背后有着怎样的思考等等,第三部分展现咱们所作的工做在美团客服系统的落地效果,第四部分对本次分享作一个总结。整体上来讲,客服不是一个纯靠人能够解决的问题,也不是一个纯靠算法能够解决的问题,而是须要人机协同解决的问题。同时,它也不是一个静态的系统,它须要不断地进化不断地运营。
1. 客服系统简介
首先咱们回顾一下客服系统的演变历史。客服系统的原始阶段是语音呼叫中心,这种客服系统纯靠人工服务,且支持语音电话,效率低成本高。第二阶段进化到了网页在线客服,这种客服系统基于网页会话,服务形式支持文本和语音,同时还利于对流量数据进行挖掘。随着移动互联网的兴起,便有了SaaS客服系统,这种客服系统支持多渠道接入,有了丰富的辅助功能和知识库管理。现在客服系统进化到了智能客服,它最大的特色就是人机协同,许多简单问题均可以由机器自主解决,这个系统能够自主学习不断进化。回顾客服系统的演变历史能够发现,智能化是客服系统的一个演变趋势。
而后我介绍一下对话系统。对话系统主要包括四类:问答型对话、任务型对话、闲聊型对话、图谱型对话。在问答型对话中,咱们使用QABot机器人完成简单任务,这种对话一般是与上下文无关的单轮对话。在任务型对话中,TaskBot机器人完成特定场景下的复杂任务。另外还有ChatBot闲聊型机器人,这种对话一般不以解决实际问题为目的,咱们的客服系统也有用到这种机器人。最后是图谱型机器人KBQA,这种机器人可能更多地用在金融、医疗等领域,但还未有成熟的系统,这方面咱们也还处于探索中。
根据智能客服机器人的智能水平,能够将其分为四个档次:简单检索机器人、语义识别机器人、场景导向机器人、智慧机器人。简单检索机器人只支持特定类型的检索,只要说法稍微一变可能就不能正确识别,匹配性较差。语义识别机器人基于知识库,能够更智能地理解所检索的问题。场景导向机器人根据不一样场景量身定制机器人,机器人的聪明程度与场景有关。智慧机器人是智能程度最高的机器人,甚至能够达到拟人的程度。如今来看,大多数机器人还只是停留在第二个阶段,能达到第三个阶段的仍是少数。
美团的业务种类繁多,不一样的业务所须要的客服系统也不尽相同,这无疑给咱们提出了严峻的技术挑战。上图是客服系统的总体框架图,蓝色部分表明了前面提到的nlp技术对原来客服系统的改进。在用户端咱们设置了QABot、TaskBot、ChatBot等机器人,在座席端运用了话术提示、转接提示、情感分析等技术。
下面进入本次分享的第二部分:智变之路,主要聚焦于咱们在这个过程当中作了哪些工做以及咱们背后的思考。
原来的客服系统系统中客户将请求传送到客服服务器,而后客服操做平台就会分配相应的人工客服处理相应的客户请求,客服操做平台只具有简单的知识管理功能。这种客服系统最大的问题就是效率低,须要的人力成本高。对于这样的客服系统来讲,实际上须要的人工客服数目和订单数目是成正比的。美团如今的业务正处于飞速的发展过程当中,如今就有近万名客服人员,若是不对客服系统进行改进,能够想象将来这个队伍还会扩充不少倍。基于原来客服系统的这些缺点,咱们对这个架构进行了改进,增添了会话管理服务,后面链接着QABot、TakBot、ChatBot等机器人以及人工服务,有一个专门的知识管理平台来支撑QABot、TakBot、ChatBot,AI训练师对知识管理平台设计离线学习和自动训练的算法。除此以外咱们还设计了话术提醒、舆情监控、转接提示等模块来辅助人工客服。
咱们也研究过作字典的必要性。以上图片来源于对外卖的日志数据分析,能够看出只是“外卖配送超单”这一个问题对应的问法就有16000多种,原客服系统的简单检索很明显不能知足这种需求,让检索系统具备必定的语义识别能力十分必要。
要作好一个AI系统必须知足这样的条件:要有大量业务专家、要有强大算法团队、要有大规模GPU计算引擎、要有海量场景数据,这些条件在美团都是知足的,这无疑给了咱们使智能客服系统落地的信心。
这是咱们智变的思路,咱们采用三级漏斗的方式,把问题分为了三类,第一类简单咨询问题由QABot解决,第二类高频相关的复杂场景下的问题由TaskBot解决,最后TaskBot解决不了的任务再借助人工客服来解决。咱们算法的目标就是随着时间的演进,不断地把更多的任务转向机器解决。
这是咱们的系统架构,当一个请求来临时,先进入咱们的意图识别领域,而后被识别到对应的业务领域中,把对应的知识点识别出来。若是识别出来的是一个比较简单的问题,直接检索就能够获得答案,若是它是和用户订单状态或者行为有关系的复杂问题,须要根据场景生成不一样的答案。好比对于催单问题,订单状态不同所须要的回应也不同,若是用户刚下订单就要催单,此时告诉用户骑手的位置比较合适,但用户是在等了一个小时的状况下催单,此时须要先安抚客户的情绪。而对于多轮的任务,如客户支付宝支付没法使用,这种任务须要调用好多层才能完成,此时就会调用TaskBot。
接下来介绍一下单轮会话的QABot。它主要由两部分构成,其中一部分是线上的语义识别,另外一部分是线下的客服运营,运营的目的是发现更多的标准问题以及更多的关联问题。另外后面还有一个交互层,交互层有可能触发Task或者直接生成答案。
语义识别主要指把不一样的问法规整到标准的问法上去,感觉一下上面的例子,不一样的细节表述其实都是在说餐品有质量问题,而语义识别的目的就是要找到检索问题的标准表述。为了解决这个问题,咱们综合运用了搜索技术、翻译技术、图谱技术、深度学习和统计学习技术。
语义识别的流程模拟了人解决问题的思路。人类在解决一个问题的时候会首先考虑之前有没有相似的问题,对应于语义识别中咱们也首先采用搜索检索的方法。在找寻类似问题的过程当中,人类一般会考虑:“咱们要找的究竟是哪些问题呢?”,对应于语义识别中,这是一个对问题进行候选筛选的过程。当人类发现一些问题明显和意图无关,一般要把他们去掉,对应于语义识别中,这就是要进行意图识别从而筛选问题。面临最后挑选出的几个问题,人类一般要对其进行优先级排序,对应于语义识别中,这就是Rank的过程。最后人类可能还会对结果进行检查:“问的确实是这个问题嘛?”,这就是语义识别中的语义完整性检查。这整个过程当中运用了各类各样的模型来达成语义识别的目的。
先介绍一下基于匹配的识别。基于匹配的识别利用拓展问与标准问的并行数据做为训练语料,把拓展问Ngram特征串做为关键词创建倒排,Ngram特征分布做为权重,在外卖的例子中只用Top20就能达到99.76%的权重。这一步的筛选为后面模型节省了不少时间。
下面介绍一种深度模型—DSSM模型。DSSM模型是一个双塔模型,它在句子embedding上效果很好,所以咱们也借鉴了这一模型。咱们把标准问与拓展问语义相同的句子对做为正例,把标准问与拓展问语义不一样的句子对做为反例,训练了DSSM模型。模型训练后,对于任给的一个问题,能够获得它的embedding结果,和其余标准问embedding结果相对比就能够算出类似度。好比拓展问“个人外卖怎么还没到”能够计算出一个Sentence Vector,而标准问“配送超时催单”和“餐品有质量问题”分别有一个Sentence Vector,经过计算可得,“个人外卖怎么还没到”和“配送超时催单”的类似度为0.98,个人外卖怎么还没到”和“餐品有质量问题”的类似度是0.62,因此能够把“个人外卖怎么还没到”的语义识别为“配送超时催单”。
还有一个效果很好的深度模型—Seq2seq模型。Seq2seq模型自己是一个生成模型,可是咱们把它用来计算句子之间的类似度,咱们把它encoder和attention的结果和不一样的候选作loss计算,把loss做为一种度量结果,Loss越小表明输入和候选越接近。以上两个深度模型是咱们尝试过的深度模型中效果最好的两个。
咱们还采用了一种基于图谱的识别方法。由于美团积累了不少图谱信息,美团大脑项目里面有亿级的实体数量,相互之间的关系超过5亿,实体与实体之间的关系能够作一个embedding,这样实体就能够变成一个向量表示,而这种向量能够做为一种特征和其余显示特征联合在一块儿提供给聚类分类算法,这样会使算法效果有很大的提高。
还有一种对知识图谱的用法,咱们从图谱中抽取一些近义词上下位等关系做为并行语料放入一些模型中去,这样对原有语料进行了很好的扩充。
还有一种模型:基于实例的翻译。Nagao1984年时提出过这样一个理论:人类在翻译简单句子时不会进行深层次的语义分析。这是一种很简单的思想:从已知的实体中找到和问题最接近的,把它的答案做为问题的答案。
这是一个简单的例子。咱们的语言库里面已经有“怎么都没人接单啊”、“怎么还没人接单呀”、“怎么今天没人接单”等句子,库里面这些问题的答案都是“无骑手接单”,此时来了一个新的问题“怎么会没人接单呢”,经过类似性能够推断出它的答案也应该是“无骑手接单”。
下面介绍一个进行意图识别的模型。咱们根据业务逻辑进行建模,对于外卖来讲,能够把问题分为几个大类,好比配送类、红包类、支付类、帐户类等等,不一样大类之间的问题关系能够依据业务逻辑分别被定义为互斥或者相容,根据这些关系能够对候选问题进行语义层面的筛选。根据筛选结果对候选问题进行过滤。
上面介绍的都是QABot用到的模型,下面介绍一下TaskBot的总体框架。TaskBot在咱们这里被定义为一个执行引擎,在架构上它是这样的,请求来临后,先进行意图识别,出发对应的Task,Task把对应的决策树load到内存里边,而后它会对决策树的节点状态进行记录,以后调用情感识别、语义识别、实体识别等服务进行分析决定节点之间的状态流转。
接下来介绍闲聊机器人。ChatBot不以解决实际问题为目的,主要用来和用户进行情感交流。咱们采用两种方式来作ChatBot,第一种是检索式,构建一个闲聊库,检索给出答案,第二种是生成式模型,从闲聊库中学习生成模型。生成式比较具备挑战性,由于客服系统是一个比较严肃公开的平台,必须保证会话的可控性。
这是咱们QABot的落地状况,数据来自于外卖场景,天天解决72,000个问题,算法离线准确率达到92%,在线智能解决率83%。
这是TaskBot的落地效果,业务场景是打车领域,针对打车司机平台派单少这一问题,TaskBot的上线方便了司机自助地解决问题,大大提高了这一问题的智能解决率和智能解决量。
最后,对本次分享作一下总结。智能化是客服系统发展的趋势,是解决有限的客服资源与不断增加的海量用户服务请求矛盾的惟一选择。实践证实,智能化客服确实能够大量消除人的重复劳动,业务专家也能够从繁杂中解脱出来,能够有更多的时间进行方案优化。最重要的一点,智能化客服系统不是一个纯人的系统,也不是一个纯算法的系统,也不是一个静态的系统,它须要人机协同,自主学习不断进化。还有一点,客服系统如今还主要用于售后方面,咱们如今也在售前的相关研究,后面咱们也会把它用于智能营销、导购等流程中,这方面咱们也在探索。
做者介绍:
刘学梁,美团AI平台部NLP中心客服算法团队负责人,研发的智能客服系统已上线服务于外卖、打车等领域。曾就任于微信,从事机器翻译、语音识别相关基础算法研究工做。
团队介绍:
美团点评AI Lab-NLP中心是负责美团点评人工智能技术研发的核心团队,使命是打造世界一流的天然语言处理核心技术和服务能力,依托NLP(天然语言处理)、Deep Learning(深度学习)、Knowledge Graph(知识图谱)等技术,处理美团点评海量文本数据,打通餐饮、旅行、休闲娱乐等各个场景数据,构建美团点评知识图谱,搭建通用NLP Service,为美团点评各项业务提供智能的文本语义理解服务。 咱们的团队既注重AI技术的落地,也开展中长期的NLP及知识图谱基础研究。目前项目及业务包括美团点评知识图谱、智能客服、语音语义搜索、文章评论语义理解、美团点评智能助理等。
注:关注文章底部公众号,回复【先行者】,可下载学梁老师分享PPT。
——END——
内推信息:
职级:p2-1到p3-2,以下方向:NLP(在知识图谱、智能客服、搜索引擎、推荐系统等领域有实际经验)、智能助手和客服机器人、知识图谱等算法开发岗,Base北京、上海。欢迎加入学梁老师的团队,简历请投递至学梁老师的邮箱:
liuxueliang03@meituan.com
DataFun算法群1.1招募中,感兴趣的小伙伴欢迎加管理员微信:
更多干货文章:
DataFun定位于最“实用”的数据科学社区,主要形式为线下的深度沙龙、线上的内容整理。但愿将工业界专家在各自场景下的实践经验,经过DataFun的平台传播和扩散,对即将或已经开始相关尝试的同窗有启发和借鉴。DataFun的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun社区成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过一百位的业内专家参与分享,汇集了万余大数据、算法相关领域从业者。