基于关系有向图的知识推理2022ACM 8.9

news2024/9/23 15:23:43

基于关系有向图的知识推理

  • 摘要
  • 介绍
  • 相关工作
    • 基于路径的方法
    • 基于GNN的方法
  • 关系有向图
  • RED-GCN
  • 实验

在这里插入图片描述

摘要

知识图推理旨在从已有的知识中推断出新的事实。基于关系路径的方法在文献中显示出较强的可解释性和归纳推理能力。然而,在KG中 捕获复杂拓扑(Capturing complex topology) 时,路径是有限的。本文引入了一种新的关系结构,即 由重叠关系路径组成的关系有向图(r-digraph) 来捕获KG的结构信息。由于有向图表现出比路径更复杂的结构,因此在r-digraph上构建和学习是具有挑战性的。在这里,我们提出了一种图神经网络,即RED-GNN,通过使用GNN的变体学习关系有向图来解决上述挑战。明确地RED-GNN递归编码多个具有共享边的r-digraph,并通过依赖于查询的注意力权重来选择强相关边。我们展示了在用看不见的实体推理KG和通过r-digraph完成KG基准、RED-GNN的效率以及在r-digraph可解释的依赖性方面的显著收获。

知识图谱中实体和概念通过关系连接在一起。拓扑结构是指这些连接关系的模式和形式。
在知识图谱中,有时候实体之间的关系非常复杂,涉及多个层次和路径。"Capturing complex topology"的目标是能够准确地表示和捕捉这些复杂的连接关系。这可以包括以下方面:
1.多层级关系:有些关系可能涉及多个层级,例如,实体A与实体B通过实体C相连,而实体C又与实体D相连。在捕捉复杂拓扑结构时,需要能够表示和处理这种多层级的关系。
2.循环关系:有时候在知识图谱中存在循环关系,也就是实体之间存在循环的连接路径。例如,实体A通过关系R1与实体B相连,而实体B又通过关系R2与实体A相连。在建模复杂拓扑结构时,需要能够处理这种循环关系。
3.多路径连接:有时候两个实体之间可以通过多个不同的路径相连。例如,实体A通过关系R1和关系R2分别与实体B相连。在捕捉复杂拓扑结构时,需要能够同时表示和利用多个路径。
为了实现对复杂拓扑结构的捕捉,可以使用图神经网络(Graph Neural Networks)等技术。

在知识图谱中,实体之间的关系可以通过多个路径进行连接。有时候这些路径之间可能存在交叉或重叠的情况,即多个路径共享相同的一部分关系。为了更好地表示和理解这种情况,可以使用由重叠关系路径组成的关系有向图。
在这个有向图中,节点表示实体,有向边表示关系,而路径则由多个有向边组成。当多个路径共享相同的一部分关系时,可以通过在有向图中创建重叠边来表示这种情况。重叠边表示两个不同的路径之间的关系重叠或交叉。
假设我们有一个知识图谱,其中包含以下实体和关系:
实体:A、B、C、D、E
关系:R1、R2、R3
现在我们来构建由重叠关系路径组成的关系有向图。
假设存在以下路径:
路径1: A → R1 → B → R2 → C
路径2: A → R3 → D → R2 → C
路径3: E → R1 → B → R2 → C
在这个关系有向图中,节点表示实体,有向边表示关系,而路径则由多个有向边组成。我们可以看到,路径1和路径2共享关系R2,而路径1和路径3共享关系R1
这个关系有向图可以帮助我们更好地理解实体之间的连接关系。例如,通过观察有向图,我们可以发现实体A和实体C之间存在两条不同路径,分别通过关系R1和关系R3。这可能暗示了A和C之间的某种关联或相似性。
通过分析这个由重叠关系路径组成的关系有向图,我们可以进行路径相似性计算、关联规则挖掘等任务。例如,我们可以计算路径1和路径2之间的相似性,或者挖掘出实体之间的关联规则,如"A → R1 → B → R2 → C" implies “A → R3 → D → R2 → C”。

