图卷积神经网络(GCN)

图卷积神经网络

文章目录

    • 图卷积神经网络
    • GCN是什么?
    • 图卷积
    • 图卷积操作如何操作呢?

GCN是什么?

GCN,图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction),还可以顺便得到图的嵌入表示(graph embedding),可见用途广泛。因此现在人们脑洞大开,让GCN到各个领域中发光发热。

图卷积

图的定义
对于图,我们有以下特征定义:
对于图 在这里插入图片描述
V为节点的集合, E为边的集合,对于每个节点 i, 均有其特征 Xi ,可以用矩阵 XN*D表示。其中 N表示节点数, D表示每个节点的特征数,也可以说是特征向量的维度。
图卷积
图卷积神经网络就是一种处理图数据的深度学习方法
图卷积神经网络(GCN)_第1张图片
图卷积算子
在这里插入图片描述
图卷积算子的计算公式如上,设中心节点为i;(Wrj可以看作滤波器)
图卷积神经网络(GCN)_第2张图片

图卷积操作如何操作呢?

目前有两种类型的图卷积操作,一种是基于空域的图卷积,另一种是基于谱域的图卷积,这里着重介绍第一种。
前面我们提到,卷积操作的本质意义就是对一个范围内的像素点进行加权求平均,这能有助于提取空间特征,那么如何将这种思想应用到拓扑图上呢?我们可以换一种方式来理解卷积操作,如图3,对于feature map(蓝色部分)中的一个点(红色),其特征值实际上是周围所有像素点将特征值传播到中心点后进行加权平均,这种操作等效于传统的卷积操作,只不过我们人为的为特征添加了一个传播方向(边),将每个像素点当成顶点,从而在图结构上再次定义了卷积操作。
图卷积神经网络(GCN)_第3张图片
图3卷积操作的另一种理解
进一步的,对于广义拓扑图结构的数据,也可以按照这种思想来定义卷积操作,如图4所示,将每个节点的邻居节点的特征传播到该节点,再进行加权平均,就可以得到该点的聚合特征值,只不过在 CNN 中,我们将这个聚合特征值当做了 feature map 中的一个点,而在 GCN 中没有 feature map 的概念,我们直接将这个聚合特征值作为传播到下一层的特征值。蓝色部分就是图卷积操作对应的 kernel,这里是为了理解才画出这个蓝色区域,在 GCN 中也没有 kernel 的概念,这也是因为图是不规则的。

类似于 CNN,图卷积也采用共享权重,不过不同于 CNN 中每个 kernel 的权重都是规则的矩阵,按照对应位置分配,图卷积中的权重通常是一个集合。在对一个节点计算聚合特征值时,按一定规律将参与聚合的所有点分配为多个不同的子集,同一个子集内的节点采用相同的权重,从而实现权重共享。例如对于图4,我们可以规定和红色点距离为 1 的点为 1 邻域子集,距离为 2 的点为 2 邻域子集。当然,也可以采用更加复杂的策略,例如按照距离图重心的远近来分配权重。权重的分配策略有时也称为 label 策略,对邻接节点分配 label,label 相同节点的共享一个权重。

到这里想必你已经发现了,其实图卷积操作就是传统的卷积操作在拓扑图上的概念延伸和转移,通过对比二者,你能更好的学习到图卷积网络的精髓。
图卷积神经网络(GCN)_第4张图片
卷积提取特征
对于卷积神经网络CNN,图片中提取特征,可以采用卷积的方式提取特征。但是对于拓扑结构,只能用其他方法来提取特征。

对图的特征提取分为vertex domain(spatial domain)空域和spectral domain频域。

对于图结构的提取信息,也可以用谱聚类的方法,我们暂不讨论:https://www.cnblogs.com/pinard/p/6221564.html

空域方法vertex domain
vertex domain(spatial domain),很直观,直接用相应顶点连接的neighbors来提取特征。

Learning Convolutional Neural Networks for Graphs http://proceedings.mlr.press/v48/niepert16.pdf
图卷积神经网络(GCN)_第5张图片
频域方法(谱方法)spectral domain
这个就是GCN,即图卷积网络所采用的方法。

GSP(graph signal processing)图形信号处理的方法,即在图上进行信号处理的变换,如傅立叶变换或者拉普拉斯变换,进而进行图的卷积,从而提取图的特征。博主本科是通信工程出身,因此对傅立叶变换、拉普拉斯变换等等这种信号处理的方式还是挺熟悉的。理解上障碍没有那么大,简而言之就是将相应的信号转换到另一个域去分析,从而获得更好的分析结果。如果不懂的话可以去查阅相应的《信号与系统》或者傅立叶变换,拉普拉斯变换这些方面的知识。

GSP(graph signal processing)图形信号处理,顾名思义就是将图当做信号,然后运用信号处理的方法去分析与处理Graph的特征。借助于图的拉普拉斯矩阵的特征值和特征向量来研究Graph的性质.
3. 分三步理解图卷积神经网络
第一步:发射(send)每一个节点,将自身的特征信息经过变换后发送给邻居节点。这一步是在对节点的特征信息进行抽取变换。(一个节点与相邻所有节点相连的边均含有相同信息,同一个节点出来的边颜色相同)
图卷积神经网络(GCN)_第6张图片
第二步:接收(receive)每个节点,将邻居节点的特征信息聚集起来。这一步是在对节点的局部结构信息进行融合。(融合节点与所有其相邻节点的信息。)
图卷积神经网络(GCN)_第7张图片
第三步:变换(transform),把前面的信息聚集之后做非线性变换,增加模型的表达能力。
图卷积神经网络(GCN)_第8张图片
更形式化地说,图卷积网络(GCN)是一个对图数据进行操作的神经网络。给定图 G = (V, E),GCN 的输入为:
•一个输入维度为 N × F⁰ 的特征矩阵 X,其中 N 是图网络中的节点数而 F⁰ 是每个节点的输入特征数。
•一个图结构的维度为 N × N 的矩阵表征,例如图 G 的邻接矩阵 A。
因此,GCN 中的隐藏层可以写作 Hⁱ = f(Hⁱ⁻¹, A))。其中,H⁰ = X,f 是一种传播规则。每一个隐藏层 Hⁱ 都对应一个维度为 N × Fⁱ 的特征矩阵,该矩阵中的每一行都是某个节点的特征表征。在每一层中,GCN 会使用传播规则 f 将这些信息聚合起来,从而形成下一层的特征。这样一来,在每个连续的层中特征就会变得越来越抽象。在该框架下,GCN 的各种变体只不过是在传播规则 f 的选择上有所不同 。
5. 图卷积网络的网络架构和性质
输入:一张图
输出:一张图
图卷积神经网络(GCN)_第9张图片
GCN模型同样具备深度学习的三种性质:
1)、层级结构(特征一层一层抽取,一层比一层更抽象,更高级);
2)、非线性变换 (增加模型的表达能力);
3)、端对端训练(不需要再去定义任何规则,只需要给图的节点一个标记,让模型自己学习,融合特征信息和结构信息。)

你可能感兴趣的:(图卷积神经网络(GCN))