前端开发者如何借助云端一体方案拓展自己的能力及职业边界,戳此了解 了解详情
写点什么

智能客服系统在机票售后的应用实践

  • 2019 年 11 月 18 日
  • 本文字数:3931 字

    阅读完需:约 13 分钟

智能客服系统在机票售后的应用实践

引言

客户(用户)的需求不能得到切实有效的满足往往是导致企业客户(用户)流失的最关键因素,所以很多企业都会成立客服团队来解答客户(用户)的各类问题以提升满意度。传统的客服服务无论是对用户、客服还是企业来说都有很多弊端(见图 1 )。因此智能客服系统也就应运而生,它成为人工智能(AI)重要落地应用之一。



(图 1.客服行业面临的痛点)


智能客服系统是建立在大规模知识处理、自然语言理解、知识管理、自动问答、推理等技术之上,通过大幅度降低人力成本以及提供人性化服务来优化用户体验。智能客服不仅为企业提供了细粒度知识管理技术,还为企业与海量用户之间的沟通建立了一种基于自然语言的快捷有效的技术手段,同时还能够为企业提供精细化管理所需的统计分析信息。


去哪儿机票事业部有一个庞大且专业的客服团队,业务涉及售前、售后。服务形式有文字客服(Chat)和电话客服。因为机票的业务场景非常复杂,虽然我们的客服工作已经很高效,但也存在着一些问题,例如:航变时业务量暴增导致用户等待时间过长等问题。


我们本着“提升服务质量,节约服务成本”的目的,推进“智能客服”这一项目,使用 AI 赋能客服在机票售后业务中做了一些创新和尝试。



(图 2.智能客服的关键点是成本和质量)


机票客服需要“智能”

日志中问题分布分析

我们通过一组数据说话,根据机票积累下来的客服聊天日志,我们发现用户的基本问题和业务问题的占比大约为 3:7,工单的平均对话轮数约为 13 轮,不同业务长短分布有所不同,简单咨询类业务较短,类似行程单等复杂业务会超过 20 轮,在极端情况下部分业务处理比较棘手,长度甚至超过 100 轮。


那么客服在解决业务问题的对话中都在做什么呢:20% 是业务相关的核心问题,剩余 80% 都是闲聊,此“闲聊”不是彼“闲聊”,除了日常寒暄之外还包含对业务涉及信息的问询以及对用户情绪的安抚与调整。可以说客服都是熟读各类百科全书的聊天超人,见图 3。



(图 3.日志中问题分布情况)


客服日常工作模式

人工智能最主要的是让“人工”变得“智能”,所以了解业务人员平时的工作模式是很关键的。根据调研,客服平时的工作模式是根据问题类型的不同而采取不同的解决方案,见图 4。



(图 4.客服平时针对不同问题类型使用不同的解决方案)


机票业务极其复杂,用户需求涉及出、退、改等十余个业务场景,每个场景下又能衍生出几十甚至上百个业务意图。以出票场景(见图 5)为例,用户诉求既会涉及到购票类型、支付手段、出票进度等咨询类问题,也会有诸如修改信息、申请购票等操作类型问题。得到这些诉求的解决方案需要根据订单状态、航司政策、用户主观原因等多种因素做出判断,这要求客服有极强的业务素养与信息获取能力。



(图 5.出票场景下的业务意图举例)


业务问题之外,客服同样会面对一些琐碎的日常问题。例如托运规则、天气咨询、乘机注意事项等。对于高频的日常问题,每个客服都会手动积累和维护一个文档,日积月累再加上互相交流,渐渐的就成了一个小型文本知识库,这在一定程度上提升了客服的工作效率。


“智能客服”的应用场景

我们在人工客服场景与机器自助场景都进行了智能化的尝试。在人工客服中通过“客服助手”辅助客服与用户沟通。客服助手中的推荐可以分为两类,一类是业务问题,遇到退票、出票、改签等的业务问题,比如图 6 中的申请退票。我们会通过意图识别确认用户诉求,然后基于业务知识库梳理业务逻辑,根据用户当时的订单状态生成相对应的退票规则,生成合理的业务答案,推送给客服。另一类是非业务问题,我们会通过搜索匹配的方式在基本问答知识库中进行检索,搜寻合适的答案反馈给客服。如果客服觉得可以采纳,轻轻一点,话术就推送给用户了。项目推进到现在我们的客服助手在每天发生的会话中有 90% 以上的会话会出现答案推送,消息维度的推荐覆盖率为 60% 以上。意图识别准确率 90% 以上,答案准确率也达到了 70%。



(图 6.客服助手的产品形式举例)


