第三代图卷积网络:使用图卷积网络进行半监督分类

论文标题:Semi-Supervised Classification with Graph Convolutional Networks
论文链接:https://arxiv.org/abs/1609.02907
论文来源:ICLR 2017

之前的文章:
①傅里叶级数与傅里叶变换
②图神经网络中的谱图理论基础
③第一代图卷积网络:图的频域网络与深度局部连接网络
④第二代图卷积网络:应用快速局部谱卷积的图卷积网络

一、概述

考虑分类图中节点这样一个问题,每个节点可以是一篇文章,那么图可以代表引用关系,并且只有一部分节点有标签。这样的问题就是一个基于图的半监督学习问题。解决这个问题的一种方法是为损失函数添加一个基于图的正则项,比如采用图的拉普拉斯矩阵正则项:

这里的代表监督损失,也就是图中有标签的那些节点的损失,可以是一个神经网络,是一个权衡因子,是一个包含所有节点特征向量的矩阵,代表邻接矩阵,代表未标准化的拉普拉斯矩阵。另外代表要处理的无向图,有个节点,,,它的邻接矩阵用来表示,可以是binary的也可以是weighted的,度矩阵。

上式之所以能够采用这样的损失函数是基于这样的假设:在图中相邻的节点更倾向于拥有相同的标签。然而这个假设可能会限制模型的容量,因为图的边不一定需要编码节点相似度,但可能包含额外的信息。

本文所采用的的方法设计了神经网络模型(和作为神经网络的输入),并且在所有有标签节点的监督损失进行训练,避免了使用前述正则项。这种将作为的输入条件的方法可以从监督损失中分配梯度信息并且能够让模型学习所有节点的表示(无论有无标签)。

本文主要内容包括三部分:
①网络的架构,也就是设计的卷积层是如何前向传播的,以及它如何从前两代GCN中获得启发并对其进行改进;
②如何利用设计的GCN解决前述半监督问题;
③通过实验来证明本文设计的模型是有效且高效的。

二、图上的快速近似卷积

在本文中所设计的GCN的卷积层结构如下:

这里,是邻接矩阵与自连接的加和,,是第层的训练参数,是激活函数,比如,是每一层的数据的特征矩阵,。

  1. 谱卷积核

这一部分介绍上述设计的卷积层是如何从第二代GCN演化而来的。第一代GCN定义图信号上的卷积核,这里是参数向量,定义的卷积过程如下:

这里是标准化的拉普拉斯矩阵的特征向量矩阵,是特征值的对角矩阵,相当于对进行傅里叶变换,可以看做是特征值的函数。上式由于需要与进行相乘,因此计算上是昂贵的(),另外计算的特征分解也需要消耗一定的计算资源,尤其对于大规模的图来说计算上也是相当昂贵的。为了解决上述问题,于是有了第二代GCN,其中被使用阶切比雪夫多项式来逼近:

其中,代表最大的特征值,现在是切比雪夫多项式的系数向量。利用这种卷积核的卷积过程就可以表示为:

这里。这样的卷积核是K-localized的,复杂度为,也就是与边的数量成线性关系。

  1. 第三代谱卷积核

上面介绍了前两代谱卷积核,本节介绍如何由第二代谱卷积核进行改进从而得到本文所设计的第三代谱卷积核。对于第二代卷积核,首先我们设置,那么现在有:

\sum_{k=0}^{K}\theta _{k}^{'}T_{k}(\tilde{L})=\sum_{k=0}^{1}\theta _{k}^{'}T_{k}(\tilde{L})\\ =\theta _{0}^{'}T_{0}(\tilde{L})+\theta _{1}^{'}T_{1}(\tilde{L})\\ =\theta _{0}^{'}+\theta _{1}^{'}\tilde{L}\\ =\theta _{0}^{'}+\theta _{1}^{'}(2L/\lambda _{max}-I_{N})

上式和成线性关系。即使将设置成,也仍然可以通过堆叠多层来使得模型具备足够的容量和复杂度,而且本文认为这样设置还可以缓解社交网络、引文网络、知识图谱或者其他真实世界的这种大规模图的局部邻域的过拟合问题。另外,这样的设计也能够允许我们构建更深的深度网络。

