图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导
图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导
文章目录
- 1. 为什么会出现图卷积神经网络?
- 2. 图卷积网络的两种理解方式
- 3. 什么是拉普拉斯矩阵?
- 3.1 常用的几种拉普拉斯矩阵
- 普通形式的拉普拉斯矩阵
- 对称归一化的拉普拉斯矩阵(Symmetric normalized Laplacian)
- 随机游走归一化拉普拉斯矩阵(Random walk normalized Laplacian)
- 泛化的拉普拉斯 (Generalized Laplacian)
- 3.2 无向图的拉普拉斯矩阵有什么性质
- 3.3 为什么GCN要用拉普拉斯矩阵?
- 3.4. 拉普拉斯矩阵的谱分解(特征分解)
- 3.5 拉普拉斯算子
- 4. 如何通俗易懂地理解卷积?
- 5. 傅里叶变换
- 5.1 连续形式的傅立叶变换
- 5.2 频域(frequency domain)和时域(time domain)的理解
- 5.3 周期性离散傅里叶变换(Discrete Fourier Transform, DFT)
- 6. Graph上的傅里叶变换及卷积
- 7. 为什么拉普拉斯矩阵的特征向量可以作为傅里叶变换的基?特征值表示频率?
- 8. 深度学习中GCN的演变
- 9. GCN代码分析和数据集Cora、Pubmed、Citeseer格式
- 10. 从空间角度理解GCN
- 11. GCN处理不同类型的图
- 12. 问题讨论
- Q1:GCN中邻接矩阵为什么要归一化?
- Q2:GCN中邻接矩阵为什么要对称归一化?
- Q3:GCN中参数矩阵W的维度如何确定?
- Q4:为什么GCN里使用NELL数据集相比于其他三个的分类准确率这么低?
- Q5:目前GCN的分类准确率仅为80%左右,如何提高GCN在Citeseer、Cora、Pubmed、Nell上的分类准确率?
- 资料下载
- 参考
1. 为什么会出现图卷积神经网络?
普通卷积神经网络研究的对象是具备Euclidean domains的数据,Euclidean domains data数据最显著的特征是他们具有规则的空间结构,如图片是规则的正方形,语音是规则的一维序列等,这些特征都可以用一维或二维的矩阵来表示,卷积神经网络处理起来比较高效。
CNN的【平移不变性】在【非矩阵结构】数据上不适用
- 平移不变性(translation invariance):比较好理解,在用基础的分类结构比如ResNet、Inception给一只猫分类时,无论猫怎么扭曲、平移,最终识别出来的都是猫,输入怎么变形输出都不变这就是平移不变性,网络的层次越深这个特性会越明显。
- 平移可变性(translation variance):针对目标检测的,比如一只猫从图片左侧移到了右侧,检测出的猫的坐标会发生变化就称为平移可变性。当卷积网络变深后最后一层卷积输出的feature map变小,物体在输入上的小偏移,经过N多层pooling后在最后的小feature map上会感知不到,这就是为什么R-FCN原文会说网络变深平移可变性变差。
离散卷积本质就是一种加权求和。CNN中的卷积就是一种离散卷积,本质上就是利用一个共享参数的过滤器(kernel),通过计算中心像素点以及相邻像素点的加权和来构成feature map实现空间特征的提取,当然加权系数就是卷积核的权重系数(W)。
那么卷积核的系数如何确定的呢?是随机化初值,然后根据误差函数通过反向传播梯度下降进行迭代优化。这是一个关键点,卷积核的参数通过优化求出才能实现特征提取的作用,GCN的理论很大一部分工作就是为了引入可以优化的卷积参数。
生活中很多数据不具备规则的空间结构,称为Non Euclidean data,如,推荐系统、电子交易、分子结构等抽象出来的图谱。这些图谱中的每个节点连接不尽相同,有的节点有三个连接,有的节点只有一个连接,是不规则的结构。对于这些不规则的数据对象,普通卷积网络的效果不尽人意。CNN卷积操作配合pooling等在结构规则的图像等数据上效果显著,但是如果作者考虑非欧氏空间比如图(即graph,流形也是典型的非欧结构,这里作者只考虑图),就难以选取固定的卷积核来适应整个图的不规则性,如邻居节点数量的不确定和节点顺序的不确定。
例如,社交网络非常适合用图数据来表达,如社交网络中节点以及节点与节点之间的关系,用户A(有ID信息等)、用户B、帖子都是节点,用户与用户之间的关系是关注,用户与帖子之间的关系可能是发布或者转发。通过这样一个图谱,可以分析用户对什么人、什么事感兴趣,进一步实现推荐机制。
总结一下,图数据中的空间特征具有以下特点:
1) 节点特征:每个节点有自己的特征;(体现在点上)
2) 结构特征:图数据中的每个节点具有结构特征,即节点与节点存在一定的联系。(体现在边上)
总地来说,图数据既要考虑节点信息,也要考虑结构信息,图卷积神经网络就可以自动化地既学习节点特征,又能学习节点与节点之间的关联信息。
综上所述,GCN是要为除CV、NLP之外的任务提供一种处理、研究的模型。
图卷积的核心思想是利用『边的信息』对『节点信息』进行『聚合』从而生成新的『节点表示』。
2. 图卷积网络的两种理解方式
GCN的本质目的就是用来提取拓扑图的空间特征。 而图卷积神经网络主要有两类,一类是基于空间域或顶点域vertex domain(spatial domain)的,另一类则是基于频域或谱域spectral domain的。通俗点解释,空域可以类比到直接在图片的像素点上进行卷积,而频域可以类比到对图片进行傅里叶变换后,再进行卷积。
所谓的两类其实就是从两个不同的角度理解,关于从空间角度的理解可以看本文的从空间角度理解GCN
2.1 vertex domain(spatial domain):顶点域(空间域)
基于空域卷积的方法直接将卷积操作定义在每个结点的连接关系上,它跟传统的卷积神经网络中的卷积更相似一些。在这个类别中比较有代表性的方法有 Message Passing Neural Networks(MPNN)[1], GraphSage[2], Diffusion Convolution Neural Networks(DCNN)[3], PATCHY-SAN[4]等。
2.2 spectral domain:频域方法(谱方法)
这就是谱域图卷积网络的理论基础了。这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究GSP(graph signal processing)的学者定义了graph上的Fourier Transformation,进而定义了graph上的convolution,最后与深度学习结合提出了Graph Convolutional Network。
基于频域卷积的方法则从图信号处理起家,包括 Spectral CNN[5], Cheybyshev Spectral CNN(ChebNet)[6], 和 First order of ChebNet(1stChebNet)[7] 等
论文Semi-Supervised Classification with Graph Convolutional Networks就是一阶邻居的ChebNet
认真读到这里,脑海中应该会浮现出一系列问题:
Q1 什么是Spectral graph theory?
Spectral graph theory请参考维基百科的介绍,简单的概括就是借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质
Q2 GCN为什么要利用Spectral graph theory?
这是论文(Semi-Supervised Classification with Graph Convolutional Networks)中的重点和难点,要理解这个问题需要大量的数学定义及推导
过程:
(1)定义graph上的Fourier Transformation傅里叶变换(利用Spectral graph theory,借助图的拉普拉斯矩阵的特征值和特征向量研究图的性质)
(2)定义graph上的convolution卷积
下面将介绍关于频谱域的图卷积网络的推导相关的内容。
3. 什么是拉普拉斯矩阵?
拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。对于图 G=(V,E),其Laplacian 矩阵的定义为 L=D-A,其中 L 是Laplacian 矩阵, D=diag(d)是顶点的度矩阵(对角矩阵),d=rowSum(A),对角线上元素依次为各个顶点的度, A 是图的邻接矩阵。
Graph Fourier Transformation及Graph Convolution的定义都用到图的拉普拉斯矩阵。
频域卷积的前提条件是图必须是无向图,只考虑无向图,那么L就是对称矩阵。
3.1 常用的几种拉普拉斯矩阵
普通形式的拉普拉斯矩阵
L=D−AL=D-AL=D−A
L中的元素给定为:
Li,j=⎧⎩⎨⎪⎪diag(vi)−10i=ji≠j and vi is adjacent to vjotherwiseL_{i,j}=\begin{cases}diag(v_i) & i=j\\-1 & i \neq j \ and \ v_i \ is\ adjacent \ to \ v_j\\0 & otherwise\end{cases}Li,j=⎩⎪⎨⎪⎧diag(vi)−10i=ji=j and vi is adjacent to vjotherwise
其中diag(vi) 表示顶点 i 的度。
对称归一化的拉普拉斯矩阵(Symmetric normalized Laplacian)
Lsys=D−1/2LD−1/2=I−D−1/2AD−1/2L^{sys}=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2}Lsys=D−1/2LD−1/2=I−D−1/2AD−1/2
矩阵元素定义为:
Lsysi,j=⎧⎩⎨⎪⎪⎪⎪⎪⎪1−1diag(vi)diag(vj)√0i=j and diag(vi) ≠ 0i≠j and vi is adjacent to vjotherwiseL^{sys}_{i,j}=\begin{cases}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{cases}Li,jsys=⎩⎪⎪⎨⎪⎪⎧1−diag(vi)diag(vj)