论文:Semi-Supervised Classification with Graph Convolutional Networks
代码:TensorFlow、PyTorch

摘要

我们提出了一种基于图的结构化数据的半监督学习的可扩展方法,该网络是传统卷积算法在图结构数据上的一个变体,可以直接用于处理图结构数据。GCN 是谱图卷积(spectral graph convolution) 的局部一阶近似(localized first-order approximation)。我们的模型规模会随图中边的数量的增长而线性增长,并学习编码局部图结构和节点特征的隐藏层表示。在引文网络和知识图数据集上的大量实验中,我们证明了我们的方法比相关方法的优势要大得多。

1 介绍

我们考虑在图形(例如引文网络)中对节点(例如文档)进行分类的问题,其中标签仅可用于一小部分节点。这个问题可以作为基于图的半监督学习来解决,其中标签信息通过某种形式的基于图的显式平滑正则 ,例如通过在损失函数中使用图拉普拉斯正则化项:
L=L0+λLreg ,with Lreg =∑i,jAij∥f(Xi)−f(Xj)∥2=f(X)⊤Δf(X).(1)\mathcal{L}=\mathcal{L}_{0}+\lambda \mathcal{L}_{\text {reg }}, \quad \text { with } \quad \mathcal{L}_{\text {reg }}=\sum_{i, j} A_{i j}\left\|f\left(X_{i}\right)-f\left(X_{j}\right)\right\|^{2}=f(X)^{\top} \Delta f(X) . \tag{1} L=L0​+λLreg ​, with Lreg ​=i,j∑​Aij​∥f(Xi​)−f(Xj​)∥2=f(X)⊤Δf(X).(1)

其中L0\mathcal{L}_{0}L0​表示关于图标签的监督损失,f(⋅)f(\cdot)f(⋅)可以是类似于神经网络的微分函数,λ\lambdaλ是权重因子,XXX是节点特征向量的矩阵。Δ=D−A\Delta = D - AΔ=D−A表示无向图G=(V,E)\mathcal{G} = (\mathcal{V}, \mathcal{E})G=(V,E)的为归一化图拉普拉斯图算子,其中NNN为节点个数,vi∈Vv_i \in \mathcal{V}vi​∈V, (vi,vj)∈E(v_i, v_j) \in \mathcal{E}(vi​,vj​)∈E,邻接矩阵A∈RN×NA \in \mathcal{R}^{N\times N}A∈RN×N(二进制或加权)和度量矩阵Dii=∑jAijD_{ii} = \sum_{j}A_{ij}Dii​=∑j​Aij​。公式1依赖于以下假设:图中的已连接节点可能共享相同的标签。但是,此假设可能会限制建模能力,因为图的边不一定需要编码节点相似性,而是可能包含其他额外信息。

在这项工作中,我们直接使用神经网络模型f(X,A)f(X, A)f(X,A)对图结构进行编码,并在带有标签的所有节点的有监督目标L0\mathcal{L}_{0}L0​上进行训练,从而避免了损失函数中基于图的正则化。在图的邻接矩阵上加上条件f(⋅)f(\cdot)f(⋅),可以模型能够从有监督的损失中L0\mathcal{L}_{0}L0​中分布梯度信息,并使模型能够学习有或无标签的节点表示。

我们的贡献是双重的。首先,我们为神经网络模型引入一个简单且行为良好的分层传播规则,该规则直接在图上运行,并展示如何从频谱图卷积的一阶近似中激活它。其次,我们演示了如何将这种形式的基于图的神经网络模型用于图中节点的快速和可扩展的半监督分类。在许多数据集上进行的实验表明,我们的模型与半监督学习的最新方法相比,在分类准确性和效率(以挂钟时间衡量)方面均具有优势。

2 快速近似卷积图

在这一节中,我们将为基于图的神经网络模型f(X,A)f(X, A)f(X,A)提供理论依据,我们将在本文的其余部分使用该模型。我们考虑具有以下分层传播规则的多层图卷积网络(GCN):

H(l+1)=σ(D~−12A~D~−12H(l)W(l))(2)H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right) \tag{2} H(l+1)=σ(D~−21​A~D~−21​H(l)W(l))(2)

A~=A+IN\tilde{A} = A + I_NA~=A+IN​是无向图G\mathcal{G}G加上自连接的邻接矩阵。INI_NIN​是单位矩阵,D~ii=∑jA~ij\tilde{D}_{ii} = \sum_{j}\tilde{A}_{ij}D~ii​=∑j​A~ij​,W(l)W^{(l)}W(l)是特定于层的可训练权重矩阵。σ(⋅)\sigma(\cdot)σ(⋅)表示激活函数,例如ReLU(⋅)=max(0,⋅)\text{ReLU}(\cdot)= \text{max}(0, \cdot)ReLU(⋅)=max(0,⋅)。H(l)∈RN×DH^{(l)}\in R^{N×D}H(l)∈RN×D是lthl^{th}lth层中的激活矩阵;H(0)=XH^{(0)}= XH(0)=X。在下文中,我们表明可以通过图上局部频谱滤波器的一阶近似来激活此传播规则的形式。

2.1 频谱图卷积

我们考虑图上的频谱卷积,定义为信号x∈RNx\in \mathbf{R}_Nx∈RN​(每个节点的标量)与在傅里叶域中θ∈RN\theta \in \mathbf{R}^{N}θ∈RN参数化的滤波器gθ=diag(θ)g_\theta= diag(θ)gθ​=diag(θ)相乘的乘积,即:

gθ⋆x=UgθU⊤x(3)g_{\theta} \star x=U g_{\theta} U^{\top} x \tag{3} gθ​⋆x=Ugθ​U⊤x(3)

