知识图谱入门 【一】- 认识图谱技术
知识图谱入门 【二】- 知识表示与知识建模
知识图谱入门 【三】- 知识抽取
知识图谱入门 【四】- 知识挖掘
知识图谱入门 【五】- 知识存储
知识图谱入门 【六】- 知识融合
知识图谱入门 【七】- 知识推理
知识图谱入门 【八】- 语义搜索
知识图谱入门 【九】- 知识问答


知识问答简介

问答系统的历史如下图所示:

可以看出,整体进程由基于模板到信息检索到基于知识库的问答。基于信息检索的问答算法是基于关键词匹配+信息抽取、浅层语义分析。基于社区的问答依赖于网民贡献,问答过程依赖于关键词检索技术。基于知识库的问答则基于语义解析和知识库。

根据问答形式可以分为一问一答、交互式问答、阅读理解。一个经典的测评数据集为QALD,主要任务有三类:

  • 多语种问答,基于Dbpedia
  • 问答基于链接数据
  • Hybrid QA,基于RDF and free text data

知识问答简单流程与分类

上图为知识问答的简单流程,首先将用户输入的问句经过语义匹配等转换为查询语言进行查询和推理,而后得到答案再进行组合以形成人类可阅读的文本。

传统的问答方法是基于符号表示的,常用的有:

  • 基于关键词的检索
  • 基于文本蕴含推理
  • 基于逻辑表达式

一个简单的基于符号表示的例子如:

基于深度学习的问答方法是基于分布式表示的,常用的有:

  • LSTM
  • Attention Model
  • Memory Network

KBQA的基本概念和挑战

下面对一些基本概念做一个总结:

  • 问句短语定义问的是什么? 如wh-words: who, what, when…
  • 问题类型:问题类型决定了后续采用什么样的回答处理策略,如事实型问题、观点型问题、因果型问题、方法型问题等。
  • 答案类型: 如实体、地理位置、时间等。
  • 问题主题:问题是关于哪方面的?如 “世界上最高的山是?” 它就和地理、山峰这两个相关。
  • 问答来源类型: 包含是不是结构化的数据、数据的来源等。
  • 领域类型:如开放领域还是特定领域、多模态问答还是其他的。
  • 答案格式:是司法文书还是定义式的短答案等。
  • ……

问答质量如何评估呢?一般有6个原则,包含相关度、正确度、精炼度、完备度、简单度、合理度。

问答系统的基本组件

如下图所示:

该系统使用自然语言问题作为输入,经由:

  • 数据预处理:处理数据库数据,包含索引、数据清理、特征提取等。
  • 问题分析:执行语法分析,同时检测问题的核心特征,如NER、答案类型等。
  • 数据匹配:将问题里的terms 和数据里的实体进行匹配。
  • 查询创建:生成结构查询候选。
  • 排序
  • 结果返回与生成:执行查询并从结果里抽取答案。

技术挑战

  • 怎样缩小自然语言和规范化结构化数据之间的鸿沟
  • 怎样处理不完全、充满噪音和异构的数据集.
  • 怎样处理大规模的知识图谱
  • 怎样处理分布式数据集上的QA
  • 怎样融合结构化和非结构化的数据
  • 怎样降低维护成本
  • 怎样能快速的复制到不同的领域

知识问答主流方法介绍

KBQA常用的主流方法有 基于模板的方法、基于语义解析的方法、基于深度学习的方法。下面分别对其进行详细介绍。

基于模板的方法

基于模板的方法包含模板定义、模板生成,模板匹配三大部分。论文参见TBSL(Unger et al.2012)。

为了理解用户的问题,我们要理解:

  • 问题中的词汇:如died in →→ dbo:deathPalce

  • 问题的语义结构:如 the most N →→ ORDER BY DESC(COUNT(?N)) LIMIT 1

基于模板问答的目标就是将语义结构分析和词映射到URIs,该方法有两个重要的步骤:

  • 模板生成:将问题解析为SPARQL模板,该模板能直接反应问题的结构如filters 和 aggregation 这样的操作。

  • 模板实例化:通过匹配自然语言表达式和本体概念来实例化SPARQL 模板。

