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

文章目录

  • 链接
  • 一、摘要
  • 二、引言
  • 三、前文
  • 总结

链接

论文题目:解耦图神经网络的深度和范围(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模型​中的权重参数W和激活层​的使用次数(一样的)就是GNN的深度,图卷积层数,就是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图上的两个视图。

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

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

未完待更新

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

  1. COMBINING LABEL PROPAGATION AND SIMPLE MODELS OUT-PERFORMS GRAPH NEURAL NETWORKS(CorrectSmooth)阅读笔记

    文章目录 链接 一.摘要 二.引言 三."修正和平滑"模型 四.转导式节点分类实验 四.总结 总结 红色部分为个人的一些解读,不足之处请多多指点! 链接 论文题目:结合标签传播和简 ...

  2. 图神经网络(Graph Neural Networks,GNN)综述

    鼠年大吉 HAPPY 2020'S NEW YEAR 作者:苏一 https://zhuanlan.zhihu.com/p/75307407 本文仅供学术交流.如有侵权,可联系删除. 本篇文章是对论文 ...

  3. Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记

    Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记 文章标题:A ...

  4. 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] Paper原文:https://dl.acm.org/doi/pdf/10.1145/3543853​​​​​​ ...

  5. Node Classification with Graph Neural Networks(使用GNN进行节点分类)

    文章目录 Setup 准备数据集 处理和可视化数据集 拆分数据集为分层训练集和测试集 训练和评估的实现 Feedforward Network(FFN) 构建一个Baseline神经网络模型 为bas ...

  6. 《Continual lifelong learning with neural networks : A review》阅读笔记

    增量学习更多的起源于认知科学神经科学对记忆和遗忘机制的研究,Continual lifelong learning with neural networks : A review综述探讨了增量学习在生 ...

  7. Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction论文阅读笔记

    我的博客链接 0. 前言 1. 作者试图解决什么问题? 作者想在KGE中对语义层级(semantic hierarchies)进行建模. 2. 这篇论文的关键元素是什么? semantic hiera ...

  8. Moir´e Photo Restoration Using Multiresolution Convolutional Neural Networks 摩尔纹领域论文阅读复现

    写在前面 最近去广图借了几本书,啃了一下pytorch相关的书,大概了解了这个框架内部一些常用的API,马上就开始推进摩尔纹的进度,挑了这篇领域内的经典论文来品读并且复现. 本次论文复现的github ...

  9. Convolutional Neural Networks for Sentence Classification 阅读笔记

    1.本文解决了什么问题? 本文以预训练好的词向量矩阵表示一个句子,并且将其作为卷积神经网络的输入层,再通过标记好的 数据训练出神经网络模型从而达到预测数据类别的效果. 本文于14年发表,至今已被引用了 ...

最新文章

  1. python urllib2 开启调试
  2. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程
  3. 程序员面试题精选100题(19)-反转链表[数据结构]
  4. 成功解决 bs4\__init__.py:219: UserWarning: b'.' looks like a filename, not markup. You should probably
  5. 虚成员(virtual)
  6. java,验证码base64编码到json字符串出显数据一行一行的问题,关于base64编码函数解释
  7. Java servlet一个最简单的例子
  8. qt 设置按钮大小_Qt官方示例双向按钮
  9. asp.net core 使用 TestServer 来做集成测试
  10. HTML+Javascript制作拼图小游戏详解(一)
  11. select、bash函数初识及rpm命令详解
  12. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  13. Centos 下Nginx 自启动脚本
  14. Mac升级emacs26
  15. linux拆分文件会影响源文件吗,linux split拆分文件
  16. 【论文写作技巧】Endnote参考文献统一输出格式
  17. Python下selenium的get()方法大量时间超时报错TimeOut
  18. 【虾神白话空间统计】笔记:置信度、零假设、PZ值、随机分布
  19. PAT_乙级_1013_筱筱
  20. 什么是NaN,NaN==NaN?

热门文章

  1. php跳动的公告栏,可以文本显示的公告栏
  2. MAC地址是干什么的?底层原理是什么?
  3. mysql性能监控指标_mysql性能监控指标
  4. java-php-python-ssm一起组局校园交友平台计算机毕业设计
  5. oracle简单的游标示例,Oracle游标简单示例
  6. 电子相册制作软件会声会影
  7. 企业网站为何喜欢选择织梦系统?织梦cms的好处有哪些?
  8. DDD单根 聚合根 实体 值对象
  9. python123温度转换答案_Python温度转换基本语法元素分析
  10. javaCV开发详解之17:GIF和APNG动态图片推流和录制成视频文件(以gif转mp4和apng转mp4为例)