0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文让你了解知识图谱多跳问答

深度学习自然语言处理 来源:MIRA Lab 作者: 蔡健宇 2021-04-19 09:24 次阅读

一、简介

1. 什么是问答

问答 (Question Answering) 是自然语言处理 (Natural Language Processing) 的一个重要研究领域。在该领域中,研究者们旨在构建出这样一种系统:它可以针对人类以「自然语言形式」提出的问题自动地给出答案。

问答这一领域的研究成果已经早已普及我们每个人的生活。例如,当你清晨起床询问你的智能语音助手 “今天天气怎么样”时,你会得到类似这样的回答:“今天是晴天,温度 15-22 摄氏度”。

与传统的信息检索以及数据库检索不同的是,问答这一领域旨在研究那些以「自然语言形式」给出的问题,而非结构化的查询语言,这更符合日常生活中的应用场景。但自然语言的模糊性也为问题的准确理解带来了很大困难。

同时,问答的数据源可能是多种多样的。在不同的场景下,结构化的知识图谱以及无结构的文本均有可能是潜在的数据源。因此,针对不同的数据源研究相应的推理算法也是当前问答领域的热门方向之一。

因此,总结一下,构建一个高质量问答系统的关键点在于:

准确的问题理解技术

针对不同的数据源设计合适的推理算法

本文将重点针对以「知识图谱」为主要数据源的问答场景(知识图谱问答)进行介绍。首先,我们回顾一下知识图谱的相关概念与定义。

2. 什么是知识图谱 ?

知识图谱 (Knowledge Graph) 是一种以「多关系有向图」形式存储人类「知识」的数据结构。知识图谱中的每个节点表示一个实体,两个节点之间的有向边表示它们之间的关系。例如,《姚明》 是一个实体,《上海》 也是一个实体,它们之间的关系是 《出生于》。这样的一个三元组 《姚明,出生于,上海》 表示一个事实 (Fact)。

同样作为问答的数据源,与无结构的文本数据相比,结构化的知识图谱以一种更加清晰、准确的方式表示人类知识,从而为高质量的问答系统的构建带来了前所未有的发展机遇。

3. 什么是知识图谱问答?

知识图谱问答 (Question Answering over Knowledge Graphs),顾名思义,指的是使用知识图谱作为主要数据源的问答场景。对于给定的问题,我们基于知识图谱进行推理从而得到答案。这一技术已经被业界广泛地使用于相关智能搜索与推荐业务中,其中最著名的当属谷歌的搜索引擎业务。

例如,对于这样一个比较简单的问题 “姚明的出生地是哪里?”,谷歌通过知识图谱中 《姚明,出生于,上海》 这个三元组得到答案是 《上海》 这一实体。

图 1:谷歌搜索引擎基于知识图谱对于简单问题的回答

对于更加复杂的一些问题,如 “成龙的父亲的出生地是哪里?”,谷歌依然可以通过知识图谱中的多个三元组 《成龙,父亲,房道龙 (Charles Chan)》,《房道龙,出生地,和县》 得到答案是实体 《和县》。

6b2322ac-9fb6-11eb-8b86-12bb97331649.png

图 2:谷歌搜索引擎基于知识图谱对于复杂问题的回答

接下来,为了更好地介绍知识图谱问答领域的发展,我们需要先明确几个基本概念:

「主题实体」:主题实体指的是出现在问题中的实体。例如,对于问题 “姚明的出生地是哪里?”,我们通过 “姚明” 这一字符串判断主题实体是 《姚明》 ,它也是后续推理流程中的推理起点。理论上一个问题中的主题实体不限个数,但在后面介绍的知识图谱多跳问答领域中,一般假设一个问题中只存在一个主题实体。

「答案实体」:理论上问题的答案未必是一个实体,例如 ”中国在北京奥运会获得的金牌有多少枚?“ 的答案是一个数字。但在后面介绍的知识图谱多跳问答领域中,一般假设问题的答案是知识图谱中的一个实体,即答案实体。

