本文为EDU公开课[启发式对话中的知识管理--思必驰 葛付江]学习笔记,欢迎参考指正。
Table of Contents
对话系统的架构
对话系统和问答系统的区别是有上下文场景,需要控制对话状态来完整理解用户意图。
对话系统流程
特征处理
分词,词性标注,命名实体识别
理解
领域判断(通过模版和分类算法的方式将问句限定在一个固定的场景下,方便后续处理)->(通过槽位填充)获得结构化意图->(对话管理模块对语义成分进行判断补全)得到结构化信息->送到后台查找
生成答复
提取信息-生成答复-回答自然化
对话系统架构
DM对话管理:维护上下文信息。三种形式:启发式对话,流程图(客服),槽位填充(天气查询)。
NLU意图理解:知识图谱,问答,通用意图分类
排序决策-答案生成-回复
机器人评价指标及现状
- 评价指标
- 准确率:多轮对话中,回答正误比。
- 人工打分:对于某些不能绝对判断的回复,比如不实很合理但可以接受的回复,给个区间分数。
- perplexity,blue值:从语言流畅度方面衡量,可以自动判断,但很难从语意上判断好坏。
- 现状
- 多轮对话(准确率)
- 在极窄领域(比如订餐),机器学习和基于模版的方法都能达到90%
- 较大领域(比如客服)场景较复杂,机器学习低于50%,目前检索式或者基于模版基本可用但需要人工编辑大量模版
- 闲聊(人工打分,满分5分)
- SEQ2SEQ 2.68
- 优化方法:解码过程加入互信息,重排序;强化学习
- 存在的问题:万能句回复较多;商用回复不可控
- 多轮对话(准确率)
启发式对话系统
当用户不清楚问什么的时候,根据用户的问题主动引导对话交互。大致流程:
- 用户问题以多种形式(问答对,知识图谱)连接到知识点(KG里实体相关属性)上。
- 将知识点融合进话题。
- 话题之间根据语义或逻辑关系进行跳转,对话过程就是根据话题来做整体的规划以及跳转。
对话系统中的知识管理
知识在对话意图理解中的作用
-通过规则系统
-类似正则的语法:包含变量、pattern
-词典和规则组织方式:词典层次结构;规则重用
-通过意图分类(机器学习)
-以关键词、标签作为特征,对类别进行划分。比如天气相关的问题,可以直接播报天气,不去理解具体问题。
-通过文本分类算法。需要标注语料,标签歧义可能导致分类错误。
-通过问句检索
-适用于闲聊和客服,需要大量的问答对。
-具体方法:通过倒排索引检索候选问题,然后进行重排序(特征加权,DSSM,Learning to rank)
-通过问句分类(embedding)
-使用 Seq2Seq 深度学习模型进行问句分类或者相似度计算.
-中间层可获得意图表示,再解码出答案,用于生成式闲聊
-神经网络中间层还可用于问句分类和相似度计算
解析完的语义可确定对应的意图和话题,并通过 QA 对和知识图谱检索答案。
对于 QA 对来说,重要的是计算句子间的相似性,这样才能检索到与已有问句相似的问题。
QA对
-LSTM(句子相似性)
-把用户问题和标准库中的问题通过LSTM抽取语义信息编码,计算这两个语义向量的距离而求出它们是不是相似。
-序列匹配网络
-适合输入较长的场景
-全Attention模型
-适合输入较短的场景
知识图谱
-通过逻辑表达式,将问句表述为实体及实体之间的关系。利用这种严格的逻辑表达式搜索回答问题所需的知识..
-知识图谱在规模较大的情况下很难处理,因为用户的表达很难严格地与知识图谱匹配.
-实体识别+句法分析+关系识别
集成学习
-流水线处理:多个模型串行,得到答案即输出
-模型集成:多个模型并行,对结果进行对比后输出
知识在对话管理中的作用
基于slot filling
-有上下文,如何控制对话状态
-无上下文,需要定义好对话场景
基于话题的对话管理
-话题树的整理(人工构建,引导用户构建,统计挖掘)
-应用场景:企业服务中用户拥有很多话题
-常见问题:系统后台话题的划分会有较多的交叉
话管理一般可以表示成状态的变换过程,即马尔科夫决策过程:
利用深度强化学习对对话状态跟踪
-强化学习智能体会模拟多轮对话,并最后反过来判断为当前对话规划什么样的主题比较合适。
-在整个过程中,奖励函数是非常核心以及难以定义的部分。
-当一个状态S有M种操作的时候,尽可能尝试每一种操作,选择回报最高的操作。
-对抗网络使用较少,某些情况下会强制调整对话走向,稳定性不好。
知识辅助理解
-上面方法使用过程中都会存在一些问题-如何判断相关不相关/是否提供答案,知识可以进行辅助判断。
-知识分两种:一种是知识图谱;另一种是语言知识,领域问题
-直接使用KG,有时无法解析全部问题。使用深度学习可以给出很多候选答案,通过KG进行分析,获取证据来选择答案。
总结
启发式对话和知识的结合来引导对话交互。
知识(知识图谱,领域词典,语法)和意图理解算法的结合可以提高对话理解的容错能力
-知识作为上下文,特征
-知识作为算法决策的依据-重要应用
数据分布的重要性
-对数据进行筛选来符合数据分布,提高算法的效果。