文章来自https://tkipf.github.io/graph-convolutional-networks/
图卷积网络(GCNS)的定义
对于图卷积网络模型,目标是学习一种信号/特征的图表示函数,其输入为:
- 每个结点的特征组成的的特征矩阵(:节点的数量,:输入特征的维度)
- 图结构的矩阵表示,常见的为图的邻接矩阵,输出为的特征矩阵,为每个节点输出特征的维度。
每一个神经网络层可以用一个非线性函数来表示。
网络初始输入,第层输出。不同的模型一般只是在的选择和参数的选择上有所不同。
图卷积网络一个简单的例子
假设我们考虑下面这种前向传播模型:
,为l-th的权重矩阵,为非线性**函数。尽管这个模型很简单,但是他非常强大。
但是我们对这个模型提出两个限制。
- 在邻接矩阵中,主对角线上的值为0(除非有自环),意味着对每个结点,上面的操作会把除了节点本身的其他邻接节点的特征相加。为了解决这个问题,我们需要给每个节点添加自环,即给加一个单位阵。
- 是没有归一化的,因此左乘A会完全改变特征向量的尺度。归一化意味着每行行相加等于1,所以我们给A左乘一个“diagonal node degree matrix”的逆,“diagonal node degree matrix”即对角线元素为每个节点度的矩阵。在实际中常使用规范化对称操作,i.e..
合并这两个限制,我们得到:
其中,其中是单位矩阵,是矩阵的对角节点度矩阵。
图卷积网络实战
上图是一个著名的图数据集: Zachary’s karate club network
我们采用随机初始权重的3-layer GCN.同时我们输入图的邻接矩阵和特征矩阵(令为单位矩阵,因为我们没有任何节点的特征)。这个三层的GCN进行三次前向传播,并且对每个节点的3-order邻居节点进行卷积。最后网络输出的的embedding如下图所示。
可以看到,embedding 很好地代表了不同的节点community的结构,而且是在没有训练的情况下。
我们可以用Weisfeiler-Lehman algorithm来解释这种现象。一维Weisfeiler-Lehman原理如下:
对于所有节点:
- 获取所有相邻节点的特征
- 更新节点特征,其中hash 是一个单射哈希函数
重复上面操作此,或者直到收敛。
在实际中, Weisfeiler-Lehman 会为大多数图产生一个不重复的特征集和,这样每个节点都在图中具有不同的角色。除了高度规则的图形,如网格、链。对于大多数不规则的图,这种特征分配可以用来检查图的同构性(即两个图是否完全相同)。
回到我们的图卷积前向传播规则(现在是向量形式)
其中表示的相邻节点,是边的归一化常数,源于规范化邻接矩阵。我们现在看到这个传播规则可以被解释为在初始Weisfeiler-Lehman algorithm里哈希函数使用的可微和参数化(使用)变量。·如果我们现在选择一个适当的非线性**函数并初始化随机权值矩阵使其正交,那么这个更新规则在实践中变得稳健。并且我们获得了更加平滑的embedding结果,这样我们就可以把节点间的距离解释为局部图结构的相似性。