二、知识图谱问答的发展简史

接下来,本文将从两个维度简要介绍知识图谱问答的发展历史。

一方面,按照所研究的问题 (Question) 的难易程度,知识图谱问答领域的发展可分为两个阶段:早期的 「Simple QA」 以及当前主流的 「Complex QA」。

另一方面,按照建模方式的不同,知识图谱问答领域的工作可分为两个流派:「语义解析」 (Semantic Parsing) 与 「信息检索」 (Information Retrieval)。

1. 问题难度:Simple QA & Complex QA

(1)。 Simple QA在知识图谱问答领域发展的早期,研究者们主要针对 Simple QA 这种较为简单的场景开展研究 [1, 2, 3]。Simple QA 研究的是那些「可以使用单个三元组推理出答案」的问题,这些问题也被称为 Simple Questions 。

例如,对于 “姚明的出生地是哪里?” 这一问题,我们可以通过知识图谱中的单个三元组 《姚明,出生于,上海》 得到答案是 《上海》 这个实体。

(2)。 Complex QA经过一段时间的研究,Simple QA 场景中已经发展出了许多成熟且实用的方法。因此,研究者们转而研究更为复杂的问题 (Complex Questions)。这些问题更契合实际应用中的复杂场景,而这一研究方向也被称为 Complex QA [4, 5]。

简单地说,Complex Questions 是 Simple Questions 的补集,即「无法使用单个三元组」回答的问题。在实际的研究中,研究者们主要关注以下类型的问题:

「带约束的问题」:例如:”谁是第一届温网男单冠军?“。该问题中的 “第一届” 表示一种对答案实体的约束。

「多跳问题」:例如:”成龙主演电影的导演是哪些人?“。该问题需要使用多个三元组所形成的多跳推理路径才能够回答。例如:通过这些三元组 《成龙,主演,新警察故事》, 《新警察故事,导演,陈木胜》,我们推理出 《陈木胜》 是一个正确答案。

本文之后将主要结合多跳问题这一研究场景(知识图谱多跳问答)进行详细介绍。

2. 建模方式:Semantic Parsing & Information Retrieval

(1)。 Semantic Parsing语义解析 (Semantic Parsing) 类方法旨在将问题解析为可执行的图数据库「查询语句」 (如 SPARQL),然后通过执行该语句找到答案。

对于 Simple Questions,语义解析类方法旨在将问题解析为一个头实体 与一个关系 ,即 (h, r, ?) 的形式。例如,对于 “姚明的出生地是哪里?” 这一问题,可以解析出头实体 《姚明》 与关系 《出生地》,并得到伪查询语句 《姚明,出生地,?》。随后通过执行该查询语句得到答案 《上海》。

对于 Complex Questions,语义解析类方法将它们解析为一种 查询图 (Query Graph) [4]。例如,对于 ”成龙第一部主演的电影的导演是谁?“ 这一复杂问题,我们可以将其解析为以下查询图。

6b33a460-9fb6-11eb-8b86-12bb97331649.png

图 3:语义解析类方法示意图

当我们执行这张查询图所表示的查询语句时,我们首先找到成龙主演的所有电影 ,再通过 argmin 这一约束从中筛选出上映时间最早的电影。对于这部筛选出来的电影,我们进一步查询出它的导演是 ,并作为答案返回。

(2)。 Information Retrieval信息检索 (Information Retrieval) 类方法 [5] 旨在从问题与候选答案中提取出它们的特征,并基于这些特征设计相应的打分函数以衡量 ”问题-候选答案“ 的语义相关性,最终得分最高的候选答案被作为预测答案输出。下图给出了信息检索类模型的处理流程。

6b473ea8-9fb6-11eb-8b86-12bb97331649.png

图 4:信息检索类方法示意图

三、知识图谱多跳问答