其中UUU是归一化图拉普拉斯算子的特征向量的矩阵L=IN−D−12AD−12=UΛU⊤L = I_N - D^{-\frac{1}{2}} {A} D^{-\frac{1}{2}} = U\Lambda U^{\top}L=IN​−D−21​AD−21​=UΛU⊤,其特征值Λ\LambdaΛ的对角矩阵,U⊤xU^{\top}xU⊤x是xxx的图的傅里叶变换。

L=D−12(D−A)D−12=D−12DD−12−D−12AD−12=IN−D−12AD−12\begin{aligned} L &=D^{-\frac{1}{2}}(D-A) D^{-\frac{1}{2}} \\ &=D^{-\frac{1}{2}} D D^{-\frac{1}{2}}-D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \\ &=I_{N}-D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \end{aligned} L​=D−21​(D−A)D−21​=D−21​DD−21​−D−21​AD−21​=IN​−D−21​AD−21​​

我们可以把gθg_\thetagθ​理解为LLL的特征值的函数,即gθ(Λ)g_{\theta}(\Lambda)gθ​(Λ)。公式3在计算上是昂贵的,因为与特征向量矩阵UUU相乘是O(N2)\mathcal{O}(N^2)O(N2)。此外,对于大图来说,首先计算LLL的特征分解可能过于昂贵。为了解决这个问题,Hammond et al.(2011) :Wavelets on graphs via spectral graph theory提出,gθ(Λ)g_{\theta}(\Lambda)gθ​(Λ)可以很好地用Chebyshev多项式Tk(x)T_k(x)Tk​(x)上的KthK^{th}Kth阶截断展开来逼近:
gθ′(Λ)≈∑k=0Kθk′Tk(Λ~)(4)g_{\theta^{\prime}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{\Lambda}) \tag{4} gθ′​(Λ)≈k=0∑K​θk′​Tk​(Λ~)(4)
重新缩放Λ~=2λmaxΛ−IN\tilde{\Lambda} = \frac{2}{\lambda_{\text{max}}}\Lambda - I_NΛ~=λmax​2​Λ−IN​。λmax\lambda_{\text{max}}λmax​是LLL的最大特征值。现在θ′∈RK\theta^{\prime}\in \mathbf{R}^Kθ′∈RK是Chebyshev系数的向量。Chebyshev多项式被循环定义为Tk(x)=2xTk−1(x)−Tk−2(x)T_k(x) = 2xT_{k-1}(x) - T_{k-2}(x)Tk​(x)=2xTk−1​(x)−Tk−2​(x),其中T0(x)=1T_0(x)=1T0​(x)=1,T1(x)=xT_1(x) =xT1​(x)=x。

回到我们对信号xxx与滤波器g′g^{\prime}g′的卷积的定义,现在我们得到:

gθ′⋆x≈∑k=0Kθk′Tk(L~)x(5)g_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{5} gθ′​⋆x≈k=0∑K​θk′​Tk​(L~)x(5)

其中L~=2λmaxL−IN\tilde{L} = \frac{2}{\lambda_{\text{max}}} L - I_NL~=λmax​2​L−IN​;可以很容易地验证(UΛU⊤)k=UΛkU⊤(U \Lambda U^{\top})^{k} = U \Lambda^k U^{\top}(UΛU⊤)k=UΛkU⊤。

以下公式推导link
公式(4)到公式(5)证明如下:
1)先用数学归纳法证明
UTk(Λ~)UT=Tk(UΛ~UT)U T_{k}(\tilde{\Lambda}) U^{T}=T_{k}\left(U \tilde{\Lambda} U^{T}\right)UTk​(Λ~)UT=Tk​(UΛ~UT)

数学归纳法思路:当n=1时显然成立,假设n=k时成立,只需证n=k+1时成立
证明:根据切比雪夫多项式的定义, 已知
UT0(Λ~)UT=UUT=1=T0(UΛ~UT)UT1(Λ~)UT=UΛ~UT=T1(UΛ~UT)\begin{array}{l} U T_{0}(\tilde{\Lambda}) U^{T}=U U^{T}=1=T_{0}\left(U \tilde{\Lambda} U^{T}\right) \\ U T_{1}(\tilde{\Lambda}) U^{T}=U \tilde{\Lambda} U^{T}=T_{1}\left(U \tilde{\Lambda} U^{T}\right) \end{array} UT0​(Λ~)UT=UUT=1=T0​(UΛ~UT)UT1​(Λ~)UT=UΛ~UT=T1​(UΛ~UT)​
假设对于任意k>1, 满足
UTk−2(Λ~)UT=Tk−2(UΛ~UT)U T_{k-2}(\tilde{\Lambda}) U^{T}=T_{k-2}\left(U \tilde{\Lambda} U^{T}\right) UTk−2​(Λ~)UT=Tk−2​(UΛ~UT)

UTk−1(Λ~)UT=Tk−1(UΛ~UT)U T_{k-1}(\tilde{\Lambda}) U^{T}=T_{k-1}\left(U \tilde{\Lambda} U^{T}\right) UTk−1​(Λ~)UT=Tk−1​(UΛ~UT)

