肖仰华 | 基于知识图谱的问答系统

本文转载自公众号知识工场


                                              

本文整理自复旦大学知识工场肖仰华教授在VLDB 2017 会议上的论文报告,题目为《KBQA: Learning Question Answering over QA Corpora and Knowledge Bases》,作者包括:崔万云博士(现上海财经大学讲师),肖仰华教授(复旦大学)等等。


VLDB (Very Large Data Base) 是数据库领域最顶尖的国际会议之一,被中国计算机学会推荐国际学术会议列表认定为 A 类会议。涵盖数据库系统、数据管理、大数据处理、数据挖掘等各个研究领域,是展现数据库前沿科研成果以及探讨数据库未来发展方向的盛会。


肖仰华:大家好,非常高兴能在这里与大家分享我们的论文。


问答系统(QA)已经成为人类访问十亿级知识图谱的流行方式,它回答的是自然语言问题。 QA系统最有名的故事之一就是IBM WATSON在2011年参加了Jeopardy竞赛,打败了所有人类竞争对手,获得了100万美元的奖励。



QA的研究非常重要。首先,从应用角度来看,QA系统降低了人机交互的门槛, 非常适合成为互联网的新入口。作为聊天机器人的重要组件,吸引了来自工业界的大量关注。

从人工智能角度来看,QA是评估机器智能的一个重要任务,也就是图灵测试。同时,QA还是许多AI技术的重要测试平台,比如机器学习,自然语言处理,机器认知等等




现在我们来谈谈知识库。近年来,我们目睹了知识库的发展,越来越多的大规模知识库涌现出来,如Google Knowledge graph,Yago和Freebase等。这些知识库具有体量大,质量高的特点。

一个知识库包含了大量的结构化数据。右图给出了一个关于Obama的知识图谱示例。知识库中的每一个三元组代表一个知识或某个事实。 例如,一个三元组(d,人口,390k)表示檀香山的人口为390k。




KBQA指的是以知识库作为答案来源的问答系统。

那么它是如何工作的呢?关键在于将自然语言问题转换为知识库上的结构化查询。例如,要回答“有多少人住在檀香山?”这个问题,我们需要将其转移到SPARQL或者SQL查询。 这里的关键问题是属性推断。


关于属性推断,我们面临两个挑战。

第一个挑战是问题表示。对于任意一个QA系统,我们需要一个具有代表性的问题表示来帮助识别具有相同语义的问题,同时区分不同意图的问题。

第二个挑战是语义匹配,如何将问题表示映射到知识库中的结构化查询?



然而,之前的解决方案并不能解决上述提出的挑战。

我们研究了两个主流的解决方案。

第一个是基于模板/规则的方法。这个方法用模板表示句子,语义解析往往通过人工标记来实现。这种方法的优点是它的结果是用户可控的,这使得它更适用于工业用途。缺点是严重依赖人工,成本太高,昂贵的人力成本使得它无法处理多样性的问题。

另一个是基于神经网络的方法。最近这种做法很受欢迎,它们通过embedding的方式来表示一个问题,并从QA语料库中学习出它的语义解析。这种方法的优点是embedding是灵活的,所以它可以理解各种各样的问题。缺点是基于神经网络的方法通常具有较差的解释性,此外,结果是不可控的,所以他们并不适用于工业应用。

因此,我们不禁会想:能不能提出一种新的方法兼备这两种方法的优点?



为了做到这一点,我们用模板来表示自然语言问题。 例如,“檀香山有多少人?”的模板成为“城市里有多少人?”。因为使用了模板作为问题表示,我们的方法具有可解释性和用户可控性。

然而,我们并不是手动标记模板,而是从QA语料库中自动学习模板。 最终,我们为2,782个意图学到了2,700万个模板,这么大量的数据保证我们可以理解不同的问题。


这个系统体系结构如图所示。它主要包括两个过程:离线预处理部分和在线QA部分。

我们先来看看离线过程,离线过程的目标是学习出从模板到属性的映射。

再来看在线部分,当一个问题进来,系统首先将其解析和分解为一组二元事实型问题。对于每个二元事实型问题,系统使用概率推断来寻找它的值。这个推断是基于给定模板的属性分布来得到的。



接下来,我们对这个问题进行形式化定义。给定问题q,问答系统的目标是寻找具有最大概率的答案v(其中,v是一个简单值)。

