论文笔记:ICML 2019 Simplifying Graph Convolutional Networks
前言
随着2017年GCN概念的提出,近年来越来越多的GCN方法被提出。由于GCN本身的提出来源于深度学习中CNN和RNN的概念,因此可能会继承其中一些不必要的复杂度和冗余计算,本文提出了一种简化的图卷积方法(Simplifying Graph Convolutional)。通过消除GCN层之间的非线性计算,通过将得到的函数折叠成一个线性变换来减少GCN带来的额外复杂度,并且从图卷积的根源–频谱分析中得到SGC的理论支撑,证明了SGC相当于一个固定的低通道滤波器和一个线性分类器。试验结果表明,这些简化不会多下游应用的准确性产生负面影响。此外由于模型的简化SGC可以被推广到更大的数据集,并且比FastGCN产生两个数量级的加速。
FastGCN可以参考博客:
https://blog.csdn.net/qq_44015059/article/details/108650331
论文链接:https://arxiv.org/abs/1902.07153v1
github:https://github.com/Tiiiger/SGC
转载于https://blog.csdn.net/yyl424525/article/details/102576875
1.SGC背景
传统的机器学习方法的复杂度变化趋势都是从简单到复杂。例如从线性Perceptron到非线性MLP,从简单的线性图片filters到CNN都是这个趋势。GCN也是源于传统的机器学习方法,继承了这个复杂度的变化。此文的目的就是要把非线性的GCN转化成一个简单的线性模型SGC,通过反复消除GCN层之间的非线性并将得到的函数折叠成一个线性变换来减少GCNs的额外复杂度。
SGC中的特征提取等价在每个特征的维度上应用了单个固定的filter。
实验表明
- 这种简化了的线性SGC模型在很多任务上比GCN和一些其他GNN网络更高效,并且参数更少
- 并且在效率方面,在Reddit数据集上比FastGCN快两个数量级
- SGC在文本分类、用户地理定位、关系提取和zero-shot图像分类任务方面,即使不能超越基于GCN的方法,但至少也是竞争对手
GCN vs MLP
GCNs和MLPs相似,都是通过多层网络学习一个节点的特征向量Xi\mathbf{X}_{i}Xi,然后再把这个学到的特征向量送入的一个线性分类器中进行分类任务。一个kkk层GCN与kkk层MLP在应用于图中每个节点的特征向量Xi\mathbf{X}_{i}Xi是相同的,不同之处在于每个节点的隐藏表示在每一层的输入时是取的它的邻居的平均。
每个图中的卷积层和节点表示都是使用三个策略来更新
- 特征传播
- 线性转换
- 逐点非线性激活
Feature propagation 特征传播
GCN的特征传播是区别MLP的,因为每一层的输入都是节点局部邻居的平均值:
用一个简单的矩阵运算来表示公式(2)的更新:
S=D~−12A~D~−12(3)S = \widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}} \tag{3}S=D−21AD−21(3)
S\mathbf{S}S表示添加自循环“normalized”的邻接矩阵(实际上并没有归一化)
A~=A+I\tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I}A~=A+I
D\mathbf{D}D是A\mathbf{A}A的度矩阵
用公式(2)对所有节点进行同时更新,得到了一个简单的稀疏矩阵乘法:
这一步平滑了沿着图的边的局部隐藏表示,并最终支持在局部连接的节点之间进行类似的预测。
Feature transformation and nonlinear transition
在局部平滑之后,一个GCN层就等于一个标准的MLP。每一个层对应一个可学习的权重矩阵Θ(k)\Theta^{(k)}Θ(k),所以平滑处理了的隐藏特征表示H‾(k)\overline{\mathbf{H}}^{(k)}H(k)是线性转换的(后面乘一个参数矩阵是线性的)。最后在逐节点应用一个非线性激活函数,例如ReLU就可以得到输出的特征表示 H(k)\mathbf{H}^{(k)}H(k)
H(k)<−ReLU(H‾(k)Θ(k))(5)H^{(k)}<-ReLU(\overline{H}^{(k)}\Theta^{(k)}) \tag{5}H(k)<−ReLU(H(k)Θ(k))(5)
分类器
对于节点分类任务,最后一层和MLP相似,都是使用一个softmax分类器预测节点的标签,一个KKK层的GCN的所有节点的类别预测可以写作:
Y^GCN=softmax(SH(K−1)Θ(K))(6)\hat{Y}_{GCN}=softmax(SH^{(K-1)}\Theta^{(K)}) \tag{6}Y^GCN=softmax(SH(K−1)Θ(K))(6)
- Y^∈Rn×C\hat{Y} \in \mathbb{R}^{n \times C}Y^∈Rn×C表示所有节点的类别的预测
- y^ic\hat{y}_{ic}y^ic表示节点iii预测为ccc
- softmax(x)=exp(x)/∑c=1Cexp(xc)softmax(x)=exp(x)/\sum_{c=1}^Cexp(x_c)softmax(x)=exp(x)/∑c=1Cexp(xc)是一个归一化操作
2. SGC
在传统的MLP中,层数变深加强了网络的表达能力,因为它允许创建特征的层次结构,例如,第二层的特征构建在第一层特征的基础上。在GCNs中,每一层都有一个重要的函数:在每一层中,隐藏的表示在1跳距离的邻居之间求平均值。这意味着在k kk层之后,一个节点从图中所有k kk跳的节点处获得特征信息。这种效果类似于卷积神经网络,深度增加了内部特征的感受野。虽然卷积网络可以在层数加深时提升性能(Deep networks with stochastic depth, 2016),但通常MLP的深度只限于为3至4层。
线性化
假设GCN层之间的非线性不是最关键的,最关键的是局部邻居的平均聚合操作。因此,考虑删除每层之间的非线性转换函数(如ReLU),只保留最终的softmax(以获得概率输出)。得到的模型是线性的
Y^=softmax(S...SSXΘ(1)Θ(2)Θ(K))(7)\hat{Y}=softmax(\mathbf{S...SSX\Theta^{(1)}}\Theta^{(2)}\Theta^{(K)}) \tag{7}Y^=softmax(S...SSXΘ(1)Θ(2)Θ(K))(7)
简化如下
Y^SGC=softmax(SK)XΘ(8)\hat{Y}_{SGC}=softmax(\mathbf{S}^K)X\Theta \tag{8}Y^SGC=softmax(SK)XΘ(8)
- SK=S...SS\mathbf{S^K=S...SS}SK=S...SS
- Θ=Θ(1)Θ(2)...Θ(K)\mathbf{\Theta = \Theta^{(1)}\Theta^{(2)}...\Theta^{(K)}}Θ=Θ(1)Θ(2)...Θ(K)
逻辑回归
公式(8)给了SGC的一个自然直观的解释:SGC由两部分组成
- 一个固定的(没有参数,parameter-free)的特征提取器(或平滑器smoothing component):X‾=SKX\overline{X}=S^KXX=SKX
- 特征提取器后是一个线性逻辑回归分类器Y^=softmax(X‾Θ)\hat{Y}=softmax(\overline{X}\Theta)Y^=softmax(XΘ)
可以看出,由于计算X‾\overline{\mathbf{X}}X不需要权值,因此可以把这部分计算作为特征的预处理步骤,整个模型的训练可以直接简化为对预处理特征X‾\overline{\mathbf{X}}X的多类逻辑回归。
优化细节
逻辑回归的训练是一个凸优化问题,可以用任何有效的二阶方法或随机梯度下降法进行执行(Large-scale machine learning with stochastic gradient descent,2010)。在图连通模式足够稀疏的情况下,SGD可以很自然地运用在非常大的图上,SGC的训练比GCN快得多。
3. 谱分析
文中从图卷积的角度来研究SGC,并证明了SGC在图谱域上对于应一个固定的滤波器。此外,还证明了在原始图上添加自循环,即renormalization trick,可以有效地缩小底层图的谱。在这个缩放的谱域上,SGC充当一个低通滤波器,在图上生成平滑的特征。因此,邻居节点倾向于共享相似的表示,从而实现预测。
3.1 在图上的初步做法
经过傅里叶变换的信号xxx和滤波器ggg的GCN卷积操作为
g∗x=θ(I+D−12AD−12)x(11)g*x=\theta(I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x \tag{11}g∗x=θ(I+D−21AD−21)x(11)
最后,通过将卷积推广到d dd维的通道输入中的多个滤波器上,并在每一层之间用非线性激活函数的分层模型,就得到了如公式(5)所定义的GCN传播规则
H(k)<−ReLU(H‾(k)Θ(k))(5)H^{(k)}<-ReLU(\overline{H}^{(k)}\Theta^{(k)}) \tag{5}H(k)<−ReLU(H(k)Θ(k))(5)
3.2 SGC and Low-Pass Filtering 简化的图卷积和低通滤波器
定理1
对于一个简单,没有孤立节点的无向图。令A~=A+γ\widetilde{A}=A+\gammaA=A+γ, I,γ>0I,\gamma>0I,γ>0, λ1\lambda_1λ1和λ2\lambda_2λ2分别是对称归一化的拉普拉斯矩阵Δsym=I−D−12AD−12Δsym=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}Δsym=I−D−21AD−21的最小和最大的特征值。令λ1~\widetilde{\lambda_1}λ1和λ2~\widetilde{\lambda_2}λ2分别为Δ~sym=I−D~−12A~D~−12\widetilde{Δ}sym=I-\widetilde{D}^{-\frac{1}{2}}\widetilde{A}\widetilde{D}^{-\frac{1}{2}}Δsym=I−D−21AD−21的最小和最大的特征值。则有
0=λ1=λ1~<λn~<λn0=\lambda_1=\widetilde{\lambda_1}<\widetilde{\lambda_n}<\lambda_n0=λ1=λ1<λn<λn
关于定理1的证明,可参考文中提供的附录部分。
从定理1可以看出,当γ>0\gamma>0γ>0时,相当于图中添加了自循环,则归一化的拉普拉斯矩阵的最大特征值会变小。
- 图2描述了在Cora数据集上使用的三种情况下特征值(频率)的变化和滤波器系数(谱系数)的变化关系
- Normalized Adjacency:Sadj=D−1/2AD−1/2\mathbf{S}_{\mathrm{adj}}=\mathbf{D}^{-1 / 2} \mathbf{A} \mathbf{D}^{-1 / 2}Sadj=D−1/2AD−1/2
- Augmented Normalized Adj:S~adj=D~−1/2A~D~−1/2\tilde{\mathbf{S}}_{\mathrm{adj}}=\tilde{\mathbf{D}}^{-1 / 2} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-1 / 2}S~adj=D~−1/2A~D~−1/2
- First-Order Chebyshev:S1-order =(I+D−1/2AD−1/2)\mathbf{S}_{1 \text { -order }}=\left(\mathbf{I}+\mathbf{D}^{-1 / 2} \mathbf{A} \mathbf{D}^{-1 / 2}\right)S1 -order =(I+D−1/2AD−1/2)
- 使用Sadj=D−1/2AD−1/2\mathbf{S}_{\mathrm{adj}}=\mathbf{D}^{-1 / 2} \mathbf{A} \mathbf{D}^{-1 / 2}Sadj=D−1/2AD−1/2的特征传播对应的滤波器g(λi)=(1−λi)Kg\left(\lambda_{i}\right)=\left(1-\lambda_{i}\right)^{K}g(λi)=(1−λi)K展开就是一个关于拉普拉斯矩阵特征值的多项式)的取值范围为[0,2]
- Sadj\mathbf{S_{adj}}Sadj的奇数次幂在λi>1\lambda_i >1λi>1时产生了负的滤波系数
- 添加了自循环的S~adj\tilde{\mathbf{S}}_{\mathrm{adj}}S~adj的最大特征值从2近似变为了1.5,并且消除了滤波系数为负数的影响
- 可以使用S~adj\tilde{\mathbf{S}}_{\mathrm{adj}}S~adj的K>1K > 1K>1的幂来定义滤波器,此时为一个低通滤波器(文中附录部分对不同的传播函数提供了不同的选择)
4. 实验
- 图3是在Pubmed和Reddit数据集上的效率对比图
- 显然,SGC是效率最高的
- SGC中SKX\mathbf{S}^{K} \mathbf{X}SKX是预先计算的,SGC训练的时候只需要学习一个权重矩阵Θ\ThetaΘ,减少了内存的使用由于S\mathbf{S}S通常是稀疏的,而KKK通常比较小,因此,可以用稀疏稠密矩阵乘法进行计算SKX\mathbf{S}^{K}\mathbf{X}SKX
- 无法在Reddit上对GaAN和DGI的训练时间进行基准测试,因为实验没有发布
- GPU:NVIDIA GTX 1080 Ti
- 在大图上由于内存要求不能进行GCN的训练。FastGCN和GraphSAGE等方法使用采样的方法减少邻居数量来处理这个问题。Deep Graph InfoMax(ICLR,2019)通过限制模型的size来解决这个问题
- SGC训练的时候比使用快速采样的FastGCN快两个数量级,并且性能几乎没有损失
4.1 下游任务
使用5个下游任务来研究SGC的适应性:
- text classification
- semi-supervised user geolocation
- relation extraction
- zero-shot image classification
- graph classification
Text classification
- (Graph convolutional networks for text classification,2019)使用2层的GCN来实现了一个state-of-the-art的结果,创建了一个语料库图,该图将文档和单词都视为图中的节点。
- Word-word边的权值为点信息的互信息(point twise mutual information, PMI), word-document边的权值为标准化的TF-IDF socre。
- 如表4显示,一个SGC (K = 2)在5个基准数据集上与他们的模型竞争,同时达到了83.6倍的速度。
其他下游任务的具体分析比较结果可以参考论文或者所转载的文章
论文笔记:ICML 2019 Simplifying Graph Convolutional Networks相关推荐
- [LGCN论文笔记]:Large-Scale Learnable Graph Convolutional Networks
文章目录 Abstract 补充:如何理解 inductive learning 与 transductive learning? 1. Introduction 2. Related Work 图卷 ...
- SGC - Simplifying Graph Convolutional Networks 简化的图卷积网络 论文详解 ICML 2019
文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Graph Convolution 简化的图卷积 2.1 ...
- 论文阅读课1-Attention Guided Graph Convolutional Networks for Relation Extraction(关系抽取,图卷积,ACL2019,n元)
文章目录 abstract 1.introduction 1.1 dense connection+GCN 1.2 效果突出 1.3 contribution 2.Attention Guided G ...
- 【论文】时空预测模型Spatio-Temporal Graph Convolutional Networks
STGCN流量预估模型论文解读 <Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traf ...
- 基于图卷积的价格推荐论文(Price-aware Recommendation with Graph Convolutional Networks)
基于图卷积的价格推荐论文概述 ICDE2020非常好的文章 Price-aware Recommendation with Graph Convolutional Networks paper lin ...
- 【论文导读】- EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs(EvolveGCN:用于动态图的演化图卷积网络)
文章目录 论文信息 摘要 evolving graph convolutional network 图卷积网络 (GCN) 权重更新 Evolving Graph Convolution Unit ( ...
- GCN论文笔记——HopGAT: Hop-aware Supervision Graph Attention Networks for Sparsely Labeled Graphs
[论文笔记]HopGAT: Hop-aware Supervision Graph Attention Networks for Sparsely Labeled Graphs 作者:纪超杰,王如心等 ...
- 论文浅尝 | GEOM-GCN: Geometric Graph Convolutional Networks
论文笔记整理:毕祯,浙江大学硕士,研究方向:知识图谱.自然语言处理. 动机 消息传递神经网络(MPNN)已成功应用于现实世界中的各种应用中.但是MPNN聚合器的两个基本弱点限制了它们表示图结构数据的能 ...
- 论文笔记 EMNLP 2020|Edge-Enhanced Graph Convolution Networks for Event Detection with Syntactic Relation
文章目录 1 简介 1.1 动机 1.2 创新 2 背景知识 3 方法 4 实验 1 简介 论文题目:Edge-Enhanced Graph Convolution Networks for Even ...
最新文章
- python数据分析(九)-点积与线性代数
- vs2008编译中文变量名的lua解释器环境
- 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
- MINA与JMX集成(翻译)
- 1356. 回文质数【难度: 中 / 数学】
- Visual Studio 2008中常用快捷键
- 大数据WEB阶段 (六)MySql详解(一)
- 《C++ Primer》2.1.3节练习
- 解决win7下无法安装突击者NO.69驱动,“WINDOWS已找到设备的驱动程序,但在试图安装它时错误”...
- 【OpenCV 例程200篇】04. 用 matplotlib 显示图像(plt.imshow)
- mysql 5.7.19 rpm下载_centos6.8 mysql5.7 rpm安装与完全卸载
- mysql database table_mysqldump database table
- 【CS Round #46 (Div. 1.5) B】Letters Deque
- 数控g71编程实例带图_数控编程代码g71 数控g71编程实例有图
- 【小程序】小游戏开发工具详解(上)
- 入门OJ 3168【等式】
- 创始人、CEO、总裁和董事长到底谁更大?
- JAVA已知圆心经纬度和半径求圆周点的经纬度
- 小魔推如何解决实体商家痛点,实现短视频高转化
- 【EMC电磁兼容】01.13——窄带与宽带