GCN图卷积网络 | 介绍

目录

0 前言

1 基于空间域的GCN[2]

2 基于谱域的GCN

2.1拉普拉斯矩阵

2.2为什么GCN要用拉普拉斯矩阵?

2.3 拉普拉斯矩阵的谱分解(特征分解)

2.4卷积的定义

2.5傅里叶变换

2.5Graph上的傅里叶变换及卷积

3 深度学习中GCN的演变

3.1Spectral CNN

3.2Chebyshev谱CNN(ChebNet)

3.3CayleyNet

3.4一阶ChebNet(1stChebNet)-GCN

4 GCN优缺点

4.1GCN的优点

4.2GCN的不足#


0 前言

通常,将GCN分为基于空间域spatial-based和基于谱域spectral-based. "所谓的两类其实就是从两个不同的角度理解"[4],这也是我对两类的理解,因为从公式上看并没有较大区别,只是细节和适用场景不同,比如,图是否有向等。

基于空间域的GCN关键在有aggregate的概念,将中心节点表示和相邻节点表示进行聚合(消息传递机制),具体实现是用neighbor feature更新下一层的hidden state。代表模型有:NN4G(neural network for graph)、DCNN(Diffusion-Convolution Neural Network)、DGC(Duffusion Graph Convolution)、MoNET(Mixture Model Networks)、GraphSAGE(SAmple and aggreGatE)、GAT(Graph Attention Network)和GIN(Graph Isomorphism Network).其中aggregation的方式包括sum、mean、weight sum、LSTM和max pooling等。

基于谱域的GCN是基于Spectral Graph Theory(借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质),从图信号处理的角度引入滤波器来定义图卷积。关键把signal转到fourier domain里面,再把转到fourier domain里的信号跟转到fourier domain的filter response相乘,再做inverse fourier transform,得到经过filter的信号。代表性研究有ChebNet(fast GCN加快计算)和GCN。

傅里叶相关概念:

  1. 傅里叶级数/变换是将函数拆解成无数个不同频率正弦波之和的过程。
  2. 傅里叶级数/变换是将时域信息向频域信息转化的过程。
  3. 性质:时域卷积等价于频域相乘。

1 基于空间域的GCN[2]

图的节点特征X拓扑结构信息(邻接矩阵A表示)作为输入,聚合节点邻居的特征。

最简单的聚合过程:AX

但该过程有两个问题

1)节点自身的特征没有算进去;

2)聚合邻居节点特征的时候直接以sum的方式聚合,这样在多次迭代聚合以后,度小的节点数值会越来越小,(当然也可能会越来越大,这取决于具体特征值的正负)。总之,就是容易走极端,即梯度爆炸或消失。

以上两个问题的解决办法

1)在邻接矩阵A上加单位矩阵I,即{\color{Purple} \tilde{A}=A+I}

2)用取加权平均的方式聚合邻居节点特征,即{ \color{Purple} \tilde{D}^{-1} \tilde{A} X };但度矩阵D的逆左乘邻接矩阵只是给邻接矩阵A的行分配权值,而A的列也需要权值分配,因此还需要对A进行右乘D的逆;因此最终GCN聚合公式为{\color{Purple} \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}X }

具体详见参考[2]

2 基于谱域的GCN

涉及一堆数学公式的推导和概念、定理和性质,到目前都不是很理解(我太菜了).看[4]吧,作者讲的挺全挺透彻的。

