翻译自GRAPH CONVOLUTIONAL NETWORKS, THOMAS KIPF, 30 SEPTEMBER 2016,原文作者是semi-Supervised Classification with Graph Convolutional Networks(GCN的开山之作,至2021/6/21引用次数达八千多次)的一作,因此可以从本文开始了解GCN的开端


论文引用次数(截图时间2021/6/21)

注:本文原文为16年九月所写,可能有些过时,但对于了解GCN的基础知识和设计哲学无疑是大有裨益的。

图卷积网络


Multi-layer Graph Convolutional Network (GCN) with first-order filters.

概述

  许多真实世界的数据集以graph的形式存在:社交网络、知识图谱、蛋白质相互作用网络、互联网等等。然而直到如今,将神经网络模型应用于这些结构化数据的工作仍然不多。

  最近几年,许多论文重新讨论了将神经网络泛化到任意结构的图上的问题。(Bruna et al., ICLR 2014; Henaff et al., 2015; Duvenaud et al., NIPS 2015; Li et al., ICLR 2016; Defferrard et al., NIPS 2016; Kipf & Welling, ICLR 2017),其中一些工作在传统方法领域(kernel-based方法、graph-based rerularization techniques等)取得了引人注目的成果。
在这篇文章中,我将简要概述该领域的最新发展,并指出各种方法的优缺点。本文内容主要基于最近的两篇论文:

  1. Kipf & Welling (ICLR 2017), Semi-Supervised Classification with Graph Convolutional Networks
  2. Defferrard et al. (NIPS 2016), Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

此外还涉及Gerenc Huszar所作博客How powerful are Graph Convolutions?

Outline

  • 简短介绍图神经网络模型
  • Spectral graph convolutions和Graph Convolutional Networks(GCNs)
  • Demo:使用简单的1st-order GCN模型演示图嵌入(这里的一阶GCN是谱图卷积的说法,不用太过理会)
  • GCN扩展作为WL核模型的扩展——一个可微扩展模型

如果你熟悉GCNs和相关方法,你可以跳到第三部分

GCNs的表达能力有多强大?

近期文献

  将成就斐然的神经网络模型如RNNs和CNNs扩展到大小不定的结构化数据中是具有挑战性的工作。最近几篇论文针对具体问题提出了具体的网络架构(如Duvenaud et al., NIPS 2015、 Li et al., ICLR 2016、Jain et al., CVPR 2016),也有一些论文利用谱图理论(spectral graph theory)在多层神经网络中定义参数化的滤波器【1】(Bruna et al., ICLR 2014; Henaff et al., 2015)——类似为大家喜爱和使用的经典CNNs中使用的卷积核。

  最近的工作侧重于整合快速启发式方法和慢速启发式方法【2】,即在某种程度上更具原则性的谱方法。Defferrard et al.使用具有自由参数的切比雪夫多项式在频域中近似平滑滤波器,这些参数在类似神经网络的模型中学习。这些工作在常规领域(如MNIST)取得了成功,其效果和二维的CNN模型相近。

  在Kipf & Welling (ICLR 2017)中,我们采取了与谱图卷积相似的方法,并以谱图卷积框架为基础引入一些简化操作(将在后文介绍)。这些简化操作在许多情况下不仅对训练速度有极大提升,还能够取得更高的精度,在许多graph的benchmark数据集中取得了state-of-the-art的分类结果

GCN第一部分:定义

  近年提出的许多图神经网络模型在某种程度上具有统一的架构。本文将这些模型统称为图卷积网络(Graph Gonvolutional Networks, GCN);称之为卷积的原因在于filter的参数在每个网络层中都是共享的(或者在子图中共享,如Duvenaud et al.,NIPS 2015)。

  这些模型的目标是在图 g = ( V , E ) \mathcal{g}=(\mathcal{V},\mathcal{E}) g=(V,E)中学习关于信号/特征的方程。这些模型的输入是:

  • 每个节点 n o d e i node_i nodei的特征描述 x i \mathbf{x}_i xi;这些特征组成特征矩阵 X ∈ R N × D X\in\mathbb{R}^{N\times D} XRN×D(N为节点数量,D为输入特征)
  • 对于graph结构的描述,通常以近邻矩阵 A \mathbf{A} A来描述(或关于近邻矩阵的一些变换)

输出则是node-level的矩阵 Z ∈ R N × F \mathbf{Z}\in\mathbb{R}^{N\times F} ZRN×F(F是每个节点的输出特征(或称嵌入)的维度)。graph-level的特征则可以通过对graph中所有节点进行某些池化操作来完成(如Duvenaud et al., NIPS 2015)。

  GCN的每一层都可以看作一个非线性方程:
