你是否想做一个对话机器人?如果答案是肯定,那这篇文章就是为你而准备的。
在 Facebook Messenger 里已经有超过 34000 多个对话机器人了,大部分为品牌宣传服务(译者注:在微信平台中也有大量的公众号开始具备对话机器人的功能)。这些对话机器人能干什么呢?它们能回答用户的问题,也能帮助用户自助解决遇到的麻烦,从而减轻服务人员的工作负担。那么,你是否知道如何打造一个好用的对话机器人呢?
以下说明将指导你从 0 开始打造一个客户服务对话机器人,虽然它不是一个说明书般的指南,但可以帮助你规划和思考如何打造自己的对话机器人。
1. 明确对话机器人的定位并设定目标
首先你要确定希望使用对话机器人做什么。根据帕累托法则,客户服务中心里前20%的高频问题和回答占总查询量的80%。因此,你需要确定是希望自己的机器人能准确地回答一小部分问题,还是能广泛地回答更多问题。广泛回答大量问题的“副作用”是机器人会不可避免地给出一些错误的答案。
2. 评估并选择在线沟通渠道
对话机器人可以在任何支持双向沟通的渠道中运行,包括传统运营商(短信),即时通信工具(微信),社交网络(如微博)或嵌入在网站上的聊天框。如果你考虑给自己的 App 增加与客户的对话功能,你需要问自己一个问题:在 App 中增加任何新的功能都会给用户带来负担,那么增加对话功能是否给用户带来新的价值?有些情况下,新的沟通渠道能够创造出更好的客户服务体验。
3. 设计对话架构
对话机器人支持连续的对话场景,在对话中允许机器人和用户进行多轮交互。与 App 或网站的体验相比,对话式交互是基于场景或流程的,且之前所有的交互历史对双方来说都是始终可见的。
这意味着在对话机器人的设计中,每一条用户消息都不能被孤立地分析,因为它是完整会话的一部分。因此,第一步你需要设计一个对话架构。这类似于图形交互界面(GUI)中的信息架构中,如一个网站的站点地图。需要注意的是,某些对话场景中,对话机器人的动作需要依赖上下文才能弄清楚。
4. 设计对话流程
对话流程涉及工程师开发机器人所需的所有细节,包括对话中的每个分支。在对话流程之外,还需为机器人回复的消息内容进行设计。你可以为机器人高频使用的回复设计不同说法,也就是说,让机器人使用不同措辞来表述同样的意思。这样能够让整个对话机器人的回复不那么机械化、更拟人化,这有助于用户获得良好的体验。
5. 设计与现有业务的集成方式
和传统的 App 一样,对话机器人也需要与你企业的现有业务系统进行集成。如果你已经将现有的自助服务平台(网络或语音)与企业内部系统模块进行了集成,你也可以用类似的方法和对话机器人做集成。例如,如果你的IVR(交互式语音响应)已经可以对客户进行身份验证,并且提供订单状态信息等功能,则该集成方式很可能也能复用在对话机器人中。
6. 收集尽可能多的对话数据
你需要整理收集一系列的标准问题的不同问法,这些问法能够反映客户提出请求的不同方式。如果你已经有某个渠道中客户服务人员与客户的沟通记录,你可以将这些对话记录保存下来作为机器学习的样本。
如果你需要手动生成对话数据,请确保这些数据不只是由开发人员凭直觉生成,而是从尽可能通过多的人那里生成对话数据。因此,一种有效的方法是与众包公司合作,通过他们让具有不同背景的人能够参与进来,产生对话数据。找到与目标用户相同背景的人会对最终效果有帮助,因为相同的背景有助于创建更真实的数据。
7. 选择合适的对话模型
大多数对话机器人都是通过以下两个步骤处理用户的请求:
(1)确定用户消息的意图;
(2)从用户消息中提取相关的信息,并进行回复。
上述任务有两种不同处理的方法:
(1)基于规则的方法,由开发者定义规则;
(2)基于机器学习的方法,从大量的交互记录中训练模型。
如果你没有现成的数据来训练模型,那么你可以用基于规则的方法。基于规则的方法更可控,这在客户服务中很重要,因为你希望最大限度地减少错误答案。
8. 训练自然语言理解模型
如果你选择了基于机器学习的方法,你需要为每个可能的意图提供示例语句,作为训练数据。你提供的训练数据越多,算法就能更好地学习到同样意图的不同表达方式,训练出来的模型就能够更好地区分不同的意图。需要注意的是,你需要为测试模型预留一些数据。
如果使用基于规则的方法,不同意图下的示例语句将有不同的用途。这些句子将帮助你制定明确的规则,以判断一句话属于意图 A 还是意图 B。
9. 内测和优化
接下来,你可以使用到上面准备的示例语进行自动测试。除此之外,你还需要尽可能多的通过测试人员进行“真实用户”测试。在测试过程中,不断修改和优化自然语言理解模块以及对话流程,直到模型达到可接受的准确率。由于人类语言的本质,每个问题或意图都有无限多种可能表达方式,即使是对于人类来说100%的准确率也是无法达到的。因此,这个过程需要不断迭代,每次迭代都会让你离这个目标越来越近。
10. 部署和迭代
对话机器人已经准备好上线,但这并不意味着,部署完机器人后工作就结束了。部署完成后,你需要不断优化机器人,比如把机器人的回复写得更清楚一些。你还需要通过修改规则或通过提供更多示例句子的方式,调整意图识别的逻辑。最后,如果设计的用例不能覆盖大多数真实用户请求,你可能需要添加新的用例。
为了确保对话机器人部署以后达到预期的效果,你需要持续迭代优化:收集数据、分析数据、将数据应用于对话机器人的设计和优化中,不断重复这个过程。除此之外,保存对话机器人服务过程中产生的所有日志,因为你可能需要用到这些数据。
作者Tobias Goebel是新兴技术总监,Bill Gay是自助服务和用户体验解决方案总监,Lisa Michaud是数据架构师,三人均就职于Aspect Software。