图卷积网络GCN(Graph Convolution Network)(三)详解三代图卷积网络理论

原文首发于个人站点 图卷积网络GCN(Graph Convolution Network)(三)详解三代图卷积网络理论
公众号:【DreamHub】

由于文章篇幅较长,因此将其分解为三部分:

前两篇介绍完图卷积网络的背景知识,现在正式引入GCN!

卷积定义

在泛函分析中,卷积是透过两个函数 f f f g g g 生成第三个函数的一种数学算子,表示函数 f f f 与经过翻转和平移的 g g g 的乘积函数所围成的曲边梯形的面积,公式如下所示:
( f ∗ g ) ( t ) =  def  ∫ R n f ( τ ) g ( t − τ ) d τ ( 1 ) (f * g)(t) \stackrel{\text { def }}{=} \int_{\mathbb{R}^{n}} f(\tau) g(t-\tau) d \tau \quad\quad\quad (1) (fg)(t)= def Rnf(τ)g(tτ)dτ(1)

下面给出两幅图来直观理解上述公式,参考卷积解释


以上是连续函数的卷积运算,对于离散卷积公式定义如下:
( f ∗ g ) [ n ] = ∑ m = − ∞ ∞ f [ m ] g [ n − m ] = ∑ m = − ∞ ∞ f [ n − m ] g [ m ] ( 2 ) (f * g)[n]=\sum_{m=-\infty}^{\infty} f[m] g[n-m]=\sum_{m=-\infty}^{\infty} f[n-m] g[m] \quad\quad\quad (2) (fg)[n]=m=f[m]g[nm]=m=f[nm]g[m](2)

卷积除了直接计算这种方法,还可以根据卷积定理来计算。

卷积定理:在适当条件下,两个信号的卷积的傅立叶变换等于它们傅立叶变换的点积。例如,一个域(如时域)的卷积等于另一个域(如频域)的点乘:
F { f ∗ g } = F { f } ⋅ F { g } ( 3 ) \mathcal{F}\{f * g\}=\mathcal{F}\{f\} \cdot \mathcal{F}\{g\} \quad\quad\quad (3) F{fg}=F{f}F{g}(3)

如果以 F − 1 \mathcal{F}^{-1} F1 表示傅里叶逆变换,那么卷积计算可以重新表示为:
f ∗ g = F − 1 { F { f } ⋅ F { g } } ( 4 ) f * g=\mathcal{F}^{-1}\{\mathcal{F}\{f\} \cdot \mathcal{F}\{g\}\} \quad\quad\quad (4) fg=F1{F{f}F{g}}(4)

PS:利用卷积定理可以简化卷积的运算量。对于一个长度为 n n n 的序列,按照卷积的定义来计算则需要做 2 n − 1 2n-1 2n1 组对位乘法,即时间复杂度为 O ( n 2 ) O(n^2) O(n2) ;而利用傅立叶变换后,只需要计算一组对位乘法,而且离散傅立叶变换有快速的算法(快速傅立叶变换),所以总的计算复杂度为 O ( n log ⁡ n ) O(n\log n) O(nlogn)

图卷积

谱图卷积的思想是:既然无法直接在空域对图进行卷积,那么将图信号映射到频域后再做卷积操作。

根据公式 (4)与文章图卷积网络GCN(Graph Convolution Network)(二)图上的傅里叶变换和逆变换 中图上的傅里叶变换公式,可得
( f ∗ h ) G = F − 1 [ F { f } ⋅ F { h } ] = F − 1 [ U T f ⋅ h ^ ] ( 5 ) \begin{aligned} (f * h)_{G} &=\mathcal{F}^{-1}[\mathcal{F}\{f\} \cdot \mathcal{F}\{h\}] \\ &=\mathcal{F}^{-1}\left[\mathbf{U}^{T} f \cdot \hat{h}\right] \end{aligned} \quad\quad\quad (5) (fh)G=F1[F{f}F{h}]=F1[UTfh^](5)