UTk(Λ~)UT=2UΛ~Tk−1(Λ~)UT−UTk−1(Λ~)UT=2(UΛ~UT)[UTk−1(Λ~)UT]−UTk−1(Λ~)UT=2(UΛ~UT)Tk−1(UΛ~UT)−Tk−1(UΛ~UT)=Tk(UΛ~UT)\begin{aligned} U T_{k}(\tilde{\Lambda}) U^{T} &=2 U \tilde{\Lambda} T_{k-1}(\tilde{\Lambda}) U^{T}-U T_{k-1}(\tilde{\Lambda}) U^{T} \\ &=2\left(U \tilde{\Lambda} U^{T}\right)\left[U T_{k-1}(\tilde{\Lambda}) U^{T}\right]-U T_{k-1}(\tilde{\Lambda}) U^{T} \\ &=2\left(U \tilde{\Lambda} U^{T}\right) T_{k-1}\left(U \tilde{\Lambda} U^{T}\right)-T_{k-1}\left(U \tilde{\Lambda} U^{T}\right) \\ &=T_{k}\left(U \tilde{\Lambda} U^{T}\right) \end{aligned} UTk​(Λ~)UT​=2UΛ~Tk−1​(Λ~)UT−UTk−1​(Λ~)UT=2(UΛ~UT)[UTk−1​(Λ~)UT]−UTk−1​(Λ~)UT=2(UΛ~UT)Tk−1​(UΛ~UT)−Tk−1​(UΛ~UT)=Tk​(UΛ~UT)​
因此,根据数学归纳法, 证毕。
(2)已知
L~=UΛ~UT\tilde{L}=U \tilde{\Lambda} U^{T} L~=UΛ~UT
(3)将(1)、(2)两式带入卷积公式:
gθ∗x=UgθUTx=Ugθ(Λ)UTx=U(∑k=0KθkTK(Λ~))UTx=(∑k=0KθkTK(UΛ~UT))x=∑k=0KθkTK(L~)x\begin{aligned} g_{\theta} * x &=U g_{\theta} U^{T} x \\ &=U g_{\theta}(\Lambda) U^{T} x \\ &=U\left(\sum_{k=0}^{K} \theta_{k} T_{K}(\tilde{\Lambda})\right) U^{T} x \\ &=\left(\sum_{k=0}^{K} \theta_{k} T_{K}\left(U \tilde{\Lambda} U^{T}\right)\right) x \\ &=\sum_{k=0}^{K} \theta_{k} T_{K}(\tilde{L}) x \end{aligned} gθ​∗x​=Ugθ​UTx=Ugθ​(Λ)UTx=U(k=0∑K​θk​TK​(Λ~))UTx=(k=0∑K​θk​TK​(UΛ~UT))x=k=0∑K​θk​TK​(L~)x​

请注意,此表达式现在是K-localized的,因为它是拉普拉斯函数中的K阶多项式,即它仅取决于距离中心节点最大K步(K阶邻域)的节点。公式5是的复杂度是O(∣E∣)\mathcal{O}(|\mathcal{E}|)O(∣E∣),即边数是线性的。 Defferrard等人(2016)使用此K-localized卷积在图上定义卷积神经网络。

2.2 分层线性模型

因此,可以通过堆叠等式5形式的多个卷积层来建立基于图卷积的神经网络模型,每一层后都有一个逐点非线性。假设我们将分层卷积运算限制为K=1K = 1K=1(请参见等式5),即一个函数是关于LLL线性函数,因此它是图上拉普拉斯频谱的线性函数。

这样,我们仍然可以通过堆叠多个这样的层来恢复丰富的卷积滤波函数类,但是我们不限于例如Chebyshev多项式给出的显式参数化。我们直观地期望这种模型可以缓解节点度分布非常宽的图(例如社交网络,引文网络,知识图和许多其他现实世界图数据集)的局部邻域结构过拟合的问题。此外,对于固定的计算预算,这种分层的线性方法使我们可以构建更深的模型,该实践被认为可以提高许多领域的建模能力。

在GCN的这种线性公式中,我们可以进一步近似λmax≈2\lambda_{\text{max}} \approx 2λmax​≈2,因为我们可以预期神经网络参数将在训练过程中适应这种规模变化。在这些近似值在公式5中简化为:

gθ′⋆x≈θ0′x+θ1′(L−IN)x=θ0′x−θ1′D−12AD−12x(6)g_{\theta^{\prime}} \star x \approx \theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(L-I_{N}\right) x=\theta_{0}^{\prime} x-\theta_{1}^{\prime} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x \tag{6} gθ′​⋆x≈θ0′​x+θ1′​(L−IN​)x=θ0′​x−θ1′​D−21​AD−21​x(6)

公式(6)推导如下gθ∗x=∑k=0KθkTK(L~)x=∑k=0Kθk′Tk(2λmax⁡L−IN)x=∑k=0Kθk′Tk(L−IN)x(λmax⁡≈2)=[θ0′T0(L−IN)+θ1′T1(L−IN)]x=θ0′x+θ1′(L−IN)x=θ0′x+θ1′(IN−D−12AD−12−IN)x(L=IN−D−12AD−12)=θ0′x−θ1′D−12AD−12x\begin{aligned} g_{\theta} * x &=\sum_{k=0}^{K} \theta_{k} T_{K}(\tilde{L}) x \\ &=\sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}\left(\frac{2}{\lambda_{\max }} L-I_{N}\right) x \\ &=\sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}\left(L-I_{N}\right) x \quad\left(\lambda_{\max } \approx 2\right) \\ &=\left[\theta_{0}^{\prime} T_{0}\left(L-I_{N}\right)+\theta_{1}^{\prime} T_{1}\left(L-I_{N}\right)\right] x \\ &=\theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(L-I_{N}\right) x \\ &=\theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(I_{N}-D^{-\frac{1}{2}} A D^{-\frac{1}{2}}-I_{N}\right) x \quad \quad\left(L =I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\right) \\ &=\theta_{0}^{\prime} x-\theta_{1}^{\prime} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x \end{aligned} gθ​∗x​=k=0∑K​θk​TK​(L~)x=k=0∑K​θk′​Tk​(λmax​2​L−IN​)x=k=0∑K​θk′​Tk​(L−IN​)x(λmax​≈2)=[θ0′​T0​(L−IN​)+θ1′​T1​(L−IN​)]x=θ0′​x+θ1′​(L−IN​)x=θ0′​x+θ1′​(IN​−D−21​AD−21​−IN​)x(L=IN​−D−21​AD−21​)=θ0′​x−θ1′​D−21​AD−21​x​

