智能客服(IntelligentCustomerService)
1. 智能客服系统
智能客服产⽣的背景:为什么要有智能客服这样的⼀个产品,或者说研究⽅向呢?主要有以下这⼏个原因:
我们⽇常⽣活中会遇到⼤量的客服问题,⽐如说你打电话给联通、移动等,或者说在淘宝上买东西,这些问题⼤部分都是⼀些重复的问题,⽽且频率也特别⾼,⾮常的耗⼈⼯;
对于⼀个客服密集型的企业来说,⼤量的⼈⼯客服,造成了企业的客服成本⾮常的⾼;
⼈⼯客服是没有办法做到 24 ⼩时全天候的服务;
在客户和客服的对话的过程中产⽣了⼤量的有价值的数据,这些数据也没有被很好的利⽤起来。
基于以上的这些原因,我们就会产⽣⼀个想法:能不能有⼀个机器⼈来回答这些重复的问题,它能 24 ⼩时的⼯作不⽤休息,降低客户成本,还能挖掘聊天记录⾥⾯的⼀些有价值的知识点。这就是智能客服产⽣的背景。
1.1 智能客服的⽬标
如果说要做⼀个智能客服,那做智能客服的⼀个基本的⽬标,或者说它的技术⽬标是要做到什么样的程度呢?它是要完全的替代⼈⼯,还是要部分的替代⼈⼯呢?
⼀般情况下,⼀个智能客服的⽬标就是下⾯这张图⾥描述的这些:⼀个客服的机器⼈负责回答客户的⼀些⾼频简单问题,将疑难问题交给⼈⼯客服团队来回答。那这个⼀定⽐例是多⼤⽐例呢?我这边写了⼀个百分之 X,也就是说这个⽐例不太确定,它是根据不同的场景以及不同的技术条件,不同⼚商的技术能⼒⽽不同的,有的⼚商是 80%,有的是 90%,有的甚⾄ 95%,这都是不确定的。
总之智能客服做的⼀个技术⽬标就是:**⼀定⽐例的解决客服的简单的⾼频问题,将疑难问题仍然交给⼈⼯客服团队。**这是⽬前智能客服⼀个基本的技术⽬标,是⼀个⽐较现实的⽬标。那么想让客服的机器⼈来完全取代⼈⼯客服,这个⽬标到⽬前为⽌,在绝⼤部分场景下还是没有办法实现的。
1.2 细分领域
整个智能客服系统的发展⾮常快,应⽤也划分了很多的细分领域。
1. 第⼀⼤类是对话操作系统级别的系统。那么这⼀类系统⽐较有代表性的有亚马逊的 Alexa,这些系统都希望做操作系统级别的⼈机对
话,就是把⼈机对话直接做成⼀个操作系统,那在这个系统上开发各种各样不同的智能硬件、软件等
等这些应⽤。
2. 第⼆⼤类,就是智能客服,智能客服⾥⾯⼜细分成两类:⼀类是企业内部的智能客服,为了企业⾃⾝的业务发展需要研发的智能客户
系统;还有⼀类是对外服务的智能客服,并且以 SaaS 的⽅式对外服务。
3. 第三⼤类就是个⼈助理类,最有名的就是苹果的 Siri,还有微软的 Cortana 等。智能家居现在做得⽐较⽕热的就是⼀些智能⾳箱,⽐
如说亚马逊 Echo 等。还有些公司是做⼀些智能交互的服务,这些智能交互服务主要是⾃然语⾔处理和意图识别⽅⾯的服务,其他的⼚商可以基于这些智能交互服务做⼀些⾃⼰的应⽤。
4. 第四类是开放平台,这个开放平台也可以叫 Bot Factory,⽐较有代表性的,有 Google 的 API.AI、Facebook 的 Wit.AI、还有微软的
Luis.AI 等等。这些开放平台主要是做任务对话⽅⾯的⼀些定制。
1.3 智能客服常见功能
智能客服系统最常见的功能有哪些?⽬前最常见的形式是在⼈⼯客服系统基础上,扩展出智能客服的功能,最常见的功能有单轮问答、多轮对话和⼈机协作。
单轮问答:⼀问⼀答,但是没有记录上下⽂,每⼀次问答和下⼀次问答都没有任何的关系;
多轮对话:是带着上下⽂来问答,每个问答可能跟它的上⽂是有⼀定关系,或者是它记录了上⽂的⼀些信息;
⼈机协作:⼈机协作是⼀种⽐较有效的⼀种智能客服功能,现有的⽅式主要有两⼤类:⼀类是机器⼈加⼈⼯进⾏问答,另外⼀⼤类是机器⼈推荐答案,⼈⼯选择回答。我们这⾥举⼏个例⼦:⽐如说上班的时候⼈⼯来回答,下班的时候机器⼈来回答;普通的客户机器⼈来回答,VIP 客户⼈⼯来回答;或者是说分渠道来选择,⽐如说渠道来的机器⼈回答,⼿机渠道来的⼈⼯回答;还有就是机器⼈优先,机器⼈答不出来,转给⼈⼯回答。
2. 智能客服的⼯作原理
刚才我们是给智能客服做了⼀个概述。接下来,我们介绍⼀下智能客服的⼯作原理。⼀个常见的智能客服,就包括以下这些模块并且按照⼀个类似的流程进⾏⼯作。
1. 识别模块:⾸先可能会有⼀个 ASR(语⾳识别)模块,也可能没有,这取决于具体⼚商的⼀个选择,
这个语⾳识别模块会把语⾳转换
成⽂字。如果没有语⾳识别模块,直接就是⽂字。
2. 意图识别:对这个⽂字做⼀个问句的理解,或者说做⼀个查询的理解,理解完以后,再对意图做⼀个识别;
3. 机器回答:最后,我们把这个问句的理解和意图识别的结果带到对话管理系统⾥边,对话管理系统会决定到底是给哪⼀种机器⼈发过
去,这些机器⼈最后给出答案,将答案返回。
对话管理系统可以选择⼀个机器⼈将问题发过去,也可以同时将问题发给所有的机器⼈,当它们都回复答案时,进⾏答案选择再返回,使⽤哪种⽅式取决于⼚商⾃⼰的⼀个选择。上图中这四种机器⼈分别对应了四种不同的模块:
第⼀种是任务管理类的模块,⽐如说订机票,它属于⼀个特定的任务,这种机器⼈就类似苹果的 Siri,是任务处理类;
第⼆种是知识库问答,也就是咨询问答类的,只是做⼀些咨询类的⼯作,⼀般情况下,它并不处理实际的⼀些任务;
第三类是知识图谱问答,知识图谱是知识库常见的是提供⼀个问答对结构和⼀个树型结构,知识图谱提供⼀个图结构,可以认为是⼀个⼴义上的知识库问答。
第四类是聊天机器⼈的技术,聊天并不是客服的⾸要功能,客服主要是解决问题的,不是来聊天的,为什么在⼀个智能客服系统⾥⾯会有聊天这么⼀个功能呢?原因在于,⼀是在⽤户没有输⼊知识库内容的时候,这个聊天机器⼈会被客户当成是测试⼚商机器⼈技术能⼒的评测对象;⼆是在某些场景下,会让整个客服对话没那么单调。
2.1 ⾃然语⾔理解
⾃然语⾔理解主要做⼀些什么事情呢?⽐如说⽤户的问题如果是多句话,那么我们做⼀个**“分句”**,对每⼀句话来寻答案,最后呢,将答案组合起来,发给⽤户;“分词”很常见,分词后才能理解,才能进⾏标注,进⾏实体识别,这是常规的⼀些处理,然后就是句法分析、指代消解,再有就是词权重、语义相似度等等,做这些分析都是为后⾯的算法做准备,这是第⼀部分的预处理⼯作,就是⾃然语⾔理解或者⾃然语⾔处理的内容。
2.2 意图识别
第⼆部分的预处理⼯作就是意图识别。意图识别主要是⽤户的这句话暴露了⽤户什么样的意图,⽐如
说我们这个例⼦⾥:“今天天⽓怎么样”,这个意图实际上就是⽤户要问天⽓。那么如果⽤户说“帮我定⼀张去上海的机票”,这个意思就是⽤户要订机票。
那么意图识别⼀般是怎么实现的?就是有模板和分类器两种⽅式。
模板的⽅式,⽐如说:“北京今天天⽓怎么样?”我们会建⼀个叫“city”的词典,这⾥⾯会有北京、上海、天津等城市;我们会把今天、明天、后天等等也做⼀个词典,词典名字叫做“date”。这样如果满⾜刚开始有⼀个“city”,中间有任意字符串,然后再有⼀个“date”,然后再有“天⽓”这个词,就满⾜了⼀个模板,那么我们基本上可以认为它是⼀个询问天⽓怎么样的意图,这是模板的⽅法。
分类器的⽅法很容易理解,我们在某⼀个特定领域⾥⾯收集⼤量语料,⼈⼯去标注这些语料是属于哪种意图的,⽤分类器模型来做⼀些⼆分类或者多分类的分类器,⽤来判断意图。但是分类器⽅法需要⼤量⼈⼯标注的数据,以及如何去收集多个领域⾥⾯的语料的问题。
基于知识库的问答可以使⽤检索或者分类模型来实现。检索式回答的流程是:⾸先对⽤户的输⼊问题做处理,如分词、抽取关键词、同义词扩展、计算句⼦向量等;然后基于处理结果在知识库中做检索匹配,例如利⽤BM25、TF-IDF或者向量相似度等匹配出⼀个问题集合,这类似推荐系统中的召回过程;
由于我们是⼀个问答系统,最终是直接返回给⽤户⼀个答案,因此需要从问题集合中挑出最相似的那个问题,这⾥会对问题集合做重排序,例如利⽤规则、机器学习或者深度学习模型做排序,每个问题会被打上⼀个分值,最终挑选出top1,将这个问题对应的答案返回给⽤户,这就完成了⼀次对话流程。在实际应⽤中,我们还会设置阈值来保证回答的准确性,若最终每个问题的得分低于阈值,会将头部的⼏个问题以列表的形式返回给⽤户,最终⽤户可以选择他想问的问题,进⽽得到具体的答案。
人工客服2.3 知识库
知识库问答的技术本质也是⽤⼀些跟搜索引擎相似的技术,分为两个阶段:第⼀个阶段是侯选集召回,第⼆个阶段是重排序。
⾸先是侯选集,侯选集召回有很多种⽅式,和搜索引擎相⽐,相对简单,原因是搜索引擎要召回的量特别的⼤,但是知识库,因为是⼈⼯导⼊的,它的召回的就没有那么复杂。
第⼆是重排序,其实我们可以⽤⽂本相似度、检索相关度,如果有⾜够数据的话,还可以⽤神经⽹络的语义相似度等,来做重排序⼯作。这些⼯作也可以⽤多模型融合的⽅式来做,将多个模型的结果综合考虑得到最终结果。这些都跟搜索引擎的技术没有特别本质的区别,也会有些微⼩的差别,这是知识库这块的⼯作。
2.4 知识图谱
知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显⽰知识发展进程与结构关系的⼀系列各种不同的图形,⽤描述及其载体,挖掘、分析、、绘制和显⽰知识及它们之间的相互联系。
知识图谱问答最难的⼀点在于数据的整理,其次是⼯具⽅⾯。有很多开源的⼯具,例如:Neo4j、OrientDB、Titan。
假设我们解决了数据来源和更新的问题,同时也有了⼯具,接下来要做的事情就是查询转换的⼯作。因为⼀般的知识图谱⼯具都会有⼀些⾃⼰的查询语⾔,那么我们所要做的⼯作实际上就是把⾃然语⾔通过某种⽅式转换成知识图谱的⼯具所⽀持的查询语⾔。
查询转换也有常见的两种⽅式,⼀种是可以⽤模板,做⼀些查询转换的⼯作。
2.5 对话技术
对话技术就是我们前⾯所说的任务对话等等,⽐较典型的有三⼤类:
1. 第⼀⼤类是⼀种⽤状态机,或者和状态机类似的填槽⽅式。这种⽅式的主要特点是将整个的对话过程抽象成⼀个有限状态机,每⼀轮
对话,或者每⼏轮作为⼀种状态,随着对话状态的进⾏,这个状态机在不断的迁移,最终对话结束,状态机也结束。这⾥⾯的所有状态,以及所要执⾏的动作都是事先约定好的,所以状态机它⽐较适合⼀些场景简单的对话,对于场景复杂的对话,状态机这种⽅式就已经不太适应了。
2. 第⼆⼤类就是马可夫决策过程(Markov Decision Process, MDP)的⽅式,它和状态机的区别在于它⾥⾯增加了动作,状态机⾥⾯的
动作是我们事先约定好的,是固定的动作,已经事先知道对话到了那时候,于是就固定的采取这样的动作,但是 MDP 这种⽅式,状态
不确定,动作也不确定,所以说我的状态和动作是需要根据我的上⼀个状态和将要采⽤的动作做了以后的回馈(Reward)来进⾏决策的,所以说这个决策过程在特定领域⾥有⾜够的语料的时候可以做出很好的效果,但是我们得想办法去到合适的领域,以及到⾜够的语料才能做这样的事情。
3. 最后⼀类是端到端的模型。端到端的模型主要出发点是:我有⼀个问题,把问题输⼊到⼀个模型⾥⾯之后,这个模型是帮我解决了我
们之前整个对话过程所有流程的所有问题,⽽这个模型是需要从数据⾥⾯去学习,包括⾃然语⾔处理、意图识别,包括整个系统⾥⾯⽅⽅⾯⾯的各种东西都要学习到。这个模型对于我们来说它是个⿊
盒,我给它⼀个问题,它也能给我答案,我并不需要仔细的去研究⾥⾯是怎么做得,我只需要设计训练这么⼀个模型就⾏了。
那么这三种⽅式是现在的⽐较常见的三类对话技术,第⼀⼤类,像状态机和填槽这⼀类是商⽤系统的主流;第⼆⼤类是学术界的主流,但是⼯业界也在积极的尝试,有的也已经落地,或者接近落地;端到端这种模型,主要还是停留在学术界的研究阶段,我并没有看到哪⼀个商业系统已经做到了端到端的模型的产品化,还没有成为商⽤主流的技术。
2.6 聊天机器⼈
在智能客服系统⾥⾯通常都会有聊天机器⼈的模块。这个模块主要有三种做法:
1. 第⼀种就是检索式,⽐如答案是事先编辑好的,并不会随便⽣成,在检索式⾥⾯⼜会分为两⼤类:第⼀类是⽤⼤量的语料和模型来训
练,收集⼤量的语料,把问题和答案给⼀个神经⽹络的模型,⽤这个模型帮我去到问题和答案之间的相关度,这样的话,就能够⽤⼤量的语料训练出聊天机器⼈模型,这是最常见的⼀种⽅式;
2. 第⼆种⽅式是基于规则来做,使⽤类似于之前介绍过的 Alice 机器⼈所⽤到的 AIML 标记语⾔,写⼤量的 pattern,以及在这个 pattern
下所需要的答案,写⼤量这样的⼈⼯规则就可以做⼀个检索式的机器⼈,但是这仅限于少量的⼩规模应⽤,如果需要编辑⼤量的规则,规则之间可能会有冲突等问题,所以主流的这种聊天机器⼈的⽅式是我们说到的第⼀种,⽤统计模型和⼤量的语料来训练聊天机器⼈。
3. 第三种是⽣成式的聊天机器⼈,我需要把我的答案直接⽣成出来,这种⽅式是需要限定在⼀定的领域⾥⾯。开放领域⾥直接⽣成式的
聊天机器⼈会有⼀些敏感词的问题,因为语料⼀般是⽹上收集的,想做到所有语料都⼈⼯审核成本是巨⼤的。所以说⽣成式需要把它限定在⼀个特定的领域⾥⾯,⽣成式分为两种:⼀种是纯粹的⽣成,⼀种是基于⼀些模板来⽣成。
3. 整体架构
整体技术架构如下图所⽰,包括**基础服务层、应⽤服务层、编辑运营层、接⼊层以及系统。**基础服务层提供对话系统的基础技术能⼒,系统需要对⽤户输⼊的⼀段语句进⾏理解,这⾥需要⾃然语⾔理解模块,对语句进⾏分词、词性标注、实体识别、关键词抽取和句法分析等;同时需要识别⽤户的意图,包括通⽤意图和业务意图,通⽤意图是指⽤户是来做业务咨询还是闲聊,业务意图是指若⽤户是做业务咨询,具体咨询什么业务,这⾥会使⽤⽂本分类的技术去识别⽤户意图。
基础服务之上是应⽤服务层,这⼀层具体实现了KB-Bot基于问答知识库的机器⼈、Task-Bot任务对话型机器和Chat-Bot闲聊类型机器⼈,这是智能客服系统的三种核⼼能⼒。编辑运营层是指有⼀个编辑团队⽀撑算法策略迭代,主要完成数据标注、问答运营、数据分析和效果评估的⼯作,这些⼯作输出会作⽤到基础服务层和应⽤服务层。基于应⽤服务层,对外提供通⽤的接⼝服务以便于业务⽅接⼊。此外,机器不是万能的,⽤户有很多复杂的问题仍需要⼈⼯解决,这⾥有⼀套系统提供了⼈⼯的能⼒,应⽤服务层会和这套系统做⽆缝对接。
4. 评价体系
智能客服系统需要有⼀个完备的评价体系去评价它的好坏,在我们的评价体系中有基于⼈⼯标注的评价和基于⽤户反馈的评价两种⽅式:
1. 基于⼈⼯标注的评价
系统的回答能⼒受限于知识库的丰富程度,因此并⾮能回答⽤户的所有问题,系统最佳的状态是将能回答的全部回答准确,不能回答的全部拒识,即拒绝回答。因此这⾥的评价指标包括有结果率、拒识率、召回率和准确率等,我们的⽬标是让系统的有结果率⽆限接近数据的真实有结果率,召回率和准确率尽量⾼。这⾥我们是通过标注标准评测集来计算系统的各项指标,我们会从每⽇的全量数据集中抽样出⼀个⼩数据集,保证⼩数据集的数据分布尽量符合全量数据集,然后由标注团队对数据集做标
注,标注出每个问题的实际答案,⼀般标注完成后还有质检的环节,以保证标注结果尽量准确,这样便⽣成了每⽇数据的标准评测集。基于该标准评测集我们会去评价系统的好坏,并且每次做新模型迭代时都会使⽤标准评测集去评价新模型,只有新模型的效果好了才允许上线。
2. 基于⽤户反馈的评价
⼈⼯评价能够评价智能客服系统的准确率,但是答案是否合理,能否为⽤户解决问题,需要⽤户去反馈评价,整个智能客服系统的最终⽬标是帮助⽤户解决问题。我们会在产品上设计智能客服和的评价功能,例如会让⽤户评价智能客服的每个答案或者某次会话,在和⼈⼯客服聊天完毕会发送评价卡⽚给⽤户去评价满意度。最终我们会统计参评⽐例、满意度等指标,这些指标能够真正反应智能客服系统的好坏。实际中往往⽤户参评⽐例低,我们会使⽤各种⽅法去刺激⽤户评价。
5. 参考⽂献

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。