当前位置: 首页 > news >正文

Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification

Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification

Neurips 24

推荐指数: #paper/⭐⭐⭐#​

摘要

我们的研究结果表明,由于GNN中的超参数设置次优,之前报道的GT的优越性可能被夸大了。值得注意的是,通过轻微的超参数调整,这些经典GNN模型就实现了最先进的性能,在所检查的18个不同数据集中的17个数据集中,与最近的GT相匹配甚至超过了。

贡献:

  1. 通过适当的超参数调整,经典GNN可以在具有多达数百万个节点的同配图和异配图的节点分类中实现极具竞争力的性能。值得注意的是,经典GNN的表现优于最先进的GT,在18个数据集中的17个数据集上排名第一。这表明之前声称的GT相对于GNN的优势可能被夸大了,可能是由于GNN评估中的超参数配置次优。
  2. 我们的消融研究对用于节点分类的GNN超参数有价值的见解。我们证明了(1)normalization对于大规模图至关重要;(2)Dropout始终被证明是有益的;(3)残差链接可以显着提高性能,尤其是在异亲图上;(4)异配图上的GNN往往在更深的层中表现得更好

GNN训练的关键参数

Normalization

具体的是,一般有Layer Normalization 和bath normalization两种

$$\boldsymbol{h}_v^l=\sigma(\mathrm{Norm}(\sum_{u\in\mathcal{N}(v)\cup\{v\}}\frac{1}{\sqrt{\hat{d}_u\hat{d}_v}}\boldsymbol{h}_u^{l-1}\boldsymbol{W}^l)).$$

Dropout

$$\boldsymbol{h}_v^l=\mathrm{Dropout}(\sigma(\mathrm{Norm}(\sum_{u\in\mathcal{N}(v)\cup\{v\}}\frac1{\sqrt{\hat{d}_u\hat{d}_v}}\boldsymbol{h}_u^{l-1}\boldsymbol{W}^l))).$$

Residual Connections(残差连接)

残差网络可以明显的增加GNN的性能通过将输入层和输出层链接到一起

$$\boldsymbol{h}_v^l=\mathrm{Dropout}(\sigma(\mathrm{Norm}(\boldsymbol{h}_v^{l-1}\boldsymbol{W}_r^l+\sum_{u\in\mathcal{N}(v)\cup\{v\}}\frac1{\sqrt{\hat{d}_u\hat{d}_v}}\boldsymbol{h}_u^{l-1}\boldsymbol{W}^l)))$$

网络深度:

虽然DeepGCN和DeeperGCN等之前的研究主张使用最多56层和112层的深度GNN,但我们的研究结果表明,可以通过2-10层的GNN架构来实现相当的性能。

image

image

image

观测结果,结论:

对同配图的观察(表2)。经典GNN仅对超参数进行轻微调整,在同配图的节点分类任务中具有高度竞争力,在许多情况下往往优于最先进图transformer。

对异配图的观察(表3)。我们的实验显着增强了之前报道的异性图上经典GNN的最佳结果,超越了为此类图量身定制的专业GNN模型,甚至超越了领先的图Transformer架构。这一进步不仅支持而且强化了先前文章中的发现,即传统GNN是异配图的有力竞争者,挑战了它们主要适合同配图结构的普遍假设。

在roman-empire方面,GCN的表现增长了17.58%。有趣的是,我们发现改善主要源于残差连接,我们的消融研究将对残余连接进行进一步分析

image

对大图上的观察(表4)。我们的实现显着增强了之前报告的经典GNN结果,在某些情况下,准确性出现了两位数的提高。它在这些大型Graph数据集(无论是同配还是异配)中取得了最好的结果,并且性能优于最先进的图transformer。这表明消息传递对于学习大图上的节点表示仍然非常有效

总而言之,基本GNN可以在大规模图形上实现最著名的结果,这表明当前的Graph transformer尚未解决过度平滑和长距离依赖性等GNN问题。

消融

观察1:normalization(BN或LN)对于大规模图形上的节点分类很重要,但在小图形上不太重要。

image

normalization在大图中始终至关重要,去掉会导致GraphSAGE和GAT对ogbn蛋白的准确性分别降低4.79%和4.69%。我们认为这是因为大图显示了更广泛的节点特征,从而导致整个图表中的数据分布不同。normalization有助于在训练期间标准化这些特征,确保更稳定的分布。

