图卷积网络
2021/4/8 10:13:28
本文主要是介绍图卷积网络,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
图卷积网络
@
目录- 图卷积网络
- 图卷积网络的概述
- 循环图神经网络
- 状态更新与输出
- 不动点理论
- $f$函数的具体实现
- 模型学习
- GNN与RNN
- GNN的局限
- 门控图神经网络(Gated Graph Neural Network)
- 状态更新
- 图卷积网络
- 图卷积缘起
- 图卷积框架(Framework)
- GCN与GNN区别
- 卷积
- 空域卷积(Spatial Convolution)
- 消息传递网络(Message Passing Neural Network)
- 图采样与聚合(Graph Sample and Aggregate)
- 频域卷积(Spectral Convolution)⭐⭐⭐
- 傅里叶变换(Fourier Transform)
- 傅里叶变换的应用
- 傅里叶变换的公式
- 图上的傅里叶变换
- 频域卷积网络(Spectral CNN)
- 切比雪夫网络(ChebNet)
图卷积网络的概述
图神经网络的核心工作是对空间域(Spatial Domain)中节点的Embedding进行卷积操作(即聚合邻居Embedding信息),然而图数据和图像数据的差别在于节点邻居个数、次序都是不定的,因此传统用于图像上的CNN模型中的卷积操作(Convolution Operator)不能直接用在图上,因此需要从频谱域(Spectral Domain)上重新定义这样的卷积操作再通过卷积定理转换回空间域上。
为了在频谱域和空间域中转换,我们借助了傅里叶公式
,并且定义了图上傅里叶变换
(从空间域变换到频谱域)和图上傅里叶逆变换
(从频谱域回到空间域)的变换公式。具体操作是我们将节点的Embedding f(i), i ∈ (1,⋯,N)通过傅里叶正变换从空间域变换到了频谱域\(\hat{f}\),在频谱域上和卷积核h进行卷积操作,再将变换后的节点Embedding通过傅里叶逆变换回到空间域,参与后续的分类等任务。
循环图神经网络
状态更新与输出
最早的图神经网络是基于一个不动点理论。给定一张图\(G\),每个结点都有自己的特征
(节点的特征用\(x_v\)来表示),而且连接两个结点的边也有自己的特征
(边的特征使用\(x_{(v,u)}\)来表示结点\(v\)与结点\(u\)之间的边的特征)。GNN 的学习目标就是获得每个结点的图感知隐藏状态
\(h_v\)。GNN通过迭代式更新所有结点的隐藏状态来实现,结点\(v\)的隐藏状态按照如下方式更新:
公式中的\(f\)就是隐藏状态中的状态更新函数,又叫局部转移函数。其中的\(x_co[v]\)表示与结点\(v\)相邻的边的特征,\(x_ne[v]\)表示结点\(v\)的另据节点的特征,\(h^t_ne[v]\)表示邻居结点在t时刻的隐藏状态。
例如上图,假设结点5为中心结点,其隐藏状态的更新函数如图所示。
除了状态更新函数,还需要一个局部输出函数\(g\),如图。
在 T1 时刻,结点 1 的状态接受来自结点 3 的上一时刻的隐藏状态,因为结点 1 与结点 3相邻。直到 Tn 时刻,各个结点隐藏状态收敛,每个结点后面接一个 g 即可得到该结点的输出 o。
对于不同的图来说,收敛的时刻可能不同,因为收敛是通过两个时刻p范数的差值是否小于某个阈值\(\epsilon\)来判定的,如
\[||\mathbf{H}^{t+1}||_{2}-||\mathbf{H}^{t}||_{2}<\epsilon \]不动点理论
GNN的理论基础就是巴拿赫不动点定理。我们用\(F\)表示若干个\(f\)堆叠得到的一个函数,也称为全局更新函数,则图上所有结点的状态更新公式可以写成:
\[H^{t+1}=F(H^t,X) \]不动点理论指的是,无论\(H_0\)是什么,只要\(F\)是一个压缩映射,\(H_0\)经过不断迭代都会收敛到某一个固定的点
,我们称之为不动点
。那压缩映射又是什么呢,一张图可以解释得明明白白:
上图的实线箭头就是指映射\(F\),任意两个点\(x,y\)在经过\(F\)这个映射后,分别变成了\(F(x),F(y)\).压缩映射就是指\(
这篇关于图卷积网络的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?