图卷积神经网络(GCN)

本文介绍了图卷积神经网络(GCN)的基本原理,包括谱卷积的定义、切比雪夫近似及其在GCN中的应用。GCN通过局部一阶近似谱卷积学习节点特征,简化了计算并能处理大规模图数据。在图数据的分类任务中,GCN表现出优越性能,特别适合引用网络和知识图谱分析。文中还提供了GCN的实现代码链接,用于理解其在网络中信息传播的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. ICLR, 2017.

模型

给定一个过滤器fθ=diag(θ){f_{\bf{\theta }}} = {\rm{diag}}({\bf{\theta }})fθ=diag(θ) ,考虑信号x∈Rd{\bf{x}} \in {\mathbb{R}^d}xRd ,并且θ∈Rd{\bf{\theta }} \in {\mathbb{R}^d}θRdddd 表示向量的纬度。在图上的光谱卷积被定义为
fθ∗x=MfθMTx {f_{\bf{\theta }}} * {\bf{x}} = {\bf{M}}{f_{\bf{\theta }}}{{\bf{M}}^{\rm{T}}}{\bf{x}} fθx=MfθMTx
M{\bf{M}}M是归一图拉普拉斯的特征向量矩阵。归一化的图拉普拉斯被表示为
L=I−D−12AD−12=MΛMT {\bf{L}} = {\bf{I}} - {{\bf{D}}^{ - \frac{1}{2}}}{\bf{A}}{{\bf{D}}^{ - \frac{1}{2}}} = {\bf{M}}\Lambda {{\bf{M}}^{\rm{T}}} L=ID21AD21=MΛMT
Λ\LambdaΛ表示特征值的对角矩阵,MTx{{\bf{M}}^{\rm{T}}}{\bf{x}}MTx是信号x{\bf{x}}x的傅里叶域。

