在图神经网络(GNN)上进行关系推理的新架构

       开发能够学习推理的模型是一个众所周知的具有挑战性的问题,在这个领域中,使用图神经网络(GNNs)似乎是一个自然的选择。然而,以往关于使用GNNs进行推理的工作表明,当这些模型面对需要比训练时更长推理链的测试样本时,它们往往会失败。这表明GNNs缺乏以系统化的方式从训练样本中泛化出推理规则的能力,这将根本性地限制它们的推理能力。

       一个常见的解决方案是转而依赖神经符号方法,这些方法由于其设计,能够以系统化的方式进行推理。然而,这些方法的可扩展性通常受到限制,并且它们倾向于依赖过于强烈的假设,例如,假设通过检查单一关系路径就能回答问题。

     本文重新审视了使用GNNs进行推理的想法,展示了只要提供正确的归纳偏差,系统泛化是可能的基于此提出了一种新的 GNN 架构,将节点嵌入视为知识状态,并利用前向和反向模型来模拟所有可能的组合顺序,从而实现系统推理

1 学习推理的现状

1.1 神经网络推理研究现状

  • 基于前馈模型: 例如,知识图谱嵌入方法将实体和关系嵌入到低维空间,以便进行推理。
  • 基于循环模型: 例如,循环神经网络 (RNN) 可以处理序列数据,并用于推理实体之间的关系。
  • 基于 GNN: 例如,图卷积网络 (GCN) 可以有效地学习图结构中的节点表示,并用于推理实体之间的关系。

1.2 GNN 在推理任务中的局限性

  • 缺乏系统泛化能力: GNN 模型通常只能处理训练数据中出现的推理链,难以泛化到训练数据以外的任务。
  • 局部信息传递: GNN 模型通过局部信息传递来更新节点表示,这可能导致节点表示“过载”,即包含来自所有路径的信息。
  • 顺序处理关系路径: GNN 模型只能顺序处理关系路径,难以处理需要组合多个关系路径的推理任务。

1.3 神经符号方法在推理方面的优势

  • 关注关系路径: 神经符号方法通过考虑所有可能的关系路径来模拟推理过程,这为模型提供了有用的归纳偏差。
  • 组合关系路径: 神经符号方法可以将多个关系路径组合成一个新的关系,从而更准确地预测实体之间的关系。

1.4 本文模型与 Edge Transformers 的相似之处

  • 本文模型和 Edge Transformers 都利用 GNN 来学习实体之间的关系。
  • 本文模型和 Edge Transformers 都关注关系路径的建模,但本文模型通过将节点嵌入视为知识状态来提供更强的归纳偏差。
  • 本文模型和 Edge Transformers 都能够处理系统推理任务,但本文模型通过利用前向和反向模型来模拟所有可能的组合顺序,从而更有效地处理多个关系路径的组合。

2 GNN新架构

框架的概览

2.1 核心思想

  • 推理涉及知识状态的操纵: 推理过程可以看作是迭代地细化实体之间可能关系集合的过程。
  • 节点嵌入表示知识状态: 节点嵌入应该编码实体之间可能关系的概率分布,而不是简单的节点特征。
  • 利用前向和反向模型: 利用前向和反向模型来模拟所有可能的组合顺序,从而更有效地处理多个关系路径的组合。

2.2 模型结构

2.2.1 前向模型

  • 初始化: 将头实体的节点嵌入初始化为 (1, 0, …, 0),表示与自身相同的关系;其他实体的节点嵌入初始化为均匀分布,表示未知的关系。
  • 更新: 使用消息传递机制来更新节点嵌入。消息传递函数将头实体与其他实体之间的可能关系编码为概率分布,并通过组合操作来更新节点嵌入。
  • 组合函数: 使用二值组合函数将两个关系组合成一个新的关系,并假设关系之间可以由基本关系之一来描述。
  • 聚合: 使用聚合函数来将来自不同路径的信息整合起来,例如使用最小池化操作。