在线客服小驼机器人中,我们也做了很多交互体验上的优化。原始的小驼机器人解决用户问题的流程是用户描述自己的问题后,小驼会给用户推荐相关的业务标签,用户通过点选的形式来进行确认,进入相应的业务流程。现在通过意图识别接口和点击反馈模型优化现有的标签推荐功能后,线上标签推荐指标绝对提高了 28%。同时我们提供“精准答案”的产品方式,不需要用户点选操作,提升用户使用体验。


除此之外我们也在协助客服分单,电话客服等多个场景进行了其他尝试,在此不再逐一介绍。


“智能客服”的技术实现

智能客服中包含一套完整的对话逻辑控制系统。图 7 中是智能客服控制逻辑的核心结构,首先通过 query 理解模块对用户输入进行预处理和意图识别,预处理包含 query 清洗、命名实体识别、query 改写、向量化等操作。当确定用户 query 为闲聊(基本问答)时,通过 QA 知识库检索的形式搜索合适的答案。当确定用户 query 包含业务意图时,则进入对话管理模块。模块中通过对话上文信息与当前槽位填充情况确定新的对话状态,最后通过业务知识库生成合适的备选答案。



(图 7.智能客服控制逻辑流程)


下面分别介绍解决基本问答与业务问答的思路与方案。


基本问答

智能客服能够回答用户基本问题的前提是它具备相关的知识,这些知识是客服在经验和交流中积累起来的,我们就通过历史日志来挖掘这些知识。知识挖掘涉及的技术较多,我们通过训练语言模型进行问题质量判别、使用 textRank 提取语料中的领域词,通过句向量相似性,答案相似性以及检索策略扩大有效问答对的召回。考虑到篇幅长度,具体细节考虑在之后的挖掘专题文章中再详谈。使用挖掘得到的基本问答 QA 对进行检索推荐服务,见图 8。



(图 8.问答检索框架)


为了提升推荐服务效果,我们在 Query 理解模块做了很多前期工作,通过收集与挖掘我们积累了多个基础词库,同义词库协助 query 改写,领域词与英文专属词词库能够提升切词的准确率,通过海量日志数据学习词权重,引入了正排索引的同时,使用 word2vec 的向量相似度进一步修正计算结果。现在我们尝试新的预训练模型计算 query 相似度,通过 ES+bert 的形式升级现有的问答检索框架。


意图识别

在项目初期,考虑到模型迭代效率与样本规模,智能客服一直采用 fasttext 作为主要的意图识别模型。但随着项目进展,类别种类膨胀,样本语料数量低且质量差的问题逐渐凸显出来。Google 推出的 bert 预训练模型很好的帮忙解决了我们的痛点。它支持在少样本情况下微调模型,使模型能够支持识别 200+ 的意图,在语料质量有保证的情况下,准确率会非常理想。


Bert 也有一些明显的缺点,模型庞大,微调需要设备资源,我们通过一些简单的策略在一定程度上降低了模型迭代的成本。在 Bert 模型输出预测结果的同时我们使用模型的副产物(词向量)作为 SVM 模型的输入,来给当前输出意图做进一步细分。这样就可以在仅调整 SVM 的情况下根据实际 badcase 快速的迭代模型。



(图 9. 意图识别模型框架)


模型迭代至今,线上推荐服务在支持近 200 个意图的情况下的准确率稳定在 91%。



(图 10. 意图识别评测结果)


技术实现方案

在技术实现上智能客服问答推荐系统划分成 4 个模块:


  • 基础服务模块

  • 负责 query 分析、实体识别、意图识别以及 NLP 相关基础服务的实现。

  • 对话控制模块

  • 主要负责对话状态管理以及槽位填充,对其他模块的服务进行封装,对接业务线不同的服务和需求。

  • 对话生成模块

  • 基于现有的业务知识库,通过现有的订单状态与用户意图生成合理的业务答案。

  • 数据管理模块

  • 由于客服助手需要根据用户诉求与客服的输入同时更新对话状态,所以实时更新答案推荐的采纳情况,辅助更新对话策略。



(图 11. 智能客服系统架构)


未来规划

现在智能客服在多个业务场景得到应用,从人人对话到人机对话,从售前到售后。接下来我们会对系统做进一步的完善:


  • 继续优化现有的意图识别体系,打造机票业务知识图谱。同时继续尝试新的深度学习技术,进一步提高现有意图的准召。

  • 提升实体识别、时间提取等技术的准确率,完善多轮对话中的槽位填充逻辑。

  • 不仅在 NLU 方向提供支持,尝试使用历史日志语料结合场景下订单状态,使用模型在 NLG 方面提供支持。

  • 进一步与相关业务解藕,模块化各个功能,提升整个体系的独立性,形成一个专注于 NLP 的技术服务平台。


