GCN学习一周小结

入门必看

推荐顺序由简到难:

  1. 何时能懂你的心——图卷积神经网络(GCN)

  2. 知乎Johnny Richards和superbrother的回答

  3. CSDN文章

  4. 清华大学综述文章:Graph Neural Networks:A Review of Methods and Applications

  5. GCN开山之作:Semi-Supervised Classification With Graph Convolutional Networks

提出思想及发展

提出

对于图(pictures)的处理,CNN是一件大法宝;但是由于CNN处理的对象都是Euclidean Structure,无法对Non Euclidean Structure数据进行处理。图(graph)就是典型的Non Euclidean Structure数据。所以GCN(Graph Convolutional Network)应运而生。

研究GCN的原因,主要可以简答概括为三点(参考知乎superbrother 的回答):

  1. CNN无法处理Non Euclidean Structure数据(传统的离散卷积在Non Euclidean Structure数据上无法保持平移不变性)
  2. 希望在拓扑图结构上有效地提取空间特征来进行机器学习
  3. 拓扑连接是一种广义的数据结构,可应用范围广

解决方案

因为在Non Euclidean Structure数据中,传统的图像卷积操作(图像上的数据点的加权求和)不能适用,所以要想完成GCN,就需要重新定义卷积操作。
现在的卷积思路有两种:

谱域图卷积

  • 根据图谱理论和卷积定理,将数据从空(间)域转换到谱域进行处理
  • 有较强的理论基础

因为傅里叶变换的一个重要性质:
函数 f 1 ( t ) f_1(t) f1(t)和函数 f 2 ( t ) f_2(t) f2(t)的傅里叶变换,等于二者傅里叶变换的乘积的逆变换,即:
f 1 ( x ) ∗ f 2 ( x ) = F − 1 [ F 1 ( w ) F 2 ( w ) ] f_1(x)*f_2(x)=\mathcal{F^{-1}[\mathcal{F_1(w)}\mathcal{F_2(w)}]} f1(x)f2(x)=F1[F1(w)F2(w)]

符号定义
f 1 ( x ) f_1(x) f1(x) f 2 ( x ) f_2(x) f2(x)函数
F 1 ( w ) \mathcal{F_1(w)} F1(w) F 2 ( w ) \mathcal{F_2(w)} F2(w)对应函数的傅里叶变换
也就是说只要定义了图(graph)的频域变换,就可以推导出图的卷积计算
空域图卷积
  • 不依靠图谱卷积理论,直接在空间上定义卷积操作(有点CNN那味儿了)
  • 定义直观,灵活性强

本周主要了解的是谱域卷积。

发展

在这里插入图片描述

Fig1.发展时间线
上图时间轴中,红色的是谱域卷积,蓝色的是空域卷积。

重要的结论

ChebNet到GCN的转变是重点。
因为推导过程有点复杂,在此只介绍结论:

符号定义
L = D − A L=D-A L=DA分别是拉普拉斯矩阵、度矩阵、邻接矩阵
U U U拉普拉斯矩阵的特征向量(特征分解得到)
Λ \boldsymbol{\Lambda} Λ拉普拉斯矩阵的特征值(特征分解得到)
X ^ \hat{X} X^傅里叶变换结果
  • 结论一:
    经过一系列复杂证明,我们可以知道Laplacian Matrix 的特征向量 U = ( u ˉ 1 , u ˉ 2 , u ˉ 3 , . . . , u ˉ n , ) U=(\bar{u}_1,\bar{u}_2,\bar{u}_3,...,\bar{u}_n,) U=(uˉ1,uˉ2,uˉ3,...,uˉn,)是n维空间的n个线性无关的正交向量。 U U U可以构成一组正交基,且任意信号都可以由此基表示。
  • 结论二:
    U U U(拉普拉斯矩阵的特征向量)担任了基函数的位置;拉普拉斯矩阵的特征值担任了频率的位置。

由此二结论,可以推导拓展到谱域的傅里叶变换:
Fourier transform : X ^ = U T X \hat{X}=U^TX X^=UTX
Inverse Fourier transform : X = U X ^ X=U\hat{X} X=UX^