上式表示时域信号 f f f h h h 的卷积等价于将信号转换到傅立叶域做点乘后再逆变换回来。其中,向量 f f f 与向量 h ^ \hat{h} h^ 的元素点积,等价于将 h ^ \hat{h} h^ 组织成对角矩阵的形式进行矩阵乘法,可得:
( f ∗ h ) G = F − 1 [ U T f ⋅ h ^ ] = F − 1 [ diag ⁡ [ h ^ 1 , … , h ^ n ] U T f ] ( 6 ) \begin{aligned} (f * h)_{G} &=\mathcal{F}^{-1}\left[\mathbf{U}^{T} f \cdot \hat{h}\right] \\ &=\mathcal{F}^{-1}\left[\operatorname{diag}\left[\hat{h}_{1}, \ldots, \hat{h}_{n}\right] \mathbf{U}^{T} f\right] \end{aligned}\quad\quad\quad (6) (fh)G=F1[UTfh^]=F1[diag[h^1,,h^n]UTf](6)

根据图上的逆变换计算公式,上式做成 U \mathbf{U} U可得:
( f ∗ h ) G = U diag ⁡ [ h ^ 1 , … , h ^ n ] U T f ( 7 ) (f * h)_{G}=\mathbf{U} \operatorname{diag}\left[\hat{h}_{1}, \ldots, \hat{h}_{n}\right] \mathbf{U}^{T} f\quad\quad\quad (7) (fh)G=Udiag[h^1,,h^n]UTf(7)

也可以写成写成矩阵形式为:
( f ∗ h ) G = U ( ( U T f ) ( U T h ) ) ( 8 ) (f*h)_G=\mathbf{U} ((\mathbf{U} ^Tf)(\mathbf{U} ^Th)) \quad\quad\quad (8) (fh)G=U((UTf)(UTh))(8)

目前先不写成式 (8) 的形式,是因为在 GCN 中我们的卷积核是可训练并且参数共享的,所以在此我们可以直接令 diag ⁡ [ h ^ 1 , … , h ^ n ] = diag ⁡ [ θ 1 , … , θ n ] = g θ ( 9 ) \operatorname{diag}\left[\hat{h}_{1}, \ldots, \hat{h}_{n}\right] =\operatorname{diag}\left[\theta_{1}, \ldots, \theta_{n}\right] = g_{\theta} \quad\quad\quad (9) diag[h^1,,h^n]=diag[θ1,,θn]=gθ(9)

这就是深度学习中的可学习参数。

第一代图卷积

论文来源:《Spectral Networks and Deep Locally Connected Networks on Graphs》

第一代图卷积的计算方法就直接根据式(7)(9)推出
y = σ ( U g θ U T x ) = σ ( U [ θ 1 θ 2 ⋯ θ N ] U T x ) ( 10 ) y=\sigma\left(\mathbf{U}g_{\theta}\mathbf{U}^{T} x\right)= \sigma (\mathbf{U} \begin{bmatrix} {{\theta_1}}{\quad}{\quad}{\quad}{\quad}\\ {{\theta_2}}{\quad}{\quad}\\ {{\quad}\cdots}\\ {{\quad}{\quad}{\quad}{\quad}{\theta_N}}\\ \end{bmatrix} \mathbf{U}^Tx) \quad\quad\quad (10) y=σ(UgθUTx)=σ(Uθ1θ2θNUTx)(10)

虽然利用上式已经可以构造深度网络进行图卷积运算了,但该版本有不少缺点:

  1. 没有local信息。每次卷积都是所有顶点都参与运算,没有实现局部卷积和参数共享。
  2. 运算量大。每次卷积都要进行拉普拉斯矩阵分解和矩阵相乘,计算复杂度为 O ( N 3 ) O(N^3) O(N3)
  3. 参数量大。每个卷积核参数量为 O ( N ) O(N) O(N)

第二代图卷积

文章来源:
《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

针对第一代图卷积中存在的问题,学者基于切比雪夫多项式提出第二代GCN:ChbeyNet

首先回顾下图傅里叶计算公式:
F T ( λ k ) = g ^ k = ∑ i = 1 N g ( i ) u k ( i ) ( 11 ) \mathcal{F}_{T}\left(\lambda_{k}\right)=\hat{g}_{k}=\sum_{i=1}^{N} g(i) u_{k}(i) \quad\quad\quad (11) FT(λk)=g^k=i=1Ng(i)uk(i)(11)

