# Chap 7 知识回答
# 概述
- 知识回答系统接受适用自然语言表达的问题、理解用户的意图、获取相关的知识、最终通过推理计算形成自然语言表达的答案并反馈给用户
- 信息搜索以关键词搜索为代表,帮助用户发现包含关键词的网页或文档
- 搜索与知识问答的不同之处在于,搜索以文档来承载答案,搜索侧重更简单的用户体验,搜索无法处理跨领域的复杂问题
- 知识回答可以直接嵌入搜索引擎的结果页面,可以用于智能对话系统、智能客服智能助理,可以用于阅读理解(高考机器人)
# 知识回答的分类体系
# 问题类型与答案类型
- 早期的工作包括TREC测试集问题分类和ISI QA问题类型分类体系,还有更详细的综述
- Learning Question Classifiers (ACL 2002)
- A question/Answer Typology with Surface Text Patterns (ICL 2002)
- A survey on Question Answering Systems with Classification (2016)
- 综合分类体系的探索工作,面向知识图谱问答的构建中,问题类型分两类
- 事实性客观问题:语法结构简单(主谓宾明确),语义结构清晰(关于某事物的简单描述性属性)
- 主观深层次问题:观点型、因果型、解释型、关联型和比较型等,需要经过一定主观推理计算才能解答
# 知识库类型
- 内容边界:领域相关、领域无关
- 信息组织格式:文本类知识库、(半)结构化知识库、图像影音类知识库、可计算的模型类知识库
- 存储访问机制:集中存储、分布式存储、基于互联网
# 智能体类型
- 传统回答方法:关键词检索、文本蕴含推理、逻辑表达式等
- 切分为语义解析和查询两个步骤
- 基于深度学习回答方法:LSTM、注意力模型、记忆网络等
- 用神经网络将问题表示成向量,取知识图谱中与问句相关的实体向量,计算其与问句向量的语义相似度
# 知识回答系统
# NLIDB:早期的问答系统
- 例子:1961的BASEBALL,1972的LUNAR
- 方法:基于模式匹配、基于语法解析
# IRQA:基于信息检索的问答系统
- 流程:问题处理 -- 段落检索与排序 -- 答案处理
# KBQA:基于知识库的问答系统
把语义结果映射到知识图谱的本体后生成SPARQL查询回答问题,核心问题是找到从问题到知识图谱子图的最合理映射
QALD 是2011年开始针对KBQA系统的评测活动,从问题解析、词汇关联、歧义消解、构建查询、分布式知识库五个阶段做对比
# FAQ-QA:基于问答对匹配的问答系统
- 核心是计算问题之间的语义相似性,挑战是泛化(相同的语义有多种表达方式)和歧义(近似句子语义可能完全不同)
# Hybrid QA Framework:混合问答系统框架
IRQA和KBQA相融合
流水线架构:
优点:可插拔、粒度可优化
主要模块:
- 命名实体识别与歧义消解(NED)
- 实体关系映射(RL)
- 实体分类映射(CL)
- 构建查询(QB)
参考论文:
- Why Reinvent the Wheel:Let's build Question answering systems together (WWW 2018)
# 知识回答的评价方法
# 评价指标
功能指标:(常用F1(综合正确率和召回率)和P@1(首个答案正确率))
- 正确性:答案是否正确(美国总统是男的吗?)
- 精确度:答案是否缺失或多余信息(美国总统是谁?)
- 完整性:若答案是一个列表,应返回所有(列举美国所有总统。)
- 可解释性:给出答案的同时,也给出引文或证明
- 用户友好性:答案质量由人工评分
- 额外的评价指标:如词表差异性、答案分布散度、语义复杂度
性能指标:
- 响应时间
- 故障率:限定时间内是否给出答案
# 评价数据集
- TREC QA:评价IRQA
- TREC Live QA:评价CQA社区问答 (TREC 2015)
- QALD:评价KBQA
- sQuAD:评价端到端的问答系统解决方案
- Quora QA:评价问题相似度计算(Kaggle 2017)
- SemEval:词义消歧评测(2018年的比赛包含12个任务,主要包括推特情感与创造性语句分析、实体关联、信息抽取、词汇语义学、阅读理解与推理)
# KBQA前沿技术
- 基于模版的方法
- 基于语义解析的方法
- 基于深度学习的传统回答模块优化
- 基于深度学习的端到端问答模型
# 实践工具
- gAnswer系统是一个基于海量知识库的自然语言问答系统(JAVA),针对用户的自然语言问题,能够输出SPARQL格式的知识库查询表达式以及查询答案的结果,同时支持中文回答和英文回答,示例网站,github (opens new window)