GNN等优缺点总结及解决方案

2023-11-16

https://www.zhihu.com/question/338051122
https://www.zhihu.com/question/346942899
https://zhuanlan.zhihu.com/p/291230435

  1. GCN的缺点在于它灵活性差transductive,并且扩展性非常差,除此之外这篇论文借助验证集来早停帮助性能提升,跟它半监督学习的初衷有点相悖。训练是full-batch的,难以扩展到大规模网络,并且收敛较慢
  2. GraphSage论文旨在提升gcn扩展性和改进训练方法缺陷。它将模型目标定于学习一个聚合器而不是为每个节点学习到一个表示,这中思想可以提升模型的灵活性和泛化能力。除此之外,得益于灵活性,它可以分批训练提升收敛速度。但是它的问题是因为节点采样个数随层数指数增长,会造成模型在time per batch上表现很差,弱于GCN,这方面的详细讨论可以参考Cluster-GCN这篇论文。虽然支持mini-batch方式训练,但是训练较慢,固定邻居数目的node-wise采样,精度和效率较低。
  3. GAT这篇论文创新之处是加入attention机制,给节点之间的边给予重要性,帮助模型学习结构信息。相对的缺点就是训练方式不是很好,其实这个模型可以进一步改,用attention做排序来选取采样节点,这样效果和效率方面应该会有提升。参数量比GCN多,也是full-batch训练;只用到1-hop的邻居,没有利用高阶邻居,当利用2阶以上邻居,容易发生过度平滑(over-smoothing)

Problem:

  1. Why? gcn增加深度会降低模型效果
  • 数据集太小,overfitting的问题,在一些数据上training acc为100%的大概率是这个问题,需要通过防止过拟合的技术来解决

  • vanishing gradient,这是CNN里一样存在的问题,当层数太深导致网络的参数不能得到有效的训练。这个问题可以加skip connections可以有效解决

  • over smoothing同一个连通分量里的节点会收敛的一个值,一个解决的方法是通过有效地改变图的结构或卷积的领接节点来解决。比如在点云里用动态knn/dilation来建边,但在其他图数据,这个方法会丢失边的信息。

  • 主要解决方案:skip-connection: 残差网络

    • DeepGCNs: Can GCNs Gobas Deep as CNNs?
      • 这篇论文主要讨论了GCN的深度问题,文中用了ResGCN,DenseGCN和Dilation等方法,最后效果比较明显。网络层数可以达到56层,并且有3.7个点的提升。
    • Deep insights into Graph Convolution Networks for Semi-supervised Learning
      • 这篇论文只看前面对于过度平滑的分析即可。
    • Representation learning on graphs with jumping knowledge networks
      • 这篇论文建立一个相对比较深的网络,在网络的最后当一个层聚合器来从所有层的输出中进行选择,来抑制noise information的问题。

PS: 即便使用了残差连接,GCN也不可能做的太深,基本就是3-5层左右的样子。
- 这是因为GCN可以被看作低通滤波器,叠加低通滤波器具有明显的过度平滑现象。如果想要做的更深,可以考虑一下DropEdge的方法,通过在训练过程中随机扔掉一些边来缓解过度平滑的现象,这种方法最近被证明是有效的。
- 修正:在采用了BN层和residual连接时,gcn可以做很深。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNN等优缺点总结及解决方案 的相关文章

