[GNN] 图神经网络入门

news/2025/1/15 23:32:39/

GNN和GCN的入门公式

  • 一、GNN的计算
  • 二、GCN的计算

跟随B站课程【GNN图神经网络最牛教程】学不会up直接下跪!图神经网络快速入门教程(GNN/GCN)的笔记

一、GNN的计算

在这里插入图片描述

对于一个图来说,要更新它自身的特征,也要更新它邻接节点的特征

mi=G({Wjhj}:j∈Ni)m_{i}=G(\{W_{j}h_{j}\}: j \in N_{i})mi=G({Wjhj}:jNi)

其中 WjW_{j}Wj表示节点间的权重,hjh_{j}hj表示节点的特征值

总的更新公式就是

hi=σ(W1hi+∑j∈NiWjhj)h_{i}=\sigma(W_{1}h_{i}+\sum_{j\in N_{i}} W_{j}h_{j})hi=σ(W1hi+jNiWjhj)

其中后半部分的求和部分还可以根据需求进行替换

在这里插入图片描述

二、GCN的计算

在这里插入图片描述

一个图计算的时候需要节点特征,邻接矩阵以及度矩阵。

因为邻接矩阵还要考虑自身节点,所以带上对角线变为1(就是节点自己和自己相连,一起引入计算)

A~=A+λIN\tilde A=A+\lambda I_{N}A~=A+λIN

在这里插入图片描述

其中度矩阵是用来做归一化scale的(或者说求平均),这时候就需要用度来分化自身的权重。

D~−1A~\tilde D^{-1} \tilde AD~1A~

在这里插入图片描述
D~−1A~X\tilde D^{-1} \tilde AXD~1A~X
在这里插入图片描述

然后再乘特征矩阵X,但是这只是对行向量进行了平均,还要考虑对列向量平均

D~−1A~D~−1X\tilde D^{-1} \tilde A \tilde D^{-1} XD~1A~D~1X

但是这等于对行列进行了两次归一化,所以最终的形式是

A^=D~−12A~D~−12X\hat A= \tilde D^{-\frac{1}{2}} \tilde A \tilde D^{-\frac{1}{2}} XA^=D~21A~D~21X

整个两层神经网络的计算公式就是

Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))Z=f(X, A)=softmax(\hat A ReLU(\hat AXW^{(0)})W^{(1)})Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))

然后GNN的层数一般比较少,一般两三层比较合适。


http://www.ppmy.cn/news/20273.html

相关文章

系统编程中的进程的概念No.1

引言: 北京时间2023/1/28,本小编04年1月9日出生,今天第一次理解到进程的概念,所以我们接下来就学习一下什么是进程以及和进程相关的一些知识。首先我们想要了解进程以及其相关的知识,我们要先理解一下其它方面的知识&…

STC32G 单片机通用串行通信接口及其编程

STC32G 系列单片机有4个全双工通用串行通信接口,串口1与串口2既有异步通信功能、又有同步通信功能,串口1与串口2都可进行SPI通信,SPI是一个全双工高速同步串行;通信总线串口3、串口4只有异步通信功能。本文将重点讨论其异步通信&a…

java递归问题——汉诺塔

目录 🌲🌲什么是汉诺塔? 🐰 当只有1个圆盘的时候: 🐰 当只有2个圆盘的时候: 🐰 当只有3个圆盘的时候: 🌲🌲汉诺塔代码 🐰思路 &am…

数据结构 第四章 串

她:点击收听 1 基本知识点 1、串中的元素是字符 2、操作的对象往往不再是单个数据元素,而是一组数据元素(子串) 3、串:由零个或多个字符组成的有限序列 4、子串:串中任意连续个字符组成的子序列 5、包含子串的串又被称为该子串的主串 6、真…

尚硅谷谷粒音乐项目学习笔记及答疑解惑(41-62集)

第四十二集:这里面有一个把nav.less抽离出来的写法,我用的vscode,这里需要在nav.less里引入1-px和rem,可能是编译器(视频里用的是hbuild)这个需要注意,其它的照着写不会出错。 第四十三集:编译时间不算性能…

高并发下如何保证接口的幂等性?

一、什么是幂等? 看一下维基百科怎么说的: 幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 二、使用幂等的场景 1、前端重复提交 用户注册,用户创建商品等操作&#…

【Maven】属性管理

1. 属性 问题导入 定义属性有什么好处&#xff1f; 1.1 属性配置与使用 ①&#xff1a;定义属性 <!--定义自定义属性--> <properties><spring.version>5.2.10.RELEASE</spring.version><junit.version>4.12</junit.version> </prop…

商城业务检索请求分析封装

请求参数封装对象如下 /** * 封装页面所有可能传递进来的查询条件 * catalog3Id225&keyword小米&sortsaleCount_asc&hasStock0/1&attrs */ Data public class SearchParam {private String keyword; //检索的全文关键字private Long catalog3Id;//三级分…