搭建智能客服机器人设计流程

news/2024/9/24 12:21:24/

一、检索型机器人FAQ-Bot

在客服处理的问题中70%都是简单的问答业务,只要找到QA知识库中与用户当前问句语义最相近的标准问句,取出答案给用户就可以了。FAQ-Bot就是处理这类问题的。在没有使用深度学习算法之前,通常采用检索+NLP技术处理。

1.适用场景

适用于解答非用户个性化的问题,返回的是静态知识,无需调用接口返回答案。

2.问答系统处理流程

在这里插入图片描述

基本的问答流程如下:
1)用户提出问题:“忘记密码怎么办”
2)本体识别:用户问题分析后,识别出本体为“密码忘记”
3)计算FAQ相似度:问题与知识库里的标准问题根据相似度计算后召回,例如:

Q1: “登录不上了?”,相似度0.56;
Q2: “登录密码忘记了,找回密码的方式有哪些?”, 相似度0.92 。
4)候选答案排序:Q2-Q1
5)若阀值设定为0.9,Q2达到阀值,返回Q2问题的答案。如果有多个答案都到达阀值,选相似度最高的标准问题的答案返回给用户。如果都没有达到阀值的,但达到推荐阀值的答案有几个的,显示推荐的答案。
6)本体继承:把“忘记密码”继承至下文
7)继续提问:用户问“怎么找回密码”,话题继承。

3.知识库的设计

FAQ-Bot是基于知识库匹配算法设计的,所以首先需要搭建本体知识库,通过新增和维护机器人知识库,来提升机器人问答的准确率和用户体验。

1)它的层级结构是:类目—> 词条, 这里的词条就可以理解为本体,它是关键词的模板。所以当用户问“如何登录”时,识别出来的本体/词条就是“登录”。
2)每个词条需要维护的信息有:同义词、关联问题、相似问题、分类等。其中分类主要用于知识点的管理,当某一分类下数据量较大时,分类还可以作为算法聚类的一个标记,认为分类下的问题相关度高,在检索匹配时作为一个计算因子。
3)本体识别,可看作一个文本分类问题。

QA语料添加与维护,可以分为三个阶段:
1)机器人上线前,处理已有QA。(故障决策分析)
若业务上线前,客户已经有一定的原始用户语料积累,比如通过线上客服渠道或者论坛等积累的问答对,或者有大量用户咨询的问题。可以使用聚类工具自动聚类后,再人工进行调整。知识库应该提供“批量导入”的功能(车险服务平台的问答场景基本都有原始的线上数据,可以通过爬取这些数据后做清洗,提炼出高频问题,然后进行优先处理)
2)冷启动阶段,人工添加+NLP手段扩充语料。
前期没有标注数据的,需要人工手动标注数据。但因为问题和候选答案包含的词通常都很少,此时可以利用同义词、复述句对问题和候选答案进行扩展和改写。
功能上:在编辑界面支持“增加同义词”、“新增相似问句”的功能
3)机器人上线后,人工标注迭代。
系统上线后,对于回流数据(没有答案的、机器推荐而用户没有点击的、机器回答错误的、用户不满意的问题等)进行诊断,系统将这些语料先做聚类,然后由标注人员作统一处理。
具体处理方式可以有:答案纠错、标注到已有问题的相似问题里、新增知识/词条、标注为负训练样本、优化词条和问题标题/关键词等。
从产品层面上,应该提供知识库的“badcase标注”功能,以及提供测试模拟窗口功能(测试demo)
在这里插入图片描述

4.语义相似度计算

通常根据训练方式不同,从前期无标注数据到有一定量标注数据,语义相似度的算法也向深度学习迭代:

1)无监督学习:冷启动阶段没有足够标注数据时,通常使用无监督学习算法。将用户问句和标准问题作降维得到向量表示,用余弦相似度等方法计算出句子间语义相似度(值越靠近1说明越相似)

2)监督学习:机器人上线后经过用户问题和重新标注过程,积累了一定的数据后,通常可使用深度学习算法。如基于RNN的语言模型。用RNN训练出来的语言模型,采用其隐层状态作为词向量,将词向量代入其他需要word embedding的问答匹配方法中,经验证,可以取得比原方法更优秀的表现。