举个例子:

TBSL的架构如下图所示:

模板定义

结合KG的结构,以及问句的句式,进行模板定义。通常没有统一的标准或格式。TBSL的模板定义为SPARQL query模板,将其 直接与自然语言相映射。

模板生成

模板生成大致分为如下四个步骤:

  • 获取自然语言问题的POS 标记信息
  • 基于POS 标记、语法规则表示问句
  • 利用领域相关或领域无关词汇辅助解决问题
  • 最后将语义表示转化为一个SPARQL 模板

例如:

模板匹配与实例化

有了SPARQL模板以后,需要进行实例化与具体的自然语言问句相匹配。即将自然语言问句与知识库中的本体概念相映射的过程。

对于resource 和 class实体识别,用WordNet 定义知识库中标签常用方法或计算字符串相似度。对于property标签,将还需要与存储在BOA 模式库中的自然语言进行比较,最高排位的实体将作为填充查询槽位的候选答案。如:

排序打分

首先每个entity 根据 string similarity 和 prominence 获得一个打分。一个query 模板的分值根据填充slots 的多个entities 的平均打分。在检查type 类型后,对于全部的查询机和,仅返回打分最高的。

TBSL的主要缺点

  • 创建的模板未必和知识图谱中的数据建模相契合

  • 考虑到数据建模的各种可能性,对应到一个问题的潜在模板数量会非常多,同时手工准备海量模板的代价也非常大。

那模板能否自动生成呢?据此有人提出了 QUINT,它能够根据utterance-answer 对, 根据依存树自动学习utterance-query 模板。该方法利用了自然语言组成的特点,可以使用从简单问题中学到的模板来解决复杂问题。QUINT架构如下图所示:

基于语义解析的方法

语义解析经典方法参考

基于语义解析的方法大致包含四个部分: 资源映射、逻辑表达式、候选答案生成、排序。

资源映射

资源映射将自然语言短语或单词节点映射到知识库的 实体 或 实体关系。 可以通过构造一个词汇表(Lexicon)来完成这样的映射。而后通过逻辑表达式解决文本的歧义。对于复杂映射如”was also born in” 到 PlaceOfBirth这种,就较难通过字符串匹配的方式建立映射,对此我们可以采用统计方法。如e1 和 e2经常出现在这两个词的两侧,那么我们就认为可以建立映射。

逻辑表达式

逻辑表达式是一种能让知识库”看懂“的表示,可以表示知识库中的实体、实体关系,并且可以想数据库语言一样,进行Join,求教及和聚合等操作。逻辑形式通常可分为一元形式和二元形式,一元实体是指对应知识库中的实体,二元实体关系是对应知识库中所有与该实体相关的三元组中的实体对。

基于深度学习的方法

KBQA 与深度学习结合的两个方向,第一个是利用深度学习对于传统问答方法进行改进,另一个是基于深度学习的端到端模型。

目前基于深度学习的方法无须像模板方法那样人工编写大量模板,也无须像语义分析方法中人工编写大量规则,整个过程都是自动进行。但缺点也很明显,它目前只能处理简单问题和单边关系,对于复杂问题不如两种传统方法效果好。同时由于DL方法通常不包含聚类操作,因此对于一些时序敏感性问题无法很好的处理。


来自:知识图谱入门 (九) - Pelhans 的博客
http://pelhans.com/2018/04/28/xiaoxiangkg-note9/​​​​​​​

