导读: 近年来,知识图谱在众多行业场景被大量应用,例如推荐、医疗。为了构造尽可能完备的图谱,知识图谱的推理工作也成为学术届和工业界的一个重要研究课题。来自Mila人工智能实验室的瞿锰博士,给大家分享了他们在图谱推理任务方向的一个研究:基于逻辑规则的图谱推理(RNNLogic: Learning Logic Rules for Reasoning on Knowledge Graphs),研究结果显示RNNLogic可以很好地兼顾图谱推理任务的模型效果和可解释性的问题。

本文将围绕以下几点展开:

  • 图谱和图谱推理介绍
  • 常见方法和优缺点
  • 逻辑规则学习方法 RNNLogic
  • 工作展望

--

01 图谱和图谱推理介绍

知识图谱可以看作是我们真实世界中的一些事实的集合,每一条事实可以表示成(h,r,t)或者r(h,t)的形式。比如说我们知道比尔盖茨是微软公司的创始人,我们就可以得到一个(Bill Gates, co-founder of, Microsoft)的3元组组成的事实。在实际生活当中,有众多知识图谱,总结了各个领域的相关知识。

这些知识图谱在很多应用中发挥着重要作用。比如推荐系统中,知识图谱可以帮助我们更好地挖掘用户的兴趣;还有药物再利用方面,对于药物的属性、疾病的属性以及药物和疾病之间关系的已有信息,可以帮助我们去发现新的药物和疾病间的联系,从而更好地去对抗疾病。

不过在实际应用过程中存在的一个问题,图谱信息是不完全的,而补全图谱的人工成本又是非常巨大的,尤其是像是一些医药、金融等一些特定的领域。如果还要考虑知识的动态更新的话,就更加大了图谱补全的难度。

也正是这些问题促成了关系预测这个任务(用来补全图谱),在知识图谱里,关系预测也被称作知识图谱推理。图谱推理的任务就是给定已有图谱,去推理出图谱中的一些缺失的边。比如上图,我们希望能推出红色的边(詹姆斯出生在巴黎)。

--

02 常见方法和优缺点

1. 图谱表示法

图谱推理最常见的方法是基于知识图谱表示(KG Embedding)的方法,基本思想就是希望把每一个实体或者关系做向量嵌入,通过这些向量表示来进行推断找到缺失的边。

  • 优点:通常能有较好的预测效果。
  • 缺点:模型缺乏可解释性。

2. 归纳逻辑编程法

考虑到图谱嵌入法的可解释性差,我们希望通过学习一些逻辑规则来完成这个任务,提高可解释性。大概的思路是给定已有的知识图谱,我们希望可以从知识图谱里面提取出一些通用逻辑规则,如上图出生地(born in)和城市(city of)两个关系可以用来推断国籍(nationality),再反过来去做关系预测。通过这样的方式,可以使得模型的可解释性更强,而且生成的规则也具有更好的可泛化性。

以上的问题可以通过概率形式建模。如上图所示,我们将这个任务建模分成两部分,生成器(generator)和 预测器(predictor)。其中生成器用来生成逻辑规则,预测器将利用生成的规则和已有的图谱去预测最后的答案。对于这样的形式,我们会有不同的方法来解决,其中之一是归纳逻辑编程(Inductive logic programming)。

这种方法的核心是学到一个好的预测器,然后在具体在操作的过程中,他们会利用一个固定的生成器(比如一套逻辑规则的模板)生成出大量的潜在逻辑规则,在预测阶段会给每个潜在的逻辑规则一个权重(weight),最后从所有的逻辑规则里面挑选权重大的规则,当作学习到的比较重要的规则。

  • 优点:整个框架的优化比较简单。
  • 缺点:对规则的搜索空间大,因为固定的生成器。如果想要得到比较好的结果就要尝试大量的逻辑规则,导致效率较低。

3. 基于强化学习的方法

另外一类方法是基于强化学习的方法,其思想和之前的方法是完全相反的,是直接去学习一个生成器,给定一个查询(Query)后可以直接生成一个规则,一旦有了这个规则之后,就可以根据规则定义的关系在知识图谱上去做随机游走,得到我们想要的答案。在这个框架里,只有生成器是可以学习的,预测器是相对简单的,固定的。

  • 优点:预测搜索效率高。
  • 缺点:整个框架的优化很难;依赖KGE(图谱嵌入)的方法来做激励调整。

--

03 逻辑规则学习方法 RNNLogic

1. 研究背景

在对上面两个方法对比时,我们发现一个方法侧重在学习生成器,另一个侧重学习预测器。我们希望有一种框架,可以同时训练生成器和预测器,也就是RNNLogic的一个核心点。