5.阀值

1)关注阀值的可配置性:从产品层面输入阀值后,改变相对应的输出结果。如果阀值配得过高,会影响召回率;太低又会影响准确率。要根据业务场景做权衡。
2)设置问题推荐的阀值。处理逻辑是:当结果达到直出阀值,直接给出答案; 未达到直出阀值,但达到推荐阀值的,给出几个推荐回答; 未达到推荐阀值的,给出无答案回复。无答案回复可以进入配置后台进行配置。
推荐阀值是基于机器阅读理解模型训练的,目前设计是在知识库的词条中进行维护,添加段落,模型会自动列出将关联问题和答案。

6.信息咨询型多轮对话

简单问答中除了单轮对话外,也多轮对话的情况。这类咨询型多轮与任务型多轮有所区分。以下类型的多轮对话情况在FAQ-Bot中处理
1)情况1:条件挖掘。用户提问“如何登录?” ,机器人会返回“登录”的条件相关的提问“请问是希望通过下面哪个渠道登录”,用户作出回答后,机器人返回答案。这个对话虽然是多轮,但不涉及用户的个性化信息,还是用语义匹配来实现。
2)情况2:话题继承。如用户提问“怎样才能删除保单”,话题“删除保单”被记录下来了,若用户问“怎么删除”,机器人应该识别到是同一话题下的关联问题,并返回相应答案。


http://www.ppmy.cn/news/1444839.html

相关文章

Arcgis Pro 制图基础操作流程

为什么推荐用Arcgis Pro 出图? 1、相比Arcmap 10.X,Pro的制图功能更强大,制图更便捷 2、相比PS,Arcgis Pro中的数据自带坐标,无需校正,表达更准确 3、自带底图,方便又美观 01 — 与Arcmap …

程序包 org.junit 不存在解决方案

问题描述 git 拉取其它同事维护的应用,构建报错:项目默认的单元测试类 ExampleUnitTest 涉及到 junit 的类都找不到。查看 build.gradle 配置的依赖项,缺失了 org.junit 的依赖。 问题解决 因为是在无法联网环境下开发,为避免从…

ffplay支持mac/iOS硬解码实践

1. ffmpeg编译开启videotoolbox的支持。 ./configure --enable-videotoolbox --enable-hwaccels 2. stream_component_open方法中开启硬件解码器。 int FSPlay::stream_component_open(VideoState *is, int stream_index) {//...codec avcodec_find_decoder(avctx->code…

k8s负载均衡

在Kubernetes中,负载均衡通常由服务对象来实现。你可以使用Service资源来暴露一个容器(或一组容器),并且提供负载均衡功能。 以下是一个简单的服务定义示例,它使用了Cluster内部负载均衡器实现(也就是说&a…

Hadoop 伪分布式安装

Hadoop 伪分布式安装 准备 环境选择 系统: Ubuntu Desktop 2204JDK: 8Hadoop : 3.3.6 JDK 8 下载地址 https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/Hadoop 3.3.6 下载地址 https://mirrors.tuna.tsinghua.edu.cn/a…

visual studio code安装Clicknium

visual studio code下载安装 Download Visual Studio Code - Mac, Linux, Windows 安装python extend,需要把科学上网关了 clicknium 获取插件名 clicknium 录制教程 https://blog.51cto.com/u_16213624/7007362 实战教程: Python 自动化神器 Click…

hive使用hplsql进行etl或其它数据加工

参照 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId59690156 http://www.hplsql.org/doc Hive HPL/SQL,即Hive Hybrid Procedural SQL一个开源工具,它为hive实现了过程性的SQL功能,类似Oracle的PLSQL。从hive 2.0.0开…

FPGA之zynq_DDR(1)

学习一下关于DDR的知识和vivado操作吧。 用PS控制DDR内存读写 【ZYNQ-7000开发之六】使用PS控制DDR3的读写_xil_in32读取ddr数据-CSDN博客 在新建block design时,选择DDR,选择UART(为什么要用uart?) 找到DDR的地址&a…