知识图谱入门 【九】- 知识问答相关推荐

  1. 知识图谱入门 (九) 知识问答

    欢迎大家关注我的博客 http://pelhans.com/ ,所有文章都会第一时间发布在那里哦~ 本节对知识问答的概念做一个概述并介绍KBQA实现过程中存在的挑战,而后对知识问答主流方法做一个介绍. ...

  2. 知识图谱入门 (一) 知识图谱与语义技术概览

    欢迎大家关注我的博客 http://pelhans.com/ ,所有文章都会第一时间发布在那里哦~ 知识图谱与语义技术概览.主要介绍知识表示.知识抽取.知识存储.知识融合.知识推理.知识众包.语义搜索 ...

  3. 知识图谱入门——认识知识图谱

    知识图谱是知识工程的分支,在人工智能领域有重要的作用.我们日常使用的搜索引擎背后的工作逻辑****.电商平台的智能推荐等都运用了知识图谱,本文主介绍知识图谱的基本概念.相关技术,以及知识图谱构建流程. ...

  4. 知识图谱入门 (三) 知识抽取

    欢迎大家关注我的博客 http://pelhans.com/ ,所有文章都会第一时间发布在那里哦~ 本节介绍了针对结构化数据.非结构化数据.半结构化数据的知识抽取方法. 知识抽取的概念 知识抽取,即从 ...

  5. 知识图谱入门 , 知识问答

    向AI转型的程序员都关注了这个号

  6. 知识图谱入门 , 知识抽取

    向AI转型的程序员都关注了这个号

  7. 知识图谱 01:知识图谱概述

    前言   本内容主要介绍 知识图谱(Knowledge Graph) 的发展.定义.构建和应用. 1.1 知识图谱的发展   知识图谱(Knowledge Graph)的起源可以追溯到 1960 年, ...

  8. 知识图谱入门 【八】- 语义搜索

    知识图谱入门 [一]- 认识图谱技术 知识图谱入门 [二]- 知识表示与知识建模 知识图谱入门 [三]- 知识抽取 知识图谱入门 [四]- 知识挖掘 知识图谱入门 [五]- 知识存储 知识图谱入门 [ ...

  9. 知识图谱入门 【一】- 认识图谱技术

    知识图谱入门 [一]- 认识图谱技术 知识图谱入门 [二]- 知识表示与知识建模 知识图谱入门 [三]- 知识抽取 知识图谱入门 [四]- 知识挖掘 知识图谱入门 [五]- 知识存储 知识图谱入门 [ ...

最新文章

  1. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
  2. Asp.Net构架(Http请求处理流程) - Part.1
  3. python正态分布相关函数
  4. 使用gcc的-finstrument-functions选项进行函数跟踪
  5. thinkPHP开发基础知识 包括变量神马的
  6. mysql查看隔离模式_InnoDB 隔离模式对 MySQL 性能的影响
  7. 判断目录是否存在并创建mkdir
  8. burpsuite破解版
  9. 王道考研 计算机网络8 物理层基本概念 数据通信相关术语
  10. spring异常处理-HandlerExceptionResolver
  11. 内存管理:Linux Memory Management:MMU、段、分页、PAE、Cache、TLB
  12. JavaScript的浪漫,520一生一世!!
  13. python函数isdisjoint方法_Python学习之---Python中的内置函数(方法)(更新中。。。)...
  14. 使用 openssl 生成证书
  15. niceScroll的使用方法
  16. Android游戏:弹弹球(打砖块)
  17. 如何做一个企业网站制作
  18. mencoder MPlayer 参数详细
  19. HTML和CSS中的图像与背景图像
  20. Hostker云主机

热门文章

  1. 大白话5分钟带你走进人工智能-第30节集成学习之Boosting方式和Adaboost
  2. 小猫爪:S32K3学习笔记09-S32K3之Safety简介
  3. Android 13:一文看懂两大重磅升级
  4. 杨辉三角队列c语言程序,C语言完整队列 与链式队列实现杨辉三角
  5. 站长百科访谈第59期:张清分享网站优化技巧
  6. 南京2级计算机成绩查询,南京审计大学教务管理系统登录入口、成绩查询网上选课查分...
  7. js逆向爬虫某openLaw网站
  8. Unity 之 Profiler概述
  9. 从旧金山到瑞典的开发者的福利
  10. 条件随机场介绍(7)—— An Introduction to Conditional Random Fields