接着,本文近似使用,本文认为在训练过程中神经网络可以适应这种假设,那么现在,卷积的过程就变成:

g_{\theta ^{'}}\star x\approx \sum_{k=0}^{1}\theta _{k}^{'}T_{k}(\tilde{L})x\\ =[\theta _{0}^{'}+\theta _{1}^{'}(2L/\lambda _{max}-I_{N})]x\\ =[\theta _{0}^{'}+\theta _{1}^{'}(L-I_{N})]x\\ =\theta _{0}^{'}x-\theta _{1}^{'}D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x

一共有两个参数和。连续应用这种卷积层也可以达到卷积图的阶邻域的效果,这是由于每次卷积阶邻域内的节点信息都会流向当前节点,这里的代表连续的卷积操作数或者卷积的层数。

接下来进一步限制参数的数量以解决过拟合和最小化每层的操作(如矩阵乘法)的数量,具体的,限制,现在卷积的过程就变成:

现在的特征值在之间。在深度神经网络中重复应用上述过程会造成数值不稳定以及梯度爆炸或梯度消失,为了缓解这个问题,本文采用再标准化(renormalization)技巧:

这里,。

上述卷积过程的一种泛化的表达形式如下,信号,有个channel,也就是说每个节点用维特征向量来表示,同时采用个卷积核,那么现在有:

这里,是需要学习的参数矩阵,是卷积后的信号矩阵。这样的卷积操作的复杂度为,由于作为一个稀疏矩阵乘以一个稠密矩阵可以被高效地实现。

三、半监督节点分类

正如之前所说的,对于半监督分类问题,由于我们将数据和邻接矩阵同时作为模型的输入条件,因而我们可以放宽某些典型的基于图的半监督学习的假设。我们期待这种方法在邻接矩阵包含种没有的信息时能够是powerful的,解释一下这一点就是说传统的基于图的半监督学习(正如开篇介绍的)要求图的邻接矩阵表征节点的相似度,而节点的相似度信息是利用计算得到的,也就是说本身就包含相似度信息,这就造成了重复和浪费,而使用本文的模型后,邻接矩阵就可以用来表征一些其他信息(比如文章的引用关系或者知识图谱中的关系),相当于将邻接矩阵解放了出来。

对于模型的具体架构,使用一个两个卷积层的神经网络作为例子。在预处理阶段首先计算,然后模型架构可以表示为:

注意没有池化层。这里是input-to-hidden权重矩阵(隐层有个feature map),是hidden-to-output权重矩阵。函数计算为:

函数被应用到矩阵的每一行。损失函数采用所有有标签节点的交叉熵损失:

代表有标签节点的集合。整个模型架构如下图所示:

架构图

在实验中采用batch gradient descent对整个数据集进行迭代。对于稀疏矩阵,需要的内存复杂度为。随机性通过dropout引入。对于mini-batch stochastic gradient descent的方法需要后续进行研究。

四、实验

实验数据集信息如下:

数据集信息

实验结果如下:

实验结果

具体实验设置请参照原文。

多种架构对比:

多种架构对比

训练时间与图边数的关系:

训练时间与图边数的关系

五、模型的局限性

  1. 内存的需求

采用batch gradient descent,内存需求与图边数成线性关系。而如果采用mini-batch,则需要考虑模型的层数,因为模型的层数代表了卷积的感受野,对于非常大且稠密连接的图,可能需要更进一步的近似。

  1. 有向图和边的特征

本文提出的模型只适用于无向图模型。不过NELL数据集的结果表明,通过将原始有向图表示为无向二部图,并使用额外的节点表示原始图中的边,可以同时处理有向边和边的特征。

  1. 有限的假设

前述模型的定义有两个假设:
①局部性假设,也就是层对应阶邻域的假设;
②自连接与相邻节点的边等同重要性,也就是

对于一些数据集,最好引入一个权衡参数:

这个权衡参数可以被学习。

你可能感兴趣的:(第三代图卷积网络:使用图卷积网络进行半监督分类)