前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【知识图谱系列】探索DeepGNN中Over-Smoothing问题

【知识图谱系列】探索DeepGNN中Over-Smoothing问题

作者头像
Houye
发布2020-12-29 14:42:15
6550
发布2020-12-29 14:42:15
举报
文章被收录于专栏:图与推荐图与推荐

GCNII (ICML 2020) 分享

GCNII汇报ppt版可通过关注公众号后回复关键词:GCNII 来获得,供学习者使用!

Motivation

在计算机视觉中,模型CNN随着其层次加深可以学习到更深层次的特征信息,叠加64层或128层是十分正常的现象,且能较浅层取得更优的效果。

图卷积神经网络GCNs是一种针对图结构数据的深度学习方法,但目前大多数的GCN模型都是浅层的,如GCN,GAT模型都是在2层时取得最优效果,随着加深模型效果就会大幅度下降,经研究GCN随着模型层次加深会出现Over-Smoothing问题,Over-Smoothing既相邻的节点随着网络变深就会越来越相似,最后学习到的nodeembedding便无法区分。

上图中,随着模型层次加深,在Cora数据上TestAccuracy逐渐向下降,Quantitative Metric for Smoothness给Over-smoothness提出一个定量的指标SVM_?,如下公式所示:

SVM_?衡量了图中任意两个节点之间的欧氏距离之和,SVM_?越小表示图学习时Over-Smoothing越严重当,当SVM_?=0时,图中所有节点完全相同,也可以从图中看出随着层次的加深,SVM_?的值越来越小。

Method

GCNII全程:GraphConvolutional Networks via Initial residual and Identity Mapping

GCNII为了解决GCN在深层时出现的Over-Smoothing问题,提出了Initial ResidualIdentit Mapping两个简单技巧,成功解决了GCN深层时的Over-Smoothing问题。

1、Initial residual

残差一直是解决Over-Smoothing的最常用的技巧之一,传统GCN加residualconnection用公式表示为:

GCNII Initial Residual不是从前一层获取信息,而是从初始层进行残差连接,并且设置了获取的权重。这里初始层initial representation不是原始输入feature,而是由输入feature经过线性变换后得到,如下公式所示:

但Initial Residual不是GCNII首次提出,而是ICLR 2019模型APPNP中提出。

2、Identity Mapping 仅仅使用残差只能缓解Over-Smoothing问题,因此GCNII借鉴了ResNet的思想有了Identity Mapping,Initial Residual的想法是在当前层representation和初始层representation之间进行权重选择,而Identity Mapping是在参数W和单位矩阵I之间设置权重选择,如下公式所示:

从上面公式看出,前半部分是Initialresidual,后半部分是IdentityMapping,其中α和β是超参,GCNII论文中也给出了为什么IdentityMapping可以起到缓解DeepGNN出现Over-Smoothing问题,总结来说:IdentityMapping可以起到加快模型的收敛速度,减少有效信息的损失。

Conclusion

1、实验数据

实验中Cora, Citeseer, Pubmed三个引文数据,是同质图数据,常用于Transductive Learning类任务,三种数据都由以下八个文件组成,存储格式类似:

代码语言:javascript
复制
ind.dataset_str.x=> the feature vectors of the training instances as scipy.sparse.csr.csr_matrix object;
ind.dataset_str.tx=>the feature vectors of the test instances as scipy.sparse.csr.csr_matrix object;
ind.dataset_str.allx=>the feature vectors of both labeled and unlabeled training instances (asuperset of ind.dataset_str.x) as scipy.sparse.csr.csr_matrix object;
ind.dataset_str.y=>the one-hot labels of the labeled training instances as numpy.ndarray object;
ind.dataset_str.ty=>the one-hot labels of the test instances as numpy.ndarray object;
ind.dataset_str.ally=>the labels for instances in ind.dataset_str.allxas numpy.ndarray object;
ind.dataset_str.graph=>a dictin the format {index: [index_of_neighbor_nodes]}as collections.defaultdict object;
ind.dataset_str.test.index=>the indices of test instances in graph, for the inductive setting as listobject. All objects above must be saved using python pickle module.

以cora为例:
ind.dataset_str.x=> 训练实例的特征向量,是scipy.sparse.csr.csr_matrix类对象,shape:(140,1433)
ind.dataset_str.tx=> 测试实例的特征向量,shape:(1000,1433)
ind.dataset_str.allx=> 有标签的+无无标签训练实例的特征向量,是ind.dataset_str.x的超集,shape:(1708,1433)
ind.dataset_str.y=>训练实例的标签,独热编码,numpy.ndarray类的实例,是numpy.ndarray对象,shape:(140,7)
ind.dataset_str.ty=>测试实例的标签,独热编码,numpy.ndarray类的实例,shape:(1000,7)
ind.dataset_str.ally=>对应于ind.dataset_str.allx的标签,独热编码,shape:(1708,7)
ind.dataset_str.graph=>图数据,collections.defaultdict类的实例,格式为{index:[index_of_neighbor_nodes]}
ind.dataset_str.test.index=>测试实例的id,2157行上述文件必须都用python的pickle模块存储

2、实验结果

实验结果在Cora,citeseer,pubmed三个数据上都进行DeepGNN测试,测试结果可以看出随着网络层级的加深,模型不仅没有像传统GNN出现Over-Smoothing而效果下降,反而模型效果随着深度增加而不断提升,解决了传统DeepGNN存在的Over-Smoothing问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图神经网络与推荐系统 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档