从0到1构建一套Chatbot
一、前言
1.1 交互的趋势
让机器去适应人, 人不是人是适应机器
任何产品都需要依赖对话系统为之赋能, 未来, 对话系统将可能成为重要的人机交互窗口. 这一切,都可以从设计一个小的封闭域Chatbot开始——LuQi.
举个例子: “帮我查一下明天或者后天,晚上最便宜的去上海的机票”, 从用户的操作和实际体验来看, 图形交互无法一次给出结果, 用户需要先打开App, 先查一次明天机票再查一次后天机票, 然后手动对比结果. 而对话式交互 “完胜” , 它可以直接给出相关条件的检索结果,前提是人工智能足够优秀.
1.2 职位的变革
“三段论”: 一波科技趋势从兴起到没落,通常会依次经历三个阶段:
- 技术>产品;
- 产品>技术;
- 运营>产品。
现在移动互联网已经走到第三阶段,而AI还在第一阶段.
1.3 对话系统分类
分类 | 应用领域 | 技术方案 | 特点 | 优化目标 |
---|---|---|---|---|
任务型 | 有任务目标,一般用来解决特定垂直域的复杂问题 如:智能客服助手、智能会议系统、地图导航等 |
预先构建知识和对话流程配置, 基于意图、实体NLU识别,基于复杂的对话管理DM,完成多轮对话任务 知识图谱推理能力等也可以实现多轮对话 |
对错误的容忍度低,对质量要求高, 需要通过询问、澄清、确认来帮助用户明确目的 |
减少复杂的流程配置, 快速流程构建提供端到端解决方案满足用户需求,同时较少对话轮次 |
问答型 | 对比任务型,是单轮, 常用在客服场景,解决售前80%的共性基础问题, 回答如: “什么是xx”,”怎么xxx” |
构建自知识库检索能力, 简单可控 | 一问一答, 单轮, 无状态不关注上下文,简单精确可控 | 在大量的知识数据中提升识别效果, 用最短的对话轮次解决用户问题; |
闲聊型 | 虚拟陪伴, 如“小冰” 兜底补充辅助, 避免冷场 |
检索式: 类似传统问答知识库检索的过程 生成式:基于知识库数据训练生成模型 |
开放域, ”聊不死“、不可控 | 聪明、聊不死、不尬聊, 带上下文. |
二、打造Chatbot的正确姿势
chatbot生命周期包括8个模块:
基于落地场景,具体问题具体分析, 而非局限于技术 (数学、概率论、算法、软件架构、工程能力、论文阅读、分析神经元神经网络 高维空间抽象能力等);
2.1 需求分析
- 确定chatbot边界
- 确定chatbot形象与背景故事, 商用、家用、车载、智能客服、个人助手?
- “六何”分析法 who why where what when how
2.2 流程设计
- 明确产品交互形态
- 基于实际中大量的对话脚本、场景、草稿等梳理出主要功能、对话场景边界、需要的数据资源、核心要素、抽取对话流程等信息.
- 确定优先级和关键要素信息, 如订票业务中, 第一优先级是订票、退票、改签、查询等; 第二优先级是各种规章制度等常见问题解答; 第三优先级是天气查询、最后是简单的问候答谢
- 多维度展示状态信息,如,出发有时间地点天气,到达同样也有时间地点天气等信息. 与chatbot的对话实际上是状态之间转换的有向图.
- 梳理业务要素**,既定义上下文变量**, 如订机票相关的实体信息收集 time、loacation_from、loacation_to 等.
- 画出流程分支图/泳道图.
2.3 数据处理
数据流的处理是对话系统的关键, 包括对话数据、知识数据、第三方随路数据等
- 数据收集: 主要指实体数据和对话样本数据(语料)
- 数据扩充: 同义词、反向翻译、生成对抗网络等.
- 数据清洗: (算法侧去噪、结构化处理、去停用词等)
- 数据标注: 对语料做聚类, 提升识别效果(贯穿chatbot整个生命周期)
2.4 对话脚本撰写
和图形式交互的线性流程不同, 对话脚本必须是实际用户对话内容流程, 用户可能会无视交互顺序
设计原则:
- 流程引导要简单明了
- 话术语句要自然拟人, 愉悦路线
- 话术生成干预(千人千面、随机策略)
- 有问候语结束语
- 流程中包含丰富的对话策略: 拒识、连续累计、重述、打断挂断、静默、负面情感态度等
- 考虑上下文、指代消解等case
- 控制对话流(主动式、被动式、混合式对话引导推荐)
2.5 对话系统搭建
chatbot=语音识别ASR+自然语言处理NLP(NLU+DM+NLG)+语音合成TTS
其中:
1.NLU: 自然语言理解, 将人的语言转化为机器可以理解的、结构化的、完整的语义表示: 如query中的意图、实体、敏感词、情感态度等识别提取
意图识别:识别用户的意图, 识别模型需要训练大量的数据,这样才能定义并获取准确的意图,最开始的数据获取相对比较难. 没有固定的评价标准,很多时候,用户语句中既有大意图,又有小意图,需要分类和耐心. 常用的技术有文本解析、文本匹配+DeepLearning等
(命名)实体提取:提取文本中的原子信息元素,如人名、组织机构、地理位置、时间等, 常用基于规则和统计学习方法的混合方案;
自然语言处理现阶段面临的5个难点:
- 语言不规律.语言错综复杂
- 语言可以自由组合, 组合出各种复杂的表达方式
- 语言是一个开发集合, 可以发明创造很多新的表达方式
- 语言有一定的知识依赖性, 一定的知识背景有助于语言的准确理解
- 语言的使用基于环境和上下文
涉及的算法引进
- 分词: nlu中最基础的概念
- 词袋模型BOW: 信息检索领域常用的文档表示方法, 将句子以向量的方式表示为字典,不保存句子中词的顺序,应用邮件过滤
- N元模型
- 词嵌入 Word Embedding:把自然语言中的词转换为计算机可以识别的数字向量的技术, 最简单的是基于词袋的One-hot, 高级词向量表示法: Word2Vec(自动实现词与词之间语义度量和类比)、FastText、BERT等
- 条件随机场CRF: 用于标注和划分词性标签领域, 如实体抽取;
- 循环神经网络RNN: 处理序列数据的神经网络,如某个单词的意思会因为上文提到的内容不同而不同, 循环神经网络擅长解决这类问题
- 序列到序列Seq2Seq: 输入编码为向量,再将向量解码为对应输入那句话的回复,广泛应用于翻译、句法分析、文本摘要等领域;
2.对话管理(DM)是对话系统的大脑,它主要干两件事情:
2.1)对话状态追踪dialog state tracking(DST)
一种将t时刻的对话表示为可供系统选择下一时刻动作信息的数据结构,既:每个槽值的取值分布情况, St=An(当前动作)+Sn-1(前n-1轮的对话状)
常见的DST分类:
1、基于人工规则:
如有限状态机FSM,人工预先定义好所有的状态和状态转移的条件,
使用分数或概率最高的nlu模块解析结果进行状态更新;
2、基于生成式模型:
是从训练数据中学习相关联合概率密度分布,计算出所有对话状态的条件概率分布作为预测模型;
3、基于判别式模型:
它把DST当作分类任务,结合深度学习等方法进行自动特征提取,从而对对话状态进行精准建模;
2.2)对话策略生成 dialog policy (DP)
对话策略根据DST估计的对话状态St,通过预设的候选动作集,选择系统动作或策略an.
DM-挑战&趋势
人的复杂性(complex)、随机性(random)和非理性化(illogical)的特点下,DM主要挑战与发展趋势:
挑战:
•①多个场景的切换与恢复
•②多轮对话的容错
•③超出领域的话语处理
•
趋势:
•①高效的混合DM模型(交互)
•②多模态人机DM方法
•③富有情感的DM交互
•④ 较低的交互变更难度
DM交引导交互形式
被动式 | 主动式 | 混合式 | |
---|---|---|---|
描述 | 一问一答,用户主导交互节奏 | 被动接受, 机器人主导交互节奏 | 用户和机器人交替主导 |
案例 | 服务形对话系统如:坐席助手,智能客服等 | 如: 房产推销、贷款催收等智能外呼任务 | 通用,基于业务场景灵活配置 |
优缺点分析 | 听话,一问一答保证不会出错 | 尽力保证传达任务 | 通用灵活 |
只有当用户主动提问,才会回复,易造成冰冷的体验, 不够智能化 | 目的性太强,特定的场景下的主动交互显得不够灵活智能 | 配置略繁琐, 如,不同流程是否需要不同引导、交互方案 |
3.自然语言生成(NLG):将DM模块输出的抽象表达转换为句法合法、语义准确的自然语言句子
以上,NLU—>DM–>NLG–> 是一个chatbot循环的数据流转直至完成任务的过程,其中,语义输入就是流转的动力,DM 是阻力(即通过每个对话节点需要补充的信息/付出的代价)
输入携带的语义信息越多,动力就越强; 完成任务需要的信息越多,阻力就越强。
2.6 对话效果测评
任务型 | 问答型 | 闲聊型 |
---|---|---|
自然语言理解测评: 意图识别(准确率、召回率、F值)、实体提取、语义容错、同义词转换、逻辑门支持(如:”除了xxx,其他的都可以”,”NOT XXX”)、多任务支持、口语方言支持等能力 对话管理测评: 任务完成率、平均对话轮次、用户满意度、引导能力、槽位补充/修复能力、意图继承能力(实体替换)、指代消解等 自然语言生成测评: 可读性、信息量、冗余度等 |
准确率、召回率 F值、问题解决率等 |
线上指标 客观评价 主观评价 |
整体来讲,对于任务型,在能完成任务的前提下,对话轮次越少说明系统越好; 对于闲聊型,对话轮次越多越好, 除了上述测评方案外, 通过定时分析日志优化测评也是一种手段 |
2.7 平台渠道集成
用户在哪里Chatbot就集成在哪里.
2.8运营反馈
运营手段的干预是一个对对话系统逆向反哺的过程,提升对话效果,形成良好的正向循环 ;
流量分析 | 对话异常分析 | 对话内容分析 | 用户分析 |
---|---|---|---|
对话(会话)流量 平台渠道分析 |
异常对话记录 热门退出消息 拒识、兜底回复次数 |
query聚类 意图统计 情感态度分析 消息漏斗转化路径分析 用户评分 词云分析 |
活跃、总数用户 留存率 活跃度 用户画像 |
三、商业应用&实战
- 保险助理
- 智能营销
- 内部协同
- 售后服务
推荐上手平台: 某度智能对话平台
文档: 智能客服对话平台文档中心