参考文献

  • Devlin, J., Chang, M., Lee, K., Toutanova, K.: BERT: pre-training of deep bidirectional transformers for language understanding. CoRR abs/1810.04805 (2018). http://arxiv.org/abs/1810.04805

  • McCandless M, Hatcher E, Gospodnetić O. , Lucene in Action , 2010 USA Manning Publications

  • Tomas Mikolov, Kai Chen, Greg Corrado, and Jef-frey Dean. 2013a. Efficient Estimation of WordRepresentations in Vector Space. InICLR Work-shop Papers.

  • Jay Alammar. , 2018 blog, The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning). https://jalammar.github.io/illustrated-bert/

  • Armand Joulin, Edouard Grave, Piotr Bojanowski, andTomas Mikolov. 2016. Bag of tricks for efficient text classification. arXiv preprint arXiv:1607.01759.


作者介绍


贾自艳,2018 年加入去哪儿网机票大数据团队,主要负责价格预测、搜索优化、智能营销、智能客服、风控等方向。2004 年中科院计算所博士毕业后先后任职于微软亚洲研究院、腾讯等互联网公司,一直从事搜索排序、数据挖掘、智能对话和自然语言处理等相关领域研究工作。


本文转载自公众号 Qunar 技术沙龙(ID:QunarTL)。


原文链接


https://mp.weixin.qq.com/s?__biz=MzA3NDcyMTQyNQ==&mid=2649263110&idx=1&sn=7d0760ad3fa860b89f55ba38adb260d1&chksm=87675df8b010d4eecfdada7bf0bda531000a7429e48078f51ead86b6834cbdabec0b4b42e567&token=2032634643&lang=zh_CN#rd


2019 年 11 月 18 日 08:001844

评论

发布
暂无评论
发现更多内容

Linux之netstat命令

入门小站

Linux

JavaScript Array 方法详解

程序员海军

JavaScript 方法 大前端 array 引航计划

small-spring 代码贡献者3个月,敢说精通Spring了,分享我的总结!

小傅哥

spring 小傅哥 cglib aware BeanPost

命令行操作Java程序的那些事~

Bob

Java 命令行 8月日更

【Flutter 专题】70 图解自定义 ACEStepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Mybatis自定义拦截器与插件开发

码农参上

8月日更

Web 框架 Gin | Gin 介绍

xcbeyond

Go 语言 gin 8月日更

oeasy教您玩转vim - 14 - # 行头行尾

o

Rust从0到1-模式-相关语法

rust 语法 模式 Patterns Syntax

【LeetCode】从上到下打印二叉树Java题解

HQ数字卡

算法 LeetCode 8月日更

在openEuler上做开发?这个大赛拿出30万寻找开源的yyds

华为云开发者社区

开源 操作系统 服务器 openEuler 鲲鹏

Hive企业级性能优化

五分钟学大数据

hive hive性能优化

Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段

梦想橡皮擦

8月日更

Go语言那些事儿之管道的关闭

Regan Yue

Go 语言 8月日更 管道

手撸二叉树之将有序数组转换为二叉搜索树

HelloWorld杰少

数据结构与算法 8月日更

七夕赶上服务器架构升级,女朋友的约会怎么办

华为云开发者社区

华为云 FunctionGraph DevStar Serverless架构 服务器架构

送你两个神器,关系数据库数据入湖轻松应对

华为云开发者社区

数据库 数据湖 数据迁移 关系数据库 实时数据

Android开发:引入重复包报错Error:Execution failed for task ‘:app:transform...’解决方法

三掌柜

8月日更 8月

失败的小项目-外卖cps

箭上有毒

8月日更

Android开发:获取安卓App版本号的方法步骤

三掌柜

8月日更

netty系列之:自动重连

程序那些事

Java Netty 程序那些事 响应式系统

Prometheus监控的4个黄金指标

Rubble

Prometheus 8月日更

在线年龄计算器

入门小站

工具

金融级IT架构:网商银行是如何进行数字化落地的

博文视点Broadview

Vue进阶(二十七):Vuex 之 getters, mapGetters, ...mapGetters详解

No Silver Bullet

Vue vuex 8月日更

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

情商 8月日更

如果面试官问你 JVM,额外回答逃逸分析技术会让你加分!

陈皮的JavaLib

Java 面试 JVM 逃逸分析 8月日更

从0开始的TypeScriptの五:webpack打包typescript

空城机

JavaScript typescript 大前端 8月日更

全球增长最快的对象存储开源系统MinIO

liuzhen007

8月日更

一文带你了解 TreeMap ,LinkedHashMap 的主要特点

4ye

Java 后端 hashmap LinkedHashMap 8月日更

LeetCode题解:781. 森林中的兔子,贪心,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

对象存储 S3 在分布式文件系统中的应用

对象存储 S3 在分布式文件系统中的应用

智能客服系统在机票售后的应用实践_AI_贾自艳_InfoQ精选文章