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的技术原理和使用浅析