当前位置: 首页 > article >正文

R-GCN-Modeling Relational Data with GraphConvolutional Networks(论文笔记)

CCF等级:B

发布时间:2018年6月

25年3月31日交

目录

一、简介

二、原理

1.整体

2.信息交换与更新

2.1基分解

2.2块对角矩阵

3.实体分类或链接预测

3.1实体分类

3.2链接预测

三、结论和未来工作


一、简介

RGCN通过允许不同关系类型之间的信息传播,能够更好地捕捉图中的复杂关系结构,从而提高了知识图谱补全的效果。


二、原理

1.整体

主要有三步。初始嵌入向量——信息交换与更新——链接预测或实体分类。

初始嵌入向量:利用已有的知识图谱嵌入方法,将实体转化为向量。(不重要)

R-GCN模型由多层神经网络组成,每一层都会更新每个节点的隐藏状态。对于每个节点,它的新隐藏状态依赖于它的邻居节点的信息以及与这些邻居之间的关系类型还有自己原本的信息。

例如:三元组( h1 , r1 , t1 )和( h1 , r2 , t2 )。

更新 h1 隐藏状态(信息)时,取决于邻居节点信息( t1 和 t2 ),邻居之间的关系类型( r1 和 r2 ),还有自己原本的信息 h1 。

经过多层的信息交换后,每个实体都会得到一个最终的嵌入向量,这个向量捕捉了该实体在其局部邻域中的上下文信息及与其他实体的关系。(太抽象了,目前看不懂)

最后使用解码器,对给定头实体和关系的三元组进行评分,选择得分最高的候选作为预测结果。(类似于嵌入模型的评分函数)

2.信息交换与更新

简单来说就是将这个节点与周围和它连接的实体、关系都进行计算,更新这个节点的信息。

h_{i}^{(l+1)} = \sigma (\sum_{r \in R} \sum_{j \in N_{i}^{r}}\frac{1}{c_{i,r}}W_{r}^{(l)}h_{j}^{(l)}+W_{0}^{(l)}h_{i}^{(l)})

其中,h_{i}^{(l)} 是第 l 层节点 i 的隐藏状态N_{i}^{r}表示通过关系 r 与节点 i 相连的所有邻居节点集合,W_{r}^{l}是关系 r 对应的权重矩阵,\sigma 是激活函数(如ReLU),c_{i,r} 是归一化常数,用于调整不同关系类型的贡献度。

文章中为了应对大规模多关系数据中的参数快速增长问题,提出了两种正则化技术。

2.1基分解

基分解的主要目的是通过共享权重来减少模型的参数数量,从而降低过拟合的风险,并提高模型处理稀疏关系类型的能力。在基分解中,每个关系特定的变换矩阵 W_{r}^{(l)}​ 被表示为一组基础变换矩阵的线性组合。

W_{r}^{(l)} =\sum_{b=1}^{B} a_{rb}^{(l)} V_{b}^{(l)}

其中:

  • W_{r}^{(l)}是第 l 层中关系 r 的变换矩阵。
  • V_{b}^{(l)}是第 l 层的基础变换矩阵,共有 B 个基础变换矩阵。
  • a_{rb}^{(l)}是系数,决定了如何将基础变换矩阵组合成关系特定的变换矩阵。

2.2块对角矩阵

块对角矩阵分解的目标是通过对权重矩阵施加结构约束来减少参数数量,同时保留模型的表达能力。在块对角矩阵分解中,每个关系特定的变换矩阵 W_{r}^{(l)} 被定义为多个低维块矩阵的直接和。

W_{r}^{(l)} = \bigoplus_{b=1}^{B}Q_{br}^{(l)}

其中:

  • Q_{br}^{(l)}是第 l 层中关系 r 的第 b 个块矩阵。
  • W_{r}^{(l)}是一个块对角矩阵,形式为diag(Q_{1r}^{(l)},Q_{2r}^{(l)},...,Q_{Br}^{(l)}),每个Q_{br}^{(l)}是一个较小的子矩阵。

这两种正则化技术共同作用,帮助R-GCN在处理大规模、多关系数据时更加高效和稳定,同时避免了过拟合的问题。在实际应用中,可以根据具体任务的需求选择合适的正则化方法。

3.实体分类或链接预测

3.1实体分类

使用交叉熵损失函数模型可以学习到更好的参数,从而提高分类的准确性。

\mathcal{L} = - \sum_{i \in \mathcal{Y}} \sum_{k=1}^{K} t_{ik} \ln h_{ik}^{(L)}