可知函数和特征值密切相关,令 g θ g_{\theta} gθ 为拉普拉斯矩阵 L L L 的特征值函数 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)
y = σ ( U g θ U T x ) = σ ( U g θ ( Λ ) U T x ) ( 12 ) y=\sigma\left(\mathbf{U} g_{\theta} \mathbf{U}^{T} x\right)=\sigma\left(\mathbf{U} g_{\theta}(\Lambda) \mathbf{U}^{T} x\right) \quad\quad\quad (12) y=σ(UgθUTx)=σ(Ugθ(Λ)UTx)(12)

以拉普拉斯矩阵的特征值作为卷积核同样存在缺陷:

  • 不具备局部连接性;
  • 时间复杂度为 O ( n ) O(n) O(n);

为了克服上述缺陷引入 K K K 阶多项式:
g θ ( Λ ) ≈ ∑ k = 0 K − 1 θ k Λ k ( 13 ) g_{\theta}(\Lambda) \approx \sum_{k=0}^{K-1} \theta_{k} \Lambda^{k}\quad\quad\quad (13) gθ(Λ)k=0K1θkΛk(13)

其中,参数 θ k ∈ R K \theta_k\in R^K θkRK 是多项式系数,因此滤波器具有了 K K K 阶局部性,复杂度也降低到 O ( K ) O(K) O(K)

将式代入第一代图卷积式(10)中可得:
y = σ ( U g θ ( Λ ) U T x ) = σ ( U ∑ k = 0 K − 1 θ k Λ k U x ) = σ ( ∑ k = 0 K − 1 θ k L k x ) ( 14 ) y=\sigma\left(\mathbf{U} g_{\theta}(\Lambda) \mathbf{U}^{T} x\right)=\sigma\left(\mathbf{U} \sum_{k=0}^{K-1} \theta_{k} \Lambda^{k} \mathbf{U} x\right)=\sigma\left(\sum_{k=0}^{K-1} \theta_{k} L^{k} x\right)\quad\quad\quad (14) y=σ(Ugθ(Λ)UTx)=σ(Uk=0K1θkΛkUx)=σ(k=0K1θkLkx)(14)

其中 σ \sigma σ 是激活函数,公式(14)的计算时间复杂度为 O ( K × N 2 ) O(K×N^2) O(K×N2) ,因为对于静态图而言 L L L 是固定的, L k L^k Lk 可以提前计算得到。如果使用稀疏矩阵乘法(pytorch里有封装),时间复杂度是 O ( K × ∣ E ∣ ) O(K×|E|) O(K×E) 其中 ∣ E ∣ |E| E 是稀疏矩阵中非零元的个数表示图中边的数量。 此时计算图卷积就不需要再乘上特征向量矩阵 U \mathbf{U} U,而是直接使用拉普拉斯矩阵 L L L k k k 次方,就避免了进行特征分解。

因为 L k L^k Lk K K K 很大的时候并不稀疏( ∣ E ∣ |E| E 接近 N 2 N^2 N2 ),所以文中提出了利用切比雪夫多项式展开(任何 k k k次多项式都可以通过切比雪夫多项式展开)来近似 L k L^k Lk ,切比雪夫多项式递归式为:
T 0 ( x ) = 1 T 1 ( x ) = x T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) ( 15 ) T_0(x)=1\\T_1(x)=x\\T_k(x)=2xT_{k-1}(x)-T_{k-2}(x) \quad\quad\quad (15) T0(x)=1T1(x)=xTk(x)=2xTk1(x)Tk2(x)(15)

因此根据上式可知:
g θ ( Λ ) ≈ ∑ k = 0 K − 1 θ k T k ( Λ ~ ) ( 16 ) g_{\theta}(\Lambda) \approx \sum_{k=0}^{K-1} \theta_{k} T_{k}(\widetilde{\Lambda})\quad\quad\quad (16) gθ(Λ)k=0K1θkTk(Λ )(16)

其中, Λ ~ = 2 λ max ⁡ Λ − I N \tilde{\Lambda}=\frac{2}{\lambda_{\max }} \Lambda-I_{N} Λ~=λmax2ΛIN; λ max ⁡ \lambda_{\max } λmax是指拉普拉斯矩阵 L L L的最大特征值。

