在图神经网络(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 作为组合函数会导致性能下降,说明二值组合函数更适合表示关系组合。
  • 前向-反向模型: 仅使用前向模型会导致性能下降,说明前向和反向模型都重要。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

驰骋低代码如何实现对实体的权限控制?

驰骋低代码平台通过一套精细的权限控制机制,实现了对实体(如车辆、学生、员工、固定资产等)的查询范围权限和操作权限的全面控制。这种权限控制不仅确保了数据的安全性和准确性,还提高了系统的灵活性和可定制性。以下是驰骋低代码…

移除链表中值为val的元素

203.移除链表元素 力扣题目链接 (opens new window) 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2: 输入:head [], val 1 输出&…

WPF---Prism视图传参

Prism视图传参方式。 实际应用场景 点击tabitem中的列表数据,同步更新到ListStatic Region对应的界面。目前用两种方式实现了传参数据同步。 第一,事件聚合器(EventAggregator) 1. 定义事件 创建一个事件类,用于传…

go程序在windows服务中优雅开启和关闭

本篇主要是讲述一个go程序,如何在windows服务中优雅开启和关闭,废话不多说,开搞!!!   使用方式:go程序 net服务启动 Ⅰ 开篇不利 Windows go进程编译后,为一个.exe文件,直接执行即…

场站网约车管理的升级让人找车服务更智能

既然是“人找车”,那么如何让人车匹配更快、服务更高效?近日,沧穹科技郑重宣告已助力杭州东站完成P6停车场网约车智能化服务的全面革新升级,一个集高效运营、安全保障与便捷体验于一体的网约车服务典范正式落地。 沧穹科技首创将音频“室内北…

pytest使用

主要技术内容 1.pytest设计 接口测试 框架设想 common—公共的东西封装 1.request请求 2.Session 3.断言 4.Log 5.全局变量 6.shell命令 ❖ config---配置文件及读取 ❖ Log— ❖ payload—请求参数—*.yaml及读取 ❖ testcases—conftest.py; testcase1.py…….可…

Android RSA 加解密

文章目录 一、RSA简介二、RSA 原理介绍三、RSA 秘钥对生成1. 密钥对生成2. 获取公钥3. 获取私钥 四、PublicKey 和PrivateKey 的保存1. 获取公钥十六进制字符串1. 获取私钥十六进制字符串 五、PublicKey 和 PrivateKey 加载1. 加载公钥2. 加载私钥 六、 RSA加解密1. RSA 支持三…

【STM32】IIC学习笔记

学习IIC 前言一、基础知识GPIO_WriteBit 写入高低电平 二、放代码三、逐行细读总结 前言 最近沉迷手写笔记~ 尝试解读江科大的IIC程序,结合笔记更理解IIC 一、基础知识 GPIO_WriteBit 写入高低电平 二、放代码 这个是江科大的软件IIC的设置部分 #include "s…

{Spring Boot 原理篇} Spring Boot自动装配原理

SpringBootApplication 1,Spring Boot 应用启动,SpringBootApplication标注的类就是启动类,它去实现配置类中的Bean的自动装配 SpringBootApplication public class SpringbootRedis01Application {public static void main(String[] args)…

快速入门了解Ajax

博客主页:音符犹如代码系列专栏:JavaWeb关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Ajax的初识 意义:AJAX(Asynchronous JavaScript and…

计算机实验室排课查询小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,教师管理,实验室信息管理,实验室预约管理,取消预约管理,实验课程管理,实验报告管理,报修信息管理&#xff0…

DAY15

数组 冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知 我们看到嵌套循环,应该马上就可以得到这个算法的…

【微信小程序实战教程】之微信小程序 WXML 语法详解

WXML语法基础 从本章开始,我们就正式进入到了小程序项目开发学习的初级阶段,本章将介绍小程序的界面构成。有过网页开发学习经历的同学都知道,网页开发所使用的技术是HTML、CSS和JS,其中HTML用于描述整个网页的结构,也…

【RaspberryPi】树莓派Matlab/Simulink支持包安装与使用

官网支持与兼容性 Raspberry Pi Support from MATLAB - Hardware Support - MATLAB & Simulink Raspberry Pi Support from Simulink - Hardware Support - MATLAB & Simulink Matlab与树莓派兼容性 Simulink与树莓派兼容性 树莓派Matlab&Simulink RaspberryPi支…

【React】通过实际示例详解评论列表渲染和删除

文章目录 一、引言二、初始状态与状态更新1. 使用useState钩子管理状态2. 评论列表的初始数据 三、列表渲染的实现1. list.map(item > { ... })2. return 语句3. JSX 语法4. 为什么这样设计5. 完整解读 四、列表项的唯一标识1. key 的作用2. key 的用法3. 可以没有 key 吗&a…

【React】详解样式控制:从基础到进阶应用的全面指南

文章目录 一、内联样式1. 什么是内联样式?2. 内联样式的定义3. 基本示例4. 动态内联样式 二、CSS模块1. 什么是CSS模块?2. CSS模块的定义3. 基本示例4. 动态应用样式 三、CSS-in-JS1. 什么是CSS-in-JS?2. styled-components的定义3. 基本示例…

github的Codespaces是什么

目录 github的Codespaces是什么 一、定义与功能 二、特点与优势 三、工作原理 四、使用场景与限制 github的Codespaces是什么 GitHub的Codespaces是一个基于云的即时开发环境,它利用容器技术为开发者提供一个完全配置好的开发环境,以便他们能够直接在浏览器或通过Visua…

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)的缩写,它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

Spark实时(五):InputSource数据源案例演示

文章目录 InputSource数据源案例演示 一、​​​​​​​File Source 1、读取text文件 2、读取csv文件 3、读取json文件 二、Socket Source 三、Rate Source InputSource数据源案例演示 在Spark2.0版本之后,DataFrame和Dataset可以表示静态有边界的数据&am…

【RT摩拳擦掌】RT600 4路音频同步输入1路TDM输出方案

【RT摩拳擦掌】RT600 4路音频同步输入1路TDM输出方案 一, 文章简介二,硬件平台构建2.1 音频源板2.2 音频收发板2.3 双板硬件连接 三,软件方案与软件实现3.1 方案实现3.2 软件代码实现3.2.1 4路I2S接收3.2.2 I2S DMA pingpong配置3.2.3 音频数…