2.1拉普拉斯矩阵

  • 普通形式:L=D-A,L中的元素给定为:L_{i,j}=\left\{\begin{matrix} diag(v_{i}) &i=j \\ -1 &i\neq j \, and\, v_{i} \, is \, adjacent \, to\, v_{j} \\ 0& otherwise \end{matrix}\right.
  • 对称归一化的拉普拉斯矩阵(Symmetric normalized Laplacian):L^{sys}=D^{-1/2}LD^{-1/2}=D^{-1/2}(D-A)D^{-1/2}=I-D^{-1/2}AD^{-1/2},矩阵元素定义为:L_{i,j}^{sys}=\left\{\begin{matrix} 1 &i=j \, and \, diag(v_{i})\neq 0 \\ -\frac{1}{\sqrt{diag(v_{i})diag(v_{j})}} &i\neq j \, and\, v_{i} \, is \, adjacent \, to\, v_{j} \\ 0& otherwise \end{matrix}\right.
  • 随机游走归一化拉普拉斯矩阵(Random walk normalized Laplacian):L^{rw}=D^{-1}L=I-D^{-1}A,矩阵元素定义为:L_{i,j}^{rw}=\left\{\begin{matrix} 1 &i=j \, and \, diag(v_{i})\neq 0 \\ -\frac{1}{\sqrt{diag(v_{i})}} &i\neq j \, and\, v_{i} \, is \, adjacent \, to\, v_{j} \\ 0& otherwise \end{matrix}\right.

2.2为什么GCN要用拉普拉斯矩阵?

  • 拉普拉斯矩阵是对称矩阵,可以进行特征分解(谱分解)。因此,对称矩阵的前提就是graph是无向图
  • 由于卷积在傅里叶域的计算相对简单,为了在graph上做傅里叶变换,需要找到graph的连续的正交基对应于傅里叶变换的基,因此要使用拉普拉斯矩阵的特征向量。

 fourier domain上的卷积(卷积定理):求两个函数的卷积,就是分别求两个函数的傅里叶变换,再做一次逆傅里叶变换得到。

对图上f和卷积核g的卷积可以表示为:

有了目标,接下来就是走向目标的路了,那这个路的起点就是先获取拉普拉斯矩阵的特征向量!

2.3 拉普拉斯矩阵的谱分解(特征分解)

2.4卷积的定义

1)连续卷积

连续一维卷积是通过两个函数f(x)和g(x)生成第三个函数的一种算子,它代表的意义是:两个函数中的一个(取g(x),可以任意取)函数,把g(x)经过翻(卷)转平移,然后与f(x)的相乘(积),得到的一个新的函数,对这个函数积分,也就是对这个新的函数求它所围成的曲边梯形的面积。

设f(t),g(t)是两个可积函数,f(t)与g(t)的卷积记为f(t)∗g(t)f(t)∗g(t),它是其中一个函数翻转并平移后与另一个函数乘积的积分,是一个自变量是平移量的函数。也就是:

2)离散卷积

对于定义在整数Z上的函数f,g,卷积定义为

 看下面这个例子对卷积解释,绝了!

2.5傅里叶变换

2.5Graph上的傅里叶变换及卷积

把传统的傅里叶变换以及卷积迁移到Graph上来,核心工作其实就是把拉普拉斯算子的特征函数e^{-iwt} 变为Graph对应的拉普拉斯矩阵的特征向量。

傅立叶变换与拉普拉斯矩阵的关系:传统傅立叶变换的基,就是拉普拉斯矩阵的一组特征向量。

前面讲到可以用一组正交函数cos和sin(或e^{-iwt} )表示任意函数,且傅里叶变换是连续形式的,在处理Graph时,用到的是傅里叶变换的离散形式。由于拉普拉斯矩阵进行谱分解以后,可以得到n个线性无关的特征向量,构成空间中的一组正交基,因此归一化拉普拉斯矩阵算子的特征向量构成了图傅里叶变换的基。图傅里叶变换将输入图的信号投影到了正交空间,相当于把图上定义的任意向量,表示成了拉普拉斯矩阵特征向量的线性组合。

图的傅立叶变换——图的傅立叶变换的矩阵形式

图的傅立叶逆变换——图的傅立叶逆变换的矩阵形式 

 图上的傅里叶变换推广到图卷积

 对于“为什么拉普拉斯矩阵的特征向量可以作为傅里叶变换的基?特征值表示频率?”这一问题,文章给出了详细的解释!

3 深度学习中GCN的演变

3.1Spectral CNN

谱CNN源于论文(J. Bruna, W. Zaremba, A. Szlam, and Y. LeCun, “Spectral networks and locally connected networks on graphs,” in Proceedings of International Conference on Learning Representations, 2014),Bruna等人,第一次提出谱卷积神经网络。他们简单

3.2Chebyshev谱CNN(ChebNet)

 Chebyshev谱CNN源于论文(M. Defferrard, X. Bresson, and P. Vandergheynst, “Convolutional neural networks on graphs with fast localized spectral filtering,”in Advances in Neural Information Processing Systems, 2016)。Defferrard等人提出ChebNet,定义特征向量对角矩阵的切比雪夫多项式为滤波器,也就是

3.3CayleyNet

3.4一阶ChebNet(1stChebNet)-GCN

一阶ChebNet源于论文(T. N. Kipf and M.Welling, “Semi-supervised classification with graph convolutional networks,” in Proceedings of the International Conference on Learning Representations, 2017)。这篇论文基于前面的工作,正式成为GCN的开山之作,后面很多变种都是基于这篇文章的。

该篇论文贡献有两点:

  • 作者对于直接操作于图结构数据的网络模型根据频谱图卷积(Hammond等人于2011年提出的Wavelets on graphs via spectral graph theory)使用一阶近似简化计算的方法,提出了一种简单有效的层式传播方法。
  • 作者验证了图结构神经网络模型可用于快速可扩展式的处理图数据中节点半监督分类问题,作者通过在一些公有数据集上验证了自己的方法的效率和准确率能够媲美现有的顶级半监督方法。

 其实读到这里也就发现,这个GCN和上一章空间域的那个GCN公式是一模一样的。因此,也就呼应了我开篇说的GCN分为基于空间域和基于谱域两种方式,是从理解层面上可分为两种,所依托的理论依据不同。正是理论不同,其两者的发展和之后的研究方向也会不同。

4 GCN优缺点

4.1GCN的优点

1)、权值共享,参数共享,从AXWAXW可以看出每一个节点的参数矩阵都是W,权值共享;
2)、具有局部性Local Connectivity,也就是局部连接的,因为每次聚合的只是一阶邻居;
上述两个特征也是CNN中进行参数减少的核心思想
3)、感受野正比于卷积层层数,第一层的节点只包含与直接相邻节点有关的信息,第二层以后,每个节点还包含相邻节点的相邻节点的信息,这样的话,参与运算的信息就会变多。层数越多,感受野越大,参与运算的信息量越充分。也就是说随着卷积层的增加,从远处邻居的信息也会逐渐聚集过来。
4)、复杂度大大降低,不用再计算拉普拉斯矩阵,特征分解

