严选智能客服业务知识库自动挖掘方案

栏目: IT技术 · 发布时间: 4年前

内容简介:一个优秀的智能客服系统,既要有准确够理解用户问题的能力,同时又要有良好的知识储备,即完整的知识库系统。知识库系统的构建,借助算法的能力,能够及时发现未解答的用户高频问题,辅助客服进行配置,将有效的提升智能客服的解决率,减少人工客服的工作量。在大促或最近疫情这类突然事件期间尤为明显。本文将主要介绍严选智能客服业务知识库构建时的算法辅助方案。知识库包含两个部分:结构化的商品知识、非结构化的业务知识库。本文主要关注的是业务知识库的构建。严选智能客服在解答业务类问题时,主要采用的是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这类聚类算法依赖于先验的知识,尝试之后效果不佳。

在词聚类时,我们采用了层次化聚类这种全局最优的聚类算法。但是时间复杂度是: O(N^3) ,词粒度上,表述方式是有限的,忽略词频时,层次化聚类算法可以在有限的时间内跑出结果。 但句子不同,句子的表述千差万别。 预处理之后,在忽略句频的情况下,参与聚类的句子数量还有几十万乃至上百万的量级,层次化聚类并不能适用。

因此,对层次化聚类进行改造,采用了分桶层次化聚类的方法,将每次参加层次化聚类的样本点数量控制在可接受的范围内。分桶层次化聚类算法的示意图如下:

严选智能客服业务知识库自动挖掘方案

(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共现的几率越大,成为摘要的可能性越大。

MI_{ab} = log\frac{p(a,b)}{p(a)p(b)}

严选智能客服业务知识库自动挖掘方案

左右邻接熵 :反映了⼀个⽂本⽚段的左邻词集合和右邻词集合的随机程度,邻熵越⼤,表明该摘要的左右边界越随机,成摘要的概率越⼤。

H_{left}=-\sum_wp(w,a,b|a,b)logp(w,a,b|a,b)

严选智能客服业务知识库自动挖掘方案

6. 总结

本文主要介绍了严选业务知识库算法智能辅助的技术方案,部分结果示例如下表所示。

(1)  已有标准问题新增相似问题

知识库已有标准问题 聚类问题簇

业务问题 – 售后

商品有问题怎么办?

商品收到有问题怎么办

我的商品有问题

这个商品出现严重问题

……

业务问题 - 物流

商品多久送达?

商品多久可以送达?

跨境商品多久能送到

商品一般多久到货

……

业务问题 - 发票

可以开发票吗 ?

开发票

开增值税专用发票

商品支持开发票吗

……

(2)  新增标准问题

职能摘要 聚类问题簇

业务问题

退,定金

没付,全款,退,定金

退定金

定金什么时候退

帮我预购严选那个定金退了

……

商品信息咨询

保质期,多久

多久,吃,完

这个保质期多久

这个保质期多长时间

开封后多久吃完

……

特殊意图 – 投诉

投诉,商家

投诉,这家,店

投诉店铺

我要投诉商家

你们不处理,我就投诉到消协去

……

现在的结果中还是存在“该聚未聚”和“错聚”的badcase在,后续在文本表征以及聚类算法上还有一定的优化空间

作者简介

志伟,2018年硕士毕业于浙江大学,后加入网易严选算法部。 从零到有参与了网易严选智能客服的算法构建工作,并为考拉智能客服提供算法能力支持。 致力于将自然语言处理领域的新技术与业务相结合,赋能于严选智能客服、人工客服工作台、客服质检等各个场景。


以上所述就是小编给大家介绍的《严选智能客服业务知识库自动挖掘方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

How Tomcat Works

How Tomcat Works

Budi Kurniawan、Paul Deck / BrainySoftware / 2004-4-1 / USD 54.95

A Guide to Developing Your Own Java Servlet Container一起来看看 《How Tomcat Works》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码