PS:因为切比雪夫多项式的输入要在 [ − 1 , 1 ] [-1, 1] [1,1] 之间,由于拉普拉斯矩阵的半正定性,所以所有的特征值都是大于等于 0 的,将其除以最大特征值可以将特征压缩到 [ 0 , 1 ] [0,1] [0,1] 区间内,现在需要将其压缩到 [ − 1 , 1 ] [-1, 1] [1,1],所以我们有: Λ ~ = 2 λ max ⁡ Λ − I N \tilde{\Lambda}=\frac{2}{\lambda_{\max }} \Lambda-I_{N} Λ~=λmax2ΛIN

我们将切比雪夫多项式引入到我们的卷积变换中:
g θ ∗ x ≈ ∑ k = 0 K − 1 θ k T k ( L ~ ) x ( 17 ) g_{\theta} * x \approx \sum_{k=0}^{K-1} \theta_{k} T_{k}(\widetilde{L}) x \quad\quad\quad (17) gθxk=0K1θkTk(L )x(17)

其中, L ~ = 2 λ max ⁡ L − I N \tilde{L}=\frac{2}{\lambda_{\max }} L-I_{N} L~=λmax2LIN 。这个表达式为拉普拉斯多项式中的一个 k k k 阶近似函数,依赖于节点的 k k k 阶邻域( k k k 步可达),时间复杂度与边呈线形相关。

总结第二代图卷积优点如下:

  • 运算量相比第一代的 O ( N 3 ) O(N^3) O(N3) 可以降到 O ( K ∣ E ∣ ) O(K|E|) O(KE)
  • 引入K-hop感受野,可以捕捉局部特征。

第三代图卷积

文章来源:《Semi-supervised Classification with Graph Convolutional Networks》

第二代图卷积解决了拉普拉斯矩阵特征分解的问题,但是在计算图卷积操作时矩阵乘法时间复杂度为 O ( N 2 ) O(N^2) O(N2),在此基础上优化Kipf等人提出了目前流行的 GCN。

GCN 通过式(17)进行多层卷积层进行叠加,而每层都会逐点进行非线性叠加。考虑到时间复杂度问题,令 K = 2 K=2 K=2,也就是说得到了一个拉普拉斯算子的二阶近似函数。既可以对网络进行卷积操作计算量增加不大。通过叠加层数可以提升模型的非线性。

归一化的拉普拉斯矩阵的特征值区间为 [ 0 , 2 ] [0, 2] [0,2],令 λ m a x ≈ 2 , K = 2 {\lambda}_{max} \approx 2, K=2 λmax2,K=2 可得:
g θ ∗ x ≈ θ 0 x + θ 1 ( L − I N ) x = θ 0 x − θ 1 D − 1 2 A D − 1 2 x ( 18 ) g_{\theta} * x \approx \theta_{0} x+\theta_{1}\left(L-I_{N}\right) x=\theta_{0} x-\theta_{1} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x\quad\quad\quad (18) gθxθ0x+θ1(LIN)x=θ0xθ1D21AD21x(18)

其中, θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1是切比雪夫系数且仅存的两个参数!

在GCN的训练过程中需要规范化参数避免过拟合,令 θ = θ 0 ′ = − θ 1 ′ \theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime} θ=θ0=θ1,由式可得:
g θ ∗ x ≈ θ ( I N + D − 1 2 A D − 1 2 ) x ( 19 ) g_{\theta} * x \approx \theta\left(I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\right) x\quad\quad\quad (19) gθxθ(IN+D21AD21)x(19)

注意 I N + D − 1 2 A D − 1 2 I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} IN+D21AD21的特征值范围在 [0, 2] 之间,所以如果在很深的网络中会引起梯度爆炸的问题,需要再次进行一次归一化(Renormalization trick):
I N + D − 1 2 A D − 1 2 → D ~ − 1 2 A ~ D ~ − 1 2 , D ~ i i = ∑ j A ~ i j A ~ = A + I N ( 20 ) I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} , \widetilde{D}_{i i}=\sum_{j} \widetilde{A}_{i j} \widetilde{A}=A+I_{N}\quad\quad\quad (20) IN+D21AD21D 21A D 21,D ii=jA ijA =A+IN(20)