H l + 1 = f ( H ( l ) , A ) , H^{l+1}=f(H^{(l)},A), Hl+1=f(H(l),A),
  显然首个GCN层的输入为矩阵 X X X,即 H ( 0 ) = X H^{(0)}=X H(0)=X;而末个GCN层的输出则为矩阵 F F F,即 H ( L ) = Z H^{(L)}=Z H(L)=Z(如果是graph-level的GCN则输出为一个矢量 z z z), L L L是GCN的层数。不同的GCN模型的区别就在于如何选择非线性方程 f ( ⋅ , ⋅ ) f(\cdot,\cdot) f(,)以及如何更新这个方程的参数。

GCN第二部分:最简单的例子

  考虑一个简单的网络层传播规则:
f ( H ( l ) , A ) = σ ( A H ( l ) W ( l ) ) , f(H^{(l)},A)=\sigma(AH^{(l)}W^{(l)}), f(H(l),A)=σ(AH(l)W(l)),
这里的 W ( l ) \mathbf{W}^{(l)} W(l)是第 l l l层的权重矩阵, σ ( ⋅ ) \sigma(\cdot) σ()则是一个非线性映射方程(如ReLU)。虽然这个模型非常简单,但其表达能力却十分强大(将在后文提到)。

  这个简单的模型当然具有一些局限。第一个主要的局限在与: A H ( l ) W ( l ) AH^{(l)}W^{(l)} AH(l)W(l)的运算对于每个node来说,我们仅仅加和其邻近node的特征矢量而忽略了其自身的特征矢量(除非graph中node是self-loop的)。这个局限可以通过将单位矩阵与近邻矩阵 A A A相加来解决。

  第二个主要的局限在于 A A A是非标准化的,这意味着在和 A A A相乘后,特征向量将会完全改变其比例(可以通过 A A A的特征值来理解这一事实)。将 A A A进行标准化,即使 A A A的每一行和为1可以解决这个问题,即进行操作 D − 1 A D^{-1}A D1AD D D是node degree的对角阵。更进一步,使用对称标准化可能带来更多的好处 (which have
less ambiguities and which better describe the distance between nodes on the graph): D − 1 2 A D − 1 2 D^{-\frac{1}{2}}AD^{-\frac{1}{2}} D21AD21。(对称归一化的定义在维基百科中十分清晰,读者可以自行查看,由于对称归一化涉及Laplacian matrix和谱图理论的知识,译者便不做介绍)

  在解决上述两个问题后,我们得到了Kipf & Welling (ICLR 2017)的网络层:
f ( H ( l ) , A ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W ( l ) ) , f(H^{(l)},A)=\sigma(\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}H^{(l)}W^{(l)}), f(H(l),A)=σ(D^21A^D^21H(l)W(l)),
此处的 A ^ = A + I \hat{A}=A+I A^=A+II I I是单位矩阵, D ^ \hat{D} D^则是 A ^ \hat{A} A^的对角节点度矩阵(diagonal node degree)。

  在下一小节中,我们将更进一步查看这种模型如何在一个简单的graph中起作用:Zachary’s karate club network.

GCN第三部分:嵌入karate club network


Karate club graph,空手道俱乐部图,颜色表示不同社区

  我们将查看上一节提到的简单GCN模型如何作用于一个著名的简单graph——Zachary’s karate club network.

  我们使用一个三层的GCN网络,网络权重是随机初始化的。由于这些node没有额外的特征,我们简单地使用单位矩阵来表示每个node的特征(即 X = I X=I X=I)。这个三层的GCN执行三层的前向传递并且高效地卷积每个node的3个层级的近邻。值得注意的是,该模型生成了这些节点的嵌入,并且该嵌入与图的社区结构非常相似(见下图)。而我们甚至根本没有进行训练!


