图神经网络的过平滑问题和图残差网络
图神经网络的过平滑问题和图残差网络
在GNN的深度堆叠中存在两大问题:梯度消失和过平滑。梯度消失是经典神经网络中就会出现的问题,也就是当网络层数堆叠地过多,前面的层梯度过小难以更新;另一个问题就是之前提到过的过平滑问题,在堆叠了多个图卷积层之后,每个节点的隐藏嵌入表示十分的类似,这个问题发生在谱域卷积(反复拉普拉斯平滑导致全图节点趋同)以及空域卷积(每次多聚合1阶邻域导致最后每个节点都聚合了全图的信息)上。
解决过平滑的若干方案
这些方案可以大致分为:
- 向量融合类:SAGE向量拼接、Highway GCN向量线性加和、门控连接
- 强化自连接
- 跳跃连接(残差连接、稠密连接)类:JKNet、DeepGCN的ResGCN、DeepGCN的DenseGCN
- 宽度拓展:N-GCN
- 改变邻域采样:膨胀卷积
向量拼接
由于过平滑的本质原因是太多来自其他节点的信息压制了节点本身的信息,因此可以选择在更新节点隐藏嵌入的时候将其自身的嵌入和聚合后的新向量拼接在一起,即将邻域信息和本身信息解耦合。
在GraphSAGE的论文中提出的最早的跳跃连接方式就是对更新的嵌入和上一层的嵌入拼接作为下一层的输入,即:
h u ( t + 1 ) = u p d a t e ( h u ( t ) , h v ∈ N ( u ) ( t ) ) ∣ ∣ h u ( t ) h_u^{(t+1)} = update(h_u^{(t)},h_{v\in N(u)}^{(t)}) || h_u^{(t)} hu(t+1)=update(hu(t),hv∈N(u)(t))∣∣hu(t)
Highway GCN(2018)
在Highway GCN中,提出了另一种类似线性组合的向量拼接方法,即每一层都设定一个门控向量,该向量按比例将新的聚合向量和上层的节点表达融合,即:
h u ( t + 1 ) = α ⋅ u p d a t e ( h u ( t ) , h v ∈ N ( u ) ( t ) ) + ( 1 − α ) ⋅ h u ( t ) h_u^{(t+1)} = \alpha \cdot update(h_u^{(t)},h_{v\in N(u)}^{(t)})+ (1-\alpha) \cdot h_u^{(t)} hu(t+1)=α⋅update(hu(t),hv∈N(u)(t))+(1−α)⋅hu(t)
门控向量α是可学习的参数,可以使用单独的GNN学习。
门控连接
将新的聚合向量和上层的节点表达传入RNN单元,例如GRU中,
h u ( t + 1 ) = G R U ( u p d a t e ( h u ( t ) , h v ∈ N ( u ) ( t ) ) , h u ( t ) ) h_u^{(t+1)} = GRU(update(h_u^{(t)},h_{v\in N(u)}^{(t)}), h_u^{(t)}) hu(t+1)=GRU(update(hu(t),hv∈N(u)(t)),hu(t))
式子中的GRU代表GRU的更新函数,其将上一时间步的隐藏状态和当前的时间步的信号作为输入,并输出当前时间步的隐藏状态。可以类比到这其中来。
这种RNN式的更新方法在节点见共享参数。
强化自连接
在GCN的重归一化拉普拉斯算子后再加上一个自环矩阵(相当于总体上一共加了两次自环),强调节点本身的信息。
X ( l + 1 ) = σ ( ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 + I ) X ( l ) W ( l ) ) X^{(l+1)} = \sigma((\tilde D ^ {-1/2} \tilde A \tilde D ^{-1/2} + I )X^{(l)}W^{(l)}) X(l+1)=σ((D~−1/2A~D~−1/2+I)X(l)W(l))
Jumping Knowledge Network(2018)
每一层的输出隐藏嵌入都连接到最后一层上,即1,2,…,k阶邻域聚合的结果连接到最后层。最后一层使用拼接、最大池化或者LSTM注意力将所有邻域大小下的嵌入向量做聚合(称为层聚合),这样做能够自适应地感知结构、自适应选择邻域大小。
z u = f ( h u ( 0 ) , h u ( 1 ) , . . h u ( k ) ) z_u = f(h_u^{(0)}, h_u^{(1)}, .. h_u^{(k)}) zu=f(hu(0),hu(1),..hu(k))
可以结合任意其他的卷积网络使用。
DeepGCN(2019)
DeepGCN模块中使用了三种模型,即原始GCN、ResGCN和DenseGCN,这些模型使用不同的跳跃连接加入方式,类比的是经典神经网络中的残差连接(例如ResNet)和稠密连接(例如DenseNet)。
其跳跃连接的设计如下所示:
在该文章中,还提出使用膨胀卷积来采样邻域节点。膨胀(dilated)卷积在经典CNN中的作用是快速扩大感受野而不增加参数量。在图神经网络中,类似地定义空洞率(膨胀率)d,对于每个节点,在采样k个邻居的时候先选择周围的k*d个节点,然后每隔d-1个选择1个作为采样的结果。
N-GCN(2020)
结合单一节点的不同跳的信息(混合跳数、多阶近邻),用于拓展网络宽度。
X ′ = c o n c a t ( G C N ( A ˉ 0 X W ( 0 ) ) , G C N ( A ˉ 1 X W ( 1 ) ) , . . , G C N ( A ˉ n X W ( n ) ) W f c ) X'=concat(GCN(\bar A^0 X W^{(0)}),GCN(\bar A^1 X W^{(1)}), .., GCN(\bar A^n X W^{(n)})W_{fc}) X′=concat(GCN(Aˉ0XW(0)),GCN(Aˉ1XW(1)),..,GCN(AˉnXW(n))Wfc)
邻接矩阵A的0次方即I,代表节点自身,1次方则为邻接关系,2次方为2跳关系……将节点0~n跳的信息通过独立的GCN学习后拼接起来,通过一个全连接层,输出到下一层。
参考资料
《图神经网络导论》
《图表示学习》
深蓝学院 图神经网络
N-GCN原文: Abu-El-Haija, Sami, Amol Kapoor, Bryan Perozzi, and Joonseok Lee. “N-gcn: Multi-scale graph convolution for semi-supervised node classification.” In uncertainty in artificial intelligence, pp. 841-851. PMLR, 2020.
图神经网络的过平滑问题和图残差网络相关推荐
- 对图神经网络的过平滑问题的一点粗浅见解(真·很肤浅的看法)
针对图信号的低通滤波特性: 不好意思放错了,是这个: (请忽略我寒酸的草稿纸和顺时针90°的格式-貌似CSDN的编辑器没有能旋转的功能呢) 不影响不影响,截图然后旋转就行啦(涩图都给你们了,别在意这些 ...
- 《深入浅出图神经网络》读书笔记(5.图信号处理与图卷积神经网络)
文章目录 5.图信号处理与图卷积神经网络 5.1 矩阵乘法 5.2 图信号与图的拉普拉斯矩阵 5.3 图傅里叶变换 5.4 图滤波器 5.4.1 空域角度 5.4.2 频域角度 5.5 图卷积神经网络 ...
- 图神经网络代码_第一篇:图神经网络(GNN)计算框架绪论
写在开头: 这个专栏是为了总结我本科毕业设计中所设计的题目<基于GPU的图神经网络算法库的设计钰实现>.这半年来一直在这个方向上啃代码,读论文,真的学到了很多东西.尤其是阅读了大佬团队写的 ...
- 图神经网络笔记(二)——卷积图神经网络概述
文章目录 基于谱分解的方法 Spectral Network ChebNet GCN AGCN(Adaptive GCN) 基于空间结构的方法 Neural FP PATCHY-SAN DGCN LG ...
- 【图神经网络实战】深入浅出地学习图神经网络GNN(上)
文章目录 一.图神经网络应用领域 1.1 芯片设计 1.2 场景分析与问题推理 1.3 推荐系统 1.4 欺诈检测与风控相关 1.5 知识图谱 1.6 道路交通的流量预测 1.7 自动驾驶(无人机等场 ...
- 【图神经网络实战】深入浅出地学习图神经网络GNN(下)
文章目录 一.Graph Attention Network 1.1 图注意力机制作用与方法 1.2 Attention计算 1.3 Graph Attention 做了什么 二.序列图神经网络TGC ...
- 《深入浅出图神经网络》读书笔记(8. 图分类)
文章目录 8. 图分类 8.1 基于全局池化的图分类 8.2 基于层次化池化的图分类 8.2.1 基于图坍缩的池化机制 1.图坍缩 2.DIFFPOOL 3.EigenPooling 8.2.2 基于 ...
- 课节5:图神经网络算法(二):图采样
从上图变化到下图 上图右边的例子,对节点进行一个随机的采样,结果采样到的节点是互不相连的(特别是在图规模很大的时候,随机采样出来的节点很有可能是孤立的),然而这种孤立的点是不符合GNN的要求的.(即一 ...
- 为什么要进行图学习?谈一谈逆势而上的图神经网络
点击上方 蓝字关注我们 问一问近几年来逆势而上的技术有什么?相信你一定会说出来一个:图神经网络. 图神经网络将会在人工智能的各个领域起着非常重要的作用,虽然目前还没有完全成为各大顶会的焦点,但不可否认 ...
最新文章
- 力扣(LeetCode)刷题,简单+中等题(第26期)
- ETC核心技术团队CTO空降上海,引领高校区块链技术风潮
- 找不到请求的 .Net Framework 数据提供程序。可能没有安装
- Tomcat+JSP经典配置实例
- mysql jdbc 5.1.6_mysql5.0+Mysqljdbc5.1.6.jar的整合 | 學步園
- 012 pandas与matplotlib结合制图
- 计算机博士专业学位,河海大学计算机应用技术博士专业学位研究生培养方案
- 为什么喜欢听钢琴+小提琴
- break VS continue
- (转载)ubuntu开启SSH服务
- K8S精华问答 | K8S 是什么?不是什么?
- UDP聊天小程序+多线程(Python)
- cipher java aes 模式_java – 为什么我的AES Cipher在init的DECRYPT_MODE上抛出一个InvalidKeyException...
- 介词短语做后置定语(由of引导)
- cmd命令查看本机网外地址
- iOS adhoc ipa 安装
- zt中俄两军炮兵的差距
- 电能质量:电压暂升暂降中断
- 内存数据网格IMDG简单介绍
- 运行github上下载的vue项目