zoukankan      html  css  js  c++  java
  • 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

    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的。通俗点解释,空域可以类比到直接在图片的像素点上进行卷积,而频域可以类比到对图片进行傅里叶变换后,再进行卷积。

    2.1 vertex domain(spatial domain):顶点域(空间域)

    基于空域卷积的方法直接将卷积操作定义在每个结点的连接关系上,它跟传统的卷积神经网络中的卷积更相似一些。在这个类别中比较有代表性的方法有 Message Passing Neural Networks(MPNN), GraphSage, Diffusion Convolution Neural Networks(DCNN), PATCHY-SAN等。

    2.2 spectral domain:频域方法(谱方法)

    这就是谱域图卷积网络的理论基础了。这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究GSP(graph signal processing)的学者定义了graph上的Fourier Transformation,进而定义了graph上的convolution,最后与深度学习结合提出了Graph Convolutional Network。

    基于频域卷积的方法则从图信号处理起家,包括 Spectral CNN, Cheybyshev Spectral CNN(ChebNet), 和 First order of ChebNet(1stChebNet)等

    论文Semi-Supervised Classification with Graph Convolutional Networks就是一阶邻居的ChebNet

    Spectral graph theory简单的概括就是借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质。

    3. 什么是拉普拉斯矩阵?

    3.1 无向图的拉普拉斯矩阵有什么性质

    (1)拉普拉斯矩阵是半正定矩阵。(最小特征值大于等于0)
    (2)特征值中0出现的次数就是图连通区域的个数。
    (3)最小特征值是0,因为拉普拉斯矩阵(普通形式:L = D − A )每一行的和均为0,并且最小特征值对应的特征向量是每个值全为1的向量;
    (4)最小非零特征值是图的代数连通度。

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

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

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

    GCN的核心基于拉普拉斯矩阵的谱分解,文献中对于这部分内容没有讲解太多,初学者可能会遇到不少误区,所以先了解一下特征分解。

    特征分解,又称谱分解。是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。只有对可对角化矩阵或有n个线性无关的特征向量的矩阵才可以施以特征分解。

    不是所有的矩阵都可以特征分解,其充要条件为n阶方阵存在n个线性无关的特征向量。

    但是拉普拉斯矩阵是半正定矩阵(半正定矩阵本身就是对称矩阵),有如下三个性质:

    • 对称矩阵一定n个线性无关的特征向量
    • 半正定矩阵的特征值一定非负
    • 对阵矩阵的不同特征值对应的特征向量相互正交,这些正交的特征向量构成的矩阵为正交矩阵。

    由上拉普拉斯矩阵对称知一定可以谱分解,且分解后有特殊的形式。

    对于拉普拉斯矩阵其谱分解为:

    4. 如何通俗易懂地理解卷积?

    4.1 连续形式的一维卷积

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

    5. 傅里叶变换

    6. Graph上的傅里叶变换及卷积

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

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

    6.1 图上的傅里叶变换

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

     

     

    7. 深度学习中GCN的演变

    7.1 Spectral CNN

     

    第一代的参数方法存在着一些弊端,主要在于:
    (1)计算复杂:如果一个样本一个图,那么每个样本都需要进行图的拉普拉斯矩阵的特征分解求U矩阵计算复杂;对于大规模的graph,计算的代价较高,需要O ( n 2 ) 的计算复杂度
    (2)是非局部性连接的
    (3)卷积核需要N个参数,当图中的节点N很大时是不可取的

    由于以上的缺点第二代的卷积核设计应运而生。

    7.2 Chebyshev谱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,定义特征向量对角矩阵的切比雪夫多项式为滤波器,也就是

    7.3一阶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的优点

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

    GCN的不足

    1)、扩展性差:由于训练时需要需要知道关于训练节点、测试节点在内的所有节点的邻接矩阵A,因此是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)、不能处理有图:理由很简单,推导过程中用到拉普拉斯矩阵的特征分解需要满足拉普拉斯矩阵是对称矩阵的条件;

    原文来自:https://blog.csdn.net/yyl424525/article/details/100058264

  • 相关阅读:
    java中传值与传引用
    microsofr visual studio编写c语言
    openfile学习笔记
    在 Windows 和 Linux(Gnome) 环境下 从命令界面打开网页的方式
    使用vsphere client 克隆虚拟机
    route命令
    linux rpm问题:怎样查看rpm安装包的安装路径
    【leetcode】415. 字符串相加
    【leetcode】面试题 17.01. 不用加号的加法
    【leetcode】989. 数组形式的整数加法
  • 原文地址:https://www.cnblogs.com/USTC-ZCC/p/13674112.html
Copyright © 2011-2022 走看看