知识问答与对话
知识图谱最直接和最重要的任务是满足用户的精确信息需求,提供个性化知识服务。
目前的问答只能事实型问题,不能很好地处理复杂问题。例如:为什么天是蓝色的。关注回答事实型问题的相关技术。
自动问答概述
九十年代中期,系统的主要特点:利用浅层自然语言处理技术分析问题,并利用信息检索等技术从大规模文本或网页红抽取答案。 由于用户需求的多样性和自然语言的复杂性,没有得到广泛应用。
两大困难:
- 缺乏高质量的知识资源
- 高效的自然语言技术
近几年,这两点有了很大的突破。
问答系统分很多类型: - 单文本问答系统:阅读理解式问答系统 如入学考试评测任务和斯坦福问答测试平台SQuAD
- 固定语料非结构化文本问答系统
从给定的文本语料中抽取答案 - 网络问答系统
从互联网中查找问题的答案,但是因为互联网动态变化,难以评测 - 知识库问答系统
知识问答和基于知识图谱的问答系统
从预先建立好的结构化知识库中查找问题的答案。本章主要是这两个方面:
知识问答
知识问答技术概述
结构化查询语言的有点事表达能力强,但是缺点是用户不但需要掌握结构化查询语言的语法,而且还要充分了解知识库中的资源表达形式。
使用自然语言进行人机交互是最简便、最直接也是最有效的一种模式。
按照技术分为两种类型:
- 语义解析类型
转化为结构化语句,就可以直接通过检索知识图谱得到精简答案。 - 搜索排序类型
首先通过搜索与相关实体有路径联系的实体作为候选答案,利用从问句和候选答案提取出来的特征进行比对,进而对候选答案进行排序得到最优答案,例如屠呦呦,得到宁波市,中国,诺贝尔奖等实体,进行匹配和排序得到答案。
基于语义解析的方法
实质是语义解析。首先需要对问句中的词/短语与知识图谱中的资源项进行映射,然后对匹配到的资源项进行组合,最后对匹配和组合存在的歧义进行消解,得到结果。
语义解析分为:
- 基于训练数据的有监督方法
有哪些城市靠近大海?
哪些城市,靠近大海的语义和之间的组合关系- 如何确定问句的字句(短语)和它们对应的形式化表示?
- 当已知各个子句的含义及其形式化表示,如何对它们进行语义组合?
1.语义组合模型
组合范畴语法的主要思想是把词的句法和语义信息组合在一起形成分析的基础词典,依据组合语法规则自底向上对自然语言句子进行解析。
2.语义辞典构造
逻辑表示语言
3.组合消歧模型
- 基于规则的无监督方法
- 语言分析工具模块
- 元素级匹配模块
- 三元组映射模块
- 融合和排序模块
基于搜索排序的方法
主题词,链接到实体库上。 从候选答案中选择正确的答案。或者排序。
- 基于特征工程的方法
对问句和候选答案定义特征,并使用特征工程的方法抽取它们,最后基于特征分配的分类模型对问题和答案匹配度进行建模。- 问句特征抽取
依存句法分析,抽取
问题词,如谁,哪
问句焦点词,如名字、时间
主题词,多个选一个出来
中心动词,和答案相关的一些信息
把依存语法树转为特征树 - 候选答案特征抽取
- 问句-候选答案匹配
- 问句特征抽取
- 基于表示学习的神经网络方法
知识对话
知识对话,对话系统是更自然友好的知识服务模式,可以通过多轮人机交互满足用户的需求、完成具体的任务等。
对话系统有几大特征:
- 多角色切换
对话中通常有两个甚至多个角色,可以是提问者,也可以是问题回答者等,并且在对话中,各角色之间常常交替变化 - 连贯性
对话的前后内容是有关联的、有逻辑的 - 多模态
真正的对话中,包括语音、文字、图片等
知识对话技术概述
- 语音识别
接收用户的输入信息,把输入转为计算机方便表示和处理的文字形式。 - 对话理解
对用户的输入信息进行分析处理,获得对话的意图 - 对话管理
根据对话的意图做出合适的响应,控制整个对话过程,使用户和对话系统顺利交互,解决用户的问题 - 任务管理
根据具体的任务管理对话过程所涉及的实例型知识数据和领域知识 - 对话生成
负责将对话管理系统的决策信息转换成文本结构的自然语言 - 语音合成
负责将文本结果的信息转换成语音数据发送给用户
分为两类: - 任务导向型系统
用户在使用系统时有确定的目标,一般为确定任务,如:订机票、查路线等 - 通用对话系统
用户没有具体目标,可能在多个任务之间切换
任务导向型对话模型
首先是系统引导对话,用户输入意图,通过用户输入和系统引导的方式交互地完善用户意图信息。
- 自然语言理解
目的是将文本数据表示的信息转换为可被机器处理的语义表示。
订机票有车次、类型、出发站、到达站、出发时间、到达时间、历时、票价
难度:- 同样的意思有很多种不同的表达方式
- 自然语言表达常常存在不确定性
相同语言表达在不同语境下的语义可能完全不同 - 在自然语言中往往存在不规范、不流畅、重复、指代甚至是错误等情况 基于规则和模板,但是无法覆盖全。
槽抽取作为一个序列标注问题,通过对每个输入词的标注和分类找出各个槽对应的值。
- 对话管理
最重要的部分,也是体现其区别于问答系统的核心步骤。
用于控制对话的框架和结构,维护对话状态,通过与任务管理器的交互生成相应的动作。
方法有:- 基于有限状态自动机的方法
最简答的对话管理方式。
把任务完成过程中系统向用户询问的各个问题表示为状态,而整个对话可以表示为状态之间的转移。 - 基于框架的方法
使用任务常常用框架表示,根据槽的情况控制对话的过程。由于可以一次获取框架中的多个槽值,因此,不需要重新询问用户已经提供过的信息。另外,填写各个槽值的时候也不需要按照固定的顺序进行, - 基于概率模型的方法
以上两种均需要人工制定规则,耗费人力。基于概率统计的对话管理方法,使用数据驱动的方法自动学习对话模型。对话过程是个连续决策任务。
动作集合的目标是最大化完成任务回报等最小化损失。基于MDP求解的过程。
- 基于有限状态自动机的方法
- 自然语言生成
得到具体的回复内容。- 内容选择
管理模块决定 - 内容描述
生成模块
基于编码器和解码器的深度学习模型 + 知识检索
实体词 ,三元组- 编码器
将问句和检索的知识实例编码成向量,以便后续深度生成模型利用。 - 解码器
根据答案和知识的编码向量生成自然答案。比如答案李连杰出生在北京
- 编码器
- 内容选择
通用对话模型
- 基于模板的任务
处理和生成的句式简单,也比较固定,能处理的领域有限,不能处理复杂的对话,处理的自然度差。
输出关键词,和符合语法的输出。比较生硬,不够自然。 - 端到端的方法
深度学习从原始对话中学习对话模型,从而对各种各样的消息进行回复。
如果把句子(消息-回复)看出词的序列,那么对话的建模就是一个学习一个词序列X=[x1,x2,…,x3]到词序列Y=[y1,y2,…y3]转化的任务。
基于深度学习的seq2aeq模型。
采用的是编码器-解码器的框架。基于编码器得到抽象编码表示,另一个RNN用于解码。
评价方法
难以评价。人工评估和测试
用户满意度调查有几项:
- 文本识别模块的性能
- 任务易用度
- 交互速度
- 用户体验
- 系统范阔
- 期望行为
- 未来使用
评价指标基于以下两个准则: - 最大化任务完成度
- 最小化成本开销