把上式从标量推广到矩阵,对于输入顶点的向量 X ∈ R N × C X \in R^{N \times C} XRN×C ,其中 N N N 为节点数, C C C 为顶点的特征向量维度,可得:
Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ ( 21 ) Z=\widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} X \Theta\quad\quad\quad (21) Z=D 21A D 21XΘ(21)

其中, Θ ∈ R C × F \Theta \in R^{C \times F} ΘRC×F是参数矩阵, Z ∈ R N × F Z \in R^{N \times F} ZRN×F是卷积后的顶点特征,时间复杂度为 O ( ∣ E ∣ F C ) O(|E|FC) O(EFC)

根据上式一层卷积,多层图卷积计算公式公式为:
H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) ( 22 ) H^{(l+1)}=\sigma\left(\widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right)\quad\quad\quad (22) H(l+1)=σ(D 21A D 21H(l)W(l))(22)

其中, A ~ = A + I N \widetilde{A}=A+I_{N} A =A+IN A A A 为邻接矩阵, I N I_N IN 为单位矩阵,所以 A ~ \widetilde{A} A 为添加自连接的邻接矩阵; D ~ i i = ∑ j A ~ i j \widetilde{D}_{i i}=\sum_{j} \widetilde{A}_{i j} D ii=jA ij D ~ \widetilde{D} D 为顶点的度数矩阵; W ( l ) W^{(l)} W(l) 为神经网络第 l l l 层的权重矩阵; σ ( ⋅ ) \sigma(\cdot) σ() 是激活函数; H ( l ) ∈ R N × D H^{(l)} \in R^{N \times D} H(l)RN×D 是第 l l l 层的激活矩阵,并且 H ( 0 ) = X H^{(0)}=X H(0)=X X X X 是由顶点的特征向量组成矩阵。

总结第三代图卷积:

  • 令K=1,相当于只考虑1-hop 邻点。通过堆叠层数来增加感受野。
  • 每层计算复杂度降低为 O ( ∣ E ∣ ) O(|E|) O(E)

总结

CNN 中的卷积无法直接应用于网络图中,所以引出了谱图理论和图中的傅里叶变换,进而定义图卷积的计算方法,最后结合深度学习发展出来 GCN。至此图卷积GCN的理论推导三部曲完成,接下来就开启应用篇吧!