gθ′⋆x≈θ0′x+θ1′(L−IN)x=θ0′x−θ1′D−12AD−12x(6)g_{\theta^{\prime}} \star x \approx \theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(L-I_{N}\right) x=\theta_{0}^{\prime} x-\theta_{1}^{\prime} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x \tag{6} gθ′​⋆x≈θ0′​x+θ1′​(L−IN​)x=θ0′​x−θ1′​D−21​AD−21​x(6)

具有两个自由参数θ0′\theta^{\prime}_0θ0′​和θ1′θ^{\prime}_1θ1′​。滤波器参数可以在整个图上共享。连续应用这种形式的滤波器,随后有效地对节点的第kkk阶邻域进行卷积,其中kkk是神经网络模型中连续滤波操作或卷积层的数目。

实际上,进一步限制参数的数量以解决过度拟合并最小化每层操作(例如矩阵乘法)的数量可能是有益的。这使我们具有以下表达式:

gθ′⋆x≈θ(IN+D−12AD−12)x(7)g_{\theta^{\prime}} \star x \approx \theta \left(I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x \tag{7} gθ′​⋆x≈θ(IN​+D−21​AD−21​)x(7)

具有单个参数θ=θ0′=−θ1′\theta =\theta^{\prime}_0=-\theta^{\prime}_1θ=θ0′​=−θ1′​。注意,IN+D−12AD−12I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}}IN​+D−21​AD−21​现在的特征值在区间[0,2]内。因此,当在深度神经网络模型中使用该运算符时,反复使用该运算符可能会导致数值不稳定性以及爆炸/消失梯度。为了缓解此问题,我们引入了以下重新归一化技巧:IN+D−12AD−12→D~−12A~D~−12I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}IN​+D−21​AD−21​→D~−21​A~D~−21​,其中A~=A+IN\tilde{A} = A+I_NA~=A+IN​,D~ii=∑jA~ij\tilde{D}_{ii} = \sum_j \tilde{A}_{ij}D~ii​=∑j​A~ij​。

我们可以将这个定义概括为信号X∈RN×CX\in \mathbf {R}^{N×C}X∈RN×C,其中CCC为输入通道(即每个节点的CCC维特征向量),FFF为滤波器或特征图,如下所示:
Z=D~−12A~D~−12XΘ(8)Z = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}X \Theta \tag{8} Z=D~−21​A~D~−21​XΘ(8)

Θ∈RC×F\Theta \in \mathbf{R}^{C\times F}Θ∈RC×F是滤波器的参数矩阵,Z∈RN×FZ \in \mathbf{R}^{N\times F}Z∈RN×F是卷积信号矩阵。这种滤波操作具有复杂度O(∣E∣FC)\mathcal{O}(|\mathcal{E}|FC)O(∣E∣FC),因为A~X\tilde{A}XA~X可以有效地变为稀疏矩阵与密集矩阵的乘积。

3 半监督节点分类

引入了一个简单而灵活的模型f(X,A)f(X, A)f(X,A)在图上来进行有效的信息传播,我们可以回到半监督节点分类的问题。正如简介中概述的那样,我们可以通过在数据XXX和底层图结构的邻接矩阵AAA上调节我们的模型f(X,A)f(X, A)f(X,A),来放宽通常在基于图的半监督学习中所做的某些假设。我们希望此设置在邻接矩阵包含数据X中不存在的信息的情况下特别强大,例如引用网络中文档之间的引用链接或知识图中的关系。整体模型,即用于半监督学习的多层GCN,如图1所示。

图1:左图:用于半监督学习的多层图卷积网络(GCN)的示意图,输入通道C和输出特征图F 。图结构(边显示为黑线)在各层之间共享,标签由YiY_iYi​表示。右图:t-SNE可视化在Cora数据集上训练的两层GCN的隐藏层激活使用了5%的标签。颜色表示文件类别。

3.1 实例

在下文中,我们考虑具有对称邻接矩阵AAA(二进制或加权)的图的两层GCN,用于半监督节点分类。我们首先在预处理步骤中计算A~=D~−12A~D~−12\tilde{A} = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}A~=D~−21​A~D~−21​。然后,我们的正向模型采用简单形式:

Z=f(X,A)=softmax⁡(A^ReLU⁡(A^XW(0))W(1))(9)Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{ReLU}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right) \tag{9} Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))(9)

这里,W(0)∈RC×HW^{(0)} \in \mathbf{R}^{C\times H}W(0)∈RC×H是具有H特征图的隐藏层的输入到隐藏权重矩阵。W(1)∈RH×FW^{(1)} \in \mathbf{R}^{H\times F}W(1)∈RH×F是一个隐藏到输出的权重矩阵。 softmax激活函数,定义为softmax(xi)=1Zexp(xi)\text{softmax}(x_i) =\frac{1}{\mathcal{Z}}\text{exp}(x_i)softmax(xi​)=Z1​exp(xi​),其中Z=∑iexp(xi)\mathcal{Z}=\sum_i \text{exp}(x_i)Z=∑i​exp(xi​),是按行应用的。对于半监督的多多类分类,我们评估所有标记示例的交叉熵误差:

L=−∑l∈YL∑f=1FYlfln⁡Zlf\mathcal{L}=-\sum_{l \in \mathcal{Y}_{L}} \sum_{f=1}^{F} Y_{l f} \ln Z_{l f} L=−l∈YL​∑​f=1∑F​Ylf​lnZlf​

其中YL\mathcal{Y}_{L}YL​是具有标签的节点索引集。

使用梯度下降训练神经网络权重W(0)W(0)W(0)和W(1)W(1)W(1)。在这项工作中,对于每次训练迭代,我们都使用完整的数据集进行批量梯度下降,只要数据集适合内存,这是一个可行的选择。使用AAA的稀疏表示,内存需求为O(∣E∣)\mathcal{O}(| \mathcal{E}|)O(∣E∣),即边数为线性。训练过程中的随机性是通过dropout引入的。我们将内存有效扩展与小批量随机梯度下降留给以后的工作。