我们提出了一个生成模型来解释如何为一个问题找到它的答案。

我们认为使用概率推断的方法来做KBQA是非常合理的。首先,一些问题的意图是模糊的。其次,大多数知识库都是不完整的。最后,QA语料库中的答案也可能是错误的。





我们以这个问答对来说明这个生成过程。


从用户问题q开始,我们首先生成或者说识别出其中对应的知识库中的实体d。


在知道问题和实体之后,我们根据d的概念分布生成模板t。 这样,我们得到了一个模板“有多少人住在某城市?”



由于属性只与模板有关,所以我们推断出这个属性的模板为“population”。


最后,给定实体d和属性population,我们通过查找知识库来得到它的答案。



通过这种方法,我们完成了从一个自然语言问题到生成答案的整个过程。这个过程可以建模为一个概率图模型。

基于这个生成模型,可以得到一个联合概率分布,进而用来解决给定其他变量求最大v的条件概率问题。



下一个问题是如何计算出联合概率分布公式中的每一种概率。

我们可以从语料库直接估计出来大部分的概率。例如实体分布的概率,模板分布的概率以及值分布的概率。

我们从雅虎问答的4200万的QA pairs中,学习出问题模板和属性的映射关系。表中展示了QA语料库中的一些例子。




最后我们来估计P(P|T)的值。基本思路是将P(P|T)作为参数,然后使用极大似然法来估计P(P|T)。

这里我们使用了EM算法来进行参数估计。



KBQA的另一个难点就是回答复杂问题。在面对复杂问题时,我们采用了分治算法。首先,系统把问题分解为一系列的二元事实型问题,然后系统依次回答每个问题。每个问题的答案都是一个概率,我们通过动态规划算法找到最优分解。



接下来我们来看看实验部分。我们首先通过实验证明属性推断的有效性。我们从学习出的属性数量和模板数据来对比我们的方法和bootstrapping方法。结果表明,我们的KBQA方法能得到更多的属性和模板, 这意味着KBQA在属性推理中更有效。大量的模板可以确保KBQA理解不同的问题模板,同时,大量的属性可以确保KBQA理解不同的关系。


我们也在很多benchmarks上用到了我们的KBQA。图为QALD-5的结果。结果表明,KBQA具有最高的准确度。由于KBQA只回答二元事实型问题,因此召回率相对较低。如果我们只考虑二元事实型问答,召回率能上升到0.67。


即使在一个不以二元事实型问题为主的数据集中(如WEBQUESTIONS,QALD-3),KBQA也可以作为混合问答系统的一个完美组件。


我们这样构建混合问题系统:一个问题过来,首先提交给我们的KBQA系统。如果KBQA系统不能回答,这意味着这个问题很可能不是二元事实型问题。然后,我们再将这个问题提交给baseline系统。


结果表明,当使用了我们的KBQA系统后,baseline系统的性能都有了很明显的提高。

最后,我们对本文进行总结。我们构建了一个基于知识库的问答系统KBQA。 我们的QA系统和以前的系统有两个明显区别:第一,它使用模板理解问题;第二,它从非常大的QA语料库中学习语义解析。


我们认为系统还有很多可以改进的地方。 首先,目前关于QA系统的研究主要建立在开放领域的知识库上。因此,研究如何使这些系统适应不同特定领域的应用是非常重要的。 其次,我们希望可以通过常识推理来更深入的理解问题。 再者,由于知识库仍然存在数据缺陷问题,如何使用互联网作为外部知识变得非常重要。

 获取论文和完整PPT

关注“知识工场”微信公众号,回复“20170907”获取下载链接。



以上就是肖仰华教授在VLDB 2017 会议上为大家带来的全部内容。知识工场实验室后续将为大家带来更精彩的文章。请大家关注!

          



OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】3月21日打卡-Day6

题1 水壶问题 描述 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶 清空…

【小夕精选】YJango 7分钟带你领略你未曾想过的线性代数+微积分

小夕很早之前就想转一些精彩的技术文章,这样哪怕没有时间写作的时候,也能把优质的干货分享给大家~然鹅,由于我也不知道是什么的原因,就不小心拖到了现在╮( ̄▽ ̄"")╭之前有不少粉丝希…

【LeetCode】3月22日打卡-Day7

题1 描述 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 示例 1: 输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 2, 3]。…

手写实现李航《统计学习方法》书中全部算法

