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 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++学习】继承

目录 一、继承的概念及定义 1、继承的概念 2、继承的定义 2.1 定义格式 2.2 继承关系和访问限定符 2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、复杂的菱形…

SpringMvc第五战-【SpringMvcJSR303和拦截器】

前言: 小编阐述了springmvc 中的文件下载,以及jrebel的使用和文件下载以及多文件下载! 在本次小编将会介绍JSR303的概念,应用场景和在具体实例的使用;和拦截器的应用 一.JSR303的介绍 1.什么是JSR303? JSR是Java S…

Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私

1. 引言 Aztec的架构,不同于当前“通过EVM兼容执行环境”所实现的区块链水平扩容趋势。Aztec内部笑称其构建的为首个非zkEVM协议。 Aztec专注于实现: 成为理解和需要智能合约隐私的开发者的终极解决方案。 Aztec为开发者提供构建隐私优先app所需的网…

【微信小程序开发】宠物预约医疗项目实战-环境配置与Vant UI集成

第一章 宠物预约医疗项目实战-环境配置与Vant UI集成 文章目录 前言一、Vant UI是什么?二、使用步骤2.1 安装 node.js2.2 通过 npm 安装vant2.3 修改 app.json2.4 修改 project.config.json2.5 构建 npm 包2.6 使用组件全局引入和局部引入全局引入局部引入 前言 Va…

基于Java+SpringBoot+Vue+uniapp点餐小程序(亮点:协同过滤算法、会员系统,购物车结算、在线聊天)

校园点餐小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 系统功能结构设计4.2 主要功能描述 五…

SpringBoot整合Flowable

1. 配置 &#xff08;1&#xff09; 引入maven依赖 <dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.7.2</version></dependency><!-- MySQL连接 -->&l…

MySQL--MySQL索引事务

事务的概念 事务指逻辑上的一组操作&#xff0c;组成这组操作的各个单元&#xff0c;要么全部成功&#xff0c;要么全部失败。 在不同的环境中&#xff0c;都可以有事务。对应在数据库中&#xff0c;就是数据库事务。 使用 &#xff08;1&#xff09;开启事务&#xff1a;start…

什么是接口自动化?为什么要做?和怎么做接口自动化?

服务端接口测试介绍 什么是服务端&#xff1f; 一般所说的服务端是指为用户在 APP 或 PC 使用的互联网功能提供数据服务的背后的一切。以天猫精灵智能音箱系列的产品链路为例&#xff0c;服务端便是网关&#xff08;包括网关在内&#xff09;之后的链路。 什么是接口&#xf…

【自然语言处理】【大模型】RWKV:基于RNN的LLM

相关博客 【自然语言处理】【大模型】RWKV&#xff1a;基于RNN的LLM 【自然语言处理】【大模型】CodeGen&#xff1a;一个用于多轮程序合成的代码大语言模型 【自然语言处理】【大模型】CodeGeeX&#xff1a;用于代码生成的多语言预训练模型 【自然语言处理】【大模型】LaMDA&a…

深入网络底层,了解Linux系统收发网络数据包的过程、原理、流程,附图文说明

深入网络底层&#xff0c;了解Linux系统收发网络数据包的过程、原理、流程&#xff0c;附图文说明。 Linux 服务器收到网络数据包&#xff0c;需要经过哪些处理&#xff0c;一步步将数据传给应用进程的呢&#xff1f;应用进程发送数据包时&#xff0c;Linux 又是如何操作将数据…

android studio platform使用体验分享(as无法跳转c/c++等native源码的福音,强烈推荐)

hi&#xff0c;粉丝朋友们&#xff1a; 大家好&#xff01;这些天粉丝朋友们分享了一下Android Studio for Platform 这个最新的google开发的阅读aosp源码的工具&#xff0c;特别适合做原生系统开发。具体官方介绍如下地址&#xff1a; 参考链接&#xff1a;https://developer.…

react的状态管理简单钩子方法

1.recoil useProvider文件: import { atom, useRecoilState } from recoil;const initState atom({key: initState,default: {state: [],}, })// 将业务逻辑拆分到一个单独文件中&#xff0c;方便进行状态管理 export interface StateProps {id: number;text: string;isFini…

差分进化算法解析:Scala实现详细指南及其在优化问题中的应用

1. 差分进化算法简介 差分进化算法(Differential Evolution, DE)是一种演化计算的方法,主要用于连续空间的优化问题。与其他进化算法如遗传算法不同,DE专门设计用于处理实数编码的解,使其成为处理连续优化问题的理想选择。 该算法的基本思想是通过结合当前代的个体与他们…

使用Python编写一个多线程的12306抢票程序

国庆长假即将到来&#xff0c;大家纷纷计划着自己的旅行行程。然而&#xff0c;对于很多人来说&#xff0c;抢购火车票人们成了一个令人头疼的问题。12306网站的服务器经常因为流量高而崩溃&#xff0c;导致抢票变得越来越严重异常困难。 首先&#xff0c;让我们来了解一下1230…

异地远程访问本地SQL Server数据库【无公网IP内网穿透】

文章目录 1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 Cpolar下载安装3.2 Cpolar的注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 现在我们身边的只能设备越来越多&#xff…

php经常遇到的方法和问题整理长期更新

1、array_shift() 函数 定义和用法 array_shift() 函数用于删除数组中的第一个元素&#xff0c;并返回被删除的元素。 注释&#xff1a;如果键名是数字的&#xff0c;所有元素都将获得新的键名&#xff0c;从 0 开始&#xff0c;并以 1 递增&#xff08;参见下面实例&#xff0…

京东获得店铺的所有商品 API 说明文档

item_search_shop-获得店铺的所有商品 jd.item_search_shop 注册账号获取测试key 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff0…

文心一言 VS 讯飞星火 VS chatgpt (94)-- 算法导论9.2 3题

三、用go语言&#xff0c;给出 RANDOMIZED-SELECT的一个基于循环的版本。 文心一言&#xff1a; 在循环中实现 RANDOMIZED-SELECT 的一个版本可以如下所示。这个版本使用 Go 语言编写&#xff0c;利用随机化来选择一个元素&#xff0c;并在循环中不断地调整选择的元素&#x…

【探索Linux】—— 强大的命令行工具 P.8(进程地址空间)

阅读导航 前言一、内存空间分布二、什么是进程地址空间1. 概念2. 进程地址空间的组成 三、进程地址空间的设计原理1. 基本原理2. 虚拟地址空间 概念 大小和范围 作用 虚拟地址空间的优点 3. 页表 四、为什么要有地址空间五、总结温馨提示 前言 前面我们讲了C语言的基础知识&am…

HTTP协议(超级详细)

HTTP协议介绍 基本介绍&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;是从万维网服务器传输超文本到本地浏览器的传送协议HTTP是一种应用层协议&#xff0c;是基于TCP/IP通信协议来传送数据的&#xff0c;其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现&#xff0…