没有进行训练时GCN对karate club network节点的嵌入

  这一事实可能令人惊讶,DeepWalk(Perozzi et al., KDD 2014)模型表明其可以在复杂的无监督训练过程中学习非常相似的嵌入。那使用未经训练的 GCN 模型为何能够得到这样的结果呢?

  我们可以通过将 GCN 模型解释为著名的 Weisfeiler-Lehman 算法的广义、可微版本来阐明这一点。
  Weisfeiler-Lehman 算法原理如下(一维情况下的简洁描述)【3】:

  对所有graph中的节点 v i ∈ g v_i\in g vig:

  • 得到每个节点的近邻节点 { v j } \{v_j\} {vj}的特征【4】 { h v j } \{h_{v_j}\} {hvj}
  • 更新每个节点的特征 h v i ← hash ( ∑ j h v j ) h_{v_i}\leftarrow \text{hash}(\sum_j \mathbf{h}_{v_j}) hvihash(jhvj),此处的 hash ( ⋅ ) \text{hash}(\cdot) hash()是一个单射哈希方程。
  • 重复上述操作直到每个节点的特征收敛或者达到迭代次数上限。

  在实际情况中,Weisfeiler-Lehman(WL)算法为大多数图分配了一组独特的特征。这意味着每个节点都被分配了一个特征,这特征唯一地描述它在图中的角色。在高度规则的graph如网格、节点链中WL会失效。但在大部分非规则graph中,可以用WL算法检测graph的是否是同质的(isomorphism)——即通过node的排列查看两个graph是否相同。

  对GCN来说,每个node在特定层的传播规则为:
h v i ( l + 1 ) = σ ( ∑ j 1 c i j h v j ( l ) W ( l ) ) , h_{v_i}^{(l+1)}=\sigma(\sum_j \frac{1}{c_{ij}}h_{v_j}^{(l)}W^{(l)}), hvi(l+1)=σ(jcij1hvj(l)W(l)),
此处的 j j j是节点 v i v_i vi的索引。 c i j c_{ij} cij是关于边 ( v i , v j ) (v_i,v_j) (vi,vj)的标准化常量——在我们的GCN模型中这一常量于对称标准化后的近邻矩阵 D − 1 2 A D − 1 2 D^{-\frac{1}{2}}AD^{-\frac{1}{2}} D21AD21是一致的。对照上面的WL算法,我们可以注意到这一传播规则可以这样解释:非线性化操作于WL算法的hash函数对应,而WL算法中聚合近邻节点的操作则对应GCN中可微的参数(即 W ( l ) W^{(l)} W(l))。如果我们选择合适的非线性操作并且将权重矩阵初始化为正交阵(如使用Glorot & Bengio, AISTATS 2010中的初始化方式),这个更新规则实际上变得稳定(这也归功于标准化)。

  通过上文的描述,我们可以得出一个结论:通过GCN我们得到了有意义的平滑嵌入,这个嵌入将距离解释为局部图结构的相似性程度(或者说相异性程度)。

GCN第四部分:半监督学习

  由于我们的GCN模型是参数化的、可微的,我们可以划分训练集并使用训练集的标签来训练我们的模型,以此查看embedding会如何变化。我们使用Kipf & Welling(ICLR 2017)中的半监督学习方法来训练GCN【5】。我们的训练集仅仅只取每个community的一个节点(有四个class/community,每个class我们只取一个来训练GCN)。

GCN训练