介绍

真实世界的KG很大,而且高度不完整,因此推断新的事实是具有挑战性的。KG推理模拟了从现有事实推断出新的事实的过程。在本文中,我们重点学习关系结构,用于以(主体-实体,关系,?)。

在过去的十年里,基于三元组模型的知识学习在KG中得到了很大的关注。这些模型直接推理具有实体和关系嵌入的三元组,但由于三元组是独立学习的,它们不能明确地捕获结构信息,即查询三元组周围的局部结构,这些结构可以用作KG推理的证据。

关系路径第一次尝试捕获用于推理的结构信息。使用强化学习(RL)对与查询 具有强相关性的关系路径进行采样。由于KG的稀疏特性,RL方法很难在大规模KG上训练。PathCon对实体之间的所有关系路径进行采样,并使用注意力机制对不同路径进行加权。但是对于实体查询任务来说是昂贵的。基于规则的方,将关系路径概括为逻辑规则,学习通过关系的逻辑组成,并可以提供可解释的见解。此外,逻辑规则可以传输到以前看不见的实体,这些实体在现实世界的应用程序中很常见,而基于三元组的模型无法处理这些实体。

在获取结构信息方面,子图自然比路径信息更丰富。随着图神经网络(GNN)在图结构数据建模方面的成功。GNN已被引入来捕获KG中的子图结构。R-GCN和CompGCN提出通过聚合每层KG上的所有1跳邻居来更新实体的表示。然而,它无法区分不同邻居的结构依赖性,也无法解释。DPMPN通过保留给定查询的最可能实体,而不是学习特定的局部结构,学会了在大规模KGs上减少推理子图的大小。最近,GraIL提出了从局部封闭子图结构预测关系,并展示了子图的归纳能力。然而它由于封闭子图的限制,也面临有效性和效率问题。

受基于路径的方法的可解释性和可转换性以及子图的结构保持性的启发,我们在KG中引入了一种新的关系结构,称为r-digraph。r-digraph通过保留重叠的关系路径和关系的结构来进行推理,从而将关系路径推广到子图。与结构简单的关系路径不同,如何有效地构建和学习r-digraph是一项挑战,因为直接在每个r-digraph上进行计算对于推理查询来说是非常昂贵的。受使用动态规划解决重叠子问题中计算成本的启发,我们提出了RED-GNN,这是一种具有GNN变体的关系有向图的有效学习框架。经验上,RED-GNN在具有看不见实体和不完整KG的KG的基准测试中都比最先进的推理方法显示出显著的优势。此外,训练和推理过程是有效的,学习的结构是可解释的。

相关工作

一个知识图谱形式为:K={V,R,F},其中V,R,F={(es,r,eo)|es,eo∈V,r∈R}分别是一组实体、关系和三元组事实。让eq作为查询实体,rq作为查询关系,ea作为答案实体。给出一个查询(eq,rq,?),推理任务是预测答案实体ea。通常,V中的所有实体都是ea的候选实体。

KG推理的关键是捕获查询周围的局部证据,如关系路径或子图。在这一部分中,我们介绍了利用 F F F中的结构进行推理的基于路径的方法和基于GCN的方法。

基于路径的方法

关系路径由一组按顺序连接的三元组组成,它比单个三元组更具有信息性,因为它可以提供可解释的结果并转移至未知实体(transfer to unseen entities)

"transfer to unseen entities"转移至未知实体
是指将知识从已知实体转移到未知实体的过程。
当我们谈论将知识转移到未知实体时,意味着在知识图谱中没有直接表示或记录的实体。这可以发生在以下情况下:
1.新实体:当一个新的实体出现,而它在知识图谱中没有相关的记录时,我们需要将知识从已知实体迁移到这个新实体上。这可以通过使用已有的关系和属性信息进行推理或利用相似实体的知识进行迁移。
2.未见实体:在某些情况下,我们可能只能观察到实体的部分信息,而无法完全了解它。这些实体被称为未见实体。在这种情况下,我们可以通过与已知实体的关系和属性进行推理,来推断并转移知识到未见实体上。