3.2 实施

在实践中,我们利用TensorFlow通过稀疏稠密矩阵乘法实现等式9的高效GPU实现。公式9的计算复杂度为O(∣E∣CHF)\mathcal{O}(|\mathcal{E}|CHF)O(∣E∣CHF),即图的边数为线性。

4 相关工作

我们的模型从基于图的半监督学习领域和最近关于操作于图的神经网络的工作中得到了启发。接下来,我们将简要介绍这两个领域的相关工作。

4.1 基于图的半监督学习

近年来,人们提出了大量基于图表示的半监督学习方法,其中大多数方法分为两大类:使用某种形式的显式图拉普拉斯正则化的方法和基于图嵌入的方法。图拉普拉斯正则化的杰出示例包括标签传播,流形正则化和深半监督嵌入。

最近,人们的注意力转移到使用skip-gram模型启发的方法学习图形嵌入的模型上。DeepWalk通过对节点本地邻域的预测来学习嵌入,该预测是从图上的随机游走中取样的。LINE和node2vec扩展了DeepWalk,并提供了更为复杂的随机行走或广度优先搜索方案。但是,对于所有这些方法,都需要一个包括随机游走生成和半监督训练的多步骤传递,其中每个步骤都必须分别进行优化。Planetoid等人通过在学习嵌入的过程中注入标签信息来缓解这种情况。

4.2 图的神经网络

对图进行操作的神经网络以前在Gori等人中介绍过;Scarselli等人研究循环神经网络的一种形式。他们的框架要求重复使用收缩图作为传播函数,直到节点表示达到稳定的固定点为止。后来,Li等人减轻了这种限制,通过将现代循环神经网络训练实践引入原始图神经网络框架。Duvenaudet等人在图上引入了类似于卷积的传播规则,并进行了图级分类。他们的方法需要学习特定于节点度的权重矩阵,该权重矩阵无法缩放为具有宽节点度分布的大型图。相反,我们的模型每层使用单个权重矩阵,并通过对邻接矩阵进行适当的归一化处理不同的节点度(请参阅第3.1节)。

Atwood&Towsley最近引入了一种基于图的神经网络节点分类的相关方法。他们报告了O(N2)\mathcal{O}(N^2)O(N2)复杂度,限制了可能的应用范围。在另一个不同但相关的模型中,Niepert等人将局部图转换为序列,这些序列被送入常规的一维卷积神经网络中,这需要在预处理步骤中定义节点顺序。

我们的方法基于频谱图卷积神经网络,该网络在Bruna等人中引入,随后由Defferard 等人使用快速局部卷积进行扩展。与这些工作相比,我们在这里考虑的任务是更大规模的网络中的直推式节点分类。我们表明,在这种情况下,可以对Bruna等人和Defferard等人的原始框架进行一些简化(见第2.2节),以提高大规模网络中的可伸缩性和分类性能。

5 实验

我们在许多实验中测试了我们的模型:在引用网络中进行半监督文档分类,在从知识图谱中提取的二分图中进行半监督实体分类,对各种图传播模型进行评估以及对随机模型进行运行时间分析图。

5.1 数据集

我们密切关注Yang等人的实验设置。数据集统计数据汇总在表1中。在引文网络数据集Citeseer、Cora和Pubmed中,节点是文档,边是引文链接。标记率表示用于训练的标记节点数除以每个数据集中的节点总数。NELL是一个从具有55864个关系节点和9891个实体节点的知识图中提取的二分图数据集。

表1:数据集统计数据

引文网络 我们考虑了三个引文网络数据集:Citeseer,Cora和Pubmed。数据集包含每个文档的稀疏词袋特征向量以及文档之间的引文链接列表。我们将引文链接视为(无向)边,并构造一个二进制的对称邻接矩阵AAA。每个文档都有一个类标签。对于训练,我们每个类只使用20个标签,但是使用所有的特征向量。

NELL NELL是Carlson等人从知识图中提取的数据集。知识图是一组与有向标记边(关系)相连的实体。我们遵循Yang等人中所述的预处理方案。我们为每个实体对(e1,r,e2)(e_1, r, e_2)(e1​,r,e2​)分配单独的关系节点r1r_1r1​和r2r_2r2​,分别为(e1,r1)(e_1, r_1)(e1​,r1​)和(e2,r2)(e_2, r_2)(e2​,r2​)。实体节点由稀疏特征向量描述。通过为每个关系节点分配唯一的one-hot表示,我们扩展了NELL中的特征数量,有效地产生了一个61,278维的稀疏特征向量节点。这里的半监督任务考虑的是训练集中只有一个标记为示例的类的极端情况。如果在节点iii和jjj之间存在一个或多个边,则通过设置Aij=1A_{ij} = 1Aij​=1来从该图构造一个二元对称邻接矩阵。

随机图 我们模拟各种大小的随机图数据集进行实验,以测量每个时期的训练时间。对于具有NNN个节点的数据集,我们创建了一个随机图,该图随机地均匀分配2N2N2N条边。我们将单位矩阵INI_NIN​作为特征矩阵XXX的输入,因此隐式地采用无特征的方法,其中仅告知模型有关每个节点的身份的信息,该信息由唯一的one-hot向量指定。我们为每个节点添加虚拟标签Yi=1Y_i = 1Yi​=1。

5.2 实验设置

除非另有说明,否则我们将按照第3.1节中的描述训练两层GCN,并在包含1,000个带标签示例的测试集上评估预测准确度。我们在附录B中使用多达10层的更深层模型提供了额外的实验。我们选择了与Yang等人相同的数据集分割,额外的验证集包括500个标记的超参数优化示例(所有层的dropout率、第一个GCN层的L2正则化因子和隐藏单元数)。我们不使用验证集标签进行训练。