不支持播放此视频,您可以移步bilibili或优酷观看训练过程
使用 GCN 进行半监督学习:每类选取一个节点用于训练,训练集使用圆圈全了出来

  请注意,该模型直接产生了一个二维潜在空间,我们可以很容易地进行可视化。我们观察到 这个3 层地的GCN 模型设法线性分离每个communtiy——这是因为每个community只选取了一个node用于训练。考虑到我们的模型没有使用任何其他的节点特征,这个结果已经足够好了。此外我们可以为每个节点手动添加特征(如one-hot策略),这正是论文 ([Kipf & Welling](http://arxiv.org/abs/1609.02907), ICLR 2017) 中描述的实验中所采用的,这样能够在许多graph数据集中取得state-of-the-art的分类结果。

结论

  将神经网络用于graph的研究方兴未艾。在过去的几个月里,图卷积网络取得了令人兴奋的发展,但到目前为止,我们可能只触及了图卷积网络的皮毛。如何使用神经网络解决其他特定的真实世界问题如学习有向图和知识图谱,以及如何使用通过图卷积得到的节点嵌入将会是该领域的研究内容。上面提到的几个方向绝非是详尽的研究方向,我期待graph领域的深度学习将会发展地越来越好。

注解

【1】谱图卷积被定义为在图的傅立叶空间中将信号与滤波器相乘。图傅立叶变换定义为图信号 X X X(即每个节点的嵌入向量)与图拉普拉斯算子 L L L的特征向量矩阵 U U U的乘法/(归一化)图拉普拉斯算子可以很容易地通过对称标准化图近邻矩阵 A ˉ \bar{A} Aˉ计算: L = I − A ˉ L=I-\bar{A} L=IAˉ
【2】使用谱方法是有代价的:必须在傅立叶空间中定义滤波器,并且图傅立叶变换的计算成本很高(它需要将节点特征与图拉普拉斯算子的特征向量矩阵相乘,这是一个 O ( N 2 ) O(N^2) O(N2)问题,其中N是节点数量,首先计算特征向量矩阵甚至代价更高)。它们在常规领域(如 MNIST)上取得了令人信服的结果,非常接近于简单的 2D CNN 模型。
【3】这里的WL算法是简化版本。有关 Weisfeiler-Lehman 算法的广泛数学讨论,移步这篇论文,Douglas (2011) 。
【4】WL 算法的节点特征通常选择为整数,通常称为颜色。
【5】这个例子中没有对学习率进行退火处理,即便模型能够收敛到一个好的解决方案,训练过程也是不够稳定的。

图卷积网络GCN简介相关推荐

  1. 一文读懂简化的图卷积网络GCN(SGC)| ICML 2019

    作者 | yyl424525 来源 | CSDN博客 文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Gr ...

  2. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

    文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...

  3. 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域卷积

    文章首发于个人站点: 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域图卷积 | 隐舍 公众号:[DreamHub] 由于文章篇幅较长,因此将其分解为三部分: ...

  4. 图神经网络之图卷积网络——GCN

    图卷积网络--GCN 一.前置基础知识回顾 图的基本概念 构造图神经网络的目的 训练方式 二.回顾卷积神经网络在图像及文本上的发展 图像上的卷积网络 文本上的卷积网络 图卷积网络的必要性 三.图卷积网 ...

  5. 图卷积网络GCN的简单理解

    GCN ( Graph Convolutional Networks ),图卷积网络 Hl+1=σ(D~−12A~D~−12Hlwl)(1)H^{l+1}=\sigma\left(\widetilde ...

  6. 图卷积网络(GCN)简单理解

    1. 预备知识 1.1 图网络的种类.区别和联系 Graph Embedding Graph Embedding指图嵌入,属于表示学习的范畴,也可以称为网络嵌入.图表示学习.网络表示学习等等. 具体可 ...

  7. 解读:CVPR1903_图卷积网络GCN无监督人脸聚类

    Linkage Based Face Clustering via Graph Convolution Network https://arxiv.org/pdf/1903.11306.pdf 1简述 ...

  8. 图卷积网络GCN数学原理

    Math of GCN 参考视频 目录 Math of GCN 1 Basic of GCN 2 Spectral Graph Theory 2.1 Properties of matrixes re ...

  9. gcn语义分割_ICCV Oral 2019:152层GCN大幅加深图卷积网络的方法,点云分割任务效果显著...

    导读:目前常见的图卷积神经网络一般都是3.4层,本文关注的问题是图卷积神经网络GCN/GNN是否也能和一般的卷积神经网络CNN一样加深到50+层而不会有Vanishing Gradient问题,作者提 ...

最新文章

  1. GridView 里的删除不起作用
  2. 机器学习(MACHINE LEARNING)MATLAB和Python混合编程
  3. webRTC开启摄像头
  4. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题
  5. ni软件可以卸载吗_最强大的电脑端卸载软件!和你想的一样吗?进来看看!
  6. 短信认证方案,用手机短信进行上网认证如何实现?
  7. 利用C#实现分布式数据库查询
  8. 巧用TreeSet求解第k小整数(洛谷P1138题题解,Java语言描述)
  9. 阿里研究院:数据治理解决方案,附7篇数据治理完整版PDF下载
  10. 我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?
  11. Python学习教程(Python学习路线):Day13-进程和线程
  12. expat 处理xml常用函数名
  13. highcharts绘制统计图的应用
  14. SSI接口 AC97
  15. ERP/WMS仓库管理系统库存商品成本计算
  16. java调用万网域名接口
  17. cugoj-1697梦回三国
  18. 如何在eclipse中创建jsp工程项目
  19. 新西兰公民在中国大陆境内在线申请护照注意事项
  20. Unity的Bounds(包围盒)简记

热门文章

  1. idea:通过端口 1433 连接到主机 1433 的 TCP/IP 连接失败
  2. 每天有两三个小时空闲时间,做什么兼职赚钱比较好呢?
  3. 2020年2月份远程微课堂培训心得体会
  4. 跨境电商必读:从测评到爆款的最大限度降低砍单和封号风险的有效策略
  5. 图解某公司项目管理流程图,过程清晰明了
  6. 快速学习-电影推荐系统设计(数据源解析)
  7. KDZD400QH2S检测仪
  8. linux截取文件名某一段,Linux shell 之 提取文件名和目录名的一些方法总结
  9. 混合算法的图像去噪的matlab程序(主要讲述小波+NL-means的图像去噪)
  10. Educational Codeforces Round 36 (Rated for Div. 2) 题解