其中:

  • \mathcal{L}表示损失函数
  • i \in \mathcal{Y}表示对于所有标签已知的实体 i 进行求和
  • K表示类别总数
  • t_{ik}是一个二值变量,表示实体 i 是否属于类别 k。如果实体 i 属于类别 k,则 t_{ik}=1;否则 t_{ik}=0。
  • h_{ik}^{(L)}是模型预测实体 i 属于类别 k 的概率。

通过这种方式,模型能够逐步优化其参数,提高对实体分类的准确率。

3.2链接预测

  • 编码器-解码器框架:采用了图自动编码器模型,其中包含一个用于生成实体向量表示的编码器(R-GCN)和一个用于评分潜在三元组的解码器(如DistMult)。
  • 评分函数:使用了DistMult作为评分函数,这是一种简单而有效的因子分解方法,用于计算三元组的得分。
  • 训练策略:利用负采样技术,并优化交叉熵损失,以提高模型区分正样本和负样本的能力。

评分函数:

f(s,r,0) = e_s^TR_re_o

其中

  • f(s,r,o)给定主体 s ,关系 r,客体 o的三元组得分。
  • e_s,e_o分别是主题和客体的嵌入向量。
  • R_r与每种关系类型 r 相关的对角矩阵。

损失函数为:

\mathcal{L} = -\frac{1}{(1+\omega)|\hat{E}|} \sum_{(s,r,o,y) \in T} y \log l(f(s,r,o)) + (1-y) \log(1-l(f(s,r,o)))

  • \mathcal{L}:表示损失函数 LL,并添加描述。
  • \omega:表示负样本与正样本比例的符号,并添加描述。
  • |\hat{E}|:表示观察到的边集合的大小,使用绝对值符号 | | 表示集合大小。
  • T:表示所有三元组的集合。
  • l(x):定义逻辑斯谛sigmoid函数,使用分数形式 \frac{1}{1 + e^{-x}} 表达。
  • y:表示指示变量,并分别说明正样本 (y=1y=1) 和负样本 (y=0y=0) 的取值。

三、结论和未来工作

1.考虑未来引入注意力机制.

2.探索更适合特定任务的解码器,以进一步提高模型性能。

相关文章:

R-GCN-Modeling Relational Data with GraphConvolutional Networks(论文笔记)

CCF等级:B 发布时间:2018年6月 25年3月31日交 目录 一、简介 二、原理 1.整体 2.信息交换与更新 2.1基分解 2.2块对角矩阵 3.实体分类或链接预测 3.1实体分类 3.2链接预测 三、结论和未来工作 一、简介 RGCN通过允许不同关系类型之间的信息…...

蓝桥杯第十六届模拟赛——基础细节考频分析

文章目录 前言一、STL函数二、日期问题三、质数与约数四、基本常识总结 前言 一、STL函数 #include< cmath > 详解floor函数、ceil函数和round函数 1.floor() 功能&#xff1a;把一个小数向下取整如果数是2.2 &#xff0c;那向下取整的结果就为2.000000如果数是-2.2 &…...

【C++初阶】----模板初阶

1.泛型函数 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 2.函数模板 2.1函数模板的概念 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型…...

PyCharm操作基础指南

一、安装与配置 1. 版本选择 专业版&#xff1a;支持 Web 开发&#xff08;Django/Flask&#xff09;、数据库工具、科学计算等&#xff08;需付费&#xff09;。 社区版&#xff1a;免费&#xff0c;适合纯 Python 开发。 2. 安装步骤 访问 JetBrains 官网 下载对应版本。…...

Pycharm(七):几个简单案例

一.剪刀石头布 需求&#xff1a;和电脑玩剪刀石头布游戏 考察点&#xff1a;1.随机数&#xff1b;2.判断语句 import random # numrandom.randint(1,3) # print(num) # print(**30) #1.录入玩家手势 playerint(input(请输入手势&#xff1a;&#xff08;1.剪刀 2.石头 3&…...

Android并发编程:线程池与协程的核心区别与最佳实践指南

1. 基本概念对比 特性 线程池 (ThreadPool) 协程 (Coroutine) 本质 Java线程管理机制 Kotlin轻量级并发框架 最小执行单元 线程(Thread) 协程(Coroutine) 创建开销 较高(需分配系统线程资源) 极低(用户态调度) 并发模型 基于线程的抢占式调度 基于协程的协作式调度 2. 核心差异…...

MySQL内存使用率高问题排查与解决方案:

目录标题 **一、问题现象****二、核心排查步骤****1. 参数检查****2. 内存使用分析****3. 存储过程/函数/视图检查****4. 操作系统级检查** **三、解决方案****1. 调整MySQL配置****2. 关闭透明大页&#xff08;THP&#xff09;****3. 优化查询与存储过程****4. 硬件与环境优化…...