对于引文网络数据集,我们仅在Cora上优化超参数,并对Citeseer和Pubmed使用相同的参数集。我们使用Adam等人训练所有模型的最大模型为200轮(训练迭代),学习率为0.01,并且以10的窗口大小提前停止,即如果连续10轮的验证损失没有减少,我们就停止训练。我们使用Glorot&Bengio中描述的初始化来初始化权重,并根据(行)标准化输入特征向量。在随机图数据集上,我们使用了32个单位的隐藏层大小,并且省略了正则化(即既不进行dropout也不进行L2正则化)。

5.3 基准线

我们比较了与Yang等人相同的基准方法,即标签传播(LP),半监督嵌入(SemiEmb),流形规则化(ManiReg)和基于skip-gram的图嵌入(DeepWalk)。我们忽略了直推式支持向量机(TSVM),因为它无法在我们的数据集中扩展到大量类。

我们进一步将Lu&Getoor提出的迭代分类算法(ICA)与两个逻辑回归分类器进行比较,一个用于单独的局部节点特征,一个用于局部特征和聚合算子的关系分类,如Sen等人所述。 我们首先使用所有标记的训练集节点训练局部分类器,然后用它来引导未标记节点的类标签进行关系分类器训练。我们在所有未标记节点上运行迭代分类(关系分类器),并对所有未标记节点(使用局部分类器引导)执行10次迭代。根据每个数据集的验证集性能分别选择L2正则化参数和聚合算子。

最后,我们与Planetoid等人进行了比较,在Planetoid中,我们总是选择他们表现最好的模型变体(直推与归纳)作为基线。

6 结果

6.1 半监督节点分类

结果汇总在表2中。报告的数字以百分比表示分类准确率。对于ICA,我们报告了100次随机节点排序的平均精确度。所有其他基准方法的结果均来自Planetoid论文。Planetoid *表示论文中提出的变体中各个数据集的最佳模型。


对于我们的方法(包括验证误差的评估)和Planetoid,我们进一步报告了以秒为单位的挂钟训练时间,直到收敛(括号内)。对于后者,我们使用了由作者kimiyoung提供的实现,并在与GCN模型相同的硬件(带有GPU)上进行了训练。我们在与Yang等人相同的数据集分割上训练和测试了我们的模型,并报告了随机权重初始化的100次运行的平均精度。我们对Citeseer、Cora和Pubmed使用了以下超参数集:0.5(dropout率)、5⋅10−45 \cdot 10^{−4}5⋅10−4(L2正则化)和16(隐藏单位数);对NELL:0.1(dropout率)、1⋅10−51\cdot 10^{−5}1⋅10−5(L2正则化)和64(隐藏单位数)。

此外,我们还报告了我们的模型在10个随机抽取的数据集上的性能,这些数据集的大小与Yang等人相同,用GCN (rand. splits)表示。在这里,我们报告了测试集上预测精度的平均值和标准差,以百分比来划分。

6.2 传播模型评估

我们在引文网络数据集上比较了我们提出的每层传播模型的不同变体。我们遵循上一部分中描述的实验设置。结果总结在表3中。原始GCN模型的传播模型用重新归一化技巧(粗体)表示。在所有其他情况下,两个神经网络层的传播模型都用指定的传播模型代替。报告的数字表示随机权重矩阵初始化的100次重复运行的平均分类精度。在多变量的情况下,我们对第一层的所有权重矩阵进行L2正则化。

6.3 每轮训练时间

在这里,我们报告了模拟随机图上100轮的每轮平均训练时间(前向传递、交叉熵计算、后向传递)的结果,以秒时钟时间测量。有关这些实验中使用的随机图数据集的详细描述,请参见第5.1节。我们在TensorFlow上比较GPU和仅CPU实现上的结果。图2总结了结果。

图2:随机图的每个轮的所需时间。(*)表示内存不足错误。

7 讨论

7.1 半监督模型

在此处演示的实验中,我们的半监督节点分类方法的性能明显优于最近的相关方法。基于图拉普拉斯正则化的方法很可能受到限制,因为它们认为边只编码节点的相似性。基于另一方面的skip-gram方法由于其基于多步骤传递的特点而受到限制,而这种方法难以优化。我们提出的模型可以克服这两个局限性,同时在效率(以挂钟时间衡量)方面仍优于相关方法。与ICA等只聚合标签信息的方法相比,在每一层中从相邻节点传播特征信息提高了分类性能。

我们进一步证明了所提出的重归一化传播模型(式8)与naive1阶模型(式6)或使用Chebyshev多项式的高阶图卷积模型(式5)相比,在一些数据集上既提供了更高的效率(更少的参数和操作,如乘法或加法),又提供了更好的预测性能。

7.2 局限性和未来工作

在这里,我们描述了当前模型的一些局限性,并概述了在未来的工作中如何克服这些局限性。

内存需求 在当前使用全批梯度下降的设置中,内存需求随着数据集的大小线性增长。我们已经表明,对于不适合GPU内存的大型图形,在CPU上进行训练仍然是可行的选择。小批量随机梯度下降可以缓解此问题。然而,生成小批量的过程应该考虑GCN模型中的层数,因为具有KKK层的GCN的KKK阶邻域必须存储在内存中才能进行精确的过程。对于非常大且密集连接的图数据集,可能需要进一步近似。

有向边和边特征 我们的框架目前不支持边特征,仅限于无向图(加权或未加权)。但是,在NELL上的结果表明,可以通过将原始有向图表示为无向二分图,并用其他节点表示原始图中的边来处理有向边和边特征(有关详细信息,请参见第5.1节)