关系路径
长度为L的关系路径是一组L个连续三元组(e0,r1,e1),(e1,r2,e2),… ,(eL-1,rL,eL),它们按顺序首尾相连。

基于路径的方法学习通过一组关系路径作为局部证据来预测三元组(eq, rq, ea)。DeepPath通过强化学习(RL)学习生成从eq到ea的关系路径。为了提高效率,MINERVA和M-walk通过RL来学习来自eq的多条路径。分数由不同ea的到达频率表示。由于KG的复杂结构,奖励非常稀疏,使得训练RL模型变得困难。PathCon对连接两个实体的所有路径进行采样,以预测它们之间的关系,这对于推理任务(eq, rq, ea)来说是昂贵的。

除了直接使用路径,基于规则的方法将逻辑规则学习为关系路径的广义形式。逻辑规则是由一组关系组成的,用来推断特定的关系,以提供更好的解释,并可以传递给看不见的实体。规则可以通过离散挖掘、EM算法(如RNNLogic)或端到端训练(如Neural LP和DRUM)来学习,生成eq和ea之间高度相关的关系路径。规则可以提供逻辑解释并转移到看不见的实体。然而,规则只能捕获顺序证据,因此无法学习更复杂的模式,如子图结构。

基于GNN的方法

子图可以自然地保留比相对路径更丰富的信息。所有的关系路径都是从一些局部子图中采样的。因此,它们自然会丢失KG中的一些结构信息,例如多个实体和边是如何连接的。GNN在对图形结构化数据11进行建模方面具有强大的能力。这启发了最近的工作将GNN扩展到KG上,以将实体和关系在消息传递框架下的表示聚合为:
在这里插入图片描述
其在具有维度d的实体eo的1跳相邻边缘(es,r,eo)上的消息上聚合。Φ(·,·)是消息函数,在这里插入图片描述是加权矩阵, δ δ δ是激活函数。
在L层之后,捕捉实体e∈V的局部结构的表示在这里插入图片描述与评分函数联合工作,以对三元组进行评分。由于聚合函数聚合了所有邻居的信息,并且与查询无关,因此R-GCN和CompGCN无法捕获用于推理特定查询的显式结构,并且是不可解释的。

DPMPN没有使用所有邻域,而是设计了一个GNN来聚合实体的嵌入,另一个GNN来动态扩展和修剪来自查询实体的推理子图,例如•在采样实体上应用与查询相关的注意力进行修剪。这种方法通过关注修剪后的子图来展示可解释的推理过程,但仍然需要嵌入来指导修剪,因此不能推广到看不见的实体。此外,它不能捕获支持给定查询三元组的显式子图结构。xERTR LIOJ扩展了用于推理时态KGs中未来三元组的DPMPN。

最近,GralL提出提取查询实体eq和回答实体ea之间的封闭子图G(eq,ea)。为了学习封闭子图,在G(eq,ea)中,在边上应用具有查询相关注意力的关系GNN,以控制边对不同查询的重要性。在L层的聚合之后,聚合子图中所有实体e∈V的图级表示用于对三元组(eq,rq,ea)进行评分。由于需要显式地提取子图并对不同的三元组进行评分,因此计算成本非常高。

关系有向图

关系路径,尤其是逻辑规则,在KG上显示出强大的推理能力,可以提供可解释的结果并转移到看不见的实体。然而,由于它们是从局部子图中采样的,因此在KG中捕获更复杂的依赖关系时,它们是有限的。基于GNN的方法可以学习不同的子图结构。但现有的方法都无法有效地学习子图结构,这些子图结构既可解释又可转移到规则等看不见的实体。因此,我们有动机定义一种新的结构,即r-digraph,通过推广关系路径来探索结构依赖性。在下一节中,我们展示如何定制GNN可以有效地从r-digraph中学习。
分层ST图
分层st图是一个有向图,只有一个源节点(s)和一个 汇节点(t) 。所有的边都是有向的,连接连续层之间的节点,并从较低层指向较高层。