2.2.2 反向模型

  • 初始化: 将尾实体的节点嵌入初始化为 (1, 0, …, 0),表示与自身相同的关系;其他实体的节点嵌入初始化为均匀分布,表示未知的关系。
  • 更新: 使用消息传递机制来更新节点嵌入。消息传递函数将其他实体与尾实体之间的可能关系编码为概率分布,并通过组合操作来更新节点嵌入。
  • 组合函数: 使用二值组合函数将两个关系组合成一个新的关系,并假设关系之间可以由基本关系之一来描述。
  • 聚合: 使用聚合函数来将来自不同路径的信息整合起来,例如使用最小池化操作。

2.2.3 前向-反向模型

  • 组合: 将前向模型和反向模型的节点嵌入组合起来,以获得头实体与尾实体之间的最终关系表示。
  • 聚合: 使用聚合函数来整合来自不同路径的信息,例如使用最小池化操作。

2.3 训练方法

  • 使用边缘损失函数来训练模型,目标是最小化预测关系与真实关系之间的交叉熵损失。
  • 为了提高模型的泛化能力,可以联合训练多个子模型,每个子模型关注不同方面的关系。

2.4 模型优势

  • 系统泛化能力: 通过将节点嵌入视为知识状态,并利用前向和反向模型来模拟所有可能的组合顺序,模型能够有效地处理系统推理任务。
  • 高效性: 模型设计简洁,计算成本较低,可以处理大规模图。
  • 可解释性: 模型易于解释,因为节点嵌入可以直观地表示实体之间可能关系的概率分布。

3 实验

3.1 实验设置

3.1.1 数据集

  • CLUTRR: 一个基于家庭关系的推理基准,包含不同长度的推理链。数据集包含一系列家庭关系的叙述,例如 “Bob 是 Alice 的父亲,Alice 是 Eve 的母亲”,并要求模型推断 Bob 是否是 Eve 的祖父。
  • GraphLog: 一个基于逻辑规则的推理基准,包含不同规模的图和不同长度的推理链。
  • RCC-8: 一个基于 RCC-8 计算的推理基准,要求模型组合多个关系路径来推理实体之间的关系。数据集包含一系列图,图中的节点代表区域,边代表 RCC-8 关系,例如 “a 是 b 的内部” 或 “a 和 b 相交”。
  • Allen’s Interval Algebra: 一个基于时间间隔代数的推理基准,类似于 RCC-8。数据集包含一系列图,图中的节点代表时间间隔,边代表 Allen 区间代数关系,例如 “a 早于 b” 或 “a 与 b 相交”。

3.1.2 基线方法

神经符号方法在系统归纳方面表现出色,但效率较低,并且依赖于强假设。Transformer 变体和图神经网络则更加高效,但它们通常无法处理联合规则或需要从多个关系路径中聚合信息的情况

3.1.2.1 神经符号方法

  • 神经定理证明 (NTP): 这类方法模拟传统的逻辑程序反向推理过程,使用软统一机制来实现可微性,从而学习规则并应用这些规则进行推理。例如,CTP 和 GNTP 都是 NTP 的变体,它们使用不同的方法来加速反向推理过程。
  • 神经组合规则学习 (NCRL): 这类方法通过学习隐式规则来学习关系路径的组合,并通过注意力机制来选择相邻关系进行组合。R5 也是类似的方法,但它使用蒙特卡洛树搜索来确定关系的组合顺序。

3.1.2.2 图神经网络

  • 图卷积网络 (GCN): 这类方法使用局部消息传递来更新节点表示,并通过聚合来自相邻节点的信息来学习关系。
  • 关系图卷积网络 (R-GCN): 这类方法是 GCN 的变体,使用关系特定的线性变换来计算消息,类似于我们的模型,但没有我们的归纳偏置。
  • 图注意力网络 (GAT): 这类方法是 GCN 的变体,使用基于注意力的聚合机制来处理节点之间的依赖关系。
  • 边缘图注意力网络 (E-GAT): 这类方法是 GAT 的变体,考虑了边类型,并使用 LSTM 模块来组合相邻节点的嵌入和边类型的嵌入。
  • 神经贝尔曼-福特网络 (NBFNet): 这类方法学习特定头节点的节点嵌入,并捕捉与头节点之间的关系,类似于我们的模型,但没有我们的归纳偏置。
  • 循环神经网络 (RNN)、长短期记忆网络 (LSTM) 和门控循环单元 (GRU): 这些方法使用循环结构来处理序列数据,并尝试通过采样路径和编码路径来推理关系。

3.1.2.3 Transformer

边缘转换器 (ET): 这类方法修改了 Transformer 模型,使用注意力机制来模拟关系组合。它们将节点嵌入解释为图的边表示,并通过组合相邻边的嵌入来更新节点表示。

3.1.3 评价指标

使用准确率来评估模型的性能。

3.2 实验结果

CLUTRR: 本文提出的 FB 模型在所有推理链长度上均优于 GNN 和 RNN 基线,与 ET 和神经符号方法 NCRL 和 R5 性能相当。

GraphLog: 本文提出的 FB 模型在大多数情况下优于 R5 和 NCRL,与 ET 和 GNN 基线性能相当。FB 模型在难度较大的图上表现更稳定。

RCC-8: 本文提出的 FB 模型在所有配置下均优于神经符号方法,与 ET 性能相当。FB-min 模型在所有配置下均取得了最佳性能。

Allen’s Interval Algebra: 本文提出的 FB 模型在所有配置下均优于神经符号方法,与 ET 性能相当。FB-min 模型在所有配置下均取得了最佳性能。

3.2.1 消融实验

  • 子模型数量: 减少子模型数量会导致性能下降,说明每个子模型都捕获了关系的重要方面。
  • 嵌入约束: 移除嵌入的非负约束会导致性能下降,说明嵌入需要编码概率分布。
  • 组合函数: 使用 distmul 作为组合函数会导致性能下降,说明二值组合函数更适合表示关系组合。
  • 前向-反向模型: 仅使用前向模型会导致性能下降,说明前向和反向模型都重要。

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

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

相关文章

某数据泄露防护(DLP)系统NoticeAjax接口SQL注入漏洞复现 [附POC]

文章目录 某数据泄露防护(DLP)系统NoticeAjax接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现某数据泄露防护(DLP)系统NoticeAjax接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内…

SpringBoot 项目配置文件注释乱码的问题解决方案

一、问题描述 在项目的配置文件中,我们写了一些注释,如下所示: 但是再次打开注释会变成乱码,如下所示: 那么如何解决呢? 二、解决方案 1. 点击” File→Setting" 2. 搜索“File Encodings”, 将框…

DDoS 究竟在攻击什么?

分布式拒绝服务(DDoS)攻击是一种常见的网络攻击形式,攻击者通过向目标服务端发送大量的请求,使目标服务端无法进行网络连接,无法正常提供服务。 DDoS 攻击通常是由大量的分布在全球各地的 “僵尸” 计算机&#xff08…

力扣高频SQL 50题(基础版)第七题

文章目录 力扣高频SQL 50题(基础版)第七题1068. 产品销售分析 I题目说明思路分析实现过程准备数据:实现方式:结果截图:总结: 力扣高频SQL 50题(基础版)第七题 1068. 产品销售分析 I 题目说明 …

Android adb shell ps进程查找以及kill

Android adb shell ps进程查找以及kill 列出当前Android手机上运行的所有进程信息如PID等: adb shell ps 但是这样会列出一大堆进程信息,不便于定向查阅,可以使用关键词查找: adb shell "ps | grep 关键词" 关键词查…

Mysql中如何实现两列的值互换?给你提供些思路。

文章目录 Mysql中如何实现两列的值互换1、第一感觉此sql应该能处理问题了2、需要一个地方存要替换的值,不然两列搞不定。2.1 加第三列?(能解决,但是看起来呆呆)2.2 上临时表(搞点弯路走走) 示例…

Linux学习第55天:Linux 4G 通信实验(更快、更高、更强)

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 无论是有线网络还是WiFi都是摆脱不了布线的尴尬,而4G通信可以彻底拜托网线的束缚,实现无线网络通信。 而说到4G就不得不提到5G,中…

jenkins删除历史构建记录

1、 登录jenkins,进入【Manage Jenkins】-【Script Console】,输入: def jobName "Test" //删除的项目名称 def maxNumber 60 // 保留的最小编号,意味着小于该编号的构建都将被删除 Jenkins.instance.getItemByFullN…

单元测试--Junit

