机器人对话设计一定需考虑关键8个要点
编辑导读:随着人工智能的发展,机器人对话是最为常见的功能之一。笔者作为对话机器人的AI PM,在对话平台的从0-1产品搭建、对话机器人的从1-100的产品运营上,遇到了诸多坑,也走了不少弯路。深感在对话机器人中,对话设计对于机器人整体效果而言至关重要。本文将重点阐述,在对话设计中重要关键的8个点,希望对你的机器人设计有帮助。
一、对话设计的重要性
1. 对话设计是什么?
对话机器人,主要由几个部分组成:语义识别、信息采集/使用、对话设计、知识库。
语义识别:
通常由AI算法模型进行(NLU,自然语言理解),这也是对话机器人中,AI技术应用最多的部分。当然,算法也有识别不到位的情况,通常会使用规则做矫正/补充。
信息采集/使用:
即对语义识别的结果做收集、更新、使用。对话的本质是信息的交换,对于机器人来说,获取访客的需求信息至关重要。信息决定了后续机器人采取的策略与动作。
知识库:
知识库是应用于单轮对话的机器人知识储备库,可以为访客提供答疑服务。由于知识库的FAQ特性使然,知识库侧重于一问一答的“知识解答”。
对话设计:
对话设计是对话机器人的核心部分,相当于机器人的“大脑”。即:面对什么样的信息,需要做什么样的动作,从而让对话可以顺利地进行,并满足访客的需求与机器人本身所需达到的目的。对话设计就是机器人对话逻辑处理的设计。
2. 对话设计为什么重要?
可想而知,如果对话机器人没有了对话设计,那么机器人基本失去了多轮问答的能力。相当于访客问一个问题,机器人回答一个问题。这在较为简易的机器人中应用较为常见,但是一旦业务变得复杂一些,机器人就很难处理,应付不来。在人看来,就像“智障”一样。
那为什么不使用AI算法来解决对话逻辑的问题呢?
因为AI技术发展到现在,还无法做到通过会话级的学习,达到应答自如的对话效果。这就需要AI PM与AI训练师,通过对话逻辑的设计,让机器人变得智能,处理业务问题,从而实现预定目标。
二、对话设计关键8个要点
对话设计在功能形式上,表现为对话流程。通常流程与对话场景相对应,即一个流程处理一个对话场景。当然如果场景较大,可能一个场景需多个流程处理,流程间会协作配合,分别处理不同的任务。
流程的设计,即机器人“大脑”的设计。一般通过设定流程逻辑规则,让机器人具有处理不同问题的能力。以下为流程设计的关键点,提炼为8个。
1. 流程间执行优先级
一个机器人中,有多个流程,数量可达几十个。比较通常的情况是在30-40个左右。当然,流程的多少,跟场景划分颗粒度粗细有关。一般而言,一个流程会对应一个意图。意图即为流程的准入条件。
流程间是需要设定执行的优先级顺序的。为什么?
因为访客的同一句表述,可能会同时满足多个流程进入的条件。此时应该进入哪个流程,就需要人为地划分优先级。
你可能会说,这样划分科学吗?有效吗?是的,这样并不能保证是最客观最科学的,但是只能在可能的情况下,尽可能考虑访客的各种情况下做出最优解。
在所有的流程中,我们一般做的设计就是,将所有的流程排优先级。从第一个流程开始匹配,命中则进入流程;未命中则执行下一个流程,直至命中流程为止。若未有流程命中,则不进入流程。
所以,在做对话设计时,做好流程间的执行优先级,就可让机器人在面对访客表述识别模棱两可时,做出优先级选择,从而进入欲进入的流程。当然,也会出现未考虑到的情况,毕竟语言表达在不同的访客、不同的场景中,可能千变万化。故只能说,在已有条件下找到最优解。
2. 流程内执行、流程间跳转优先级
当进入流程后,机器人可能会面临,在同一句访客表述前,是应该在该流程继续执行,还是应该跳转到另外一个流程。
这个时候你可能会说,如果访客说到另一个场景/话题,就跳到那个流程;如果是继续当前的话题,那就应该继续原有的流程。思路是这样的没错,但是实际情况往往会比我们预想的复杂。对于场景清晰界限明确的流程间,比如“播放音乐”和“订火车票”这两种泾渭分明的场景,就很容易处理。但是当出现场景间的界限较为模糊的情况,就较难通过简单的准则区分。比如在医疗领域“咨询牙齿种植”和“咨询补牙”,由于场景相近,访客描述的内容可能很相近,机器人做意图识别时,在一些表述上很难做到区分。
所以,我们一般会制定一套跳转规则。比如,当流程间界限分明/机器人应答策略更希望流程尽量不做跳转时,设置当前流程执行有限;当流程间界限不太分明/机器人应答策略更希望在不同流程间跳转时,设置流程跳转优先。
再次地,这样的设置是通过人为地制定一套规则,让机器人可处理不同的业务问题,从而让机器人对话“智能”。
3. 流程间跳转限制
多个流程间,有诸多的流程是并列的关系。但是 也有流程间是“父子”关系、“只进不出”关系。
举个例子,比如流程A和流程B:
- 在某些情况下,流程B的准入条件,必须是进入了流程A后,满足一定条件,如访客说了某个关键字,才可进入流程B。这种关系即“父子”关系,A流程是父流程;B流程是子流程。不进入A流程,就不能进入B流程。
- 在某些情况下,流程A可跳转到流程B,但是流程B不可跳转到流程A。常见的情形是,流程A是“无意图”流程,流程B是有意图的流程。一般而言,在识别了访客意图后,当访客当前轮次的表述是无意图,也不会跳转回“无意图”流程。
通常,我们会通过流程关系的设置,来确定流程间的跳转关系和限制。在Google Dialogflow中,Context的概念,就是为了设置流程间的“父子关系”。不仅是流程间的跳转关系,流程中传递的信息(词槽信息)也会被传递/继承。故称之为Context语境。
4. 流程问句重复/不重复发送
行业中有一部分场景,是需要把机器人做成“仿真”的。即:让访客无感知/较弱感知到与自己对话的是一个机器人。这些情况下,就需要将机器人做拟人化设计。
流程问句的重复/不重复发送设计,是其中很重要的一步。试想,如果在一个对话中(特别是客服等提供业务服务的对话),对方反复发送同一句话,你会不会很容易质疑对方就是一个机器人,很生气地结束对话,或者要求转人工?
那么,如何让机器人避免流程话术重复发送呢?
我们的处理是,在设计流程的问句时,再配置上该问句要收集的信息。通过对上文该信息的识别、获取、存储与判断,来避免下文重复发送相同/类似的问句。比如:
【流程A】机器人问:“您多大年纪呢?”,配置“年龄”的信息
【流程B】机器人问:“您今年几岁呢?”,配置“年龄”的信息
当上文执行了流程A的上述问题,并获取保存了访客的“年龄”信息,则在下文执行流程B时,再次询问“年龄”的问句将被跳过,不会再触发。从而实现避免重复发同类问句的目的。
当然,如果机器人是“非仿真”的机器人,则无需做这一重判断处理。因为用户对于对话的认知就是在跟机器人对话,无所谓是否重复话术。但是,AI不就是通过智能让生活更加便捷美好吗?仿真化对应的智能,势必会是以后的大趋势。
5. 流程重复/不重复执行
执行过的流程,当访客表述又再次满足其准入的条件时,流程还可以重复执行吗?
其实这一点和上面一点的思路有点类似。流程重复执行,意味着发过了的问句/话术再次发送一遍。对于“仿真”的机器人来说,一般是需要做避免重复执行的设计。
比如:
- 流程A中执行到第3轮话术,由于访客表述跳转到了流程B
- 当流程B执行后,又满足流程A的条件从而回到流程A
- 那么此时,应该
- 从流程A的第4轮继续执行(接着刚才执行到的第3轮)
同样的,如果是“非仿真”的机器人,可容忍流程重复执行,则无需做此设计。
6. 流程被打断后恢复/不恢复
当流程发生跳转的,一般会伴随流程的打断。可能的情形是,在原有流程中聊得挺好,访客突然说了个与该流程不相干的内容,或是另起一个话题,导致跳转到了另一个流程。
比如:
- 流程A中执行到第3轮话术,由于访客表述跳转到了流程B
- 当流程B执行完
- 此时,由于A流程是被打断的主要场景,访客更倾向于继续将A流程话题继续至结束。故需恢复至A流程并执行完
这种情况一般是在A流程是主要场景/流程的情况下,在A流程中做的设置。而对于那些较为次要的流程,则较无需做“打断后恢复”的设置。因为有可能其跳转的是主要的流程,便无需做恢复动作。
7. 信息采集与追问
对话的本质是对话双方信息的交流。在对话流程进行中,信息的采集尤为重要。信息不仅可作为机器人话术的组成部分、作为访客信息记录/传递,还可作为条件判断的来源、第三方接口的传递内容。所以信息采集对于对话流程来说很重要。
所以,一般我们在设计流程的问句时,会设置相应的信息采集内容。还是上面的例子:
机器人问:“您多大年纪呢?”,一般会设置“年龄”的信息采集。可通过算法的实体识别(NER)技术,获取访客表述的年龄信息。
当信息未获取时,也可通过“信息追问”的方式,追加询问,以获取欲获得的信息。
当然,信息追问也许根据具体场景来设计,设计过多也会让访客觉得反感。一般来说,信息追问的话术连续不应超过2次。
8. 流程与知识库的协作配合
以上说的都是流程内部的设计点。在流程之外,知识库是机器人另一重要组成部分。知识库主要进行单轮一问一答的知识答疑。那么流程和知识库如何协作配合,对于对话来说也是很重要的一环。
一般而言有以下4种策略:
- 策略1:针对访客的表述,先进行知识库答疑,后执行流程话术;
- 策略2:针对访客的表述,先进行流程内判断,若不满足流程执行的条件则进行知识库答疑;若满足流程执行条件则执行流程话术
- 策略3:只使用知识库答疑,不执行流程话术
- 策略4:只执行流程话术,不使用知识库答疑
四种策略,侧重点不同。
- 策略1,是种综合的方式,结合了知识库与流程话术的优点,在较大限度上限制二者的缺点;
- 策略2,是侧重流程话术的方式。知识库作为流程的补充使用;
- 策略3,一般适用于问答机器人,业务较为简单,无需较复杂的对话逻辑处理
- 策略4,一般适用于强引导型的机器人,可以基本不做访客的知识答疑
一般根据客户的实际场景,去设计不同的协作策略。一句话,可达到业务目标即可,没有优劣之分,只有侧重点之分。
三、总结
对话机器人是一个系统,对话设计作为这个系统的“大脑”,需设定不同功能模块,来处理应对不同的业务场景访客问题。其中,对话设计中的这8个关键要点,是对话设计的核心。做好了这8个关键要点的设计,可以说基本上覆盖了流程设计的避坑要点。
当然,机器人对话设计,还有很多其他的细节点设计,同时需侧重考虑与这8个要点之间的关系与协作模式。希望这些要点阐述与总结,对你的设计有帮助。
作者:咖喱鱼丸,5年PM经验,2年AI PM经验
本文由 @咖喱鱼蛋egg 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
- 目前还没评论,等你发挥!