Semi-Supervised Classification With Graph Convolutional Networks

图卷积网络的半监督分类

提升了图卷积的性能,使用切比雪夫多项式的1阶近似完成了高效的图卷积架构。原文链接:Semi-Supervised Classification with Graph Convolutional Networks. Kipf & Welling 2017

一开始就提出,

2 Fast Approximate Convolutions On Graphs

介绍基于图的神经网络模型 f(X,A) 的理论基础:

H^{(l+1)} = \sigma( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{l})-(2) 

其中,

  • \tilde{A} = A + I_N:加了自连接的无向图的邻接矩阵;
  • \tilde{D} = \sum_{j} \tilde{A}_{ij}:度矩阵的变形;
  • W^{l}:可训练的权重矩阵;
  • \sigma(\cdot):激活函数,如ReLU;
  • H^{(l)} \in R^{N * D}:matrix of activations in the l^{th} layer,H^{(0)} = X

 

这就是最终的propagation rule(前向传播规则),论文中提供了一个解释:Weisfeiler-Lehman algorithm,附录里面有解释,下面是原论文

Boris Weisfeiler and A. A. Lehmann. A reduction of a graph to a canonical form and an algebraarising during this reduction.Nauchno-Technicheskaya Informatsia, 2(9):12–16, 1968.

0 摘要

我们提出了一种在图结构数据上的半监督可扩展学习方法,基于高效的图卷积变体。契机是通过一个谱图卷积的局部一阶近似得到的我们的图卷积结构。我们的模型与图的边数呈线性关系,学习到的隐藏层可以对图的顶点和局部图结构同时进行编码。在引文网络和一个知识图谱数据集上的大量实验结果表明我们的方法比相关方法好很多。

1 引言

我们考虑一个对图顶点进行分类的问题,只有一小部分的顶点有标签。这个问题可以通过基于图的半监督学习任务建模,通过某些明确的图正则化方法(Zhu et al., 2003; Zhou et al., 2004; Belkin et al., 2006; Weston et al., 2012)可以平滑标签信息,举个例子,通过在loss function使用一个图拉普拉斯正则项:

式1依赖于“图中相连的顶点更有可能具有相同的标记”这一假设。然而,这个假设,可能会限制模型的能力,因为图的边并不是必须要编码成相似的,而是要包含更多的信息。
在我们的研究中,我们将图结构直接通过一个神经网络模型 f(X,A) 进行编码,并且在监督的目标 {L_0} 下对所有有标记的顶点进行训练,因此避免了损失函数中刻意的对图进行正则化。在图的邻接矩阵上使用 f(\cdot ) 可以使模型从监督损失 {L_0} 中分布梯度信息,并且能够从有标记和没有标记的顶点上学习到它们的表示。
我们的贡献有两点,(1)首先,我们引入了一个简单的,表现很好的针对神经网络的对层传播规则,其中,这个神经网络是直接应用到图上的,并且展示了这个规则是如何通过谱图卷积的一阶近似启发得到的。(2)其次,我们展示了这种形式的基于图的神经网络可以用于对图中的顶点进行更快、更加利于可扩展的半监督分类任务。在大量数据集上的实验表明我们的模型在分类精度和效率上比当前在半监督学习中的先进算法要好。 (来自博客:Semi-Supervised Classification With Graph Convolutional Networks

2.1 Spectral Graph Convolutions

Spectral conv on graph 定义为信号 x \in R^{N} (每个节点都是一个标量)与傅里叶域中 \theta 参数化的 filter g_{\theta} = diag(\theta) (在Fourier domain中由 \theta \in R^{N}参数化的 filter ) 的乘法: 

总结起来,2.1 讲的主要是

  • Spectral conv on graph的定义
  • 如何利用Chebyshev polynomials近似计算(3)式 

2.2 Layer-wise Linear model

将(5)式叠加,并且“each layer followed by a point-wise non-linearity”, 就形成了基于图卷积的神经网络。现在令K=1,那么函数就变成了关于L的线性函数,即“a linear function on the graph Laplacian spectrum”。论文上直观地认为,不去明确限定Chebyshev polynomials的参数可以缓和对图上局部邻居结构的过拟合,这种图有着非常广的节点度分布。

一直转化(具体过程可以参考原文或者博客:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS),变成7式:

重复这个 operator 会导致数值不稳定和梯度爆炸/消失,因此再用一个 renormalization trick: 

I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \to \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}},令\tilde{A} = A + I_N\tilde{D}_{ii} = \sum_j \tilde{A}_{ij}

之前说 X 是 N×1 的,我们可以一般化,使 X \in \mathbb{R}^{N \times C},C是 input channels。于是(7)式化为:

Z = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta -(8)

 3 Semi-Supervised Node Classification

这里,定义两层GCN做图的半监督节点分类,先计算 \hat{A} = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}},然后有:

