码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Re46:读论文 DAGNN Towards Deeper Graph Neural Networks


    诸神缄默不语-个人CSDN博文目录

    论文名称:Towards Deeper Graph Neural Networks
    模型简称:DAGNN

    本文是2020年KDD论文,下载地址是https://www.kdd.org/kdd2020/accepted-papers/view/towards-deeper-graph-neural-networks
    本文主要关注在无权无向、节点有特征的图(attributed graph)中,如何加深图神经网络的层数(关于传统GNN为什么层数不能太多,这个问题在其他工作中的解释,反正我以前的博文都写过)

    本文认为传统GNN不能层数太多,是因为模型加深→感受野增大→效果变差
    模型加深为什么会导致感受野增大,这个我以前博文也写过,懒得重复了。
    感受野增大为什么会导致效果变差,本文认为是因为出现了过平滑(over-smoothing)问题。以前的工作1证明了GCN事实上是一种特殊的、对称的拉普拉斯平滑2,这会导致多层GNN后节点表征过度相近。JK3则将节点影响的分布与随机游走4关联起来,也研究了同样的问题。(顺带一提这2篇工作在APPNP论文中也提及过,见我写的APPNP阅读笔记:Re0:读论文 PPNP/APPNP Predict then Propagate: Graph Neural Networks meet Personalized PageRank)
    SGC5是谱域低通滤波器,减轻了这一问题。

    层数低导致 1. 边缘节点(peripheral nodes)从邻居获得的信息不足。2. 感受野太小,导致半监督任务重,训练信号不够传播到全图上。

    本文认为导致这一问题的根源在于transformation和propagation的表征被entangle了,这样会使参数增多,而且二者的职责不同,本就应该分开,因此将二者解耦,这样就能让GNN变深了:这就是DAGNN。
    (这个思想跟APPNP、D&S、AutoGraph中的概念都颇多相似之处,这块参考我以前写过的博文)
    证明过程我已经看不懂我当时的笔记说明我当时有没有看懂了,不写了。总之Theorem 3.1关于马尔科夫链的部分证明了在无限层之后,特征会变得一样。

    将GCN的两个部分解耦:
    Z = M L P ( X ) X o u t = softmax ( A ^ k Z ) Z=MLP(X)\\ X_{out}=\text{softmax}(\hat{A}^kZ) Z=MLP(X)Xout​=softmax(A^kZ)

    DAGNN主要的贡献在于两点:1. 解耦transformation和propagation 2. adaptive adjustment mechanism使节点可以自适应获取局部或者全局邻居的信息

    DAGNN的公式:
    Z = M L P ( X ) H l = A ^ l Z H = stack ( Z , H 1 , … , h k ) S = σ ( H s ) S ~ = reshape ( S ) Z=MLP(X)\\ H_l=\hat{A}^lZ\\ H=\text{stack}(Z,H_1,\dots,h_k)\\ S=\sigma(Hs)\\ \tilde{S}=\text{reshape}(S) Z=MLP(X)Hl​=A^lZH=stack(Z,H1​,…,hk​)S=σ(Hs)S~=reshape(S)
    第一步是transformation,第二步是propagation,第三步是adaptive部分, s s s是retainment scores

    我当年读这篇论文的时候就感觉最后绕那一步只是为了把尺寸给凑出来……就,调参是这样的……

    官方GitHub代码:https://github.com/divelab/DeeperGNN
    我参考官方代码实现,揉到我自己写的复现代码包里面:https://github.com/PolarisRisingWar/rgb-experiment/blob/master/rgb_experiment/models/dagnn.py


    1. (2018 AAAI) Deeper Insights Into Graph Convolutional Networks for Semi-Supervised Learning ↩︎

    2. (1995) A Signal Processing Approach To Fair Surface Design ↩︎

    3. (2018 ICML) Representation Learning on Graphs with Jumping Knowledge Networks ↩︎

    4. Random walks on graphs: A survey ↩︎

    5. (2019 ICML) Simplifying Graph Convolutional Networks ↩︎

  • 相关阅读:
    【算法-哈希表2】快乐数 和 两数之和
    mongodb整合springbootQ
    redis基础和原理全覆盖
    Redis 先写数据库及先写缓存一致性问题
    每天五分钟深度学习:解决for循环效率慢的关键在于向量化
    JDY-16 蓝牙4.2模块串口测试方法
    面向大数据存算分离场景的数据湖加速方案
    18-SpringBoot 整合MyBatis-Plus
    spring boot项目上传头像
    智能视频分析系统AI智能分析网关V3触发告警图片不显示该如何解决?
  • 原文地址:https://blog.csdn.net/PolarisRisingWar/article/details/132941191
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号