本节将结合一些重点工作对 「知识图谱多跳问答」 这一方向进行介绍。从问题的难易程度这一视角来看,多跳问答属于 Complex QA 这一领域;从模型的流派这一视角来看,多跳问答这一方向中的模型的主流是信息检索这一流派,因此我们接下来也将重点结合这一流派进行介绍。

通俗来说,多跳问题 (Multi-hop Questions) 指的是那些需要知识图谱 「多跳推理」 才能回答的问题。例如,若要回答 ”成龙主演电影的导演是哪些人?“ 这一问题,则需要多个三元组所形成的多跳推理路径 《成龙,主演,新警察故事》, 《新警察故事,导演,陈木胜》 才能够回答。

这种类型的问题在实际应用中十分普遍,但想要构建出一个高准确率的知识图谱多跳问答系统却并非易事。下图展示了一个谷歌搜索中的 Bad Case。

我们尝试在谷歌搜索中输入以下问题 ”姚明的妻子的父亲的出生地是哪里?“。对于该问题,正确的推理路径为 妻子父亲出生地。但是,谷歌却错误地将问题解析成了以下推理路径 父亲妻子出生地。由于姚明的母亲(父亲的妻子)是方凤娣 (Fang Fengdi),谷歌将她的出生地作为答案返回。由此可见,知识图谱多跳问答是一个极具挑战性的任务。

6b5ac982-9fb6-11eb-8b86-12bb97331649.png

图 5:谷歌搜索引擎对于复杂问题的错误回答案例

接下来,我们将结合近年的几个重要工作对知识图谱多跳问答这一领域的发展进行介绍。在开篇的简介中,我们提到高质量问答系统的构建包含两个关键点:问题理解与推理算法。知识图谱多跳问答也不例外。接下来要介绍的几篇工作也正是围绕这两个关键点展开。

(1)。 VRN:端到端的问题理解

知识图谱问答中,问题理解的首要目标就是识别问题中的主题实体 (Topic Entity)。在之前的例子中,如 “姚明的出生地是哪里?”,我们通过 “姚明” 这一字符串判断主题实体是 《姚明》 ,它也是后续推理流程中的推理起点。

之前的一些工作 [6] 通过文本匹配的方式来识别主题实体,但在实际应用场景中这种方式易受噪声(自然语言的模糊性和错别字)影响。在这些情况下,如果我们将知识图谱问答分为主题实体识别与知识推理这两个独立的阶段,那么在主题实体识别这一阶段产生的错误往往会传递到知识推理这一阶段,从而对最终预测结果产生严重的影响。

为了解决这一问题,VRN [5] 提出了一个端到端 (end-to-end) 的框架。它将主题实体识别与知识推理这两个模块以端到端的方式融合起来,从而训练过程中的 loss 会直接反馈到主题实体识别模块,有助于更准确地在噪声环境中识别出正确的主题实体。

为了实现 ”端到端“ 这一目标,VRN 进行了以下概率建模。对于给定的问题 ,它的正确答案是实体 的概率表示为 。问题 中的主题实体是实体 的概率表示为 。给定主题实体是 的情况下,问题 的答案是 的概率表示为。从而得到,

其中 表示的是实体识别这一流程, 表示的是知识推理这一流程。本质上,VRN 是将主题实体 建模为隐变量,然后以全概率公式的形式表示 。

接下来介绍的三个工作主要围绕推理算法进行研究。更具体地,这些工作主要针对知识图谱「链接缺失」 (incomplete) 这一真实场景下的推理算法进行研究。

(2)。 GraftNet: 基于多源数据的问答

真实应用场景下的知识图谱往往是存在链接缺失问题的,即一部分正确的三元组(事实)没有被包含进知识图谱中。而这些缺失的三元组可能对于准确地回答给定的问题至关重要。

为了解决这一问题,GraftNet [7] 采取了以下措施:

使用无结构的文本数据作为结构化的知识图谱数据的补充;

提出了一个图神经网络模型 (GNN),它可以在文本与知识图谱组成的混合类型数据上进行推理并得到答案。