汇节点是指一个节点,它只接收来自其他节点的边,而不发出任何边。换句话说,它是一个只有入度没有出度的节点。

在这里,我们采用一般的方法来增强具有反向和同一关系的三元组。那么在eq和ea之间长度小于或等于L的所有关系路径都可以表示为在这里插入图片描述长度为L。这样,它们可以形成为分层st图中的路径,具有单个源实体eq和单个汇点实体ea。这样的结构保留了eq和ea之间长度为L的所有关系路径,并保持了子图结构。

r-digraph
r-digraph 在这里插入图片描述是一个具有源实体eq和汇实体ea的分层st图。同一层中的实体彼此不同:r-digraph中从eq指向ea的任何路径都是长度为L的关系路径 在这里插入图片描述,其中 r l r^l rl连接 l − 1 l-1 l1层中和 l l l层中的实体。如果没有连接eq和ea的关系路径我们定义为在这里插入图片描述
在这里插入图片描述

RED-GCN

实验

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

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

相关文章

饮用水除硝酸盐、饮用水除砷、饮用水除氟、饮用水除铁锰的技术汇总

我们所说的“自来水”是指从水龙头里放出来的水。但从水龙头里放出来并不等于安全卫生。实际上,原水必须经过各种处理措施之后才能称为安全卫生的饮用水。每一滴水都要经过了混凝、沉淀、过滤、消毒四个步骤的处理,才能去除杂质和细菌,变得安…

Three.js纹理贴图

目录 Three.js入门 Three.js光源 Three.js阴影 Three.js纹理贴图 纹理是一种图像或图像数据,用于为物体的材质提供颜色、纹理、法线、位移等信息,从而实现更加逼真的渲染结果。 纹理可以应用于Three.js中的材质类型,如MeshBasicMaterial…

本质矩阵E、基本矩阵F、单应矩阵H

1. E (归一化坐标对进行计算) t ^ R 为3*3的矩阵, 因为R,t共有6个自由度,又因为单目尺度等价性,所以实际上E矩阵共有5个自由度。因此至少需要5个点对来求解。 2. 基本矩阵F:根据两帧间匹配的像素点对儿计算 3*3且自由度为7的矩阵kF也为基础矩阵&#x…

构建之法 - 软工教学:每天都向前推进一点点

作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 ​邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师&…

x86 kgdb deug调试分析

本文主要是收集,以下文章写得很好,我二次整理一下。 如果要手动livedb. 1. call kdbg_arch_late() 2. kgd_set_hw_break(addr,8,1); 3. kgdb_correct_hw_break();// enable bp to cpu regs -------------------------------分割线----------------…

第5讲:如何构建类的方法

【分享成果,随喜正能量】在这个社会上,对别人好一点,多站在别人的角度考虑,不要为小事争执,不要取笑他人,不要在别人背后嚼舌根,更不能逼人太甚。凡事退一步,对你有好处。。 《VBA中…

前沿分享-无创检测血糖RF波

非侵入性血糖仪,利用射频 (RF) 波连续测量血液中的葡萄糖水平。利用射频波技术连续实时监测血液中的葡萄糖水平,使用的辐射要比手机少得多。 大概原理是血液中的葡萄糖是具有介电特性,一般来说就是介电常数。 电磁波波幅的衰减反映了介质对电…

电脑文件丢失如何找回?使用这个方法轻松找回!

电脑文件丢失怎么办?有没有免费的电脑文件恢复软件?相信很多人在日常办公中也都经常会遇到这种现象,不管是在学习中,还是日常的办公,往往也都会在电脑上存储大量的数据文件,那么如果我们在日常办公操作过程…

忆恒创源发布PBlaze7 7940系列PCIe 5.0企业级NVMe SSD