fθ(Λ){f_{\bf{\theta }}}(\Lambda )fθ(Λ)由于计算L{\bf{L}}L的特征分解花费的计算资源是比较昂贵的,为解决这个问题,可以对fθ(Λ){f_{\bf{\theta }}}(\Lambda )fθ(Λ) 进行近似操作,近似后,被定义为:
fθ′(Λ)≈∑k=0Kθ′kCk(Λ~) {f_{{\bf{\theta '}}}}(\Lambda ) \approx \sum\limits_{k = 0}^K {{{\theta '}_k}{{\rm{C}}_k}(\tilde \Lambda )} fθ(Λ)k=0KθkCk(Λ~)
θ′∈RK{\bf{\theta '}} \in {\mathbb{R}^K}θRK 是一个切比雪夫系数组成的向量。 Ck(⋅){{\rm{C}}_k}( \cdot )Ck()被定义为:
Ck(x)=2xCk−1(x)−Ck−2(x) {{\rm{C}}_k}(x) = 2x{{\rm{C}}_{k - 1}}(x) - {{\rm{C}}_{k - 2}}(x) Ck(x)=2xCk1(x)Ck2(x)
其中,C0(x)=1{{\rm{C}}_0}(x) = 1C0(x)=1C1(x)=x{{\rm{C}}_1}(x) = xC1(x)=x

我们定义的过滤器fθ′{f_{{\bf{\theta '}}}}fθ对于信号x{\bf{x}}x的卷积定义为:
fθ′∗x≈∑k=0Kθ′kCk(L~)x {f_{{\bf{\theta '}}}} * {\bf{x}} \approx \sum\limits_{k = 0}^K {{{\theta '}_k}{{\rm{C}}_k}({\bf{\tilde L}})} {\bf{x}} fθxk=0KθkCk(L~)x
L~=2λmax⁡L−I{\bf{\tilde L}} = \frac{2}{{{\lambda _{\max }}}}{\bf{L}} - {\bf{I}}L~=λmax2LI。在GCN中λmax⁡{\lambda _{\max }}λmax被近似等于2。
通过λmax⁡{\lambda _{\max }}λmax 的近似操作,我们可以得到
L~=L−I {\bf{\tilde L}} = {\bf{L}} - {\bf{I}} L~=LI
所以可以得到
fθ′∗x≈θ0′x+θ1′(L−I)x=θ0′x−θ1′D−12AD−12x {f_{{\bf{\theta '}}}} * {\bf{x}} \approx {\theta '_0}{\bf{x}} + {\theta '_1}({\bf{L}} - {\bf{I}}){\bf{x}} = {\theta '_0}{\bf{x}} - {\theta '_1}{{\bf{D}}^{ - \frac{1}{2}}}{\bf{A}}{{\bf{D}}^{ - \frac{1}{2}}}{\bf{x}} fθxθ0x+θ1(LI)x=θ0xθ1D21AD21x
为更好的对参数进行约束,因此可以重新表达为
fθ′∗x≈θ(I+D−12AD−12)x {f_{{\bf{\theta '}}}} * {\bf{x}} \approx \theta ({\bf{I}} + {{\bf{D}}^{ - \frac{1}{2}}}{\bf{A}}{{\bf{D}}^{ - \frac{1}{2}}}){\bf{x}} fθxθ(I+D21AD21)x
值得注意的是θ0′{\theta '_0}θ0,$ - {\theta '_1}$都可以被表达为 θ\thetaθ 。为缓解梯度消失的问题,图卷积神经网络中引入一个重新归一化的技巧,将 I+D−12AD−12{\bf{I}} + {{\bf{D}}^{ - \frac{1}{2}}}{\bf{A}}{{\bf{D}}^{ - \frac{1}{2}}}I+D21AD21 改写为D~−12A~D~−12{{\bf{\tilde D}}^{ - \frac{1}{2}}}{\bf{\tilde A}}{{\bf{\tilde D}}^{ - \frac{1}{2}}}D~21A~D~21

Graph Convolution Neural Networks ,给定输入G(V,E){\mathcal G}({\mathcal V},{\mathcal E})G(V,E),输入节点的特征表示为 xv{{\bf{x}}_v}xv, ∀v∈V\forall v \in {\mathcal V}vV∀u∈N(v)\forall u \in {\mathcal N}(v)uN(v), 表示vvv的邻接节点。我们重新初始化多维度的向量权重。特征矩阵被表示为X{\bf{X}}XX∈Rn×d{\bf{X}} \in {\mathcal{R}^{n \times d}}XRn×d 。对于无向图表示,我们使用 A{\bf{A}}A表示邻接矩阵的连接关系。其中,A^=D~−12A~D~−12{\bf{\hat A}} = {{\bf{\tilde D}}^{ - \frac{1}{2}}}{\bf{\tilde A}}{{\bf{\tilde D}}^{ - \frac{1}{2}}}A^=D~21A~D~21 ,${{\bf{\tilde D}}{ii}} = \sum\nolimits_j {{{{\bf{\tilde A}}}{ij}}} $ , A~=A+I{\bf{\tilde A}} = {\bf{A}} + {\bf{I}}A~=A+I。GCN在网络中信息的传播可以被表述为
H(l+1)=σ(A^H(l)W(l)) {{\bf{H}}^{(l + 1)}} = \sigma ({\bf{\hat A}}{{\bf{H}}^{(l)}}{{\bf{W}}^{(l)}}) H(l+1)=σ(A^H(l)W(l))
H(0)=X{{\bf{H}}^{(0)}} = {\bf{X}}H(0)=Xσ(⋅)\sigma ( \cdot )σ() 表示为ReLu激活函数。

图卷积神经网络通过局部一阶近似谱卷积得到一种新的卷积结构,这种卷积结构可以更好的学习节点特征的嵌入,并在引文网络和知识图谱的数据集中达到更优异的性能。在图卷积网络中,邻接矩阵与特征的卷积可在网络训练之前被计算,这样可以更少的引入网络的计算量。除此以外,图卷积网络使用全部样本计算梯度,因此可以使用全部邻域进行卷积。对于批量样本训练时,仅需要考虑部分邻域卷积。

代码

https://github.com/ChenaniahMe/codes/tree/main/GNN/comgcn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值