对于无结构的文本数据,GraftNet 将每个文档 (document) 看做一个节点,并融入知识图谱结构中:如果该文档中包含某个实体 ,那么就在这个文档与实体 之间建立连接。下图展示了一个直观的例子。

6b6b2174-9fb6-11eb-8b86-12bb97331649.png

图 6:GraftNet 多源数据融合示意图 [7]

基于这种由知识图谱与文档数据组成的图结构,GraftNet 设计了一个 GNN 用于推理,大致流程如下:

对给定的问题 (假定主题实体 已知),使用 Personalized PageRank (PPR) 算法提取出以 为中心的子图。最终的候选答案实体便被限定在该子图中,这个子图中实体的集合也就是候选答案集合。

使用多层 GNN 迭代更新实体、文档的表示,使得图中的每个节点可以感知到多跳邻居的信息。最终基于更新后的实体表示计算每个候选实体的得分。详细内容请见原文 [7]。

至于为什么要裁剪出子图,这是由于实际应用中知识图谱的实体数量过于庞大,如果将实体全集作为候选答案实体集,则会大大增加从中寻找正确答案的难度。因此,提前对实体进行筛选,只保留一小部分与问题相关的实体作为候选答案是一个明智的选择。

(3)。 PullNet: 动态子图拓展

虽然 GraftNet 取得了不错的效果,但该方法依然存在着一些问题。例如,GraftNet 为了减小候选答案实体集合的大小,使用 PPR 算法提取出以主题实体为中心的子图。但这些子图往往过大,而且有时并没有将正确答案囊括进来 [8]。

为了解决这一问题,PullNet [8] 提出了一种动态的子图拓展方法。具体地,该算法将子图初始化为主题实体 ,随后迭代地将与问题相关程度高的邻居实体拓展进子图,并同时使用 GNN 更新子图中节点的表示。

图7展示了 PullNet 相比 GraftNet 在子图提取上的优势,其中x-轴表示提取出的子图大小(子图中的实体数量),y-轴表示正确答案实体的召回率,即正确答案被包含在子图中的百分比,PageRank-Nibble 表示 GraftNet 所使用的子图提取方法。以左图 MetaQA (3-hop) 数据集为例,GraftNet 如果想要达到 0.9 左右的召回率,则需要将子图中的实体数量增大至 500 左右,而 PullNet 只需要动态地拓展出实体数量大小为 65 左右的子图,便可以轻松达到 0.983 的召回率。

6b7d920a-9fb6-11eb-8b86-12bb97331649.png

图 7:正确答案实体召回率 (y-轴) 与子图大小 (x-轴)关系示意图 [8]

(4)。 EmbedKGQA: 基于链接预测思路的问答方法

与 GraftNet 以及 PullNet 使用 GNN 进行推理思路不同的是,EmbedKGQA [9] 借鉴了知识图谱链接预测 (Link Prediction) 的思路以实现在链接缺失的知识图谱上的推理。

知识图谱链接预测指的是给定一个三元组中的头实体(或尾实体)与关系,对尾实体(或头实体)进行预测的任务,即 (h, r, ?) 或 (?, r, t)。给定一个问题 ,EmbedKGQA [9] 将该问题中的主题实体 看做头实体,将问题 看做一个关系,要预测的尾实体则是该问题的答案。也就是说,EmbedKGQA 将多跳问答建模成 。

这样的思路虽然简单,但也行之有效。总的来说,在知识图谱链接缺失的场景下,GraftNet 与 PullNet 从数据的角度出发,采取了使用文本数据 ”补全“ 知识图谱的思路,同时针对这种混合类型数据设计专门的推理算法。EmbedKGQA 则是从模型的角度出发,直接借鉴了链接预测这种比较成熟的建模思路。

四、总结

构建高质量问答系统的关键在于「准确的问题理解」与「针对相应的数据源设计合适的推理算法」。从问题理解的角度,知识图多跳问答近期工作主要关注于如何准确地识别问题中的实体。从推理算法的角度,近期的工作主要关注:1) 如何降低候选实体集合大小,同时减小对正确答案召回率的影响;2): 如何在链接缺失的知识图谱上进行推理。