观察2:人们一致认为,Dropout对于节点分类至关重要。

观察3:残差连接可以显着提高特定数据集的性能,对异配图的影响比对同配图的影响更明显。

image

观察4:与同配图相比,更深的网络通常会导致异性图的性能提高更大。

我们的研究对基础GNN模型在节点分类任务中的功效进行了彻底的重新评估。通过广泛的实证分析,我们证明这些经典GNN模型可以达到或超过GT在各种图数据集上的性能,挑战GT在节点分类任务中的明显优势。此外,我们全面的消融研究还深入了解了各种GNN配置如何影响性能。我们希望我们的研究结果能够促进图机器学习研究中更严格的实证评估

总结:

本文中使用的残差公式类似于: h v l = h v l − 1 + F ( h v l − 1 ) h_v^l=h_v^{l-1}+F(h_v^{l-1}) hvl=hvl1+F(hvl1)。其思想是将第i层输出和第i-1层的输入联系在一起

个人觉得其与雪花假设等有相似之处:

$$\begin{equation} h_v^l = \begin{cases} F(h_v^{l-1}) & \text{if } v < l, \\ h_v^{l-1} & \text{if } v \geq l. \end{cases} \end{equation}$$

其思路是在第l层后使用Identity函数。

其思想都是认为,在某种情况下,原始特征已经和聚合的特征一样重要了。本文直接将原始特征和聚合特征相加,雪花假设是在聚合特征到某种情况下后对此节点停止特征传播。哪种更有效,可能在现在的手头的工作做完之后做消融

相关文章:

Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification

Classic GNNs are Strong Baselines: Reassessing GNNs for Node Classification Neurips 24 推荐指数&#xff1a; #paper/⭐⭐⭐#​ 摘要 我们的研究结果表明&#xff0c;由于GNN中的超参数设置次优&#xff0c;之前报道的GT的优越性可能被夸大了。值得注意的是&#xff…...

Android 字节飞书面经

Android 字节飞书面经 文章目录 Android 字节飞书面经一面二面 一面 1. 线程是进程的一部分&#xff0c;一个线程只能属于一个进程&#xff0c;而一个进程可以有多个线程&#xff0c;但至少有一个线程。 2. 根本区别&#xff1a;进程是操作系统资源分配的基本单位&#xff0c;…...

选择好友窗口(三)

选择好友窗口&#xff08;三&#xff09; 前言 在前两集我们就完成了整个左半部分的内容了&#xff0c;那么我们这一集开始就要完成我们的选择好友窗口的右侧部分。 需求分析 我们要做出的效果如下图 可以看到我们整个布局是一个网格的布局&#xff0c;当然也可以做成一个垂…...

【含文档】基于ssm+jsp的音乐播放系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了两个…...

【C语言】动态内存开辟

写在前面 C语言中有不少开辟空间的办法&#xff0c;但是在堆上开辟的方法也就只有动态内存开辟&#xff0c;其访问特性与数组相似&#xff0c;但最大区别是数组是开辟在栈上&#xff0c;而动态内存开辟是开辟在堆上的。这篇笔记就让不才娓娓道来。 PS:本篇没有目录实在抱歉CSD…...

Redis缓存在thinkPHP/fastAdmin框架中的应用

Redis缓存在thinkPHP/fastAdmin框架中的应用 引言 在现代Web开发中&#xff0c;性能优化是一个永恒的话题。随着用户数量的增加和业务逻辑的复杂化&#xff0c;如何提高应用的响应速度和处理能力成为了开发者们必须面对的挑战。缓存技术作为提升性能的有效手段之一&#xff0…...

Ceisum无人机巡检视频投放

公司投标内容有个视频投放的功能动画&#xff0c;原本想实现这么一个效果&#xff1a; 案例效果来自别人的展示作品&#xff0c;Leader一眼就相中了这个效果&#xff0c;可惜别人的终究是别人的&#xff0c;又不会白白给你&#xff0c;终究是要自己动手尝试。 动画方面的展示…...

分享几款开源好用的图片在线编辑,适合做快速应用嵌入

图片生成器是指一种工具或软件&#xff0c;用于自动生成图片或图像内容&#xff0c;通常依据用户设定的参数或模板进行操作。这种工具能够帮助用户快速创建视觉效果丰富的图像&#xff0c;而无需具备专业的设计技能。 在数字化时代&#xff0c;图片编辑已经成为日常工作和生活的…...

闪存学习_1:Flash-Aware Computing from Jihong Kim

闪存学习_1&#xff1a;Flash-Aware Computing from Jihong Kim 前言一、Storage Media&#xff1a;NAND Flash Memory1、概念2、编程和擦除操作3、读操作4、异地更新操作&#xff08;Out-Place Update&#xff09;5、数据可靠性6、闪存控制器&#xff08;SSD主控&#xff09;7…...

如何将本地项目上传至Gitee仓库(详细教程)

前提条件 1、本地电脑安装Git客户端 2、本地已有项目 3、Gitee注册好了账户 如果没有安装Gitee 可以区菜鸟查看一下安装教程 Git教程https://www.runoob.com/git/git-tutorial.html 操作示例 前提条件已经准备好的情况下登录gitee 码云 https://gitee.com 点解右侧加号 新…...

redis详细教程(3.hash和set类型)

hash Redis中的Hash是一种数据结构&#xff0c;用于存储键值对集合。在Redis中&#xff0c;Hash非常适合表示对象&#xff0c;其中对象的每个字段都对应一个键值对。以下是关于Redis中Hash的详细讲解&#xff1a; 特点&#xff1a; 1. 键值对集合&#xff1a;Hash是一个包含…...

性能测试详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始&#xff0c;到客户端接收到最后一个字节数据为止所消耗的时间。响应时间按软件的特点…...

修改ruoyi的logo和标题

1、修改网页标签上的图标和标题 静态修改 标签页上的 图标 直接替换public/favicon.ico文件为你自己的图标文件 如果你的图标文件名不是favicon.ico&#xff0c;你还需要在public/index.html中相应地修改这一行&#xff0c;将/favicon.ico替换为你的图标文件路径。 静态修改…...

vue系列==vue3新语法

vue系列vue3新语法 1、setup组合式API入口函数 2、利用ref函数定义响应式数据 3、利用reactive函数定义响应式数据 1、setup组合式API入口函数 1、Vue3为组合式API提供了一个setup函数&#xff0c;所有组合式API函数都是在此函数中调用的&#xff0c;它是组合式API的使用入口…...

001-Kotlin界面开发之Jetpack Compose Desktop学习路径

Compose Desktop学习之路 学习过程 理解Kotlin的基本语法 Compose Desktop采用Kotlin构建&#xff0c;因此对Kotlin的基本语法有很好的理解是必不可少的。你可以从官方的Kotlin文档开始。 用一句话概括&#xff0c;Kotlin是一种现代的、静态类型的编程语言&#xff0c;它结合…...

qt QStackedLayout详解

QStackedLayout类提供了一种布局方式&#xff0c;使得在同一时间内只有一个子部件&#xff08;或称为页面&#xff09;是可见的。这些子部件被维护在一个堆栈中&#xff0c;用户可以通过切换来显示不同的子部件&#xff0c;适合用在需要动态显示不同界面的场景&#xff0c;如向…...

python实现钉钉群机器人消息通知(消息卡片)

直接上代码 python """ 飞书群机器人发送通知 """ import time import urllib3 import datetimeurllib3.disable_warnings()class DingTalkRobotAlert():def __init__(self):self.webhook webhook_urlself.headers {Content-Type: applicatio…...

防火墙技术应用

目录 防火墙安全功能指标防火墙性能指标防火墙部署防火墙应用案例-Linux防火墙防火墙应用案例-华为包过滤防火墙ACL(基本)防火墙应用案例-工控防火墙部署 防火墙安全功能指标 我们防火墙也会提供各种各样的互联接口&#xff0c;它这种接口有以太网、快速以太网、千兆以太网&am…...

docker engine stopped

1&#xff09;环境&#xff1a;win 10 2&#xff09;docker安装时已经已经安装了虚拟机 3&#xff09;启用网络适配器 4&#xff09;启用docker服务&#xff08;依赖服务LanmanServer&#xff09; 5&#xff09;全都弄好了&#xff0c;docker还是打不开&#xff0c;没办法了&a…...

Redis- 内核的分配内存限制的警告“WARNING Memory overcommit must be enabled!”

文章目录 问题描述报错原因影响解决方案注意事项 问题描述 [rootredisxxx]# redis-sentinel ./sentinel.conf 19638:X 01 Nov 2024 16:57:27.180 # WARNING Memory overcommit must be enabled! Without it, background save or replication may fail under low memory condi…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...