论文笔记:DropMessage: Unifying Random Dropping for Graph Neural Networks

news2025/7/14 21:58:38

(AAAI 23 优秀论文)

1 intro

  • GNN的一个普遍思路是,每一层卷积层中,从邻居处聚合信息
    • 尽管GNN有显著的进步,但是在大规模图中训练GNN会遇到各种问题:
      • 过拟合
        • 过拟合之后,GNN的泛化能力就被限制了
      • 过渡平滑
        • 经过多轮邻居信息整合的迭代之后,GNN中不同点之前的表征会很相似
      • 不够鲁棒
        • 由于需要不断迭代聚合邻居信息,所以带有噪声的图可能会影响到GNN的表现

  • 上述提到的问题可以通过random dropping的方式解决
    • random dropping可以看作,通过对训练数据加噪声,缓解过拟合
    • DropOut
      • 对点的特征进行Drop out
    • DropEdge
      • 对图中的边进行drop out
    • DropNode
      • 对图中的点进行drop out
    • ——>他们都在一定程度上提升了GNN的表现
    • 但是一些开放性的问题仍然摆在random dropping问题前:
      • 引入GNN的随机噪声使得参数更难收敛,训练过程不稳定
      • 很难针对所有的图和所有的模型找到一个通用的最佳dropping方案来
      • 尚未有理论说明random dropping的有效性
  • 这篇Paper提出了一种新的random dropping方法,称之为DropMessage
    • 可以应用在所有基于信息传递的GNN中
    • 在消息矩阵上进行drop操作
      • ——>可以让同一个点向不同的邻居传递不同的消息
    • 将现有的random dropping方法整合到DropMessage中
    • 从理论层面证明了在GNN中添加random dropping,等价于提供了一个额外的正则项
    • 从信息论的角度,DropMessage保留了最多的信息多样性、是其他random dropping方法的上界

 2 Notation & Preliminary

2.1 记号

  • G=(V,E)表示图
    • \mathbf{V}=\left\{v_1, \ldots, v_n\right\}表示点集
    • E是边集
  • 节点特征矩阵为\mathbf{X}=\left\{x_1, \ldots, x_n\right\} \in \mathbb{R}^{n \times c}
  • 邻接矩阵是\mathbf{A}=\left\{a_1, \ldots, a_n\right\} \in \mathbb{R}^{n \times n},Aij表示点vi和点vj之间的邻接关系
  • 每个点的度是\mathbf{d}=\left\{d_1, \ldots, d_n\right\}
    • 图的度是\mathbf{d}(\mathbf{G})=\sum_i^n d_i
  • 我们有k条边(有向边),那么信息传递矩阵为\mathbf{M}=\left\{m_1, \ldots, m_k\right\} \in \mathbb{R}^{k \times c}
    • 每一行表示一条边上传递的信息

 2.2 GNN

  • message passing的GNN可以表示为
    • h_i^{(l+1)}=\gamma^{(l)}\left(h_i^{(l)}, \mathcal{A G G}_{j \in \mathcal{N}(i)}\left(\phi^{(l)}\left(h_i^{(l)}, h_j^{(l)}, e_{j, i}\right)\right)\right)
      • h_i^{(l)}表示第l层点vi的表征
      • N(i)是点vi的邻居
      • ej,i是点j到i的边
      • \phi^{(l)},\gamma^{(l)}是可微函数
      • AGG是一种聚合函数(比如SUM,MEAN等)
  • \mathbf{K}^{(l)} \in \mathbb{R}^{k \times n}为一个one-hot编码(每一行表示是这条边是由哪个点射出的)
    • 信息传递矩阵M可以表示为\mathbf{M}^{(l)}=\mathbf{K}^{(l)} \mathbf{H}^{(l)}

3 DropMessage

3.1 方法介绍

  • 在信息传递矩阵M上进行drop操作
  • 记dropping rate为δ,那么δ|M|个M上的元素将会被mask掉
  • 记一个伯努利分布\epsilon_{i, j} \sim \text { Bernoulli }(1-\delta)
    • 那么drop之后的信息传递矩阵为\widetilde{\mathbf{M}}_{i, j}=\epsilon \mathbf{M}_{i, j}(分布为1的保留,所以伯努利分布的p为1-δ)
    • 为了让drop之后的信息传递矩阵的期望和drop之前的期望一致,对drop之后的信息传递矩阵乘以一个系数\widetilde{\mathbf{M}}_{i, j}=\frac{1}{1-\delta} \epsilon_{i, j} \mathbf{M}_{i, j}

3.2 整合之前的random dropping方法

之前的几种random dropping,都可以看作是DropMessage的特例

3.3 理论部分

  • GNN上的无偏随机丢弃,可以看成是给目标函数添加了一个额外的正则项,这可以使得模型更鲁棒

3.4 DropMessage的好处

  • 减少样本方差
    • 随机丢弃会在训练过程中引入噪声,使得训练过程不稳定
    • 在给定丢弃率δ的情况下,DropMessage有最小的样本方差
  • 定义信息多样性
    • 包括特征多样性和拓扑多样性
      • 特征多样性指从不同点中保留的特征维数的数量(就是有多少个特征没有被完全丢弃掉)
      • 拓扑多样性指多少条有向边上有信息传递
    • Dropout、DropEdge、DropNode都不能保持信息多样性,但是DropMessage可以

4 实验

 

 

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

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

相关文章

Matplotlib精品学习笔记001-图形绘制常见的组分有哪些?

简介 从头学习,逐步精美 学习蓝本 学习资料是Quick start 内容 所有绘图的起始步骤 import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np通过一个简单的例子认识Matplotlib绘图的过程,见代码注释 import matplotlib.py…

