====================================================================================
本文译自 Thomas Kipf 的博文 Graph Convolutional Networks,翻译及发布已征得Kipf先生本人同意,再次感谢
原文地址 Original Blog Post:http://tkipf.github.io/graph-convolutional-networks/
题目 Graph Convolutional Networks 译作 图卷积网络,也习惯性地称为 图卷积神经网络
====================================================================================
GRAPH CONVOLUTIONAL NETWORKS 图卷积网络
Thomas Kipf, 30 September 2016
具有一阶过滤器的多层图卷积网络
概要
许多重要的现实世界的数据集以图或网络的形式出现:社交网络、知识图谱、蛋白质相互作用网络、万维网等(仅举几例)。然而直到最近,很少有人注意到神经网络模型在这种结构化数据集上的推广。
在过去几年中,许多论文重新探讨了将神经网络推广到任意结构的图的问题(Bruna et al., ICLR 2014; Henaff et al., 2015; Duvenaud et al., NIPS 2015; Li et al., ICLR 2016; Defferard et al., NIPS 2016; Kipf&Welling, ICLR 2017),其中一些方法在以前由基于核的方法、基于图的正则化技术和其他方法主导的领域中取得了令人满意的结果。
在这篇文章中,我将简要概述这一领域的最新发展,并指出各种方法的优缺点。这里的讨论主要集中在最近的两篇论文上:
- Kipf & Welling (ICLR 2017), Semi-Supervised Classification with Graph Convolutional Networks (免责声明:Kipf是第一作者)
- Defferrard et al. (NIPS 2016), Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
以及Ferenc Huszar的综述/讨论文章:How powerful are Graph Convolutions?,该文讨论了这类模型的一些局限性。我在这里对Ferenc的评论写了一个简短的评论(在这篇文章的最后)。
大纲
- 图的神经网络模型简介
- 谱的图卷积与图卷积网络
- 演示:一个简单的一阶GCN模型的图嵌入
- GCNs作为Weisfeiler-Lehman算法的可微推广
如果你已经熟悉GCNs和相关的方法,你可能想直接跳转到karate club网络的嵌入部分(见后文)。
How powerful are Graph Convolutional Networks?
近期文献
将建立良好的神经网络模型(如RNN或CNN)推广到任意结构的图上是一个具有挑战性的问题。最近的一些论文介绍了问题特异性的模型结构(例如,Duvenaud et al., NIPS 2015; Li et al., ICLR 2016; Jain et al., CVPR 2016),其他论文利用谱图理论中已知的图卷积 [1](Bruna et al., ICLR 2014; Henaff et al., 2015)来定义多层神经网络模型中使用的参数化过滤器(filter),类似于我们知道的“经典”CNN。
最近的工作侧重于弥补快速启发式和运行速度 [2] 之间的鸿沟,但使用了更具原则性的谱方法。Defferard等人(NIPS 2016)使用切比雪夫多项式在谱域中近似地平滑过滤器,该多项式具有在类神经网络模型中进行学习的自由参数。它们在规则数据领域(如MNIST)上获得了令人信服的结果,接近于简单的2D CNN模型。
在Kipf&Welling(ICLR 2017)中,我们采用了一种类似的方法,并从谱的图卷积的框架开始,引入了简化过程(我们将在后面讨论这些简化),在许多情况下获得了显著的更快的训练时间和更高的预测准确率,在许多基准图数据集上实现了最好的分类结果。
GCNs Part I: 定义
目前,大多数图神经网络模型都有一个共同的通用结构。我将这些模型称为图卷积网络(GCN);卷积,因为过滤器参数通常在图中的所有位置共享(或图的子集,如Duvenaud et al., NIPS 2015)。
对于这些模型,目标是学习图上的信号/特征函数,将以下内容作为输入:
- 每个结点具有一个特征描述;概括为一个的特征矩阵(:结点数,:输入特征数)
- 一个矩阵形式的图结构的描述;通常以一个邻接矩阵的形式(或其上的一些函数)
模型产生结点级的输出(一个特征矩阵,其中是每个结点的输出特征数)。图级输出可以通过引入某种形式的池化操作来建模(见Duvenaud et al., NIPS 2015)。
每个神经网络层都可以写成一个非线性函数:
其中,和(或图级的输出向量),是层数。具体的模型只在如何选择和参数化上有所不同。
GCNs Part II: 一个简单例子
作为一个例子,考虑以下非常简单的逐层传播规则:
其中,是第个神经网络层的权重矩阵,是一个类似ReLU的非线性激活函数。尽管它很简单,但是这个模型已经非常强大了(我们马上就来讨论这个问题)。
但首先,让我们讨论一下这个简单模型的两个局限:矩阵乘法意味着,对于每个结点,我们将所有邻居结点的所有特征向量相加,而不包括结点本身(除非图中存在自环)。我们可以通过在图中添加自环来“修复”这个问题:只需将单位矩阵与相加。
第二个主要局限是通常是未标准化的,因此与相乘将完全改变特征向量的尺度(我们可以通过观察的特征值来理解这一点)。使得所有行和为1来标准化,即,其中是对角结点度矩阵,就可以解决这个问题。与相乘相当于对邻居结点特征取平均。在实践中,使用对称标准化时结果变得更有趣(因为这不再仅是邻居结点的平均值)。结合这两个技巧,我们基本上得出了Kipf&Welling(ICLR 2017)中引入的传播规则:
其中,是单位矩阵,是的对角结点度矩阵。
在下一节中,我们将在一个非常简单的示例图上更详细地了解这种类型的模型是如何运作的:Zachary的karate club 网络(请务必查看Wikipedia的文章!)
GCNs Part III: 嵌入karate club 网络
karate club图,颜色表示通过基于模块度的聚类获得的社区(Brandes et al., 2008)
一起来看下我们简单的GCN模型(见上一节或Kipf&Welling, ICLR 2017)是如何在一个著名的图数据集上工作的:Zachary的karate club 网络(见上图)。
我们采用一个随机初始化权值的三层GCN。在训练权重之前,我们只需将图的邻接矩阵和(即单位矩阵,因为我们没有任何结点特征)输入到模型中。三层GCN在前向传递过程中执行三个传播步骤,并有效地对每个结点的三阶邻域进行卷积(所有结点最多3跳)。值得注意的是,该模型生成的这些结点的嵌入与图的社区结构非常相似(见下图)。请记住,我们完全随机初始化权重,且尚未执行任何训练更新(到目前为止)!
GCN对karate club网络中结点的嵌入(随机权重)
这似乎有点令人惊讶。最近一篇论文中的DeepWalk模型(Perozzi et al., KDD 2014)显示他们可以在一个复杂的无监督训练过程中学习到与此结果非常相似的嵌入。怎么可能在或多或少“无参”的条件下使用我们简单的未经训练的GCN模型得到这样一个嵌入?
我们可以通过将GCN模型解释为著名的Weisfeiler-Lehman算法在图上的一个广义可微版本来阐明这一点。一维的Weisfeiler-Lehman算法的工作原理如下 [3]:
对于所有结点:
- 获得邻居结点集合的特征集合 [4]
- 更新结点特征,其中是(理论上的)内射散列函数
重复步直到收敛。
实际上,Weisfeiler-Lehman算法为大多数图指定了一组唯一的特征。这意味着每个结点都被赋予了一个特征,该特征唯一地描述了其在图中的角色。例外情况是高度规则的图,如网格、链等。对于大多数不规则的图,这种特征赋予可用于检查图的同构性(即两个图是否等同,以至考虑结点的排列方式)。
回到我们的图卷积逐层传播规则(现以向量形式):
其中是的邻居结点的索引。是边的归一化常数,源自在我们的GCN模型中使用对称归一化的邻接矩阵。这个传播规则可以解释为原始Weisfeiler-Lehman算法中所使用的散列函数的一个可微且参数化()的变体。如果我们选择适当的非线性函数并初始化随机权重矩阵且使其正交(或例如使用Glorot&Bengio, AISTATS 2010中的初始化),则该更新规则在实践中变得稳定(也得益于使用进行标准化)。我们观察到,我们得到了有意义的光滑的嵌入,可将距离解释为局部图结构的(不)相似性!
GCNs Part IV: 半监督学习
由于我们的模型中的所有东西都是可微的和参数化的,我们可以添加一些标签来训练模型并观察嵌入的变化。我们可以使用Kipf&Welling(ICLR 2017)中介绍的GCNs半监督学习算法。我们简单地为每个类/社区标记一个结点(下面视频中突出显示的节点),然后开始迭代训练若干次 [5]。
该模型直接产生一个二维的潜在空间以能够立即可视化。我们观察到,在每个类仅有一个标记的实例的情况下,3层的GCN模型能够线性地分离社区。这是一个比较显著的结果,因为模型没有获得结点的特征描述。同时,可以提供初始的结点特征,这正是我们在论文(Kipf&Welling, ICLR 2017)中描述的实验中所做的,以在许多图数据集上实现最好的分类结果。
结论
这方面的研究才刚刚起步。在过去的几个月里,我们看到了令人兴奋的发展,但到目前为止,我们可能只触及了这类模型的表面。图的神经网络如何能进一步适应特定类型的问题还有待观察,例如,在有向图或关系图上的学习,以及如何将学习到的图嵌入用于后续任务等。列出的这些方向绝不是详尽无遗的,我期望在不久的将来能有更多有趣的应用和扩展。如果您有一些令人兴奋的想法或问题要分享,请在原文评论中告诉Kipf!
致谢
感谢 Max Welling, Taco Cohen, Chris Louizos and Karen Ullrich 在论文和这篇博文中提供了许多讨论和反馈。我还要感谢Ferenc Huszar指出了这类模型的一些缺点。
关于完备性的注释
这篇博文并不是对图神经网络领域的详尽回顾。为了使这篇文章更具可读性,并赋予它一个连贯的故事情节,我省略了一些近期和较老的论文。如果你想深入这个主题并获得其大致的及迄今为止已经尝试了的完整的概述,那么我在本文中提到的论文可作为一个良好的开端。
正则图的问题
在下面,我将简要地评论一下在How powerful are Graph Convolutions?一文中的陈述。Ferenc Huszar在最近的这篇博文中对这里讨论的一些模型提供了一个稍微消极的观点。他正确地指出,与专门为正则图设计的模型(比如用于图像的“经典”2D CNN)相比,图卷积网络(如本文中介绍的)在此领域上减少了许多琐碎的操作。值得注意的是,当前应用于任意结构图的图神经网络模型在应用于规则图(如网格、链、完全连通图等)时,通常具有某些形式的缺点。例如,局部谱处理(如Defferard et al., NIPS 2016)缩减为旋转对称过滤器,并且永远无法模仿网格上“经典”2D CNN的操作(排除边界效应)。同样,Weisfeiler-Lehman算法也不会在正则图上收敛。这告诉我们,当我们试图评估一个特定的图神经网络模型的有效性时,我们的视角可能需要超越常规的网格结构。
在为任意的图设计这样的模型时,必须做出一些特定的权衡(当然,让人们认识到这些权衡是很重要的。当然,除非我们在某个时候能够提出一个通用的强大的模型)。
注释
[1] 谱的图卷积定义为信号与图的傅里叶空间中的过滤器相乘。图的傅里叶变换被定义为图信号(即每个结点的特征向量)与图的拉普拉斯矩阵的特征向量矩阵的乘积。(归一化的)图的拉普拉斯矩阵可以很容易地从对称归一化的图邻接矩阵计算得到:。
[2] 使用谱方法是有代价的:过滤器必须在傅里叶空间中定义,而图的傅里叶变换计算成本很高(它需要将结点特征与图的拉普拉斯特征向量矩阵相乘,对于具有N个节点的图计算是的;首先计算特征向量矩阵更费时。
[3] 我简化了一些内容。对于Weisfeiler-Lehman算法的拓展的数学讨论,参见Douglas (2011)。
[4] Weisfeiler-Lehman算法的结点特征通常选为标量整数,通常作为颜色。
[5] 因为在这个例子中我们没有对学习率进行退火操作,一旦模型收敛到一个好的解,事情就会变得非常“不稳定”。