gnvm切换node版本号

1. gnvm下载官网 GNVM - Node.js version manager on Windows by Go 2. 安装 2.1 不存在 Node.js 环境 下载并解压缩 gnvm.exe 保存到任意文件夹&#xff0c;并将此文件夹加入到环境变量 Path。 2.2 存在 Node.js 环境 下载并解压缩 gnvm.exe 保存到 Node.js 所在的文件夹。 2.…...

PyTorch 深度学习实战(29):目标检测与 YOLOv12 实战

在上一篇文章中&#xff0c;我们探讨了对比学习与自监督表示学习。本文将深入计算机视觉的核心任务之一——目标检测&#xff0c;重点介绍最新的 YOLOv12 (You Only Look Once v12) 算法。我们将使用 PyTorch 实现 YOLOv12 模型&#xff0c;并在 COCO 数据集上进行训练和评估。…...

Python爬虫:开启数据抓取的奇幻之旅(一)

目录 一、爬虫初印象&#xff1a;揭开神秘面纱​ 二、工欲善其事&#xff1a;前期准备​ &#xff08;一&#xff09;Python 环境搭建​ 1.下载 Python 安装包&#xff1a;​ 2.运行安装程序&#xff1a;​ 3.配置环境变量&#xff08;若自动添加失败&#xff09;&#x…...

python下载m3u8格式视频

一、安装 m3u8库 pip install requests pip install requests m3u8 二、编码实现 import os import re import requests import subprocess# 下载ts文件 def down_ts_file(base_url, m3u8_url, download_dir):# 从m3u8文件中获取所有ts的分片名称信息response requests.get…...

【区块链安全 | 第五篇】DeFi概念详解

文章目录 DeFi1. DeFi 生态概览2. 去中心化交易所&#xff08;DEX&#xff09;2.1 AMM&#xff08;自动做市商&#xff09;模型2.2 订单簿模式&#xff08;现货交易&#xff09; 3. 借贷协议3.1 Aave3.2 使用闪电贷&#xff08;Flash Loan&#xff09; 4. 稳定币&#xff08;St…...

【初探数据结构】归并排序与计数排序的序曲

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对数据结构感…...

基于ruoyi快速开发平台搭建----超市仓库管理(修改记录1)

一、数据库的设计一定注意不要用关键字 数据库是同学设计的&#xff0c;但是在实践过程中&#xff0c;发现&#xff0c;生成的代码一直报错&#xff0c;结果发现数据库里面商品表里面的商品类别竟然设置成class, 注意&#xff1a;&#xff1a; class 是 Java 中的关键字&…...

《AI加持,SQL Server预测性维护全攻略》

在数字化时代&#xff0c;数据就是企业的生命线&#xff0c;而SQL Server作为一款应用广泛的关系型数据库管理系统&#xff0c;承载着企业海量的数据资产。但数据库运行过程中&#xff0c;故障就像隐藏在暗处的“定时炸弹”&#xff0c;随时可能引发数据丢失、业务中断等严重后…...

Java基础——面向对象

1.抽象Abstract&#xff1a;抽象类和抽象方法&#xff1b; 抽象类&#xff1a;不完整的类&#xff0c;就是抽象类&#xff1a;abstract class 类名&#xff1b; 抽象方法:只有声明&#xff0c;没有实现的方法&#xff1b; abstract 返回值类型 方法名&#xff08;参数&#…...

Springboot学习笔记3.20

目录 1.实战篇第一课 我们将会在本次实战中学习到哪些知识点&#xff1f; 开发模式和环境搭建&#xff1a; 注册接口 1.Lombok 2.开发流程 1.controller层&#xff0c;这个层会指明访问路径和要执行的逻辑&#xff1a; 2.我们把返回结果根据接口文档包装成一个类result&a…...

Ubuntu和Windows实现文件互传

1.开启Ubuntu下的FTP服务&#xff1a; &#xff08;1&#xff09;终端输入&#xff1a; sudo apt-get install vsftpd&#xff08;2&#xff09;安装完成后&#xff1a; 终端输入&#xff1a; /etc 是 Linux 系统的全局配置文件目录&#xff0c;存储系统和应用程序的配置信息…...

java面向对象从入门到入土

面向对象进阶 (写程序的套路) 面向:拿,找 对象:能干活的东西 面向对象编程:拿东西过来做对应的事情 (写程序的套路) 面向:拿,找 对象:能干活的东西 面向对象编程:拿东西过来做对应的事情 重点学习:学习已有对象并使用,学习如何自己设计对象并使用 设计对…...

