目录

  • 前言
  • 1. 简单图卷积
    • 1.1 GCN
    • 1.2 SGC
  • 2. 谱分析
    • 2.1 图卷积
    • 2.2 SGC与低通滤波器
  • 3. 实验
    • 3.1 引文/社交网络
    • 3.2 下游任务
  • 4. 总结

前言


题目: Simplifying Graph Convolutional Networks
会议: ICML 2019
论文地址:Simplifying Graph Convolutional Networks

GCN可以简单概括为三个步骤:邻居节点特征聚合、线性转换和非线性特征提取。本文证明了GCN能work的原因不在于非线性特征提取,而仅仅是因为对邻居节点特征进行了聚合。鉴于此,本文对GCN进行了简化,去掉了GCN中的非线性激活函数,将整个GCN简化为对预处理特征的直接多类逻辑回归,这种简化大大加速了训练过程,同时保持了不错的性能。

1. 简单图卷积

这里首先回忆一下Kipf提出的GCN。

1.1 GCN

在GCN中,初始的节点表示向量就为节点特征向量,即:
H(0)=XH^{(0)}=XH(0)=X
在单个图卷积层中,节点状态的更新分为三个步骤:

  1. Feature propagation,特征传播。具体来讲,就是将目标节点的特征向量和其邻居节点的特征向量进行平均:

    这里实际上是加权平均,可以参考PyG中对GCN的定义:

    即权重为两个节点度开根号的乘积分之一,由于第一张图中的公式没有对图中所有节点添加自环,所以节点的度需要加上1。

假设将图的邻接矩阵进行归一化:

那么上述特征传播过程可以很容易地被写成一个简单矩阵操作:

直观地说,特征传播过程通过将邻居节点的特征平均来对目标节点的表示向量进行局部平滑,并且这种传播过程让通过链接相连的两个节点上最终有着类似的预测结果

  1. Feature transformation and nonlinear transition,特征变换和非线性变换。节点特征通过局部平滑后,需要对平滑后的节点特征表示进行线性变换,以便映射到我们需要的维度。同时,在线性变换后,通常我们需要将其再经过一个非线性的激活函数,如ReLU。具体来讲,上述过程可以描述为:

    上述12步骤对应单层GCN的操作,我们通过堆叠多层GCNConv来多次进行上述两个步骤。对于一个KKK层的GCN,最终可以得到H(k)H^{(k)}H(k)。

  2. Classifier,分类。对于节点分类,与标准MLP类似,我们使用softmax分类器进行预测:

    以上内容就是GCN的具体原理。

1.2 SGC

在传统MLP中,更深的层可以增加模型的表现力,因为它允许创建特征层次,例如在第一层特征的基础上构建第二层特征。在GCN中,卷积层有第二个重要的功能:

  • 通过对邻居节点的特征进行平均以得到新的特征。这意味着,在kkk层之后,每一个节点将从它的所有kkk阶邻居节点获取特征信息,这种效果类似于卷积神经网络,GCN深度增加可以增加内部特征的接受域。尽管卷积可以从增加深度中获益,但通常我们很难通过堆叠MLP来获得模型性能的提升

因此,本文作者大胆假设,GCN中的非线性操作不是至关重要的,GCN的性能主要由局部邻居的特征平均来决定,也就是特征传播过程来决定

因此,作者将GCN中的非线性操作去掉,只保留最终的softmax分类函数,以得到简化后的GCN。值得注意的是,简化后的GCN是完全线性的,如下所示:

通过与传统的GCN比较:


我们发现,简化后的GCN不再有非线性的激活函数ReLUReLUReLU。

将上述简化后的GCN的表达式进行简化就得到了SGC:

观察上式可知,SGC由一个固定的特征提取/平滑部分Xˉ=SKX\bar{X}=S^{K}XXˉ=SKX和一个线性逻辑回归分类器Y^=softmax(XˉΘ)\hat{Y}=\mathcal{softmax}(\bar{X}\Theta)Y^=softmax(XˉΘ)组成。由于Xˉ\bar{X}Xˉ的计算是固定的,也就是不需要权重,因此特征提取/平滑部分其本质上相当于一个特征预处理步骤,模型的整个训练可以简化为对预处理特征Xˉ\bar{X}Xˉ的直接多类逻辑回归。

GCN和SGC可以概括如下:

2. 谱分析

这一节从图卷积的角度来研究SGC,并证明了SGC在图谱域上对应一个固定的滤波器。此外,作者表明,在原始图中添加自环可以有效地缩小底层图谱,在这个缩放的谱域上,SGC充当了一个低通滤波器,在图上产生平滑的特征。

2.1 图卷积

定义图拉普拉斯矩阵:
Δ=D−A\Delta=D-AΔ=D−A
其中DDD为度矩阵,AAA为邻接矩阵。

对称归一化的拉普拉斯矩阵:
Δsym=D−12ΔD−12\Delta_{sym}=D^{-\frac{1}{2}}\Delta D^{-\frac{1}{2}}Δsym​=D−21​ΔD−21​

拉普拉斯矩阵的特征分解:
Δ=UΛUT\Delta=U\Lambda U^TΔ=UΛUT
其中U∈Rn×nU \in R^{n \times n}U∈Rn×n为特征向量构成的矩阵,Λ\LambdaΛ为特征值构成的对角矩阵。拉普拉斯矩阵的特征分解允许我们在图域上定义傅立叶变换,其中特征向量表示傅立叶模,特征值表示图的频率。

设x∈Rnx \in R^nx∈Rn表示图顶点上的信号,我们定义xxx的傅里叶变换为:x^=UTx\hat{x}=U^Txx^=UTx,其对应的逆运算为:x=Ux^x=U\hat{x}x=Ux^。因此,信号与滤波器ggg之间的图卷积操作可以定义为:

这里G^=diag(g^1,...,g^n)\hat{G}=diag(\hat{g}_1,...,\hat{g}_n)G^=diag(g^​1​,...,g^​n​)为光谱滤波系数的对角阵。由于G^\hat{G}G^的确定与拉普拉斯矩阵的特征值有关,因此,我们可以认为G^\hat{G}G^是特征值的函数,即:G^=G^(Λ)\hat{G}=\hat{G}(\Lambda)G^=G^(Λ)。

一般地,图的卷积可以用拉普拉斯算子的kkk阶多项式来近似:

在这种情况下,滤波器系数对应于拉普拉斯特征值的多项式,即:
G^=∑θiΛiorg^(λj)=∑θiλji\hat{G}=\sum \theta_{i}\Lambda^{i} \ \ \ \ or \ \ \ \ \hat{g}(\lambda_j)=\sum \theta_i \lambda_{j}^{i}G^=∑θi​Λi    or    g^​(λj​)=∑θi​λji​

在Kipf提出的GCN中,采用系数θ0=2θ\theta_0=2\thetaθ0​=2θ和θ1=−θ\theta_1=-\thetaθ1​=−θ的对kkk阶多项式进行逼近(k=1k=1k=1),由此我们得到基本的GCN卷积运算操作:

GCN中用D~−12A~D~−12\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}D~−21​A~D~−21​来代替上式中的I+D−12AD−12I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}I+D−21​AD−21​,其中A~=A+I\tilde{A}=A+IA~=A+I,D~=D+I\tilde{D}=D+ID~=D+I。

最后,通过将卷积推广到ddd维通道输入中的多个滤波器上,并在每一层之间用非线性激活函数进行分层,就得到了如下所定义的GCN传播规则:

2.2 SGC与低通滤波器

GCN中导出的一阶切比雪夫滤波器对应于传播矩阵:
S1−order=I+D−12AD−12S_{1-order}=I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}}S1−order​=I+D−21​AD−21​
又由于对称归一化的拉普拉斯矩阵为:
Δsym=I−D−12AD−12\Delta_{sym}=I-D^{-\frac{1}{2}}A D^{-\frac{1}{2}}Δsym​=I−D−21​AD−21​
所以:
S1−order=2I−ΔsymS_{1-order}=2I-\Delta_{sym}S1−order​=2I−Δsym​
因此,传播矩阵的KKK次方S1−orderKS_{1-order}^KS1−orderK​意味着滤波系数g^i=g^(λi)=(2−λi)K\hat{g}_i=\hat{g}(\lambda_i)=(2-\lambda_i)^Kg^​i​=g^​(λi​)=(2−λi​)K,其中λi\lambda_iλi​表示Δsym\Delta_{sym}Δsym​的特征值。

下图说明了不同数量的传播步长(KKK)下与S1−orderS_{1-order}S1−order​相关的滤波操作:

可以观察到,S1−orderS_{1-order}S1−order​的高幂会导致滤波器系数爆炸,并在λi<1\lambda_i<1λi​<1频率处产生不理想的过放大信号。

为了解决一阶切比雪夫滤波器的潜在数值问题,Kipf和Welling(2017)在GCN中引入了renormalization trick:所有节点加入自环后,用归一化邻接矩阵替换S1−orderS_{1-order}S1−order​,归一化邻接矩阵表示如下:
S~adj=D~−12A~D~−12\tilde{S}_{adj}=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}S~adj​=D~−21​A~D~−21​

我们称S~adj\tilde{S}_{adj}S~adj​为增强归一化邻接矩阵,其中A~=A+I\tilde{A}=A+IA~=A+I,D~=D+I\tilde{D}=D+ID~=D+I。

相应地,我们有增强对称归一化拉普拉斯矩阵:
Δ~sym=I−D~−12A~D~−12\tilde{\Delta}_{sym}=I-\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}Δ~sym​=I−D~−21​A~D~−21​
因此,我们可以用与S~adj\tilde{S}_{adj}S~adj​相关联的光谱滤波器作为底层拉普拉斯特征值的多项式,即g^(λ~i)=(1−λ~i)K\hat{g}(\tilde{\lambda}_i)=(1-\tilde{\lambda}_i)^Kg^​(λ~i​)=(1−λ~i​)K,其中λ~i\tilde{\lambda}_iλ~i​是Δ~sym\tilde{\Delta}_{sym}Δ~sym​的特征值。

下面分析Δ~sym\tilde{\Delta}_{sym}Δ~sym​的频谱,并证明添加自环到图会收缩相应的归一化拉普拉斯算子的谱(特征值)。

定理1:令AAA是一个无向加权且没有孤立节点的简单图GGG的邻接矩阵,相应的度矩阵为DDD。让A~=A+γI\tilde{A}=A+\gamma IA~=A+γI,这里γ>0\gamma > 0γ>0,设λ1\lambda_1λ1​和λn\lambda_nλn​分别表示对称归一化拉普拉斯矩阵Δsym=I−D−12AD−12\Delta_{sym}=I-D^{-\frac{1}{2}}A D^{-\frac{1}{2}}Δsym​=I−D−21​AD−21​的最小和最大特征值,λ~1\tilde{\lambda}_1λ~1​和λ~n\tilde{\lambda}_nλ~n​是Δ~sym=I−D~−12A~D~−12\tilde{\Delta}_{sym}=I-\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}Δ~sym​=I−D~−21​A~D~−21​的最小和最大特征值。我们有:
0=λ1=λ~1<λ~n<λn0=\lambda_1=\tilde{\lambda}_1<\tilde{\lambda}_n<\lambda_n0=λ1​=λ~1​<λ~n​<λn​
定理1的证明见附录。定理1表明:当γ>0\gamma>0γ>0时,相当于给图添加了自环,此时对称归一化拉普拉斯矩阵的最大特征值会变小。

3. 实验

论文中首先在引文网络和社交网络上评估SGC,然后扩展到广泛的下游任务。

3.1 引文/社交网络

数据集:

引文网络实验结果:

社交网络实验结果:

根据表2和表3的结果,作者认为SGC具有很强的竞争力。由表2可知,SGC在引文网络上的性能可以与GCN等最先进的GNN相媲美。特别是在Citeseer上,SGC比GCN大约好1%,作者认为这种性能提升是因为SGC的参数更少,因此更少受到过拟合的影响。值得注意的是,由于过拟合,GIN的性能略有下降。此外,LNet和AdaLNet在引文网络上表现都不稳定。由表3可知,在Reddit数据集上,SGC在SAGE-GCN和FastGCN的基础上都提升了1%的性能。

图3中给出了Pubmed和Reddit数据集上SGC与其他模型训练时间的对比:
在大型图(例如Reddit)上,由于内存需求过大,GCN无法被训练。通过抽样来减少邻域大小可以解决这个问题,如GraphSAGE。实验结果表明,SGC的训练速度比基于快速采样的方法快两个数量级,而性能几乎没有下降。

3.2 下游任务

本节将实验扩展到了5个下游应用:文本分类、半监督用户地理定位、关系提取、零镜头图像分类和图分类,通过这些任务来研究SGC的适用性。

文本分类:

半监督用户地理定位:

关系提取:

零镜头图像分类:

图分类:将DCGCN中的GCN替换为SGC,并在NCI1和COLLAB数据集上分别获得71.0%和76.2%的性能,这与GCN对等,但远远落后于GIN。同样,在QM8量子化学数据集上,更先进的AdaLNet和LNet获得了0.01的MAE,大大超过了SGC的0.03的MAE。以上结果表明SGC在图分类上的效果一般。

4. 总结

为了更好地理解和解释GCN的机制,本文提出了一种最简单的图卷积模型SGC。SGC去除了GCN中的非线性特征提取部分,将整个模型训练过程简化为对预处理特征Xˉ=SKX\bar{X}=S^{K}XXˉ=SKX的直接多类逻辑回归。SGC在许多任务中与目前最先进的GNN模型表现相当,即使不如某些GNN模型,但也大大提升了训练速度。

此外,本文从卷积的角度分析了SGC,并证明了SGC是一个低通类型的频谱域滤波器。低通型滤波器捕捉低频信号,在这种设置中,它对应于图的特征平滑。最终,SGC的强大性能揭示了GCN的表达能力很可能主要来源于重复的图传播,也就是不断地对邻居节点特征进行聚合(SGC保留),而不是非线性的特征提取(SGC不保留)

考虑到SGC的实验性能、效率和可解释性,作者认为SGC可以作为与未来图学习模型进行比较的简单baseline;此外,SGC也可以作为未来图学习研究的起点,从简单模型开始发展复杂模型。

ICML 2019 | SGC:简单图卷积网络相关推荐

  1. ICML 2020 | GCNII:简单和深度图卷积网络

    目录 前言 1. 基础知识 1.1 Vanilla GCN 1.2 APPNP 1.3 JKNet 1.4 DropEdge 2. GCNII 2.1 初始残差连接 2.2 恒等映射 3. 实验 3. ...

  2. 搭建SGC实现引文网络节点预测(PyTorch+PyG)

    目录 前言 数据集 模型实现 PyTorch实现 PyG实现 实验结果 完整代码 前言 SGC的原理比较简单,具体请见:ICML 2019 | SGC:简单图卷积网络 数据集 数据集采用节点分类常用的 ...

  3. 【论文笔记】Revisiting graph based collaborative Filtering:一种线性残差图图卷积网络方法

    Revisiting Graph based Collaborative Filtering:A Linear Residual Graph Convolutional Network Approac ...

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

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

  5. SGC - Simplifying Graph Convolutional Networks 简化的图卷积网络 论文详解 ICML 2019

    文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Graph Convolution 简化的图卷积 2.1 ...

  6. 【图神经网络】SGC:简化图卷积网络

    SGC:简化图卷积网络 <Simplifying Graph Convolutional Networks> 论文地址:https://arxiv.org/abs/1902.07153 一 ...

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

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

  8. CVPR 2019 | 旷视研究院提出ML-GCN:基于图卷积网络的多标签图像识别模型

    全球计算机视觉三大顶会之一 CVPR 2019 (IEEE Conference on Computer Visionand Pattern Recognition)将于 6 月 16-20在美国洛杉 ...

  9. paper survey(2019.06.11)——卷积网络高阶特征表示

    类似于博文< paper survey(2019.06.05)--卷积网络feature map的传递与利用> 本博文也是系列论文的阅读笔记(基本都是CVPR和ICCV的论文). 对于跟本 ...

最新文章

  1. 实验3  数据库综合查询
  2. Perl的Hash一个小细节
  3. window中搭建jenkins_Windows环境中的jenkins构建时报错
  4. CG CTF WEB 密码重置2
  5. java实现打印等腰三角形
  6. 自己动手写java虚拟机_自己动手写操作系统(要了解的知识点)
  7. [转载] python元组 tuple
  8. 《你好李焕英》票房反超《唐探3》 成中国影史票房第五
  9. LeetCode 84. Largest Rectangle in Histogram
  10. 单应性变换、仿射变换、透视变换
  11. Unity两物体撞击所出现Bug示例及其说明
  12. 【TLSR825x】windows下开发环境搭建,固件烧录方法
  13. 共轭梯度法(CG)详解
  14. STM32 SPI驱动OLED12864原理图和源代码分享
  15. DDos防护系列之2--DDos防御策略
  16. 第三次个人作业——关于K米(Andorid)的案例分析
  17. VC使用: vs2003的工程升级到vs2010的问题汇总
  18. 如何给单元格加斜线?
  19. 计算机考证上传照片说明
  20. 颠覆传统经营模式,区块链助力餐饮行业数字化革新

热门文章

  1. catia装配体怎么把零件旋转180度_catia如何将实体旋转一个角度
  2. “我和马斯克没差距”,何小鹏二季度赚得越多投入越狠,4个月内研发团队还要招1500人...
  3. 跳出框架的类脑芯片,究竟是人脑增强仪还是操纵人类的工具?
  4. 满满干货赶紧进来!!!轻松掌握C语言中的函数
  5. 二次开发WinWebMail邮件系统接口 - 企业邮件服务器解决方案
  6. 仿苹果手机_iPhone苹果手机,谈谈我这些年使用中的体验和感受
  7. elastic search index和type
  8. cstringw转lpctstr_【转】LPCTSTR的用法
  9. ubuntu安装mysql 5.7未提示输入密码无法登陆的情况
  10. python办公自动化代码_[Python] 自动化办公 邮件操作基础知识及代码(下)