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

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

(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 实验

 

 

相关文章:

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

(AAAI 23 优秀论文) 1 intro GNN的一个普遍思路是,每一层卷积层中,从邻居处聚合信息 尽管GNN有显著的进步,但是在大规模图中训练GNN会遇到各种问题: 过拟合 过拟合之后,GNN的泛化能力就被限制…...

木鱼cms系统审计小结

MuYuCMS基于Thinkphp开发的一套轻量级开源内容管理系统,专注为公司企业、个人站长提供快速建站提供解决方案。 ​​ ‍ 环境搭建 我们利用 phpstudy 来搭建环境,选择 Apache2.4.39 MySQL5.7.26 php5.6.9 ,同时利用 PhpStorm 来实现对项目的调试 ​…...

软件测试面试-一线大厂必问的测试思维面试题

五、测试思维5.1 打电话功能怎么去测?我们会从几个方面去测试:界面、功能、兼容性、易用性、安全、性能、异常。1)界面我们会测试下是否跟界面原型图一致,考虑浏览器不同显示比例,屏幕分辨率。2)功能&#…...

企业级分布式应用服务 EDAS

什么是企业级分布式应用服务EDAS企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的云原生PaaS平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持Spring Cloud和Ap…...

弄懂 Websocket 你得知道的这 3 点

1. WebSocket原理 WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简…...

Appium构架及工作原理

一、appium结构简单来说appium充当一个中间服务器的功能,接收来自我们代码的请求,然后发送到手机上进行执行。二、初步认识appium工作过程1.appium是c/s模式的2.appium是基于webdriver协议添加对移动设备自动化api扩展而成的,所以具有和webdr…...

软件架构中“弹性”的多种含义

在软件架构领域的中文文档、书籍中,经常可以看到“弹性”这个专业术语,但在不同的语境下含义可能会不同。 在英语中,elastic 和 resilient 两个单词都可以翻译为“弹性的”,但是它们在软件架构中代表的含义却完全不同&#xff0c…...

JAVA练习57- 罗马数字转整数、位1的个数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目1-罗马数字转整数 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 二、题目2-位1的个数 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 …...

C#把图片放到picturebox上的指定位置,PointToClient与PointToScreen解读

1、C#中如何把图片放到picturebox上的指定位置 构造一个跟picturebox1一样大小的Bitmap, 设置给picturebox1, 然后在上面画图 Bitmap image new Bitmap(picturebox1.Size.Width, picturebox1.Size.Height); Graphics device Graphics.FromImage(imag…...

【论文笔记】Manhattan-SDF==ZJU==CVPR‘2022 Oral

Neural 3D Scene Reconstruction with the Manhattan-world Assumption 本文工作:基于曼哈顿世界假设,重建室内场景三维模型。 1.1 曼哈顿世界假设 参考阅读文献:Structure-SLAM: Low-Drift Monocular SLAM in Indoor EnvironmentsIEEE IR…...

环翠区中小学生编程挑战赛题解中学组T4:免费超市

题目描述 OITV电视台最近开设了名为“免费超市”的真人电视节目,在节目中,抽奖选拔的民间志愿者们将随机匹配进行两两对抗赛。每场比赛上,节目组设置 n n n件商品排成一排供选手挑选,两名选手将交替出手选中并拿走商品,每件商品有着不同的价值 a i a_i a...

关于Oracle树形查询(connect by)的学习笔记

1.查找员工 FORD的上级 Note:在查找时,应当注意树形是倒过来的。(自下而上),故此父亲节点是MGR ,而儿子节点是EMPNO –PRIOR MGREMPNO也是可以的。 以下两种方式均可以实现查找FORD的上级。 SQL> SQ…...

观看课程领奖品!Imagination中国区技术总监全面解读 IMG DXT GPU

此前,我们发布了一系列关于 IMG DXT GPU 的介绍,为了让更多读者了解其背后的技术及应用方向,我们特别邀请 Imagination 中国区技术总监艾克录制全新在线课程,为大家全面解读IMG DXT GPU。 点击这里,马上注册观看&…...

To_Heart—题解——[SCOI2012]奇怪的游戏

题意 link. 给定一个 nmn\times mnm 的棋盘,每次操作可以选择两个相邻的格子,让这两个各自上的数都 1。问最少多少次操作使得所有格子的数相等。如果永远不行则输出-1。 题解 因为相邻两个格子进行操作,而且是方格,所以很容易…...

Spring Boot Hello World 基于 IDEA 案例详解

一、Spring Boot 是什么 世界上最好的文档来源自官方的《Spring Boot Reference Guide》,是这样介绍的: Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”...Most Spring Boot…...

基于机器学习的异常检测与分析技术

传统的运维方式在监控、问题发现、告警以及故障处理等各个环节均存在明显不足,需要大量依赖人的经验,在数据采集、异常诊断分析、故障处理的效率等方面有待提高。 本关键技术面对传统运维故障处理效率低、问题定位不准确、人力成本高三大痛点&#xff0…...

pytest进阶之html测试报告

pytest进阶之html测试报告 目录:导读 前言 pytest-html生成报告 安装 生成报告 效果 错误用例截图 添加描述 小结 allure2生成报告 安装allure 安装pytest-allure-adaptor插件 生成xml格式报告 添加环境变量 运行allure生成报告 效果 总结 前言 …...

劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)

劳特巴赫 Trace32 调试使用教程 使用PRACTICE 脚本(.cmm) 在TRACE32 中使用PRACTICE 脚本(*.cmm)将帮助你: 在调试器启动时立即执行命令根据您的项目需求自定义TRACE32PowerView用户界面加载应用程序或符号使调试操作具有可重复性, 并可用于验证目的和回归测试 自动启动脚本…...

盘点四种自动化测试模型实例及优缺点

一,线性测试 1.概念: 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。 (操作,重复操作,数据)都混合在一起。 2.优点: 每个脚本相对独立&#xff0…...

【论文阅读】SCRFD: Sample and Computation 重分配的高效人脸检测

原始题目Sample and Computation Redistribution for Efficient Face Detection中文名称采样和计算 重分配的 高效人脸检测发表时间2021年5月10日平台ICLR-2022来源Imperial College, InsightFace文章链接https://arxiv.org/pdf/2105.04714.pdf开源代码官方实现&…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...