今天,国内知名企业级SSD产品和解决方案供应商——北京忆恒创源科技股份有限公司(Memblaze,以下简称“忆恒创源”)全新一代PCIe 5.0企业级NVMe SSD PBlaze7 7940正式发布。与主流PCIe 4.0产品相比,PBlaze7 7940有着2.5倍…

1.利用matlab建立符号表达式(matlab程序)

1.简述 、 1. 使用sym命令创建符号变量和表达式 语法: sym(‘变量’,参数) %把变量定义为符号对象 说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’, ’positive’ 表示为“正、实”符…

【C++】位图|布隆过滤器|海量数据处理面试题

文章目录 一.位图1. 位图的概念2. 位图的使用3. 位图的实现 二.布隆过滤器1. 布隆过滤器2. 布隆过滤器的实现 三.海量数据处理面试题1.位图2.布隆过滤器3.哈希切割 一.位图 1. 位图的概念 所谓位图,就是用每一位来存放某种状态,适用于海量数据&#xf…

沁恒ch32V208处理器开发(一)开发环境

目录 简介:开发环境开发界面自定义风格 烧录工具支持范围烧录界面 简介: CH32V2x 系列是南京沁恒基于 32 位 RISC-V 指令集及架构设计的工业级通用微控制器。采用青稞 V4 内核,支持硬件中断堆栈,提升中断响应效率;CH3…

PyCharm新手入门指南

安装好Pycharm后,就可以开始编写第一个函数:Hello World啦~我们就先来学习一些基本的操作,主要包含新建Python文件,运行代码,查看结果等等。 文章主要包含五个部分: 一、界面介绍 主要分为菜单栏、项目目录…

3.2用互斥元保护共享数据

概述 于是,你有一个类似于上一节中链表那样的共享数据结构,你想要保护它免于竞争条件以及可能因此产生的不变量损坏。如果你可以将所有访问该数据结构的代码块标记为互斥的(mutually exclusive),岂不是很好?如果任何线…

flutter 没有open android module in Android studio 插件代码爆红

参考 1.结论 其实就是缺少这个文件 2.解决方案有两个 2.1 方案一 手动创建一个,命名规则是项目名字‘_android’‘.iml’ 内容如下: <?xml version"1.0" encoding"UTF-8"?> <module type"JAVA_MODULE" version"4">&l…

Python小白入门:类和面向对象思想的超详细知识点总结

目录 一、创建和使用类1.1 创建类1.2 根据类创建实例1.2.1访问属性1.2.2 调用方法1.2.3 创建多个实例 练习题 二、使用类和实例2.1 创建一个类2.2 给属性指定默认值2.3 修改属性值2.3.1 直接通过实例进行修改2.3.2通过方法进行设置2.2.3 通过方法对属性值进行递增 练习题 三、继…

【第一阶段】kotlin中反引号中的函数名特点

在kotlin中可以直接中文定义函数&#xff0c;使用反引号进行调用 eg: fun main() {2023年8月9日定义的函数(5) }private fun 2023年8月9日定义的函数(num:Int){println("反引号的用法$num") }执行结果 在Java中is,in可以定义方法&#xff0c;但是在kotlin中is,in是…

基于亚奈奎斯特采样和SOMP算法的平板脉冲响应空间插值matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................... %fine regular gr…

RobotFramework的安装过程及应用举例

一、安装python3.8.0 二、安装wxPython C:\>pip install -U wxPython Collecting wxPythonObtaining dependency information for wxPython from https://files.pythonhosted.org/packages/00/78/b11f255451f7a46fce2c96a0abe6aa8b31493c739ade197730511d9ba81a/wxPython-…

flutter开发实战-实现marquee根据文本长度显示文本跑马灯效果

flutter开发实战-实现marquee文本跑马灯效果 最近开发过程中需要marquee文本跑马灯效果&#xff0c;这里使用到了flutter的插件marquee 效果图如下 一、marquee 1.1 引入marquee 在pubspec.yaml中引入marquee # 跑马灯效果marquee: ^2.2.31.2 marquee使用 marquee使用也是…