传统的CNN利用一个共享参数的卷积核,通过计算中心像素点以及相邻像素点的加权和构成feature map实现空间特征提取,在图像分类、语义分割、机器翻译等领域都取得了很好地效果。但是CNN也存在一个弊端,就是只能处理Euclidean结构的数据,对于图结构数据无法保持平移不变性(图中每个顶点的相邻节点数据可能不同,无法使用一个固定尺寸的卷积核进行卷积运算)。
GCN通过将局部的图结构和节点特征结合,可以实现图结构数据的卷积操作。图卷积大致可分为两类:
空间卷积:找出中心节点的邻居节点,再基于中心节点的邻居节点进行传统卷积操作。谱图卷积:基于图上的傅里叶变换,借助图的Laplacian矩阵的特征值和特征向量,定义图上的卷积。这里我们主要关注谱图卷积。
关于GCN的基本原理及公式推导,强烈下面几篇资料:
从CNN到GCN的联系与区别——GCN从入门到精(fang)通(qi)GCN (Graph Convolutional Network) 图卷积网络解析主要内容:CNN,拉普拉斯矩阵,Graph上的傅里叶变换及卷积,Graph Convolution
文章【Wavelets on graphs via spectral graph theory】提出利用切比雪夫多项式来进行近似,降低前向传播高复杂度的问题。
接着,文章【Semi-supervised Classification with Graph Convolutional Networks】在切比雪夫多项式近似的基础上进一步简化,提出一阶近似,通过叠加多层GCN来达到经典卷积层的功能。(该文中的GCN形式,其实是二阶Chebyshev多项式推导出的特例) 参考博客:【GCN】论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS