分享

【GCN】论文笔记:SEMI

 雪凝星月_ 2019-11-02

SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS

SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS

基于图卷积网络的半监督分类

摘要

  • 通过谱图卷积(spectral graph convolutions) 的局部一阶近似,来确定卷积网络结构。

  • 该模型在图的边数上线性缩放

  • 该模型学习隐藏层表示,这些表示既编码局部图结构、也编码节点特征

  • 通过图结构数据中部分有标签的节点数据对卷积神经网络结构模型训练,使网络模型对其余无标签的数据进行进一步分类

1 INTRODUCTION

使用神经网络模型 f(X,A)f(X,A)f(X,A) 对所有带标签节点进行基于监督损失的训练。

  • XXX为输入数据

  • AAA为图的邻接矩阵

在图的邻接矩阵上调整 f()f(\cdot)f(⋅) 将允许模型从监督损失 L0L_0L0中分配梯度信息,并使其能够学习所有节点(带标签或不带标签)的表示。

2 Graph中的快速卷积

具有以下分层传播规则的多层图形卷积网络(GCN):
H(l+1)=σ(D˜12A˜D˜12H(l)W(l))(1)H^{(l+1)}=\sigma(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}) \tag{1}H(l+1)=σ(D~21A~D~21H(l)W(l))(1)
其中:

  1. A˜=A+IN\tilde{A}=A+I_NA~=A+IN为无向图G的带自环邻接矩阵

  2. INI_NIN为单位矩阵

  3. D˜ii=jA˜ij\tilde{D}_{ii}=\sum_{j}\tilde{A}_{ij}D~ii=jA~ij

  4. W(l)W^{(l)}W(l)为layer-specific可训练权重向量

  5. σ()\sigma(·)σ(⋅)为激活函数,例:ReLU

  6. H(l)RN×DH^{(l)}\in\mathbb{R}^{N\times D}H(l)RN×D为第lthl^{th}lth层的激活矩阵;H(0)=XH^{(0)}=XH(0)=X

2.1 谱图卷积

推荐阅读:【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积

在上面这篇文章中,我们推导出基于图的卷积公式如下:
fhG=Uhˆ(λ1)hˆ(λn)UTf(f*h)_G=U\begin{pmatrix}\hat{h}(\lambda_1) & & \\& \ddots & \\& & \hat{h}(\lambda_n) \end{pmatrix}U^Tf(fh)G=Uh^1)h^n)UTf

  • fff为待卷积函数(比如图的特征向量)

  • hhh为按需设计的卷积核,hˆ\hat{h}h^为卷积核的傅里叶变换

  • UUU为【图的拉普拉斯矩阵】的【特征向量矩阵】

  • λ\lambdaλ为图的拉普拉斯矩阵的特征值

    之后,我们又提到了两种卷积核的设计:
    第一代GCN:卷积核:diag(hˆ(λl))diag(θl)diag(\hat{h}(\lambda_l)): diag(\theta_l)diag(h^l)):diag(θl)
    推导出的公式如下:
    youtput=σUθ1θnUTxy_{output}=\sigma\begin{pmatrix}U\begin{pmatrix}\theta_1 & & \\& \ddots & \\& & \theta_n\end{pmatrix} U^Tx\end{pmatrix}youtput=σUθ1θnUTx
    第一代GCN的缺点为计算量大,因此提出第二代GCN如下
    第二代GCN:卷积核:hˆ(λl)Kj=0αjλjl\hat{h}(\lambda_l):\sum_{j=0}^K \alpha_j\lambda_l^jh^l):j=0Kαjλlj
    (经过矩阵变换后的)公式如下:
    youtput=σ(Kj=0αjLjx)y_{output}=\sigma\left(\sum_{j=0}^{K} \alpha_j L^j x\right)youtput=σ(j=0KαjLjx)

在这篇论文里,对上述引用中提到的这两种卷积核有着更为详细的解释。

第一种卷积

回到论文中,作者在2.1节的开头首先提出:考虑如下图卷积公式:
gθx=UgθUTx(2)g_{\theta}*x=Ug_{\theta}U^Tx \tag{2}gθx=UgθUTx(2)

  • xxx为图节点的特征向量

  • gθ=diag(θ)g_{\theta}=diag(\theta)gθ=diag(θ)为卷积核,其中θ\thetaθ为参数

  • UUU为图的拉普拉斯矩阵LLL的特征向量矩阵

    • 其中拉普拉斯矩阵L=IND12AD12=UΛUTL=I_N-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}=U \Lambda U^TL=IND21AD21=UΛUT

可以看到,公式(2)就是上面引用中第一代GCN所使用的卷积公式,作者在论文中也提到,这个公式的缺点在于计算太过复杂,卷积核的选取不合适,需要改进。

改进:第二种卷积

作者接下来说,有人提出一种卷积核设计方法,即gθ(Λ)g_{\theta}(\Lambda)gθ(Λ)可以用切比雪夫Chebyshev多项式Tk(x)T_k(x)Tk(x)到KthK^{th}Kth的截断展开来近似。

切比雪夫多项式:
Tk(x)=2xTk1(x)Tk2(x)T0(x)=1T1(x)=x(3)\begin{aligned}&T_{k}(x)=2xT_{k-1}(x)-T_{k-2}(x) \tag{3}\\&T_{0}(x)=1\\&T_{1}(x)=x\end{aligned}Tk(x)=2xTk−1(x)Tk−2(x)T0(x)=1T1(x)=x(3)

新的卷积核:
gθ(Λ)Kk=0θkTk(Λ˜)(4)g_{\theta‘}(\Lambda)\approx\sum_{k=0}^{K} \theta'_k T_k(\tilde{\Lambda}) \tag{4}gθ(Λ)k=0KθkTk(Λ~)(4)

  • Λ˜=2Λ/λmaxIN\tilde{\Lambda}=2\Lambda/\lambda_{max}-I_NΛ~=2Λ/λmaxIN

    • λmax\lambda_{max}λmaxLLL的最大特征值

  • θRK\theta'\in R_KθRK是切比雪夫系数的矢量

基于该卷积核,得到的卷积公式如下:
gθx=Kk=0θkTk(L˜)x(5)g_{\theta‘}*x=\sum_{k=0}^{K} \theta'_k T_k(\tilde{L})x \tag{5}gθx=k=0KθkTk(L~)x(5)

  • L˜=2L/λmaxIN\tilde{L}=2L/\lambda_{max}-I_NL~=2L/λmaxIN

  • 此公式为拉普拉斯算子中的KthK^{th}Kth-阶多项式,即它仅取决于离中央节点最大K步的节点。

可以看到,公式(4)与上面引文中的第二代GCN用到的卷积公式非常相似,最终都将参数简化到了KKK个,并不再需要做特征分解,直接用拉普拉斯矩阵LLL进行变换,计算复杂性大大降低。

但本文使用了切比雪夫多项式Tk(x)T_k(x)Tk(x),这是与上面引文中提到的第二代GCN中的卷积公式的不同点。

以上,都是前人的工作,都可以在本节开头的推荐阅读中找到详细推导和讲解。接下来是作者的改进部分。

2.2 线性模型

K=1:2个参数的模型

在2.1节中,我们定义了基于图的卷积公式(5)如下:
gθx=Kk=0θkTk(L˜)x(5)g_{\theta'}*x=\sum_{k=0}^{K} \theta'_k T_k(\tilde{L})x \tag{5}gθx=k=0KθkTk(L~)x(5)

  • L˜=2L/λmaxIN\tilde{L}=2L/\lambda_{max}-I_NL~=2L/λmaxIN

现在我们可以通过堆叠多个形式为公式(5)的卷积层来建立一个GCN模型。

首先,我们将分层卷积操作限制为K=1K=1K=1,即关于LLL是线性的,因此在拉普拉斯谱上有线性函数。

在GCN的这个线性公式中,我们进一步近似λmax2\lambda_{max}\approx2λmax2,我们可以预测到GCN的参数能够在训练中适应这一变化,此时公式(5)将简化为下式:
gθxθ0x+θ1(LIN)x=θ0xθ1D12AD12x(6)\begin{aligned}g_{\theta'}*x&\approx\theta'_{0}x+ \theta'_{1}(L-I_N)x\\&=\theta'_{0}x- \theta'_{1}D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x \tag{6}\end{aligned}gθxθ0x+θ1(LIN)x=θ0xθ1D21AD21x(6)

  • 此公式具有两个自由参数:θ0\theta'_{0}θ0θ1\theta'_{1}θ1,滤波器参数将被整个图共享

  • 连续应用这种形式的滤波器,可以有效的卷积节点的k(th)k^(th)k(th)-阶邻域,其中kkk是模型中连续滤波操作或卷积层的数目。

简化:1个参数的模型

θ=θ0=θ1\theta=\theta'_{0}=-\theta'_{1}θ=θ0=θ1,将两个参数化为单参数θ\thetaθ,得到卷积公式如下:
gθxθ(IN+D12AD12)x(7)g_{\theta'}*x \approx \theta(I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x \tag{7}gθxθ(IN+D21AD21)x(7)

注意IN+D12AD12I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}IN+D21AD21拥有范围为[0,2][0,2][0,2]的特征值,这将会导致数值不稳定性和梯度爆炸/消失。因此我们介绍下面的归一化技巧
IN+D12AD12D˜12A˜D˜12I_N+D^{-\frac{1}{2}}AD^{-\frac{1}{2}} \to \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}IN+D21AD21D~21A~D~21

  • A˜=A+IN\tilde{A}=A+I_NA~=A+IN

  • Dii˜=jAij˜\tilde{D_{ii}}=\sum_{j}\tilde{A_{ij}}Dii~=jAij~

推广:特征映射公式

将该定义推广到具有CCC个输入通道(即每个节点的CCC维特征向量)的信号XRN×CX\in\mathbb{R^{N\times C}}XRN×C,和FFF个滤波器,则特征映射(feature maps)如下:
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~21A~D~21XΘ(8)

  • ΘRC×F\Theta\in\mathbb{R}^{C\times F}ΘRC×F是滤波器参数矩阵

  • ZRN×FZ\in\mathbb{R}^{N\times F}ZRN×F是卷积后的信号矩阵

3 半监督节点分类

我们已经有了模型f(X,A)f(X,A)f(X,A),可以在图上有效的传播信息,现在回到半监督节点分类问题上。

我们可以通过调整我们的模型f(X,A)f(X,A)f(X,A),来放松通常在半监督学习中所做的假设。希望模型可以在【邻接矩阵AAA中包含着(数据XXX没有表达出来的)信息】这种情况下更有用。

一个整体的多层半监督GCN模型如下图所示:

上图中,左(a)是一个GCN网络示意图,在输入层拥有CCC个输入,中间有若干隐藏层,在输出层有FFF个特征映射;图的结构(边用黑线表示)在层之间共享;标签用YiY_{i}Yi表示。
右(b)是一个两层GCN在Cora数据集上(使用了5%的标签)训练得到的隐藏层激活值的形象化表示,颜色表示文档类别。

3.1 例子

考虑一个用于半监督图节点分类问题的两层GCN,邻接矩阵为AAA(二进制/加权)。

预处理操作

在预处理操作中,计算Aˆ=D˜12A˜D˜12\hat{A}=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}A^=D~21A~D~21

