Decoupling the Depth and Scope of Graph Neural Networks(ShaDow-GNN)论文阅读笔记

红色部分为个人的一些解读,不足之处请多多指点!

文章目录


链接

论文题目:解耦图神经网络的深度和范围(ShaDow-GNN)(2021NIPS)

论文链接:2201.07858.pdf (arxiv.org)

代码链接:facebookresearch/shaDow_GNN: NeurIPS 2021: Improve the GNN expressivity and scalability by decoupling the depth and receptive field of state-of-the-art GNN architectures (github.com)

一、摘要

        最先进的图神经网络(GNN)在图和模型大小方面的可扩展性有限。在大图上,增加模型深度通常意味着范围的指数扩展(即感受野)。超出少数几层之,还出现了两个基本挑战:1.过度平滑导致表达能力下降,2.邻域爆炸导致计算成本高昂。我们提出了一种设计原则来解耦GNN的深度和范围—为了生成目标实体(即节点或边)的表示,我们首先提取一个局部子图作为有界大小范围,然后在子图上应用任意深度的GNN。正确提取的子图由少量关键邻居组成,同时排除不相关的邻居。GNN,无论它有多深,都会将局部邻域平滑为信息表示,而不是将全局图过度平滑为“白噪声”(每个向量表示相差无及)。从理论上讲,解耦从图信号处理(GCN)、函数逼近(GraphSAGE)和拓扑学习(GIN)的角度提高了GNN的表达能力。根据实验,在七个图(最多1.1亿个节点)和六个主干GNN架构上,我们的设计在计算和硬件成本上都有数量级的降低,实现了精度的大幅提高。

作者把GNN解耦为两部分,深度,即GNN的图卷积次数;范围,即节点可以取到的邻居阶数,邻居阶数越高,节点取到的邻居数就越高。首先说一下原始的GNN为什么是耦合的,原始GNN如果是两层图卷积层,则必须要用到一阶和二阶邻居;如果是三层图卷积层,则必须要用到一阶、二阶和三阶邻居,即用到的邻居阶数和图卷积层数是耦合的。用公式来表示的话,GCN模型gif.latex?X%3D%5Csigma%5Cleft%28W%5Chat%7BA%7DX%5Cright%29​中的权重参数W和激活层gif.latex?%5Csigma%20%5Cleft%20%28%20%5Cright%20%29​的使用次数(一样的)就是GNN的深度,图卷积层数,\hat{A}X就是GNN的范围,节点要用到的邻居阶数。

二、引言

        图神经网络(GNN)现在已成为图挖掘的最先进模型 [48、13、58],促进了社交推荐 [35、52、37]、知识理解 [40、38、59] 和药物发现 [43, 32]。鉴于提出的众多架构 [22、12、44、49],如何在模型大小和图形大小方面有效地扩展GNN仍然是一个悬而未决的问题。当我们增加GNN层的数量时,有两个基本障碍:

        1.表现力挑战(即过平滑[30、36、39、17]):相邻特征的迭代混合将不同节点的嵌入向量折叠到固定的低维子空间中。

        2.可扩展性挑战(即邻居爆炸[7,8,9,55]):多跳邻域的递归扩展导致感受野大小呈指数增长(从而导致计算成本)。

        为了解决表达力挑战,大多数补救措施都集中在神经架构探索上:[44,12,49,29]在传播邻居特征时提出了更具表现力的聚合函数。[50, 28,18,34,1,33,31] 使用残差式设计组件来构建灵活和动态的感受野。其中,[50,28,18]使用跨多个GNN层的跳跃连接,[34,1,33,31] 鼓励在每个单层内进行多跳消息传递。至于可扩展性挑战,已经探索了采样方法以提高训练速度和效率。基于重要性的逐层采样 [8, 7, 61] 和基于子图的采样 [54, 9, 55] 缓解了邻居爆炸,同时保持了训练的准确性。不幸的是,这种采样方法不能自然地推广到没有准确性损失的推理(另见第4节)。

        上述研究路线仅引导我们找到部分解决方案。然而,表达性和可扩展性挑战的根本原因是什么?撇开GNN架构或采样方案的设计不谈,我们通过以不同的方式解释数据来提供另一种视角。

2.1图上的两个视图。

        给定一个带有节点集\nu的输入图G,理解G最直接的方法是将其视为一个单一的全局图。因此,任何两个节点uv都属于同一个G,如果uv位于同一个连接组件中,那么无论uv有多远,它们最终都会在自己的邻居中看到对方。对于每个节点v来说,在它周围有一个潜在的G_{\left [ v \right ]},它只捕捉到了v本身的特征,而不是上述的全局观点,我们可以对G采取局部观点。完整的G被观察到(由数据收集过程)是所有这些G_{\left [ v \right ]}的集合。因此,\nu _{\left [ v \right ]}而不是\nu定义了v的邻居:如果u\notin \nu _{\left [ v \right ]}v将永远不会把u当作邻居。我们的 "解耦 "设计是基于此局部观点的。

        这段话的意思是,如果不采用提取子图的方法,那么一个节点距离另一个节点即使很远,多次的聚合邻居操作后该节点也会被用到;但是若是一个节点只聚合它的子图,那么不在子图里面的节点就永远不会被用到。

未完待更新

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
"Decoupling of mode" (模式解耦)是指在某个系统或过程中,将不同的功能或模块从彼此紧密耦合的状态中解开,使得它们可以独立地操作或发展。这种解耦可以带来一系列的好处,包括提高系统的灵活性、可扩展性和可维护性。 模式解耦的好处之一是系统的灵活性。通过解耦不同的功能或模块,可以使得系统更容易进行修改或扩展。例如,在软件开发中,如果各个模块之间过于紧密耦合,当需要对其中一个模块进行修改时,可能会影响到其他模块的正常运行,从而增加了修改的难度。而通过解耦,可以降低这种影响,使得系统更加灵活,能够更快速地进行修改或适应变化。 另一个好处是系统的可扩展性。通过解耦模块,可以更方便地添加新的功能或模块,而不会对原有的系统产生太大的影响。例如,在一个电子商务网站中,如果模块之间的耦合度较高,添加一个新的支付方式可能需要对多个模块进行修改。而通过解耦,可以将支付模块与其他模块解耦,从而更容易地添加新的支付方式,提高系统的可扩展性。 此外,模式解耦还有助于系统的可维护性。当各个功能或模块相互独立时,对系统进行维护或修复时可以更加专注和有效。如果模块之间过于紧密耦合,一个小的问题可能会影响到整个系统,导致维护过程变得复杂和困难。通过解耦,可以将问题范围限定在一个模块内,使得维护工作更加高效。 总的来说,“decoupling of mode”是一种通过解开紧密耦合的模块或功能之间的关系,使得系统更加灵活、可扩展和可维护的方法。它在各种领域,包括软件开发、系统设计和工程管理等方面都有着广泛的应用和重要的价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘大彪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值