1. 前言

  随着自然语言处理和智能语音识别技术的发展,智能会话机器人开始部分替代人工客服。

  网上关于NLP算法的文章有很多,但关于 Chatbot 架构的却很少,关于 Chatbot SaaS 平台架构的则更少。我是一名对机器学习感兴趣的程序员,更关注如何设计实现一个架构良好的 Chatbot SaaS 平台,因此写下了这篇文章。

  2. Chatbot架构

  2.1. 智能会话机器人的分类

  智能会话机器人按照对话轮次来划分,可以分为单轮对话机器人和多轮对话机器人;按照知识领域来划分,可以分为限定域机器人和开放域机器人;按照任务类型来划分,可以分为任务型机器人、问答型机器人、闲聊型机器人和融合型机器人。

  任务型:根据用户给出的信息完成指定的任务。一般限定于某个垂直领域,常采用多轮对话的形式。如订餐、订票等服务。

  问答型:为用户提出的事实型、布尔型、计算型、推理型等类型的问题自动给出答案,进一步还可以再划分为常见问题解答(FAQ)和知识图谱问答(KBQA),一般限定于某个特定知识领域。

  闲聊型:与用户进行开放式聊天,满足用户的情感陪护需求。一般不限定话题范围,但有可能偏向于某个领域。

  融合型:一般以任务型或问答型为主,融合闲聊功能。如对于电商客服机器人来说,能完成商品推荐购买任务,能回答保修政策问题,还能陪客户闲聊天,融合型是应用场景越来越复杂的产物。

  从应用的发展趋势来看:单轮对话——>多轮对话,以获得更多更完整的信息;单领域——>多领域,以满足用户更多层面的需求。

  2.2. 任务型机器人交互模型

  企业应用中最常见的需求是任务型机器人,上图是任务型机器人经典的交互模型。其中红色框为文字语音转换部分,这里暂不作讨论。

  2.2.1. 自然语言理解(NLU)

  领域识别(Domain Identification)

  检测用户输入内容所涉及的领域概念。

  意图识别(Intent Detection)

  检测用户在特定领域下表述内容所代表的意图。

  词槽填充(Slots Filling)

  收集用户在对话过程中任务所必需的关键信息。

  2.2.2. 对话管理(DM)

  对话状态追踪(Dialogue State Tracking,DST)

  记录和判断当前会话处于任务的何种状态。

  对话策略(Dialogue Policy,DP)郑州妇科医院哪家好www.zzchxb110.com

  根据对话状态决定下一步的系统行为。

  2.2.3. 自然语言生成(NLG)

  自然语言生成主要有两种方法:基于模板生成和基于模型生成。

  基于模板生成:调用设计人员预先设计的回复模板,根据前置阶段获取到的状态和关键信息生成自然语言回复给用户。优点是响应速度较快,缺点是语言表达不够丰富,需要人工定义模板规则。因此比较适合在响应动作较少时使用,或是在系统冷启动时使用。

  基于模型生成:通常使用seq2seq模型学习大量交互语料数据,根据用户输入直接生成相关自然语言回复给用户。优点是不需要人工定义模板规则,语言表达较为丰富;缺点是回复结果不太可控,响应速度较慢,需要学习大量的交互语料数据。因此比较适合系统资源充足且有大量交互数据时采用。