干货 | 携程度假智能客服机器人背后是这么玩的

做者简介前端

雷蕾,携程度假研发部资深算法工程师,负责智能客服算法工做。算法

鞠剑勋,携程度假研发部算法经理,负责智能客服、知识图谱、NLP算法等工做。小程序

随着人工智能的发展,人机交互技术愈发成熟,应用场景也愈来愈多。智能客服是人机交互在客服领域的一个应用,服务于客人以及相关的客服人员。本文将介绍智能客服在旅游场景下的主要技术和应用。微信小程序

当前度假的智能客服主要用于C端(客户端)面向客人,以及客服端辅助客服的两个角色。微信

面向客服端的是智能客服助手,用于对话窗口的侧边栏,提示客服人员当前客人问题的答案,客服人员可视状况来采纳;而面向C端的智能客服则是直接服务于客人,回答客人问题。网络

智能客服又分为单轮问答的QA Bot和多轮对话的Task Bot,在携程的旅游场景下,以多轮对话的Task Bot居多。通常多轮对话的智能客服系统会切分为如下几个模块:客人的问题(Query)进来后首先通过NLU模块抽象化为客人的意图(intent)以及关键信息槽位(slot),意图及槽位传给DM模块后,通过DST、DPL、NLG模块返回答案。框架

•  NLU(Nature Language Understand 天然语言理解),经过模型或规则的方式获取客人的意图和槽位;函数

•  DST(Dialog State Tracking 对话状态追踪)存储对话状态,包括每一轮对话的意图以及已经抽取到的槽位信息、历史机器人的行为;组件化

•  DPL(Dialogue Policy Learning对话策略选取),DPL根据DST传输的内容决策机器人在该轮的行为;学习

1、NLU

NLU模块基础功能是获取客人的问题的意图及槽位信息,在业务比较复杂的场景,相对应客人可能问的问题维度也会很复杂。若是答案涉及的条件不少的状况,每每单轮的QA没法很好的解决客人问题。所以在度假业务的场景下,多轮次的Task Bot会占大多数。

1.1 错别字纠正

原始语句中不免会出现错字,错字可能会改变最终输出的答案。在识别意图以前首先经过纠错模块对错别字进行纠正。

兼容速度和准确率考虑,纠正分为规则部分和模型部分,度假业务中涉及到的地点比较多,在规则部分就可以覆盖大部分错别字的状况。模型部分首先会通过一个CRF模型输出字级别存在错误的可能性,生成候选集后,经过语言模型计算候选集句子的置信度,重排序获得最终纠正的结果。

•  检查错误模型,主要使用了五种特征向量链接后进入Bi-LSTM-ATT-CRF模型,获得对每一个字是否错误的判断。

•  语言模型计算候选集替换为该字的状况在语言模型内的得分,文本转为特征向量后经两层向前和后向前的Transformer,最后全链接计算softmax。


1.2 意图识别

意图实质上是对客人问题的抽象化,好比常见的客人问及“这个产品多少钱?”,可转换为“询问价格”意图。而在直接服务客人的C端上,对回答答案准确率有较高的要求,高质量的服务背后首先是高准确率,并且一般在设计意图前期会存在乎图训练语料不足的问题,所以一个高准确率而且弱监督的意图识别模型很是重要。

意图识别模型

意图识别模型总体采用上图的相似matching network框架,每一个意图会有一个类别表示,新的query经计算得到其句向量,经过计算和每一个类别的类似度获得该客人问题的意图。

当前的意图识别模型,相比于传统的文本分类模型,准确率更高,标注量更少,同时更方便迁移到多意图的情景。

在训练阶段,共有已知C个类别,每一个类别N个样本,语句经特征向量通过Bi-LSTM层后再经过Transformer-Attention把一句话映射为一条向量,最后经胶囊网络得到每一个类别的类别向量。每一个训练语句获得句向量后,再经过Bilinear-Function-Sigmoid计算的类似度得分,最后采用二分类的对数似然损失函数计算损失。

模糊意图的处理

咱们研究代表,客人在和机器人对话及与人对话的时候一些行为习惯是不一样的。在面对机器人的时候,客人倾向于把机器人做为一个“搜索引擎”,经常输入关键词来得到回答,但关键词的信息不完整,经过模型或模板都没法返回切合的意图。针对于此,咱们采用了“联想问”和“猜你想问”的功能来引导客人的提问方式。

•  联想问

客人在聊天输入栏输入问题的同时,显示相关的一些问题以供客人点选,因为是实时显示,对速度的要求较高,这里咱们使用的是检索算法计算文本类似度。