Z = f(X, A) = softmax(\hat{A} ReLU(\hat{A} X W^{0})W^{(1)})-(9)  

  • ,注,softmax是row-wise的;
  • W^{0},W^{(1)}是通过 gradient descent 训练得到的,这里用的是 batch gradient descent,每次 training 迭代用的都是整个数据集(需要将 dataset 放在内存)。
  • Stochasticity in the training process is introduced viadropout (Srivastava et al., 2014). We leave memory-efficient extensions with mini-batch stochasticgradient descent for future work. 训练过程中使用了 dropout 增加随机性。我们将在未来的工作使用 mini-batch 随机梯度下降。

Loss function

采用 cross-entropy (交叉熵)

L = - \sum_{l \in y_L} \sum_{f =1}^{F} Y_{lf} lnZ_{lf}-(10)

y_L:有 label 的节点集,Y_lf 是标签,Z_lf 是 output .

实验:在实践中,用 Tensorflow 来高效地使用GPU计算 (Mart ́ın Abadi et al. TensorFlow: Large-scale machine learning on heterogeneous systems, 2015.),(9)式使用 sparse-dense matrix multiplications,复杂度 O(|ε|CHF)

7.2 Limitations And Future work

  • 对内存要求比较高
  • 我们的框架并不天然地支持有向图和边的特征
  • 我们假设 self-connection 与 edges to neighboring nodes 的重要性是一样的。对于某些数据集可以 introduce a trade-off parameter(引入一个权衡参数)λ in the definition of \tilde{A}

\tilde{A} = A + \lambda I_N \tag{11},其中 λ 可以学习得到。

本文介绍了GCN谱方法的推导以及背后的思路等,这是一种比较严谨和理论的方法。但是,其实可以发现,在傅立叶域上定义出来的GCN操作,其实也可以在空间域上进行理解,其就是所谓的消息传递机制,或者说每次从邻居中聚集信息然后对中心节点进行更新。

如下图所示,红色节点S1的邻居正是蓝色节点 B1,B2,B3,这些邻居节点根据一定的规则将信息,也就是特征,汇总到红色节点上。

通常来说,会加入一个线性变换矩阵W,以作为汇聚节点特征的特征维度转换(或者说是映射),于是有

加入激活函数后有:

上式用更为紧致的矩阵形式表达:

不难发现,其实 HW 的结果乘上邻接矩阵 A 的目的其实在于选在一阶邻居节点,其实本质就是在于邻居节点的信息传递。但是上式还可以进行一些改进,比如 信息聚合时没有考虑节点自己的信息,因此可以在图中加入一个自环,邻接矩阵变为 

 

度矩阵变为:

 为了标准化(或归一化)邻接矩阵A使得每行之和为1,可以令:

这样就行归一化以后,对邻居的聚合就不是求和了而是求平均值。 

例子(来自博客:图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导-持续更新):

 

上式对邻接矩阵进行了标准化,这个标准化称之为 random walk normalization。然而,在实际中,动态特性更为重要,因此经常使用的是 renormalization(GCN论文中的叫法,推荐阅读 [GCN] 验证+解释 renormalization trick):

 

renormalization后有:

这就是在GCN谱方法推导中中提到的拉普拉斯矩阵要这样标准化的原因了。
经过邻接矩阵添加自环(renormalization)之后,可以得到:

 这就是GCN用谱方法推导出来的公式,这样就可以从空间结构的角度理解一阶ChebNet(GCN)了。

关于带权图问题
GCN论文里的针对的是无权的无向图,并且采用的是平均聚合的方法,邻居之间没有权重。但是,现实生活中更多的是带权图。比如,我们都认识马化腾,但是张志东与马化腾的亲密度要比我们和马化腾的亲密度高得多。因此,可以预测张志东的工资比我们更接近马化腾。

不过GCN还是可以直接处理带权图,原来的邻居矩阵取值只能是0和1,现在可以取更多的权值。

关于有向图问题
前面的都是针对于无向图的问题,所有拉普拉斯矩阵是对称矩阵,但是在有向图中,就不能定义拉普拉斯矩阵了。目前的两种解决思路:
(a)要想保持理论上的完美,就需要重新定义图的邻接关系,保持对称性
比如这篇文章 MotifNet: a motif-based Graph Convolutional Network for directed graphs
提出利用 Graph Motifs 定义图的邻接矩阵。

(b)个人认为基于空域的 GCNs 都可以处理有向图,比如 GraphSAGE、GAT 等,聚合邻居信息时根据有向边判断是否是邻居即可

节点没有特征的图
对于很多网络,可能没有节点的特征,这个时候也是可以使用GCN的,如论文中作者对那个俱乐部网络,采用的方法就是用单位矩阵 I 替换特征矩阵 X,有的地方也用节点度作为节点特征。

 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) 不能处理有向图:理由很简单,推导过程中用到拉普拉斯矩阵的特征分解需要满足拉普拉斯矩阵是对称矩阵的条件。

数据集格式:GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式

代码分析:图卷积网络GCN代码分析(Tensorflow版)

其实文章也不算很难,难的是里面涉及的数学知识推导,基础薄弱而没有时间的同学可以暂时放一放,看最终的结果即可(即论文的式(2)、式(8)、式(9)、式(10))

本文参考汇总:

SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS

Semi-Supervised Classification With Graph Convolutional Networks

图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导-持续更新

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值