改进版GCN 学习Simplifying Graph Convolutional Networks

本文是SGC(简化版GCN),主要通过连续去除非线性和在连续层之间的折叠权矩阵来减少GCN的复杂性。而且这些简化不会对准确性产生负面影响。在Reddit上比FastGCN产生两个数量级的加速。


一、Introduction

简单来说,本文就是把非线性的GCN转换成一个简单的线性模型SGC,反复消除GCN层之间的非线性并将得到的函数折叠成一个线性变换来减少GCNs额外的复杂度。其实对于要求较低的应用来说,这是不必要的。在这里插入图片描述
上图为SGC与普通卷积过程的区别。

二、普通GCN算法过程

在每一个图卷积层,节点的表现由三个阶段进行更新:特征传播,线性变换和一个节点层级的非线性激活。

特征传播

这是区别于MLP的一点,因为每一层的输入都是节点局部邻居的平均值。
直接用矩阵运算来表示:
在这里插入图片描述
这个结构类似当时的计算对称的规范化的拉普拉斯算子时相似的计算方法。S计算过后会用到。

在这里插入图片描述

再将平均值用矩阵形式表达在这里插入图片描述
相当于提取特征。

特征变化和非线性变化

加上一层Relu激活函数,使得上一层的输出是非线性的。

最后分类器

加上一层softmax分类器,将每个节点的特征组成的长度为n的向量softmax处理,得到分类。

三、SGC算法过程

整体思路相当于去除普通GCN的非线性激活处理步骤,即每一层的传播都是线性的,或者用另一种角度来说,就是在为最后的逻辑回归作预处理,而不经过非线性激活函数。整体就是一次逻辑回归。

线性化处理

首先用S对每个节点的特征作线性变换,然后乘权值矩阵,如图在这里插入图片描述
或者换成矩阵的方式在这里插入图片描述

逻辑回归

将输出的 S K X Θ S^KX\Theta SKXΘ通过分类器,将节点分类。 Y ^ S G C = s o f t m a x ( S K X Θ ) \hat Y_{SGC} = softmax(S^KX\Theta) Y^SGC=softmax(SKXΘ)
综上,在使用GCN时,中间层的非线性激活函数输出对整个模型的作用可能是小的,因为一般的神经网络的传播层都是需要非线性函数来保证输出的非线性。因此可以判断出GCN的核心应该是重复图的传播而不是非线性特征提取。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值