linux ACL权限控制之用户权限控制程序设计

linux中的ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种比传统UNIX权限更细粒度的权限控制机制&#xff0c;允许为文件和目录设置更为具体的用户和组权限。本文介绍使用acl命令和程序api对文件进行更精细的用户权限控制。 1. 命令行示例 使…...

Java多线程与JConsole实践:从线程状态到性能优化!!!

目录 一、前言二、JConsole 使用教程二、线程的基本状态2.1新建状态&#xff08;New&#xff09;2.2就绪状态&#xff08;Ready&#xff09;2.3运行状态&#xff08;Running&#xff09;2.4 阻塞状态&#xff08;Blocked&#xff09;2.5. 等待状态&#xff08;Waiting&#xff…...

从入门到精通:SQL注入防御与攻防实战——红队如何突破,蓝队如何应对!

引言&#xff1a;为什么SQL注入攻击依然如此强大&#xff1f; SQL注入&#xff08;SQL Injection&#xff09;是最古老且最常见的Web应用漏洞之一。尽管很多公司和组织都已经采取了WAF、防火墙、数据库隔离等防护措施&#xff0c;但SQL注入依然在许多情况下能够突破防线&#…...

Stable Diffusion vue本地api接口对接,模型切换, ai功能集成开源项目 ollama-chat-ui-vue

1.开启Stable Diffusion的api服务 编辑webui-user.bat 添加 –api 开启api服务&#xff0c;然后保存启动就可以了 2.api 文档地址 http://127.0.0.1:7860/docs3. 文生图 接口 地址 /sdapi/v1/txt2img //post 请求入参 {enable_hr: false, // 开启高清hrdenoising_stre…...

缓存使用纪要

一、本地缓存&#xff1a;Caffeine 1、简介 Caffeine是一种高性能、高命中率、内存占用低的本地缓存库&#xff0c;简单来说它是 Guava Cache 的优化加强版&#xff0c;是当下最流行、最佳&#xff08;最优&#xff09;缓存框架。 Spring5 即将放弃掉 Guava Cache 作为缓存机…...

第十四届蓝桥杯真题(PWM输出)

一.LED 先配置LED的八个引脚为GPIO_OutPut&#xff0c;锁存器PD2也是&#xff0c;然后都设置为起始高电平&#xff0c;生成代码时还要去解决引脚冲突问题 二.按键 按键配置&#xff0c;由原理图按键所对引脚要GPIO_Input 生成代码&#xff0c;在文件夹中添加code文件夹&#…...

【Qt】ffmpeg编码—存储(H264)

目录 一、编码分析 1.解码线程&#xff1a; ​编辑2.编码线程&#xff1a; ​编辑 ​编辑 二、ffmpeg编码 1.注册所有组件 2.编码初始化函数 &#xff08;2&#xff09;打开视频流 4.查找编码器 5. 写文件头信息&#xff0c;写到formatContex中 6.发送一帧数据给编码器…...

Webview详解(下)

第三阶段&#xff1a;性能优化 加载速度优化 缓存策略 缓存策略可以显著减少网络请求&#xff0c;提升页面加载速度。常用的缓存策略包括 HTTP 缓存和本地资源预加载。 1. HTTP 缓存 HTTP 缓存利用 HTTP 协议中的缓存机制&#xff08;如 Cache-Control、ETag 等&#xff0…...

【MySQL基础-16】MySQL DELETE语句:深入理解与应用实践

1. DELETE语句基础&#xff1a;数据删除的艺术 在数据库管理中&#xff0c;DELETE语句是维护数据完整性和清理过期信息的关键工具。与日常生活中的"删除"不同&#xff0c;数据库中的删除操作需要更加谨慎和精确&#xff0c;因为数据一旦删除&#xff0c;恢复可能非常…...

相对位置嵌入和旋转位置编码

1. 相对位置嵌入&#xff1a;给注意力机制加“人际关系记忆” 像班级座位表 想象全班同学&#xff08;序列的各个元素&#xff09;坐成一个圈&#xff0c;老师&#xff08;模型&#xff09;要记住每个人之间的相对位置&#xff1a; 传统方法&#xff1a;老师给每个座位贴绝对…...

Unity编辑器功能及拓展(1) —特殊的Editor文件夹

Unity中的Editor文件夹是一个具有特殊用途的目录&#xff0c;主要用于存放与编辑器扩展功能相关的脚本和资源。 一.纠缠不清的UnityEditor 我们Unity中进行游戏构建时&#xff0c;我们经常遇到关于UnityEditor相关命名空间丢失的报错&#xff0c;这时候&#xff0c;只得将报错…...