美文网首页AI对话式交互@产品
Chatbot入门1:智能对话引擎基本原理

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

作者: 树深见醋 | 来源:发表于2019-07-15 16:54 被阅读0次
    https://blog.csdn.net/qq_40027052/article/details/78723576  

    客服机器人在解析用户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框架来产生答复

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/mregkctx.html