由此定义了图卷积:
X ∗ G g = F − 1 ( F ( x ) ⊙ F ( g ) ) = U ( U T x ⊙ U T g ) X*_G g = \mathcal{F^{-1}( \mathcal{F}(x)\odot\mathcal{F}(g))}=U(U^Tx\odot U^Tg) XGg=F1(F(x)F(g))=U(UTxUTg)
其中, ⊙ \odot 是hamand积。

从ChebNet 到GCN

因为按上式计算,每次都要进行特征值分解,计算量很大。所以使用Chebyshev(切比雪夫)多项式代替谱域的卷积核:

详见:Convolutional neural networks on graphs with fast localized spectral filtering 一文

g θ = d i a g ( U T g ) g_{\theta}=diag(U^Tg) gθ=diag(UTg) -----> g θ ( Λ ) = ∑ k = 0 R β k T k ( Λ ^ ) g_{\theta}(\boldsymbol{\Lambda})=\sum^R_{k=0}\beta_kT_k \hat{(\boldsymbol{\Lambda}}) gθ(Λ)=k=0RβkTk(Λ^)

此方法有以下特点:
1)卷积核只有K+1个可学习的参数,一般 K远小于n,参数的复杂度被大大降低
2)采用Chebyshev多项式代替谱域的卷积核后,经过公示推导,ChebNet不需要对拉普拉斯矩阵做特征分解了。省略了最耗时的步骤。
3)卷积核具有严格的空间局部性。同时,K就是卷积核的“感受野半径”。即将中心顶点K阶近邻节点作为邻域节点。

关键在于GCN丢ChebNet进行了进一步的简化,它仅考虑一阶的ChebNet,得到一个非常简洁的表达式:
x ∗ G g θ = θ ( I N + D − 1 / 2 A D − 1 / 2 ) x x*_G g_\theta=\theta(I_N+D^{-1/2}AD^{-1/2})x xGgθ=θ(IN+D1/2AD1/2)x

详见 Semi-Supervised Classification With Graph Convolutional Networks 一文

符号定义
I N I_N IN单位矩阵
D D D A A A度矩阵、邻接矩阵
θ \theta θ可学习参数

现在还有一个问题, I N + D − 1 / 2 A D − 1 / 2 I_N+D^{-1/2}AD^{-1/2} IN+D1/2AD1/2的特征值范围[0,2],在训练过程中可能会出现梯度消失或梯度爆炸,所以要进行归一化:
Z = D ~ − 1 / 2 A ~ D ~ − 1 / 2 X Θ Z = \tilde{D}^{-1/2} \tilde{A}\tilde{D}^{-1/2} X\Theta Z=D~1/2A~D~1/2XΘ
这就是最终的表达式。其中符号 D ~ = ∑ j A ~ i j \tilde{D}=\sum_j \tilde{A}_{ij} D~=jA~ij A ~ = A + I N \tilde{A}=A+I_N A~=A+IN(可以理解为再归一化的邻接矩阵和度矩阵)

应用

在Semi-Supervised Classification With Graph Convolutional Networks一文中,提出一个具有两层的GCN模型:
Z = f ( X , A ) = s o f t m a x ( A ~ R e L U ( A ~ X W 0 ) W 1 ) Z=f(X,A)=softmax(\tilde{A} ReLU(\tilde{A}XW^0)W^1) Z=f(X,A)=softmax(A~ReLUA~XW0W1)
其中 X X X是节点特征矩阵,A是邻接矩阵。此GCN模型可以在很少的节点具有标签的情况下,完成节点的分类。

缺点

  1. 谱域图卷积不能做有向图(无法特征分解)
  2. 模型训练期间,图结构不能变
  3. 复杂度问题
  4. 层数太高会出现Over-Smoothing现象

TODO LIST

空域图卷积

  • GNN
    • 构建邻域(Random Walk)
    • 对邻域节点进行内积

    详见:A Generalization of Convolutional Neural Networks to Graph-Structured Data

  • GraphSAGE
    • 卷积=采样+信息聚合

    详见:Inductive representation learning on large graphs

  • GAT
    • 卷积定义为利用注意力机制对邻域节点有区别的聚合

    详见:GRAPH ATTENTION NETWORKS

  • PGC
    • 卷积认为是特定的取样函数与特定的权重函数相乘后求和

    详见:Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值