关注作者

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 卷积网络Graph Convolutional NetworkGCN)是一种用于处理结构数据的深度学习模型。其目标是将结构数据的特征表示学习到一个低维的向量空间中,以便于后续的机器学习任务。 GCN的理解: GCN通过将节点的特征与节点的邻居特征进行聚合来学习节点的表示。具体而言,对于每个节点,GCN会计算其邻居节点的特征的加权平均值,并将其与自身的特征进行融合得到新的特征表示。这样的操作可以通过顶点的邻接矩阵和特征矩阵进行计算,并通过神经网络的参数进行学习。 GCN的详细推导: 给定一个结构数据,其表示为一个邻接矩阵A和特征矩阵X。假设有N个节点,每个节点的特征维度为D。那么,我们可以得到一个NxN 的邻接矩阵A,其中A(i, j)表示节点i和节点j之间是否存在边。 GCN的第一层可以表示为:H(1) = f(A, X, W(1)),其中f表示一个对特征进行转换的函数,W(1)为第一层神经网络的权重矩阵。 接下来,我们可以定义第k层GCN的表示为:H(k) = f(A, H(k-1), W(k))。在每一层中,GCN都会根据邻居节点的特征和自身的特征进行更新,并得到一个新的特征表示。 最后,我们可以将GCN的输出表示为:Z = softmax(A, H(K), W(K+1)),其中softmax为一个将特征映射为概率分布的函数。 总结来说,GCN通过将节点的特征与邻居节点的特征进行融合来学习节点的表示,通过多层堆叠的方式逐渐提取更高级别的特征。这使得GCN结构数据上具有良好的表达能力和预测能力,并已经在社交网络、推荐系统等领域取得了很好的效果。 ### 回答2: 卷积网络Graph Convolutional NetworkGCN)是一种用于数据的深度学习方法。它通过在结构上进行信息传播和特征聚合,实现对节点的分类、预测和表示学习等任务。下面将详细介绍GCN的理解和推导。 首先,GCN的核心思想是利用节点的邻居信息对节点进行更新。GCN假设每个节点的特征表示是它自身特征与邻居节点特征的线性组合,然后通过多层的卷积操作,逐步聚合更远的邻居信息以获取更丰富的特征表示。 假设有一个无向G,其中节点数量为N,节点特征维度为D。GCN的第一层卷积操作可以表示为: H^{(1)} = \sigma(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}XW^{(1)}) 其中, - H^{(1)}表示第一层卷积之后的节点特征表示矩阵,维度为N \times F; - \sigma(\cdot)是一个非线性激活函数,如ReLU; - A是邻接矩阵,表示节点之间的连接关系,维度为N \times N; - \tilde{A} = A + I是增加自连接的邻接矩阵,其中I是单位矩阵; - D是度矩阵,对角线元素D_{ii}表示节点i的度,\tilde{D}^{-1/2}是度矩阵的-1/2次方根的逆矩阵; - X是节点特征矩阵,维度为N \times D; - W^{(1)}是第一层权重矩阵,维度为D \times F。 通过多次迭代,每层的卷积操作可以表示为: H^{(l+1)} = \sigma(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}H^{(l)}W^{(l)}) 最终,经过L层的卷积操作后,得到上节点的最终特征表示矩阵H^{(L)}。可以将其用于节点分类任务、链接预测等。 GCN的推导过程可以通过将卷积操作与谱理论联系起来进行。根据谱理论,邻接矩阵A的特征值分解可以得到其正交归一化的特征向量U和对角矩阵Lambda。然后,可以用U和Lambda来近似表示A的多项式核函数。通过将近似补偿引入卷积操作,就可以得到GCN的推导过程。 综上所述,GCN通过在结构上进行信息传播和特征聚合,充分利用节点的邻居信息来实现对节点的分类、预测和表示学习等任务。通过多层的卷积操作,GCN能够融合更远的邻居信息以获取更丰富的特征表示,从而提高了模型的性能。 ### 回答3: 卷积网络Graph Convolutional Network, GCN)是一种用于数据的深度学习模型。与传统的卷积神经网络Convolutional Neural Network, CNN)专注于处理网格结构的数据不同,GCN专门设计用于处理结构的数据。 GCN的核心思想是通过迭代地将节点的特征与其邻居节点的特征进行聚合,从而汇聚全局信息并生成节点的新特征表示。这个过程可以表示为以下数学公式: $$ H^{(l+1)} = \sigma\left(D^{-\frac{1}{2}} A D^{-\frac{1}{2}} H^{(l)} W^{(l)}\right) $$ 其中,$H^{(l)}$表示当前层的节点特征矩阵,$A$表示的邻接矩阵(其中$A_{ij}=1$表示节点$i$和$j$之间有边连接,$A_{ij}=0$表示没有边连接),$D$表示度矩阵,$W^{(l)}$是权重矩阵,$\sigma$是激活函数。 上述公式可以通过以下步骤推导得到: 1. 根据邻接矩阵计算度矩阵:$D_{ii}=\sum_j A_{ij}$ 2. 计算归一化的邻接矩阵:$\tilde{A} = D^{-\frac{1}{2}} A D^{-\frac{1}{2}}$ 3. 使用权重矩阵将当前层的节点特征进行线性变换:$X^{(l+1)} = \tilde{A} X^{(l)} W^{(l)}$ 4. 使用激活函数进行非线性变换:$H^{(l+1)} = \sigma(X^{(l+1)})$ 通过多次迭代以上过程,GCN可以逐渐聚合全局信息并生成节点的丰富特征表示。这些特征可以用于节点分类、链接预测等任务。 总之,GCN是一种能够处理结构数据的深度学习模型,它通过迭代地聚合节点的邻居特征来学习节点的新表示。通过推导我们可以看到,GCN的关键是使用归一化的邻接矩阵来捕捉节点之间的相互关系,并通过多层网络来逐渐学习更丰富的节点特征表示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值