GCN

Graph Convolutional Network


关于图卷积这里有两篇文章都讲的很好,

这一篇讲解了图卷机的相关知识和概念什么的,都很全面

如何理解 Graph Convolutional Network

这一篇从物理和数学的角度生动形象的解释了图卷积的意义和机理,可以帮我我们更好的理解。

如何理解 Graph Convolutional Network


目前自己是先看这两篇博客了解下图卷积的相关知识,后面需要深入学习的时候在总结吧。


下面是一些简单的理解

图的定义

对于图,我们有以下特征定义:

对于图 $G=(V,E)$ , $V$ 为节点的集合, $E$ 为边的集合,对于每个节点 $i$ , 均有其特征 $x_i$ ,可以用矩阵 $X_{N×D}$ 表示。其中 $N$ 表示节点数, $D$ 表示每个节点的特征数,也可以说是特征向量的维度。

图卷积的形象化理解

在一头扎进图卷积公式之前,我们先从其他的角度理解一下这个操作的物理含义,有一个形象化的理解,我们在试图得到节点表示的时候,容易想到的最方便有效的手段就是利用它周围的节点,也就是它的邻居节点或者邻居的邻居等等,这种思想可以归结为一句话:

图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。

图相关矩阵的定义

其Laplacian 矩阵的定义为 $L=D-A$,其中 $L$ 是Laplacian 矩阵, $D$ 是顶点的度矩阵(对角矩阵),对角线上元素依次为各个顶点的度, $A$ 是图的邻接矩阵。

图卷积的通式

任何一个图卷积层都可以写成这样一个非线性函数:

$H^0=X$ 为第一层的输入, $X \in R^{N×D}$ , $N$ 为图的节点个数, $D$ 为每个节点特征向量的维度, $A$ 为邻接矩阵,不同模型的差异点在于函数 $f$ 的实现不同。

下面介绍几种具体的实现,但是每一种实现的参数大家都统称拉普拉斯矩阵。

实现一

其中 $W^l$ 为第 $l$ 层的权重参数矩阵, $\sigma( ・ )$ 为非线性激活函数,例如ReLU。

这种思路是基于节点特征与其所有邻居节点有关的思想。邻接矩阵 $A$ 与特征 $H$ 相乘,等价于,某节点的邻居节点的特征相加。这样多层隐含层叠加,能利用多层邻居的信息。

但这样存在两个问题:

没有考虑节点自身对自己的影响;

邻接矩阵$A$没有被规范化,这在提取图特征时可能存在问题,比如邻居节点多的节点倾向于有更大的影响力。

因此实现二和实现三针对这两点进行了优化。

实现二

拉普拉斯矩阵 $L=D-A$ ,学名Combinatorial Laplacian​,是针对实现一的问题1的改进:

引入了度矩阵,从而解决了没有考虑自身节点信息自传递的问题

实现三

对于这里的拉普拉斯矩阵

本质上还是实现一的两个问题进行的改进:

引入自身度矩阵,解决自传递问题;
对邻接矩阵的归一化操作,通过对邻接矩阵两边乘以节点的度开方然后取逆得到。

具体到每一个节点对 $i,j$ ,矩阵中的元素由下面的式子给出(对于无向无权图):

其中 $deg(v_i),deg(v_j)$ 分别为节点 $i,j$ 的度,也就是度矩阵在节点 $i,j$ 处的值。

0%