Reference

[1] Berant, Jonathan et al. “Semantic Parsing on Freebase from Question-Answer Pairs.” EMNLP (2013)。

[2] Yih, Wen-tau et al. “Semantic Parsing for Single-Relation Question Answering.” ACL (2014)。

[3] Bordes, Antoine et al. “Large-scale Simple Question Answering with Memory Networks.” ArXiv abs/1506.02075 (2015)

[4] Yih, Wen-tau et al. “Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base.” ACL (2015)。

[5] Zhang, Yuyu et al. “Variational Reasoning for Question Answering with Knowledge Graph.” AAAI (2018)。

[6] Miller, Alexander H. et al. “Key-Value Memory Networks for Directly Reading Documents.” EMNLP (2016)。

[7] Sun, Haitian et al. “Open Domain Question Answering Using Early Fusion of Knowledge Bases and Text.” EMNLP (2018)。

[8] Sun, Haitian et al. “PullNet: Open Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text.” EMNLP (2019)。

[9] Saxena, Apoorv et al. “Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings.” ACL (2020)。

作者简介:蔡健宇,2019年毕业于东南大学,获得工学学士学位。现于中国科学技术大学电子工程与信息科学系的 MIRA Lab 实验室攻读研究生,师从王杰教授。研究兴趣包括知识表示与知识推理。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5845

    浏览量

    103243
  • 自然语言
    +关注

    关注

    1

    文章

    269

    浏览量

    13201
  • 知识图谱
    +关注

    关注

    2

    文章

    131

    浏览量

    7593