2. RNNLogic方法

在我们的研究里主要考虑链式的逻辑规则,如上图中所示,可以将链式的逻辑规则变成一个关系序列,其中用END来表示结尾。那很自然的,我们可以通过LSTM来生成这些不同的链式逻辑规则,并输出每一条逻辑规则的概率,进而得到一个弱逻辑规则的集合。

接着我们使用了一个叫做随机逻辑编程(stochastic logic programming)的框架来去定义预测器。会通过生成器的弱关系集合进行游走,如图中所示的两种关系链,第一种可以得到France这个答案,第二个逻辑规则可以得到France,Canada和US三个答案。对于每个潜在答案,我们可以给它定义一个分数,也就是到达这个实体的逻辑规则的weight的和。最后就可以根据分数得到每种答案的概率,挑选出那些概率最大的来当成我们最终的答案。

当前方法的主要难点是如何优化,因为无论是生成器还是预测期,都是动态学习的,所以优化起来可能会有一定难度。而我们发现生成器和预测器两者的难度是不同的,前者由于对后者的依赖,使得生成器是需要依赖于预测器的结果来进行动态调整的,所以生成器会更难些。

为了解决这个难点,我们提出了上图所示的框架。像之前的一些方法,是给定了一个生成器生成了一些逻辑规则送给预测期,让预测器给生成器反馈这个逻辑规则的集合是好还是坏。我们的思路是希望预测器给生成器的反馈更加具体,譬如哪几条规则更重要,从而帮助生成器更好地去更新,得到更好的结果。最后,整个优化的过程可以如下表示:

首先第一步,给定一个查询(Query),让生成器生成很多逻辑规则,再把逻辑规则和知识图谱同时送到预测器里面,去更新预测器,最大化生成正确答案的概率。

接着,从所有生成的这些逻辑规则里面去挑选出那些最重要的逻辑规则。这里我们通过使用后验推断的方法来计算每一条弱的逻辑规则的后验概率进行挑选。因此,在整个过程中,每一条弱的规则概率是由生成器来提供的,似然函数由预测器来提供。这样结合两者共同的信息来得到一个比较重要的逻辑规则。

最后,我们就可以把找到的高质量的逻辑规则当成训练数据,送回生成器去学习。

3. 实践效果

最后我们通过实验来比较我们的算法和现有算法的效果。上图是在常见的FB15K和WN18RR两个数据上的实验对比,可以看到,我们的方法能达到嵌入方法差不多的效果,而且有更好的可解释性,因此,它的潜力还是比较大的。

另一个有趣的实验是和模型生成的逻辑规则数量有关,可以看到针对某个关系,只生成10个逻辑规则就可以有个不错的效果,数量提升到100基本就收敛了。也就是只需要比较少的逻辑规则就可以对知识图谱中缺失的边进行有效的预测。

上图是我们最后生成的样例,整体规则是多样的,既有长度为1的比较短的规则,也有些跳四五步才能推断出来的很长的逻辑规则。

4. 更复杂的预测器(RNNLogic+)

接着我们实验一些更复杂的预测器来进行预测,前面仍然是给定一些逻辑规则,通过这些规则在图谱里我们会得到不同的路径,然后对于这些路径我们用不同的方法来打分。比如上图我们既用了LSTM的Score,也用了图嵌入(KGE)的Score来打分,来得出我们最终预测结果的得分和答案。

通过这个更复杂的预测器我们可以看到它的结果可以是被进一步提升的,如上图在两个数据集里我们分别用100个逻辑规则和200个逻辑规则,就可以得到非常好的结果。而且在像wordNet(WN18RR)这种相对稀疏的图谱中,提升更明显。

--

04 工作展望

基于逻辑规则的模型在知识图推理中受到越来越多的关注,因为它可以比较好的融合神经网络和符号规则的方法,而且会同时拥有比较好的可解释性和好的结果。今后一个值得探索的方向是,如何去设计更强大的neural-symbolic的模型。

第二个值得关注的方向是如何把文本信息结合进来。因为在实际应用的时候,我们会发现图谱并不是单独存在的,往往是和文本信息同时存在的,因此如何在这种混合的数据上面进行知识推理,也将会是一个值得探索的方向。


今天的分享就到这里,谢谢大家。

本文首发于微信公众号“DataFunTalk”