限制性假设 通过第2节中引入的近似,我们隐含地假设了局部性(取决于具有K层的GCN的K阶邻域),并且自连接与相邻节点的边的相等性很重要。但是,对于某些数据集,A~\tilde{A}A~的定义中引入权衡参数λ\lambdaλ可能会有好处:

A~=A+λIN.(11)\tilde{A}=A+\lambda I_N. \tag{11} A~=A+λIN​.(11)

在典型的半监督设置中,该参数现在起着与监督损失和非监督损失之间的权衡参数类似的作用(见等式1)。然而,这里可以通过梯度下降来学习。

8 结论

本文介绍了一种新的图结构半监督分类方法数据。我们的GCN模型采用了一种基于图上频谱卷积一阶近似的有效分层传播规则。通过对多个网络数据集的实验表明,该模型能够对半监督分类有用的图结构和节点特征进行编码。在这种情况下,我们的模型以显著的优势优于最近提出的几种方法,同时计算效率也很高。

附录A:关于WL-1算法

理想情况下,用于图结构化数据的神经网络模型应该能够学习图中节点的表示形式,同时考虑图的结构和节点的特征描述。一种经过深入研究的框架,用于给定图形的节点标签和(可选)离散初始节点标签的唯一分配:由1维Weisfeiler Lehman(WL-1)算法提供:

这里,hi(t)h^{(t)}_ihi(t)​表示节点viv_ivi​(在迭代ttt)的着色(标签分配),Ni\mathcal{N}_iNi​是其相邻节点索引的集合(与图形是否包含每个节点的自连接无关)。hash(·) 是一个哈希函数。

我们可以用具有可训练参数的类似于神经网络层的微分函数来替换算法1中的哈希函数,如下所示:

hi(l+1)=σ(∑j∈Ni1cijhj(l)W(l))(12)h_{i}^{(l+1)}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \frac{1}{c_{i j}} h_{j}^{(l)} W^{(l)}\right) \tag{12} hi(l+1)​=σ⎝⎛​j∈Ni​∑​cij​1​hj(l)​W(l)⎠⎞​(12)

其中cijc_{ij}cij​是为边(vi,vj)(v_i, v_j)(vi​,vj​)适当选择的归一化常数。此外,我们可以将hi(l)h^{(l)}_ihi(l)​作为神经网络第lll层中节点iii激活的向量。W(l)W^{(l)}W(l)为特定层的权重矩阵,σ(⋅)\sigma(\cdot)σ(⋅)表示可微分、非线性激活函数。

通过选择cij=didjc_{ij}=\sqrt{d_id_j}cij​=di​dj​​,其中di=∣Ni∣d_i=| \mathcal{N}_i |di​=∣Ni​∣表示节点viv_ivi​的度,我们以向量形式恢复了图卷积网络(GCN)模型的传播规则(见公式2)。

粗略地说,这使得我们可以将GCN模型解释为图上一维Weisfeiler-Lehman算法的可微化和参数化推广。

A.1 随机权重节点嵌入

通过与Weisfeiler-Lehman算法的类比,我们可以理解,即使是具有随机权重的未经训练的GCN模型也可以作为图中节点的强大特征抽取器。例如,考虑以下3层GCN模型:

Z=tanh⁡(A^tanh⁡(A^tanh⁡(A^XW(0))W(1))W(2))(13)Z=\tanh \left(\hat{A} \tanh \left(\hat{A} \tanh \left(\hat{A} X W^{(0)}\right) W^{(1)}\right) W^{(2)}\right) \tag{13} Z=tanh(A^tanh(A^tanh(A^XW(0))W(1))W(2))(13)

权重矩阵W(l)W^{(l)}W(l)使用Glorot&Bengio中描述的初始化随机初始化。A~\tilde{A}A~,XXX和ZZZ的定义见3.1节。

我们将此模型应用于Zachary的Karate club network。此图包含34个节点,由154条(无向和未加权)边连接。每个节点都由四个类中的一个进行标记,这些类是通过基于模块化的聚类获得的。见图3a。


图3:左图:Zachary的Karate club network,颜色表示通过基于模块化的聚类获得的社区。右图:从未经训练的3层GCN模型(等式13)获得的嵌入,随机权重应用于Karate club network。

A.2 半监督节点嵌入

在这个简单的应用于Karate club network的GCN例子中,观察嵌入在半监督分类任务的训练过程中的反应是很有趣的。这种可视化(参见图4)提供了关于GCN模型如何利用图结构(以及从后面层的图结构中提取的特性)来学习对分类任务有用的嵌入的见解。

我们考虑以下半监督学习设置:我们在模型上添加一个softmax层(等式13),并且每个类仅使用一个标记示例(即,总共4个标记节点)进行训练。我们使用Adam等人的方法对300个训练迭代进行训练,交叉熵损失的学习率为0.01。

图4显示了节点嵌入在许多训练迭代中的演变。该模型在最小监督和图结构的基础上实现了社区的线性分离。

图4:经过多次半监督训练迭代后,从GCN模型获得的Karate club network节点嵌入的演变。颜色表示类别。训练期间提供标签的节点(每个类一个)将突出显示(灰色轮廓)。节点之间的灰色链接表示图的边。

附录B 模型深度实验

在这些实验中,我们研究了模型深度(层数)对分类性能的影响。我们报告了使用所有标签对Cora、Citeseer和PubMed数据集进行的5倍交叉验证实验的结果。除了标准GCN模型(公式2)外,我们还报告了一个模型变量的结果,在该模型变量中,我们使用隐藏层之间的残差连接,通过使模型能够继承前一层输入的信息来促进更深层次模型的训练:

H(l+1)=σ(D~−12A~D~−12H(l)W(l))+H(l)(14)H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right)+H^{(l)} \tag{14} H(l+1)=σ(D~−21​A~D~−21​H(l)W(l))+H(l)(14)