原文标题:一文带你入门知识图谱多跳问答

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    信雅达大模型智能问答产品发布 运营知识助手“小雅”上线

    大模型飞速发展,金融机构智能化转型不断加速,为满足金融机构对于智能服务提质增效的需求,信雅达运营智能知识助手“小雅”正式发布。作为信雅达数字化运营条线全新推出的大模型智能问答产品,“小雅助手”将为
    的头像 发表于 04-07 17:30 176次阅读

    利用知识图谱与Llama-Index技术构建大模型驱动的RAG系统(下)

    对于语言模型(LLM)幻觉,知识图谱被证明优于向量数据库。知识图谱提供更准确、多样化、有趣、逻辑和一致的信息,减少了LLM中出现幻觉的可能性。
    的头像 发表于 02-22 14:13 269次阅读
    利用<b class='flag-5'>知识图谱</b>与Llama-Index技术构建大模型驱动的RAG系统(下)

    知识图谱基础知识应用和学术前沿趋势

    知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系。是融合了认知计算、知识表示与推理、信息检索与抽取、自然语言处理、Web技术、机器学习与大数据挖掘等等方向的交叉学科。人工智能是以传统符号派与目前流行的深度神经网路为主,如下图所示,
    的头像 发表于 01-08 10:57 433次阅读
    <b class='flag-5'>知识图谱</b>基础<b class='flag-5'>知识</b>应用和学术前沿趋势

    知识图谱与大模型结合方法概述

    本文作者 |  黄巍 《Unifying Large Language Models and Knowledge Graphs: A Roadmap》总结了大语言模型和知识图谱融合的三种路线
    的头像 发表于 10-29 15:50 600次阅读
    <b class='flag-5'>知识图谱</b>与大模型结合方法概述

    《电子工程师必备——九大系统电路识图宝典》+附录4读后感

    ,每个元件都有自己的位置和编号,以及详细的安装方法。安装图适用于指导实际操作,使电路的安装和调试过程更加便捷。 电子电路图的识图方法 在识别电子电路图时,需要掌握些基本技巧和方法。首先,需要了解各种
    发表于 09-28 13:44

    NVIDIA 知乎精彩问答甄选 | 了解更多关于 NVIDIA BlueField DPU 相关精彩问答

    知乎甄选问答将为您了解 NVIDIA BlueField DPU 相关内容带来更加精彩的解答! Q:  下一个半导体黄金赛道 DPU 的生态会如何建设? A: 随着人工智能、数据科学、虚拟仿真等数据流
    的头像 发表于 09-20 19:10 225次阅读

    华为GPU芯片对标英伟达!

    星火一体机将提供从底层算力、AI框架、训练算法、推理能力、应用成效等全栈AI能力,可用于问答系统、对话生成、知识图谱构建、智能推荐等多个领域的应用,具备大模型预训练、多模态理解与生成、多任务学习和迁移等能力。
    的头像 发表于 09-01 14:46 897次阅读

    云知声亮相第十七届全国知识图谱与语义计算大会

    8月24日-27日,第十七届全国知识图谱与语义计算大会(CCKS 2023)在沈阳成功举办。大会聚焦“知识图谱赋能通用AI”,邀请国内外知名学者、产业界知名发言人员介绍相关领域的最新进展和发展趋势
    的头像 发表于 08-31 16:02 405次阅读
    云知声亮相第十七届全国<b class='flag-5'>知识图谱</b>与语义计算大会

    2023中国工业互联网技术发展的十大科技趋势

    知识图谱是一种基于语义网技术的知识表示方法,它将实体、属性和关系等元素进行抽象和建模,形成一个具有语义表达能力的图结构。在工业领域,知识图谱可以将工业领域的知识进行建
    的头像 发表于 08-31 15:18 516次阅读
    2023中国工业互联网技术发展的十大科技趋势

    如何利用大模型构建知识图谱?如何利用大模型操作结构化数据?

    上图是之前,我基于大语言模型构建知识图谱的成品图,主要是将金融相关的股票、人物、涨跌幅之类的基金信息抽取出来。
    的头像 发表于 08-24 16:56 8470次阅读
    如何利用大模型构建<b class='flag-5'>知识图谱</b>?如何利用大模型操作结构化数据?

    大型语言模型与知识图谱:机遇与挑战

    这对知识表示领域来说是一个巨大的步骤。长时间以来,人们关注的是明确的知识,例如嵌入在文本中的知识,有时也被称为非结构化数据,以及以结构化形式存在的知识,例如在数据库和
    的头像 发表于 08-24 14:50 425次阅读
    大型语言模型与<b class='flag-5'>知识图谱</b>:机遇与挑战

    知识图谱嵌入模型 (KGE) 的总结和比较

    知识图谱嵌入(KGE)是一种利用监督学习来学习嵌入以及节点和边的向量表示的模型。它们将“知识”投射到一个连续的低维空间,这些低维空间向量一般只有几百个维度(用来表示知识存储的内存效率)。向量空间中,每个点代表一个概念,每个点在空
    的头像 发表于 07-31 16:07 620次阅读
    <b class='flag-5'>知识图谱</b>嵌入模型 (KGE) 的总结和比较

    巨微文化携手IBM依托AI共塑知识图谱新篇章

    知识图谱是具有 AI 能力加持的智能“知识库”,借助于基于 AI 的自然语言处理 (NLP) 能力,打造智能搜索、智能问答、个性化推荐、辅助决策和异常监测等能力。对于教辅此类知识密集型
    的头像 发表于 06-05 16:17 566次阅读

    首个中文医学知识LLM:真正的赛华佗—华驼(HuaTuo)

    通过医学知识图谱和 GPT 3.5 API 构建了中文医学指令数据集,并在此基础上对 LLaMA 进行了指令微调,提高了 LLaMA 在医疗领域的问答效果。
    的头像 发表于 05-08 11:30 1237次阅读
    首个中文医学<b class='flag-5'>知识</b>LLM:真正的赛华佗—华驼(HuaTuo)

    局部放电特征图谱绘制

    现在有小波去噪够的局部放电数据,怎么绘制q-n图谱或者是三维的图谱,prpd图。
    发表于 04-26 17:54