https://github.com/Dod-o/Statistical-Learning-Method_Code

白硕 | 基于区块链的众包社区激励机制

本文整理自白硕老师在 YOCSEF 武汉专题论坛:“人工智能遇到区块链,是惊鸿一瞥还是天长地久?”的报告。 很高兴有这个机会跟大家交流。我先讲几个案例作为引子。第一个案例与知识图谱有关。这个公司做的是非常垂直的一个领域,安全教…

【小夕精选】多轮对话之对话管理(Dialog Management)

这一篇是一段时间之前小夕初入对话领域时刷到的徐阿衡小姐姐写的一篇文章,写的深入浅出,十分适合有一定基础的情况下想快速了解对话管理技术的童鞋阅读~另外顺手推一下阿衡小姐姐的订阅号「徐阿衡」,干货满满不要错过哦~这一篇想写一写对话管…

【LeetCode】3月23日打卡-Day8

题1 链表的中间结点 描述 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5…

KD Tree的原理及Python实现

1. 原理篇我们用大白话讲讲KD-Tree是怎么一回事。1.1 线性查找假设数组A为[0, 6, 3, 8, 7, 4, 11],有一个元素x,我们要找到数组A中距离x最近的元素,应该如何实现呢?比较直接的想法是用数组A中的每一个元素与x作差,差的…

漆桂林 | 知识图谱的应用

本文作者为东南大学漆桂林老师,首发于知乎专栏知识图谱和智能问答 前面一篇文章“知识图谱之语义网络篇”已经提到了知识图谱的发展历史,回顾一下有以下几点: 1. 知识图谱是一种语义网络,即一个具有图结构的知识库,这里…

NLP预训练之路——从word2vec, ELMo到BERT

前言 还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net和SLQA超过人类,百度在MS MARCO上凭借V-Net霸榜并在BLEU上超过人类。这些网络可以说一个比一个复杂,似乎“如何设计出一个更work的task-specific的网络"变成了NLP…

论文 | 信息检索结果Ranking的评价指标《RankDCG: Rank-Ordering Evaluation Measure》

未经允许,不得转载,谢谢~~ 一 文章简介 为什么要提出这个新的评价算法? 我们都知道ranking过程对于信息检索的结果是非常重要的,那么我们就需要有一些算法能评价ranking的结果到底如何。现有用来评价ranking的常用算法有&#xff…

【LeetCode】3月24日打卡-Day9

题1 按摩师 描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长&#x…

肖仰华 | 基于知识图谱的用户理解

本文转载自公众号知识工场。 本文整理自肖仰华教授在三星电子中国研究院做的报告,题目为《Understanding users with knowldge graphs》。 今天,很高兴有这个机会来这里与大家交流。 前面两位老师把基于社会影响力的传播和推荐,以及跨领域的…

【LeetCode】3月25日打卡-Day10

题1 三维形体的表面积 描述 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 示例 1: 输入:[[2]] 输出:10 示例 2&#xf…

NLP的游戏规则从此改写?从word2vec, ELMo到BERT

前言还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net和SLQA超过人类,百度在MS MARCO上凭借V-Net霸榜并在BLEU上超过人类。这些网络可以说一个比一个复杂,似乎“如何设计出一个更work的task-specific的网络"变成了NLP领…

信息检索IR评价中常见的评价指标-MAP\NDCG\ERR\P@10等

信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估的活动。通过评估可以评价不同技术的优劣,不同因素对系统的影响,从而促进本领域研究水平的不断提高。信息检索系统的目标是较少消耗情况下尽快、全面返回准…

科普 | “开放知识”的定义

OpenKG 主要关注知识图谱数据(或者称为结构化数据、语义数据、知识库)的开放,广义上 OpenKG 属于开放数据的一种。 关于“开放”的定义,比较好的参考是由国际开放知识基金会 OKFN.ORG(Open Knowledge International)给与的“开放知…

【LeetCode】3月26日打卡-Day11

题1 车的可用捕获量 描述 在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B…

【小夕精选】如何优雅而时髦的解决不均衡分类问题

之前小夕因项目需要研究了一小阵子的不均衡(文本)分类问题,不过没有研究的太过深入,也没有总结出一套成体系的处理思路。正好今天发现数据挖掘大佬「微调」在知乎上写了一个言简意赅又很具有实际操作价值的回答,于是搬…