4.2GCN的不足#

1)、扩展性差:由于训练时需要需要知道关于训练节点、测试节点在内的所有节点的邻接矩阵AA,因此是transductive的,不能处理大图,然而工程实践中几乎面临的都是大图问题,因此在扩展性问题上局限很大,为了解决transductive的的问题,GraphSAGE:Inductive Representation Learning on Large Graphs 被提出;
2)、局限于浅层:GCN论文中表明,目前GCN只局限于浅层,实验中使用2层GCN效果最好,为了加深,需要使用残差连接等trick,但是即使使用了这些trick,也只能勉强保存性能不下降,并没有提高,Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning一文也针对When GCNs Fail ?这个问题进行了分析。虽然有一篇论文:DeepGCNs-Can GCNs Go as Deep as CNNs?就是解决GCN局限于浅层的这个问题的,但个人觉得并没有解决实质性的问题,这方面还有值得研究的空间。
3)、不能处理有图:理由很简单,推导过程中用到拉普拉斯矩阵的特征分解需要满足拉普拉斯矩阵是对称矩阵的条件;

如有误,请留言指正,感谢(抱拳)。

参考:

[1] 台大李宏毅《机器学习》课程中关于GNN的章节

[2]GCN图卷积网络入门详解 | 雷峰网

[3]一文读懂图卷积GCN - 知乎

[4]最全面的图卷积网络GCN的理解和详细推导,都在这里了! - 不务正业的土豆 - 博客园(这篇文章非常详细,推荐!)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值