Chatbot入门1:智能对话引擎基本原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chatbot入门1:智能对话引擎基本原理相关的知识,希望对你有一定的参考价值。

参考技术A 客服机器人在解析用户query的第一步是在去判断用户的意图。意图检测是由叫做“Route bot(路由机器人)”的系统来完成,比如,当用户输入“我银行卡余额”时,可以识别出用户此时是想完成“查询银行卡余额”这一任务;而当用户询问“银行卡余额在哪儿可以查”时,则需要识别出用户需要一个 查询银行卡余额的路径 。确认用户意图后,路由机器人再将此query交给不同的“子机器人(Botlets)”去处理。最后,Botlets生成的回复将在策略中心完成融合、去重和重排序等过程, 最终产生一个或一组最优解 。

botlets中列举了多类型机器人,我们着重介绍最为常见的三类:

检索型机器人:FAQ-Bot

任务型机器人:Task-Bot

闲聊型机器人:Chitchat-Bot

1、检索型机器人

知识库检索型机器人,围绕的是基础的问答型知识,例如“密码忘记了怎么办?” ,此类问题可以标准化的回复来解决。

1.1 技术原理

算法实现的步骤,概括如下:

1、问题理解阶段,运用NLP技术进行问题的分析。

基础的技术包括分词、词性识别、命名实体识别,语义归一等技术,目的是为了在粗排阶段尽可能的把相关问题进行找回。

2、由于query和候选的问题包含的词数量一般较少,此时会利用同义词和复述技术,对问题进行扩展与改写;

3、基于问题的分析,在知识库中找回相关的候选问题;

4、由于候选问题可能是比较宽泛的,此时需要更精确的算法,来匹配最相近的结果。这里会运用到深度学习模型进行文本的特征表示,进行文本相似度的精排计算,从而返回最好的一个或几个结果。

1.2 知识维护

检索型机器人通常需要维护对应的QA知识库,作为问题检索的基本素材库,针对结构化知识库的基本说明,详见“知识体系构建”一文。

2、任务型机器人

在实际咨询场景中,用户某些问题的解决,涉及到用户身份、信息状态等限定条件,例如 “帮我查一下我的物流到哪了?”

针对该问题,客服通常需要了解用户ID、订单ID等具体信息,才能协助用户查询到具体结果

处理此类问题的核心步骤:

1)识别意图(intent):用户要表达的诉求是什么?

2)识别参数(slot):为解决这个问题,需要的“限定条件”是什么?是否已提供?

往往一个问题中,需要用户提供的参数不止一个,且用户通常不会在一个问题中囊括所有有效信息,因此需要机器人主动进行多轮对话引导,直到收集完所有的必备参数。

2.1 几个核心概念的解释

多轮对话:

(封闭域)多轮对话是一种,在人机对话中,初步明确用户意图之后,获取必要信息以最终得到明确用户指令的方式。多轮对话与一件事情的处理相对应。

参数(slot):

业内通常称之为“槽”,它是完成用户意图所必备的“限定条件”

Q:所谓的“参数”,必须通过多轮对话的形式获取吗?

不一定。参数可分为显性参数,与隐性参数。

在用户与我们开始对话前,其实我们已经能够获取到其登录状态、用户身份、地理位置等“画像”信息,这些就是典型的“隐性参数”;

而显性参数则是与访客提问的意图直接相关,回到上文的例子“查询物流进展”,此时我们就必须定位到用户具体咨询的哪一个订单,也即“订单号”这个参数。

Q:显性参数,必须通过对话交互获取吗?

也是不一定的,在实际对话设计中,获取参数的方式通常有如下几种:

1)贴心的用户可能已经在表达意图时,已帮我们指定好具体参数,例如:“订单号123456,查一下这个物流到哪了”;

2)从用户行为中去获取,例如用户从某一订单详情页接入对话,咨询“这个订单物流到哪了?”,此时我们可以默认将“这个”指代为当前接入页所对应的“订单号”;

3)从上下文中去获取,例如用户当前咨询主题,主要围绕某一订单开展,咨询了关于该订单的发票、金额、物流等一系列信息,此时我们可以始终对“订单号”这一参数进行记录,保持语境的统一;

4)如以上方式,均无法定位用户具体参数,那么才需要交互手段出面获取

2.2 技术原理

1)目前,业内主流的做法是将意图识别作为一个文本分类问题,不过这种方法存在的问题是,每新增一个意图都需要重新训练模型,且意图数量较多的情况下可能无法获得比较好的效果。将意图识别作为一个排序问题,根据用户问句和该意图下用户表述的相似度排序来进行意图的判断,也是业内广泛采用的方法之一;

2)对参数的抽取。“参数”可以是一类词典的集合,如地点名词集、景点名词集;也可以是某一规则的表达式,如订单号生成规则:“年份+日期+随机6位数”

3)在实际对话设计中,还需要综合考虑隐性参数获取、上下文语境、用户跳出等综合因素,会在具体应用案例中说明,在此不赘述。

2.3 对话流程设计

在对话设计中值得思考的是:准确识别用户的意图,其实到这只是我们的第一步,最短路径,快速直接解决用户问题,才是我们的最终目的。

在获取到所需信息后,“我们能为用户做什么” 才是产品产生价值和差异的核心。

2.4 知识维护

意图的训练需要大量!的语料

内部团队人力有限,标注数量比较尴尬的情况下,目前采用的方式是运用算法进行同义词扩展和复述技术,对语料进行发散扩展(本质还是需要人工进行特征的定义),以达到训练所需的数量要求

3. 闲聊型机器人

在客服机器人的对话场景中,闲聊起到的是日常寒暄、情感维系的作用,并不属于业务解决的范畴,仅作简单介绍

3.1 闲聊在客服场景中的存在价值

个人认为最基础在于两点:

1)日常基本的寒暄交流,用户与客服的对话,经常是由一句“你好 ” “我问一下”开始的,能够顺利回应此类开场白,是对话能顺利延续的基础;

2)在机器人无法顺利解决问题时,起到缓和用户情绪的作用。这需要在话术上下功夫,“我已经拿小本本记下了,会尽快学会哒 ” 

3.2 技术原理

通常使用机器翻译中的深度学习seq2seq框架来产生答复

【5G消息】啥是Chatbot?

chatbot 聊天机器人
聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。聊天机器人可用于实用的目的,如客户服务或资讯获取。
参考技术A chatbot是面向行业客户开放的一种5g消息的接入方式。可以在chatbot实现5g消息多种媒体互动,推送,交互。还可以跟后台业务深度融合。 参考技术B 关闭了信号,就不能使用聊天机器人给刘聊天机器人聊天了。

以上是关于Chatbot入门1:智能对话引擎基本原理的主要内容,如果未能解决你的问题,请参考以下文章

浏览器渲染原理

实时音视频入门学习:开源工程WebRTC的技术原理和使用浅析

公开课:Rust 入门基本原理-2 | Vol. 26

百度搜索引擎计算的基本原理是什么

12个QT基本对话框,以及淡入原理(用定时器把窗口逐渐变成透明)

机器翻译引擎的基本原理 ——LSTM