做过了40+个机器人的总结:对话机器人核心功能
发布时间:1970-01-01 08:00
发布者:[db:作者]
浏览次数:
看着似乎挺抽象是吧?没事,我们后面会具体讲。简单地说,现在的AI技术决定了对话机器人可以解决的问题是:某个特定行业领域下,基于某类特定问题,提供简单固定的解答/服务。
上述的 吃早餐 对话场景,如果是一个 早餐机器人 ,它会怎么做呢?
假设它的工作流程是:询问早餐需求- 做早餐,那么, 询问早餐需求 跟你的对话应该是这样的:
Bot:早上好,请问你早餐想吃什么呢?(提供选项:粥,包子,面包,花生汤)
你:我想喝粥
Bot:好的。那您喝粥配荷包蛋可以吗?
你:好啊,我刚想吃荷包蛋
Bot:吃一个还是两个呢?
你:一个就好了
Bot:再配点腐乳吗?
你:好呀
看完这段你可能会说:这效果不是跟我和我妈的对话一样嘛!机器人真的有这么厉害吗?
答案是NO,机器人并没有那么厉害。为什么?我们从刚才说的对话机器人可解决的问题看。
1.2.1 特定行业领域的特定问题
上述的对话是基于 吃早餐 这个话题对应的 饮食 这类领域而定的。如果是所有领域(或者说是开放阈),机器人是处理不了的。
比如你突然问它: 我的快递单号是多少 ,它可能就没法解答。因为它只是针对你 吃早餐 的机器人。问快递单号的话,你可以打开淘宝,让阿里小蜜机器人回答你:)
1.2.2 提供简单固定的解答/服务
机器人只能提供固定流程的解答与服务,并不能解答复杂、随机性太大的对话问题。
比如刚才的对话,机器人说: 早上好,请问你早餐想吃什么呢? 而你说: 有锅边糊吗 (注解:锅边糊是福建早餐小吃)机器人可能压根就不知道你在说什么。
因为机器人的这个问题,是有人为的预设值,若访客回复内容,未落在预设值内,就会出现机器人无法处理的问题。
所以,在设计机器人时,需要了解当机器人发问后,访客可能会说的内容。语言本身就是开放阈的内容,访客会说什么,设计者只能按照概率大小去设计,尽量去覆盖,并无法穷尽访客的说法。
而访客的语言,又受到个人因素、当时环境因素的影响,从本质上来说,这是永远的矛盾点。
因此,对话机器人能解决的对话问题,是所有对话语言问题中的一部分,或者说一小部分。虽然对话机器人做不了非常智能、随机性很大的对话问题,但是在某些领域,对话机器人还是可以很高效、便捷地帮人处理很多对话问题。
比如智能客服领域、系统内人力资源问答领域等等,这也是目前对话机器人的价值应用领域。
二、机器人对话 2.1 用户对话场景
既然对话机器人是针对某个特定行业领域的对话,那么在设计对话功能之前,第一步是需要明确,对话机器人解决的是哪个行业领域,什么访客,具体什么场景的的问题。这是对话机器人的框架与边界,只有先确定,后面的设计才可以进行。
2.1.1 确定行业领域
比如: 电商行业 、 金融行业 、 医疗行业 等等,行业决定了访客特性、机器人应答策略、机器人知识库内容与结构。
2.1.2 确定对话场景
比如: 售后场景 、 售前场景 、 企业内部接待支持 、 微信群聊 等等。不同的对话场景,可能对应不同的对话目的,决定了机器人 该如何应答 。
场景往下拆分,根据颗粒度从大到小,又可分为:场景- 意图,指的是场景从大到小的拆分。
有的机器人根据业务需要,还会更细地拆分为:场景- 主题- 意图(父意图)- 意图(子意图)。每个意图下分别对应不同的机器人对话流程,同时流程间会设定各种规则,以应对在对话中访客不同的发问情况。
如何确定对话场景?
一般需要AI训练师/AI PM,根据行业内的场景情况,通过人工对话数据,或查阅相关资料/访谈的方式,了解行业场景特性,并拆分出具体的访客意图。
比如:在 电脑培训售前场景 中,根据访客对话场景,会划分 咨询网页设计 、 咨询JAVA课程 、 咨询SEO课程 , 咨询Python课程 等等。常见的,对话场景的数量,一般在20个-50个之间不等(当然,某些特定对话场景会超出这个范围)。
对话场景的划分,需遵循MECE原则:相互独立,完全穷尽。即:所有意图需覆盖所有的访客意图情况(完全穷尽),且意图之间尽量相互独立,互不交叉(相互独立)。这会为后续的应答策略,做一个良好的场景设定,让后续的对话设计更好进行。
2.2 机器人应答策略
虽然不同的对话场景中,机器人具体的应答策略是不一样的:比如售后场景的机器人主要以解答为主,而售前场景的机器人是引导访客留联。但是在所有场景的机器人中,是有一套适用于对话机器人设计的应答策略方法论的,差别点在于具体落地机器人的实现展示方式。
2.2.1 单轮对话、多轮对话
根据机器人与访客对话形式的不同,可以将对话形态划分为单轮对话、多轮对话,通俗地讲即:你想让机器人如何解决访客的问题。
2.2.1.1 单轮对话:访客问一个问题,机器人立即回答
比如:
访客: 你们培训地点是在哪儿啊?
BOT: 我们是在海淀区知春路25号百事大厦13楼
这类访客问题中,访客问的是一个客观的,不随访客信息/其他信息等的不同而不同的回答。即:不论访客是小明,还是小红, 培训地点 它永远都是 海淀区知春路25号百事大厦13楼 。所以机器人只需要根据事实(通常将该类知识配置在知识库中),直接回答即可。
由于其交互是一问一答,在一个对话轮次中即可解决问题,故称之为 单轮对话 。
2.2.1.2 多轮对话:访客问一个问题,机器人通过询问访客信息,根据访客不同的信息作出回答
比如:
访客: 我可以报六级英语培训班吗
BOT: 请问下您通过四级英语考试了吗?
访客: 通过了
BOT: 嗯好的,您可以报六级英语培训班的,这边登记下您的信息
这类访客问题中,若要进行回复(无论是机器人/人工),则需确定某些参数信息才可回复。 是否通过四级英语考试 ,是上述例子中的参数变量。
通过 对应一个回答; 未通过 则对应另一个回答。机器人需要通过询问访客这些信息,才能进行回答。所以对话需要进行多轮的交互,一般为 机器人询问-访客答 的方式,故称之为 多轮对话 。
这两种对话形式,也构成了目前对话机器人的对话,是对话的框架基础。为什么没有其他类型的对话形式呢?
原因很简单,因为现有的NLP技术,在支撑具体业务场景下,这两种对话形式是最有效的。或者换句话说,暂时没有第三种方式让机器人更好地服务访客。
而对话机器人的设计,主要在于对话策略的设计,具体表现在对话流程的逻辑设计。单轮对话由于其一问一答的形式,基本不需要对话逻辑的设计,其重点在于知识的构建和回答的设计。所以,对话设计的重点,在于多轮对话的设计。
2.2.2 多轮对话设计
多轮对话的设计要点:场景、对话流程、信息流转。
2.2.2.1 场景
定义对话场景,行业内机器人的做法主要是通过意图定义场景。比如: 咨询Python课程 这个意图,通过对意图的解答和服务,来完成机器人对话。
2.2.2.2 对话流程
这个是对话机器人的核心,包括:对话流程如何运转、异常情况该如何处理、多轮对话与单轮对话的协作配合。
2.2.2.3 信息流程
对话内的信息,是对话的核心要素。所以需要设计:对话内信息如何流转;同时,由于机器人是需要和对话外的系统做信息交流,所以也需设计对话外信息如何与对话内信息进行交互流转。
2.3 核心功能要点
2.3.1 场景识别
场景识别,是对对话场景、用户意图的识别。这也是对话中体现AI技术运用的核心功能。行业内主流的做法,是用意图来定义,对应的AI技术就是意图识别,本质上是一种分类算法。
比如: 咨询Python课程 这个意图,需要提供访客关于这个意图的各式各样的说法,进行模型训练,从而 教会 模型去识别。所以需提供让用户可进行意图定义、语料定义的功能,让用户可进行配置。
通常的做法是:
2.3.1.1 让用户构建语料
主要有2种方式: