内容简介:一个优秀的智能客服系统,既要有准确够理解用户问题的能力,同时又要有良好的知识储备,即完整的知识库系统。知识库系统的构建,借助算法的能力,能够及时发现未解答的用户高频问题,辅助客服进行配置,将有效的提升智能客服的解决率,减少人工客服的工作量。在大促或最近疫情这类突然事件期间尤为明显。本文将主要介绍严选智能客服业务知识库构建时的算法辅助方案。知识库包含两个部分:结构化的商品知识、非结构化的业务知识库。本文主要关注的是业务知识库的构建。严选智能客服在解答业务类问题时,主要采用的是QQ匹配的技术方案。那么用户问题未
一个优秀的智能客服系统,既要有准确够理解用户问题的能力,同时又要有良好的知识储备,即完整的知识库系统。知识库系统的构建,借助算法的能力,能够及时发现未解答的用户高频问题,辅助客服进行配置,将有效的提升智能客服的解决率,减少人工客服的工作量。在大促或最近疫情这类突然事件期间尤为明显。本文将主要介绍严选智能客服业务知识库构建时的算法辅助方案。
1. 综述
知识库包含两个部分:结构化的商品知识、非结构化的业务知识库。本文主要关注的是业务知识库的构建。
严选智能客服在解答业务类问题时,主要采用的是QQ匹配的技术方案。那么用户问题未被解决可能有两个方面的原因:
(1)业务知识库中未包含对应的知识
(2)业务知识库已有对应的知识,但未包含该用户的问法
对应的,知识库挖掘需要包含两个部分:
(1) 新增标准问题
(2) 已有的标准问题新增相似问题
严选智能客服业务问答的整体框架如上图所示,本文主要关注离线挖掘的部分。用户问题的自动挖掘本质上是一个聚类问题。文本聚类主要关注三个方面:预处理、特征构建以及聚类算法,除此之外,新增了聚类簇与已有知识库匹配的过程以及新增faq的摘要抽取过程。
2. 预处理
预处理主要包括两个步骤,一是对文本进行归一化预处理,二是进行意图识别。聚类本身是一个无监督问题,进行预处理可以减少噪声的引入,尽可能的降低不确定性,提升聚类的效果。同时,预处理可以合并部分文本,减少参与聚类的样本数量,从而降低聚类算法的耗时。
2.1 文本归一化
文本归一化是指对输入文本的降噪过程,去除一些无用信息、纠正一些错误信息。严选构建了一套通用的文本预处理的框架,在该场景下,主要进行如下的预处理操作:
(1) 基础预处理 :繁简转换 、大小写转换、全角半角转换、标点等特殊字符归一化
(2) 特殊实体识别 :电话、订单号、url、售后单号、快递号、地址等。这类实体每个用户都不同,但聚类时可以各自同等对待,识别出来之后各自归一化成一个相同的符号。
(3) 文本纠错 :对用户的输入文本,使用纠错算法对一些可能的错误进行纠正,包含字音、字形。
2.2 意图识别
文本归一化之后,对参与聚类的用户问题进行意图识别。意图识别复用的是严选智能客服线上的体系。
对未解决用户问题进行意图识别的原因主要有:
(1) 部分意图是不能通过faq的方式回答,比如 “导购”、“人工”类意图的问题。这部分问题无需参加聚类。
(2) 意图识别是有监督的模型,特定意图下的用户问题进行聚类可以减少样本的数量,发现细粒度的用户高频未解答问题,降低聚类的难度。
3. 特征构建
预处理之后,将特定意图下的用户问题进行向量化表示。采用了两个层次的特征表示方法:深层语意特征和浅层语意特征。最终拼接起来,获得用户问题的向量化表征。
3.1 深层语意特征
常见的文本向量化方式是基于一个预训练的模型获取向量表征。一类是词向量(word2vec、glove等),需要加权得到句子的向量表征。一类是预训练的语言模型(emlo 、bert等),这类模型在训练时考虑了上下文的语意,可以解决一词多义的问题。
在实际使用时,使用word2vec获得的句子表征,比直接使用bert的效果要好。原因在于,bert侧重于整体语义的捕捉,与业务无关。以下面两个用户问题为例:
q1 : 申请的退货进度怎么样了? q2 : 申请的价保进度怎么样了?
这两个问题只有两个字不同,直接使用bert获取到的句向量是十分类似的。但句中的“退货”和”价保“是核心的业务关键词,bert无法感知到。
而在使用word2vec获得词向量之后,需要加权得到句向量。加权时,对以下两类词进行提权。
(1) 业务实体词 (退货、物流等)
(2) 重点词性 (动词、名词等)
通过对上述两类词进行提权,保证获取的句子向量向核心词上进行倾斜,使句向量更合理。
3.2 浅层语意特征
为何有了深层语意特征,还需要构建浅层语意特征。以两组用户问题为例:
q1 : 如何申请退货? q2 : 如何申请换货?
这一组问题只相差一个字,字面上其实是很相似的两个问题。但在客服场景下,因为这两个问题的解决方案完全不一致,是两个完全不同的问题。
深层语意特征获取不到这种差异性,“退货”和“换货”这两个词无论是基于何种语言模型,获得的向量表征都是很相近的。因此,我们基于词粒度构建了浅层语意特征。
q3 : 能不能申请退货? q4 : 如何申请退货?
这一组问题核心的实体词上都相同,在严选的faq知识库中却是两个不同的问题。在构建深层语意特征时,向核心词上倾斜了,需要捕捉字面粒度的差异性。
构建浅层语意特征时,先对用户问题进行切词、停用词过滤。预处理之后,构建 1 ~ 4 gram的词袋模型,进行n-gram编码。将编码之后的结果利用PCA降维后作为用户问题的浅层语意特征。
4. 聚类算法
特征构建完成之后,就是选取合适的聚类算法进行聚类。在我们的业务场景下,希望不依赖任何的先验知识,仅依靠构建的文本特征之间的相似度进行聚类。k-means、DBSCAN这类聚类算法依赖于先验的知识,尝试之后效果不佳。
在词聚类时,我们采用了层次化聚类这种全局最优的聚类算法。但是时间复杂度是:
因此,对层次化聚类进行改造,采用了分桶层次化聚类的方法,将每次参加层次化聚类的样本点数量控制在可接受的范围内。分桶层次化聚类算法的示意图如下:
(1) 设定桶的数目
假设样本点数量N,每个桶中可参与层次化聚类的样本点数量为M, 那么桶的数量不少于 K = N /M 。假设有15万的数据,层次化聚类的数据不超过2w,那么桶的数量至少为 8。
(2) 样本分发入桶
最简单的方式,随机将样本分发到K个桶中去。如果希望每个桶中的数据具有一定的相关性。可采用k-means等算法预先对样本进行聚类,先验的类别数设置为桶的数目。但是聚类结果各个簇中样本数量可能失衡,导致某些簇中样本点数量过多,无法实施后续的层次化聚类。这种情况下,需要调整桶的数量。
(3) 桶内层次化聚类
对每个桶内的样本实施标准层次化聚类。为了防止聚类效果发散,每一轮层次化聚类的合并阈值会适当提高。
(4) 簇内样本合并
桶内层次化聚类之后,需要将同一簇内的样本点合并成新的样本点,合并的过程是为簇找到一个特征向量。选取同一簇内频次最高的十个样本,对其特征向量,按照样本数量进行加权平均。加权结果作为该簇的特征向量,参与下一轮的分桶层次化聚类。
(5) 判断是否满足停止条件
一轮分桶层次化聚类之后,需要判断是否满足停止条件。停止条件三种:
(a) 该轮聚类只有一个桶;
(b) 这轮聚类之后的样本点数量没有减少,无法继续合并样本;
(c) 该轮桶数量与上一轮桶数量一致,并且合并的样本点占比很小。
如果满足停止条件,则聚类停止,输出各个簇中的用户问题。如果不满足,则合并之后样本参与下一轮分桶层次化聚类,重复步骤 (1) (2) (3) (4) (5)。
改造后的分桶层次化聚类算法,能够保证聚类效果的同时,适应大规模语料,将聚类时间控制在可接受范围内。
5. 摘要抽取
聚类之后产生的聚类簇,与知识库中的已有知识计算相似度。采用第3章中的方式获取已有faq的向量表征,计算簇与已有faq的相似度。大于阈值时,作为已有faq的相似问题提供给客服同学审核。
当无法与已有faq合并时,认为产生了一个新的用户问题簇。需要在知识库中新增一个标准问题以及对应的相似问题。提供了一个简单的摘要抽取的功能,从用户问题簇中抽取核心的用户观点,辅助配置。
对簇中的用户问题进行分词等预处理之后,利用跳词的新词发现算法,进行摘要抽取。”跳词“是指候选摘要的各词之间可以有间隔。以下列三个句子为例。
q1 : 物流查询 q2 : 物流怎么查询? q3 : 我的物流能不能帮忙查询一下?
三个句子的摘要是”物流查询“,可以发现”物流“和”查询“两个词之间并不是连续的,是可以有间隔的。所以在进行摘要抽取时,候选的词之间也是可以有间隔的,摘要相邻词在原句中可以有0~2个词的间隔。
以 a、b两个词组成的摘要为例,在相同用户问题簇中主要衡量以下两个指标:
互信息 :主要考虑摘要内部词的聚类度。互信息越大,表明a b共现的几率越大,成为摘要的可能性越大。
左右邻接熵 :反映了⼀个⽂本⽚段的左邻词集合和右邻词集合的随机程度,邻熵越⼤,表明该摘要的左右边界越随机,成摘要的概率越⼤。
6. 总结
本文主要介绍了严选业务知识库算法智能辅助的技术方案,部分结果示例如下表所示。
(1) 已有标准问题新增相似问题
知识库已有标准问题 | 聚类问题簇 | |
---|---|---|
业务问题 – 售后 |
商品有问题怎么办? |
商品收到有问题怎么办 我的商品有问题 这个商品出现严重问题 …… |
业务问题 - 物流 |
商品多久送达? |
商品多久可以送达? 跨境商品多久能送到 商品一般多久到货 …… |
业务问题 - 发票 |
可以开发票吗 ? |
开发票 开增值税专用发票 商品支持开发票吗 …… |
(2) 新增标准问题
职能摘要 | 聚类问题簇 | |
---|---|---|
业务问题 |
退,定金 没付,全款,退,定金 |
退定金 定金什么时候退 帮我预购严选那个定金退了 …… |
商品信息咨询 |
保质期,多久 多久,吃,完 |
这个保质期多久 这个保质期多长时间 开封后多久吃完 …… |
特殊意图 – 投诉 |
投诉,商家 投诉,这家,店 |
投诉店铺 我要投诉商家 你们不处理,我就投诉到消协去 …… |
现在的结果中还是存在“该聚未聚”和“错聚”的badcase在,后续在文本表征以及聚类算法上还有一定的优化空间
作者简介
志伟,2018年硕士毕业于浙江大学,后加入网易严选算法部。 从零到有参与了网易严选智能客服的算法构建工作,并为考拉智能客服提供算法能力支持。 致力于将自然语言处理领域的新技术与业务相结合,赋能于严选智能客服、人工客服工作台、客服质检等各个场景。
以上所述就是小编给大家介绍的《严选智能客服业务知识库自动挖掘方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- WookTeam 1.2 发布,新增知识库markdown编辑器,新增知识库协作更新通知
- 如何构建自己的产品知识库
- 【史上最全】前端开发全面知识库
- 基于深度学习知识库问答研究进展
- Kooteam 0.1.1 发布,优化知识库体验
- WookTeam 1.3 发布,新增知识库权限、导出功能
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning PHP, MySQL, and JavaScript
Robin Nixon / O'Reilly Media / 2009-7-21 / USD 39.99
Learn how to create responsive, data-driven websites with PHP, MySQL, and JavaScript - whether or not you know how to program. This simple, streamlined guide explains how the powerful combination of P......一起来看看 《Learning PHP, MySQL, and JavaScript》 这本书的介绍吧!