Junit是Java的单元测试框架提供了一些注解方便我们进行单元测试 1. 常用注解 常用注解&#xff1a; TestBeforeAll&#xff0c;AfterAllBeforeEach&#xff0c;AfterEach 使用这些注解需要先引入依赖&#xff1a; <dependency><groupId>org.junit.jupiter<…

Vue3与Element-plus配合 直接修改表格中的一项数据——控制输入框的显示与隐藏

利用控制与隐藏输入框,直接修改表格中的每一项数据。 <!-- 表格模块 --> <div><el-table :data"tablelist" style"width: 100%"><el-table-column align"center" prop"deposit" label"接单押金">&l…

【 C++ 】 一文搞定——引用、内联、命名空间、缺省、重载

前言&#xff1a;这篇文章将带您了解C基础中的知识点——命名空间、引用、内联、缺省、重载 &#x1f618;我的主页&#xff1a;OMGmyhair-CSDN博客 一、命名空间namespace 1.可以嵌套定义&#xff0c;但是只能定义在全局 namespace ly {int student 1;int age 21;void Pr…

windows wsl ubuntu系统安装桌面可视化

参考&#xff1a; https://www.bilibili.com/read/cv33557374/ 1&#xff09;首先先安装好wsl ubuntu系统 2&#xff09;安装 Ubuntu 桌面版 sudo apt purge -y acpid acpi-support modemmanagersudo apt-mark hold acpid acpi-support modemmanager sudo apt install ubunt…

数据库连接断开后,DBAPI的数据源如何自动重连

现象 在使用DBAPI的过程中&#xff0c;如果网络抖动导致数据库连接不上&#xff0c;发现DBAPI的数据源不能重连&#xff0c;必须重启DBAPI才能连上数据库 解决办法 在数据源的连接池参数配置druid.breakAfterAcquireFailurefalse注意在企业版的4.1.1及以上版本才可以配置连接…

捉虫笔记(1)之 WinDbg符号配置

WinDbg符号配置 1、WinDbg简单介绍 WinDbg 是微软的一款强大的调试工具&#xff0c;用于 Windows 平台的内核和用户模式调试。它提供了一系列强大的功能&#xff0c;包括内存和寄存器的查看、断点设置、堆栈跟踪、性能分析等。 WinDbg 的历史可以追溯到微软早期的调试工具&a…

OceanBase v4.2 特性解析:如何实现表级恢复

背景 在某些情况下&#xff0c;你可能会因为误操作而遇到表数据损坏或误删表的情况。为了能在事后将表数据恢复到某个特定时间点&#xff0c;在OceanBase尚未有表级恢复功能之前&#xff0c;你需要进行以下步骤&#xff1a; 利用OceanBase提供的物理恢复工具&#xff0c;您可…

ESP8266用AT指令实现连接MQTT

1准备工作 硬件&#xff08;ESP8266&#xff09;连接电脑 硬件已经烧入了MQTT透传固件 2实现连接 2-1&#xff08;进入AT模式&#xff09; 打开串口助手发送如下指令 AT 2-2&#xff08;复位&#xff09; ATRST 2-3&#xff08;开启DHCP&#xff0c;自动获取IP&#x…

Java二十三种设计模式-代理模式模式(8/23)

代理模式&#xff1a;为对象访问提供灵活的控制 引言 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它为其他对象提供一个代替或占位符&#xff0c;以控制对它的访问。 基础知识&#xff0c;java设计模式总体来说设计模式分为三大类&#…

基于 HTML+ECharts 实现智慧运维数据可视化大屏(含源码)

智慧运维数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 在现代企业中&#xff0c;运维管理是确保系统稳定运行的关键环节。随着数据量的激增&#xff0c;如何高效地监控和分析运维数据成为了一个重要课题。本文将介绍如何利用 HTML 和 ECharts 实现一个智慧运维数据可…

14、如何⽤DDD设计微服务代码模型

在完成领域模型设计后&#xff0c;接下来我们就可以开始微服务的设计和 落地了。在微服务落地前&#xff0c;⾸先要确定微服务的代码结构&#xff0c;也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后&#xff0c;我们才可以将 领域对象映射到…

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻&#xff0c;只能有一个owner。当这个owner超过范围&#xff0c;则该值会被丢弃。 String类型 为什么需…