这使得我们之前的模型更加简洁:
Z=f(X,A)=softmax(Aˆ ReLU(AˆXW(0))W(1))(9)Z=f(X,A)=softmax(\hat{A}\ ReLU(\hat{A}XW^{(0)})W^{(1)}) \tag{9}Z=f(X,A)=softmax(A^ ReLU(A^XW(0))W(1))(9)

  • W(0)RC×HW^{(0)}\in\mathbb{R}^{C\times H}W(0)RC×H输入层-到-隐藏层的权重矩阵,该隐藏层具有HHH个特征映射

  • W(1)RH×FW^{(1)}\in\mathbb{R}^{H\times F}W(1)RH×F隐藏层-到-输出层的权重矩阵

  • softmax激活函数:softmax(xi)=1iexp(xi)exp(xi)softmax(x_i)=\frac{1}{\sum_i exp(x_i)} exp(x_i)softmax(xi)=iexp(xi)1exp(xi),作用在每一行上

交叉熵误差

接下来,对于半监督多类别分类,我们评估所有标记标签的交叉熵误差
L=lYLFf=1YlflnZlf(10)\mathcal{L}=-\sum_{l\in\mathcal{Y}_L}\sum_{f=1}^{F}Y_{lf}lnZ_{lf}\tag{10}L=lYLf=1FYlflnZlf(10)

  • YL\mathcal{Y}_LYL为带标签的节点集

训练

网络中的权重W(0)W^{(0)}W(0)W(1)W^{(1)}W(1)通过梯度下降训练。

我们对每个【训练迭代】使用完整的数据集执行【批量梯度下降】,这是一个可行的选择,只要数据集适合内存。

对于AAA使用稀疏表示,即边数是线性的。

通过Dropout引入训练过程中的随机性。

我们将内存效率扩展与小批随机梯度下降留作以后的工作。

3.2 实现

利用TensorFlow,基于GPU的【稀疏-密集矩阵乘法】高效实现公式(9):
Z=f(X,A)=softmax(Aˆ ReLU(AˆXW(0))W(1))(9)Z=f(X,A)=softmax(\hat{A}\ ReLU(\hat{A}XW^{(0)})W^{(1)}) \tag{9}Z=f(X,A)=softmax(A^ ReLU(A^XW(0))W(1))(9)

5 实验

  • 引文网络:半监督文档分类

  • 从知识图中提取的二分图:半监督实体分类

5.1 数据集

在这里插入图片描述

5.2 实验参数

  • 使用3.1节中的两层GCN网络

  • prediction accuracy:1000张带标签测试集

  • 对比实验:十层网络

  • 使用500张带标签验证集:超参数的初始化

    • 所有层的dropout率

    • 第一层的L2正则化因子

    • 隐藏层单元的个数

1、引文网络数据集

  • 最大200迭代期

  • Adam算法

  • 学习率为0.01

  • 停止条件:验证集loss连续十个迭代期没有下降

  • 权重初始化方法:Xavier Glorot and Yoshua Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, volume 9, pp. 249–256, 2010.

  • (按行)对输入特征向量归一化

2、随机图数据集

  • 隐藏层32个单元

  • 省略dropout和L2正则化

6 结果

6.1 半监督节点分类

在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多