重温Python基础知识点,又来重新巩固一遍

前言 最近有很多朋友刚接触python学的还是有点模糊 还有的朋友就是想重温一下基础内容,毕竟基础不牢地动山摇 行吧,就总结了以下的一些知识点,可以都看看哈 一、开发环境搭建 更多学习资料.点击领取即可 1.1 Python解释器的安装 Python解…

ctfshow 代码审计专题

文章目录web 301web 302web 303web 304web 305web 306web 307web 308web 309web 310web 301 简单看一下,在checklogin.php中发现了sql语句,且没过滤,直接sql注入。 –form测试,–batch绕过waf.–dump列出所有库和表。 得到账号密码&#xf…

MySQL数据库————MVCC

MySQL的脏读、幻读、不可重复读 脏读 现在有两个事务在操作table表,事务B修改了id2的name字段为李老四,但是没有提交,事务A查询id2的数据,得到name为李老四;事务B发生回滚,id2的数据的name又变回李四&…

Linux 防火墙配置(iptables和firewalld)

目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall-cmd命令行基础配置 firewall-config图形化配置 防火墙基本概念 防火墙就是根据系统管理员设定的…

用 tensorflow.js 做了一个动漫分类的功能(二)

前言:前面已经通过采集拿到了图片,并且也手动对图片做了标注。接下来就要通过 Tensorflow.js 基于 mobileNet 训练模型,最后就可以实现在采集中对图片进行自动分类了。这种功能在应用场景里就比较多了,比如图标素材站点&#xff0…

java集成redis简单存储

这里主要将数据存redis并设置过期时间、通过key删除redis、通过key更新redis(续期) 将数据存redis并设置过期时间 引入redis依赖 import org.springframework.data.redis.core.StringRedisTemplate;AutowiredStringRedisTemplate stringRedisTemplate…

【基础教程】Appium自动化测试,太详细了!

Appium简介Appium是一款开源的Appium自动化工具, 基于Webdriver协议, 主要有以下3个特点:全能: 支持iOS/Andorid/H5/混合App/WinApp通用: 支持Win/Linux/Mac, 支持Java/Python/Ruby/Js/PHP等各种语言开源: 免费App自动化测试工具对比iOS官方:Uiautomation/XCUITest: 白盒, UI测…

(二十)、完成个人中心页面的数据统计+设置详情页点赞用户的头像组【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1,个人中心页面的数据统计 数据统计包括两项内容:1.当前登录用户的点赞总数量。2.当前登录用户发布文章的总数量 1.1,在self页面data中定义对象 data() {return {totalObj:{artNum:0,likeNum:0}};},1.2,获取总数量的方法&#x…

多线程(初识线程)

线程的诞生 了解进程存在的意义 实现了并发编程的效果(并发编程:有可能是并发执行,也有可能是并行执行) 并发编程的目的:充分利用上多核CPU资源,提升运行效率 了解进程创建和销毁的过程带来的问题 进程是…

系列二、函数

一、定义 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。二、字符串函数 2.1、案例 2.1.1、concat 字符串拼接 s…

js中?.、??的具体用法

1、?. (可选链运算符) 在javascript中如果一个值为null、undefined,直接访问下面的属性,会报 Uncaught TypeError: Cannot read properties of undefined 异常错误。而在真实的项目中是会出现这种情况,有这个值就读这…

泛型擦除(Generic erase)(内含教学视频+源代码)

泛型擦除(Generic erase)(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87473560 源代码中使用的泛型,在经过编辑后,代码中就看不到泛…

PX4之飞行控制框架

PX4的飞行控制程序通过模块来实现,与飞控相关的模块主要有commander,navigator,pos_control,att_control这几个,分别可以在src/modules目录中找到。 commander - 指令/事件处理模块,处理指令、遥控器输入和…

新C++(9):谈谈,翻转那些事儿

"相信羁绊,相信微光,相信一切无常。"一、AVL树翻转那些事儿(1)什么是AVL树?在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。…

网上插画教学哪家质量好,汇总5大插画培训班

网上插画教学哪家质量好?给大家梳理了国内5家专业的插画师培训班,最新五大插画班排行榜,各有优势和特色! 一:国内知名插画培训机构排名 1、轻微课(五颗星) 主打课程有日系插画、游戏原画、古风插…

Tencent OS下逻辑卷(LVM)创建和扩容

测试环境是一个虚拟机,原配置1个虚拟盘。 创建4个虚拟盘,每盘2G并挂载在虚拟主机上,启动虚拟主机开始测试。 LVM英文是Logical Volume Manager,直接翻译为逻辑卷管理。 这种磁盘管理模式比较灵活,在磁盘空间不足的时…

深入浅出C++ ——容器适配器

文章目录一、容器适配器二、deque类简介1. deque的原理2. deque迭代器3. deque的优点和缺陷4. 为什么选择deque作为stack和queue的底层默认容器一、容器适配器 适配器的概念 适配器是STL六大核心组件之一,它是一种设计模式,该种模式是将一个类的接口转换…

大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad

前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介大规模 IoT 边缘容器集群管理的几种架构-1-RancherK3s 📚️Reference: IoT 边缘计算系列文章 HashiCorp 解决方案 - Nomad Docker 简介 Nomad: 一个简单而灵活的调度器和编排器,…

网络工程课(二)

ensp配置vlan 一、配置计算机ip地址和子网掩码 二、配置交换机LSW1 system-view [Huawei]sysname SW1 [SW1]vlan batch 10 20 [SW1]interface Ethernet0/0/1 [SW1-Ethernet0/0/1]port link-type access 将接口设为access接口 [SW1-Ethernet0/0/1]port default vlan 10 [SW1-E…