随机推荐

  • IDEA的一些有点用的插件

    工欲善其事 必先利其器 想知道你和IDEA还差哪些人机合一的插件么 看文章就对了 1 Key Promoter X Key Promoter X 插件 IDEA 快捷键提示工具 在每次我们使用鼠标进行 IDEA 的某个操作 Key Prom
  • JS 中 delete 与 splice 与 循环

    JS Array 循环5万数据并删除1万数据 对比Delete与Splice 的运行效果 已经很晚了 但是 还是把中午实验的东西码上来吧 不然我就可能要忘记了 快点写完 好休息 趁这几天还有激情研究代码 多写点 充实充实自己 JS 中有 O
  • FastDFS下的storage服务启动卡住

    环境 ubuntu 16 04 STORAGE SERVER的状态通常有七种 FDFS STORAGE STATUS INIT 初始化 尚未得到同步已有数据的源服务器 FDFS STORAGE STATUS WAIT SYNC 等待同步 已
  • java基础面试题系列(21 -30)

    20200708 by 1z 请你解释Object如果不重写hashcode 的话 hashcode 是如何计算出来的 Object的hashcode方法是本地方法 是使用c语言或者c 语言实现的 通常是根据 某种策略而形成的 hashco
  • 春秋云镜 CVE-2022-0410

    春秋云镜 CVE 2022 0410 WordPress plugin The WP Visitor Statistics SQLI 靶标介绍 WordPress plugin The WP Visitor Statistics Real
  • Mysql精华总结01——架构、存储引擎和数据类型

    一 Mysql架构 和其它数据库相比 MySQL有点与众不同 它的架构可以在多种不同场景中应用并发挥良好作用 主要体现在存储引擎的架构上 插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离 这种架构可以根据业务的需求和实
  • 显卡RTX2080 + CUDA10 + win10 + tensorflow配置安装探坑记

    步骤主要参考该博客https blog csdn net mayunhe cs article details 87216299 结合自己探坑经历记录了具体过程 1 安装显卡驱动 先是在微星官网上下载对应显卡的驱动 不知道为啥给的是nvid
  • 前端学习--常用PS方法

    本文使用的软件为ps CC 2019 1 切图 1 打开一张psd文件 2 取消背景色 3 选择切片工具 4 按住 CTRL 键进行切图 切完后自行调整切图宽高 当切好第一张图后同时按住 CTRL 和 ALT 可按照的第一张切图的宽高进行第
  • Redis主从复制失败(master_link_status:down)

    Redis配置主从复制时遇到这个问题 先确认配置文件没有不对后开始苦恼 在网上查这个问题发现说的都一样 根据网上的再排查配置文件还是没有问题 又确认了不是防火墙的问题 陷入了更大的苦恼 后来看到了stackoverflow上一个评论 意识到
  • 数据库设计-简化字典表

    在进行数据库设计时 我们经常会遇到各种各样的业务需求 从而设计出各种各样的表 而想要做好一个数据库 不但需要前期对各种业务需求的深度理解 还需要在后期项目完善的过程中对数据库更新修改从而使得数据库设计的越发完美 对于那些涉及到业务的表或许不
  • 我希望在 25 岁时知道的14件事(现在我已经 38 岁了)

    我在 38 岁生日后不久写作 是反思的时候了 我不得不把我现在所知道的一点点传递出去 1 专注于变得有用 所有这些关于寻找快乐和做你热衷的事情都是一种分心 专注于建立你对世界的价值 当然 首先要尝试很多东西 然后逐渐开始专注于在更少的事情上
  • Dubbo架构整体设计

    一 Dubbo调用关系说明 1 1 组成部分 在这里主要由四部分组成 Provider 暴露服务的服务提供方 Protocol 负责提供者和消费者之间的协议交互数据 Service 真实的业务服务信息 可以理解成接口和实现 Containe
  • 神经网络综述

    本文指在介绍机器学习中的神经网络的多种变种 包括简单的代码实现及优缺点并尽量不涉及到公式 希望能给阅读者建立起一个关于神经网络的综合概念 因此 本文会涉及到一点神经网络的原理但不会太深入以致于读者迷失在其中而无法得到一个全局性的概念 另外
  • SQLServer2019安装教程

    可以去官网下载 我百度网盘也有都一样 https pan baidu com s 1i3umqHXSUMbxJ9rRi6mU4A 提取码 5g9q 打开应用程序 点击安装 点第一个全新得SQL server独立安装 下一步 在这一步可能有需
  • TCP-IP详解:超时重传机制

    参考教材 TCP IP Guide 超时重传是TCP保证数据传输可靠性的又一大措施 本文主要介绍重传TCP报文的两大举措 超时重传和快速重传 超时重传机制 超时重传指的是 发送数据包在一定的时间周期内没有收到相应的ACK 等待一定的时间 超
  • 几款好用的指纹识别工具

    几款好用的指纹识别工具 在web渗透过程中 对站点进行指纹探测识别非常重要 了解网站所用的web框架或者cms可以为后续的渗透提供思路和突破口 这篇文章主要用于总结几款我平时工作中经常使用的指纹识别工具 一 whatweb whatweb是
  • Python Requests使用Cookie的几种方式

    本文主要给大家介绍了关于Python Requests使用Cookie的几种方式 Python中的requests库可以使用cookie来维持会话状态 实现登录等操作 需要的朋友可以参考下 一 通过headers参数使用 通过headers
  • c语言实现字符串的指定位置删除

    要求 任意输入一串字符串 指定要删除的位置 并输入要删除指定位置后字符的个数 实现代码如下 include
  • el-table绑定的数组里面的对象值进行修改时,视图没有更新

    在Vue js中 如果您在对绑定到el table的数组里面的对象值进行修改后发现视图没有更新 可能是因为Vue js无法检测到数据的变化 解决这个问题的方法有以下几种 使用Vue set 方法显式地告诉Vue js数据已经发生了变化 例如
  • GNN等优缺点总结及解决方案

    https www zhihu com question 338051122 https www zhihu com question 346942899 https zhuanlan zhihu com p 291230435 GCN的缺