咱们会为每个意图人工设置一些用户常问问题,当用户输入的时候,咱们会用文本类似度的算法,算出和用户输入最接近的三个常问问题,提示给用户供其选择。

•  猜你想问  

对于“猜你想问”功能,主要是处理问句太短的语义不明的状况。举个例子,在签证领域,客人会输入“照片”,而和照片相关的意图有“是否须要照片”、“照片要求”、“照片尺寸大小”等等可以涉及到的十几个意图。在触发“猜你想问”后,会返回4个最关联的问题供客人点选。

在使用“猜你想问”和“联想问”的机制后,能够引导部分客人的用户输入习惯,提高单轮次下信息输入的完整性及纯净度。


1.3 发现新意图

一个新业务线设计意图的时候,不可能把全部会出现的意图都理清楚,而是按部就班,逐步增长。业务人员自己对业务的熟悉程度可提供新业务线的意图大框架,在小细节上不免存在漏缺,或是由于实时政策的变化产生的新问题。

好比说,在今年六月份大陆禁止发放台湾自由行签证,这段时间就新产生了不少相似于“已办的台湾签证是否还可以使用”、“是否还能办台湾G签证”等这些新的客户问题。

层次聚类  

咱们采用的是对原始问题聚类的方法,把类似句汇集在一块儿。通过数据预处理后,生成句向量,第一层使用高斯混合获得一个初步的聚类结果,再经过规则判断是否须要再进行一次聚类,随后在第二层使用OPTICS聚类。

在用算法发现意图后,并不会即刻投入使用,而是业务作重审肯定,总体上新意图的定位在于辅助业务对意图体系的完善。

1.4 槽位抽取

在Task Bot中,槽位信息抽取主要是服务于检索答案。好比签证一个常见问题“办签条件”,须要肯定客人的办签国家、户口所在地、居住地等信息后才能给出最终回答。

有时客人的问题中直接会涉及相关槽位,目前槽位抽取采用的是规则+模型的方式。在实际应用中,规则可以覆盖70%的状况,剩下的则由模型来负责。

在度假业务里需抽取的槽位词有一个明显的层次关系,好比地点-送签地、地点-办签国家、职业-在职、职业-自由职业等,在模型的设计上会先抽第一层,第二层才是对最终结果的二级识别,经过多任务的学习,实际上每一层的任务是在对特征进行自动抽取。

 

大型的语言模型,好比说今年大热的BERT,在不少NLP任务中大放光彩。在这个词槽抽取任务中,语句中会先通过BERT获得字向量后,第一层经Bi-LSTM-CRF模型获得第一类的结果以及Bi-LSTM的编码结果会映射为对应的类向量,经链接后进入第二层Bi-LSTM-CRF后获得最终的词槽。在加入语言模型后,对于语料比较少以及地点比较多的状况提高会比较大,尤为是一些语料中没出现过的地点,加入语言模型后也能识别出来。

2、对话管理系统

对话管理系统模块主要负责对话状态追踪DST(每轮意图、槽位的存储)、对话策略选取DPL(反问或给出答案)、答案生成NLG。在这部分接收NLU识别的意图和槽位结果,DST把对话状态信息发送给DPL,DPL根据知识库中的规则返回机器人在下一轮的决策(回答问题、反问或其它操做)。


3、智能客服平台

在总体上,智能客服业务和技术的部分是解耦的。业务相关信息的设定和操做都是经过智能客服平台,包括不一样业务线的意图和词槽的设定、答案配置、数据审核、测试、标注等。新建一条业务线的智能客服应用,只须要在平台上新建项目,输入设定的意图、对应的语料、必要的槽位和对应的答案。

此外,平台上的答案配置也很灵活,能够是固定回答,能够是知识图谱的schema,能够是外部的接口,或是随不一样词槽设定的回复等等。


4、结语

以上是度假人机交互的主要技术和成果,目前咱们已经完成了一个智能客服项目落地的闭环,其中还有不少内容能够持续完善,好比多轮的意图识别、更多主动对话的探索等等。

将来的智能客服机器人将往多模态和多语言方向发展,支持语音和图像等模态的解析,支持英法日韩等多国的语言。智能客服还将提供主动服务模式、人机协同模式、群聊功能等多种模式。此外,采用大规模挖掘和生产的方式下降人工标注成本也是将来的主要方向之一。

【推荐阅读】



2019携程技术峰会

11月9日上海

公号专属优惠码“ctriptech”,享8折购票

戳下方图片直达

↓↓↓