基于逻辑规则的图谱推理相关推荐

  1. 基于归纳的知识图谱推理学习笔记整理

    源于:知识图谱:方法.实践与应用 基于归纳的KG推理 基于图结构的推理 基于知识图谱路径特征的PRA算法 尾实体链接预测 头实体链接预测 排序问题 PRA将存在于KG中的路径当做特征,通过图上的计算对 ...

  2. 「可解释知识图谱推理」最新方法综述

    来源:图灵人工智能 近年来,以深度学习模型为基础的人工智能研究不断取得突破性进展,但其大多具有黑盒性,不 利于人类认知推理过程,导致高性能的复杂算法.模型及系统普遍缺乏决策的透明度和可解释性.在国 防 ...

  3. 论文浅尝 | 知识图谱推理中表示学习和规则挖掘的迭代学习方法

    作者:张文,浙江大学在读博士,研究方向为知识图谱的表示学习,推理和可解释. 本文是我们与苏黎世大学以及阿里巴巴合作的工作,发表于WWW2019,这篇工作将知识图谱推理的两种典型方法,即表示学习和规则进 ...

  4. 知识图谱从入门到应用——知识图谱推理:基于表示学习的知识图谱推理-[嵌入学习]

    分类目录:<知识图谱从入门到应用>总目录 前面多次提到过,基于符号逻辑的演绎推理的主要缺点是对知识表示的逻辑结构要求比较高,不论是本体推理还是规则推理,都要求人工定义公理和规则才能完成推理 ...

  5. 图谱实战 | 面向小白的知识图谱推理扫盲案例:知识推理的任务界定、主流方式以及基于TransE模型的知识推理实践...

    转载公众号 | 老刘说NLP 知识推理是从已有的知识出发,得出未知的.隐性的知识,具体到知识图谱中,即利用图谱中现有的知识(三元组),得到一些新的实体间的关系或者实体的属性(三元组). 关于知识推理这 ...

  6. 【AAAI2022】TLogic:时序知识图谱上可解释链接预测的时间逻辑规则

    清华大数据软件团队官方微信公众号来源:专知 本文附论文,建议阅读5分钟我们解决了时序知识图谱上的链接预测任务. 传统的静态知识图谱将关系数据中的实体作为节点,由特定关系类型的边连接.然而,信息和知识不 ...

  7. python 知识图谱 推理_知识图谱推理与实践 (2) -- 基于jena实现规则推理

    本章,介绍 基于jena的规则引擎实现推理,并通过两个例子介绍如何coding实现. 规则引擎概述 jena包含了一个通用的规则推理机,可以在RDFS和OWL推理机使用,也可以单独使用. 推理机支持在 ...

  8. 论文浅尝 | 基于深度强化学习将图注意力机制融入知识图谱推理

    论文笔记整理:陈名杨,浙江大学直博生. Introduction 知识图谱(KGs)在很多NLP的下游应用中起着越来越重要的作用.但是知识图谱常常是不完整的,所以解决知识图谱补全的任务也非常重要.主要 ...

  9. ​AAAI 2023 | 基于历史对比学习的时序知识图谱推理

    ©PaperWeekly 原创 · 作者 | 徐奕 单位 | 上海交通大学Acemap 研究方向 | 数据挖掘 论文标题: Temporal Knowledge Graph Reasoning wit ...

最新文章

  1. Smart Card知识
  2. SQL Server - select语句练习
  3. paramiko基础
  4. linux查看终端进程,Linux查看进程
  5. opencv cv2.LUT()(使用查找表中的值填充输出数组)
  6. pip install cryptography error
  7. coposer 安装 laravel
  8. java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...
  9. 10个线程同时执行i++操作1000次,如何保证结果是1w
  10. Android学习路线图
  11. matlab求解多元函数的偏导数diff
  12. Day146.概述及环境搭建 -Linux
  13. 系统内存地址PEEK值大全
  14. Java程序员面试笔试宝典-数据库原理(三)
  15. SQL数据库无法附加
  16. 程序员月薪25000,很可能会掉进这个陷进了!
  17. 触摸传递 Touch Delivery
  18. excel表格两个表格合并
  19. php快速搭建后台,基于thinkphp的后台管理系统模板快速搭建,thinkphp后台模板_PHP教程...
  20. 一文解析数据库基础设施的现状与挑战

热门文章

  1. rockchip rk3368(px5)车载开发之路5,使能GPS模块UC6226(2.HAL层以及以上)
  2. python-获取oss指定目录下的文件
  3. 食堂基础设施调研报告
  4. 邮件服务器的基础知识概述
  5. cvs正在接收服务器响应,连接 CVS 服务器的问题
  6. java将数据写入指定excel模板
  7. eric7 22.4版本安装
  8. javascript实现输出打印九九乘法表、水仙花数、
  9. 下列选项中不属于python语言基本控制结构的是_下列选项中,不属于Python语言特点的是...
  10. There is no setter for property named 可能产生的原因!