在每个交叉验证阶段,我们使用Adam优化器进行400轮的训练(不提前停止),学习率为0.01。其他超参数的选择如下:0.5(第一层和最后一层的dropout)、5⋅10−45\cdot 10^{−4}5⋅10−4(L2正则化,第一层)、16(每个隐藏层的单位数)和0.01(学习率)。结果如图5所示

图5:模型深度(层数)对分类性能的影响。标记表示5倍交叉验证的平均分类准确率(训练与测试)。阴影区域表示标准误差。我们展示了标准GCN模型(虚线)和在隐藏层(实线)之间添加残差连接的模型的结果。

对于这里考虑的数据集,最好的结果是用2层或3层模型。我们观察到,对于深度超过7层的模型,不使用残差连接的训练可能会变得困难,因为每个节点的有效上下文大小随每个附加层的KKK阶邻域大小(对于具有KKK层的模型)而增加。此外,过拟合可能成为一个问题,因为参数的数量随着模型深度的增加而增加。

【图卷积网络】Semi-Supervised Classification with Graph Convolutional Networks相关推荐

  1. GCN - Semi-Supervised Classification with Graph Convolutional Networks 用图卷积进行半监督节点分类 ICLR 2017

    目录 文章目录 1 为什么GCN是谱图卷积的一阶局部近似?- GCN的推导 谱图卷积 Layer-wise Linear Model(逐层线性模型) 简化:K=1(2个参数的模型) 简化:1个参数的模 ...

  2. paper reading:[renormalization]Semi-supervised Classification with Graph Convolutional Networks

    paper reading:[Renormalization Trick] Semi-supervised classification with graph convolutional networ ...

  3. 论文笔记:Semi-Supervised Classification with Graph Convolutional Networks

    Semi-Supervised Classification with Graph Convolutional Networks 1.四个问题 要解决什么问题? 半监督任务.给定一个图,其中一部节点已 ...

  4. [GCN] 代码解析 of GitHub:Semi-supervised classification with graph convolutional networks

    本文解析的代码是论文Semi-Supervised Classification with Graph Convolutional Networks作者提供的实现代码. 原GitHub:Graph C ...

  5. 【论文翻译】GCN-Semi-Supervised Classification with Graph Convolutional Networks(ICLR)

    学习总结 传统深度学习模型如 LSTM 和 CNN在欧式空间中表现不俗,却无法直接应用在非欧式数据上.因此大佬们通过引入图论中抽象意义上的"图"来表示非欧式空间中的结构化数据,并通 ...

  6. Semi-Supervised Classification with Graph Convolutional Networks

    Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional netw ...

  7. SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 论文/GCN学习笔记

    1 前置知识:卷积与CNN 该内容在论文中并没有涉及,但理解卷积和CNN对于GCN的理解有帮助,因为GCN是将CNN推广到新的数据结构:graph上面. 1.1与1.2的内容均来自视频:https:/ ...

  8. 全卷积网络的理解——理解论文Fully Convolutional Networks for Semantic Segmentation

    目录 论文详解 1.和VGG网络的对比 2.那么fcn是什么? 3.论文改进的模型 3.1怎样进行上采样的问题 3.2从哪里开始上采样的问题--跳跃连接的问题 3.3整体设计思想 4.1实验结果 4. ...

  9. [GCN+FocalLoss] 从数据角度分析实验 of Semi-supervised classification with graph convolutional networks

    文章目录 Cora数据集信息 类别信息 样本信息 图的性质 类别分布 论文的实验设置 超参数 数据集划分 模型架构 不同损失函数的训练结果 nll_loss CE loss focal loss:γ\ ...

最新文章

  1. 文件逆序改为正序脚本
  2. 从数据类型 nvarchar 转换为 numeric 时出错_JS入门篇(三):javascript的数据类型详解...
  3. 数据的降维之特征选择及主成分分析
  4. html加了文档声明之后页面错乱,为登陆页面扩展和配置设计导入程序
  5. python json传参数可以传对象吗_廖雪峰的python系列教程(52)——IO编程之序列化...
  6. libsvm-3.1-[FarutoUltimate3.1Mcode]——辅助函数简介(修改)
  7. prune研究记录(二)
  8. 【渝粤题库】 陕西师范大学 210006幼儿园课程作业(高起专)
  9. 自学mysql还是sql好_如何自学SQL?
  10. Excel使用技巧随笔
  11. 磅、号、ppi、dpi、字号和分辨率关系
  12. Windows 命令提示符
  13. 【HD Tune变红/警告】硬盘 SMART 检测参数详解
  14. 有T2 表中的数据,求出NAME中每组累加 / 每组总数的比例大于0.6 的id 和name
  15. Excel必知必会——count,counta,countif,countifs
  16. 易语言程序c盘路径,易语言取文件路径的操作教程
  17. go语言快速入门:流程控制(7)
  18. 【转载】定位系统中的多径效应
  19. Dijkstra(迪杰斯特拉)算法求单源最短路径问题
  20. 对安卓手机上的APP做monkey压力测试

热门文章

  1. vivoY73s和华为畅享20Plus哪个好?
  2. 校招黑名单:好家伙,GitHub 上这个仓库火了!
  3. 2020-10-13 一阶范数;二阶范数
  4. 国家(上海)新型互联网交换中心正式启动运营,有孚网络助力网间互联高效互通
  5. ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具
  6. android设置padding单位,android – 什么是paddingStart和paddingEnd?
  7. 程序员给孩子买这三种保险就是花冤枉钱!
  8. 共享服务器文件归档,如何实现共享文件访问记录方法、共享文件管理和共享文件操作日志记录.docx...
  9. php格式刷,格式刷的功能是什么
  10. 不同的负载均衡器介绍(ALB和NLB)