图神经网络池化方法

news2025/2/23 13:18:11

图神经网络池化方法


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 图神经网络池化方法
  • 前言
  • 一、扁平图池化
  • 二、分层图池化
    • 1.节点聚类池化
    • 2.节点丢弃池化
  • 参考文献


前言

图池化操作根据其池化策略的差异,可细分为扁平图池化分层图池化两大类:

  1. 如下图(a)所示,扁平图池化(Flat Graph Pooling)技术通过一步操作对图中节点进行降维或聚合,直接获得整体图的表征。这一过程旨在快速提取出图的全局表示,适用于那些需要快速获得全局图表示的场景。
  2. 如下图(b)所示,分层图池化(Hierarchical Graph Pooling)则通过一个分阶段的策略来逐步简化图结构,即在图的每一层上通过减少节点的数量,逐步构建图的更高层次的表征。
    这种分层的方法允许模型在每一步中细致地捕获和保留图的重要结构信息,适合于需要深层次理解图结构特征的复杂任务。两种池化策略各有优势,选择哪一种依赖于特定任务的需求和目标。

在这里插入图片描述

一、扁平图池化

扁平图池化是一种图池化策略,其特点在于对图中的节点进行一次性的降维或聚合操作,从而简化图的整体结构并直接提取出图级别的特征表示。这种池化技术的核心在于直接从整个图中聚合信息,而非通过对图结构进行多层递归简化来实现。该方法的主要优势在于其简单直接的处理方式,能够在不引入额外计算复杂度的情况下,为下游任务提供有力的图级别特征。

对于给定的图 G = { A , X } \mathcal{G}=\{A,X\} G={A,X},其中 A A A 是图的邻接矩阵,用于描述图中各个节点之间的连接情况; X X X是节点的特征矩阵,包含了与每个节点相关的属性或特征信息。扁平图池化可以定义为如下过程:
X ( l ) = GNN ( l ) ( G ) , h G = Pool f l a t ( X ( l ) ) , X^{(l)}=\text{GNN}^{(l)}(\mathcal{G}),\\ h_{\mathcal{G}}=\text{Pool}_{flat}(X^{(l)}), X(l)=GNN(l)(G),hG=Poolflat(X(l)),
这里GNN指的是任意图神经网络,经过 l l l 层的图神经网络之后,得到图中全部节点的特征表示矩阵 X ( l ) X^{(l)} X(l) h G h_{\mathcal{G}} hG表示经过图池化后得到的图最终表征向量, Pool f l a t \text{Pool}_{flat} Poolflat表示扁平图池化函数,它需要具备以下两个特点:1)对于不同大小的输入图,输出固定大小的图表示;2)在输入图的节点顺序改变时,输出相同的表示。基于以上讨论,几种最常见的扁平池化方法是均值池化(Mean-Pool)、最大值池化(Max-Pool)和求和池化(Sum-Pool),即通过所有节点特征取平均、求最大值以及求和得到。

近期,研究者们通过融入注意力机制,赋予了模型在构建图级别表示时更大的适应性和灵活性。这种机制允许模型动态地为每个节点分配权重,从而更细致地揭示节点间的相对重要性。例如,一些研究工作[1-3]在他们的池化框架中嵌入了软注意力机制,旨在精确地捕捉并表达节点之间的微妙关系。此外,Bai等人[4]采纳了一种创新策略,将卷积神经网络应用于已排序的节点表示上,通过这种方式,他们能够依据节点特征的排序顺序来挖掘图的关键信息。与传统依赖于节点特征一阶统计信息的方法不同,Wang等人[5]引入了二阶池化(Second-order Pooling,SOPool),其主要思想是利用节点特征的二次方来提取图的二阶统计信息。这种方法通过捕获图节点特征的相互关系,能够提供更丰富和深入的图表示,从而增强模型对图结构复杂性的理解和表达能力。

这里,我们向大家推荐我们组的工作,DKEPool [6](Distribution Knowledge Embedding for Graph Pooling)通过引入分布信息的表征,其也是一种扁平的图池化方法,在确保不丢失任何节点信息的前提下,使用非线性的高斯分布信息去拟合非欧几何的图结构数据,从而提升图结构数据的表征能力以及相应的分类效果。

二、分层图池化

分层池化方法的目的是通过将图迭代地粗化为更小尺寸的新图,以保留图的层次结构信息。根据粗化图的方式,分层池化大致可以分为节点聚类池化、节点丢弃池化以及其他类型的池化。节点聚类池化和节点丢弃池化方法都对原始图结构进行了修改,但它们各自采用了不同的策略来保留图的关键信息。节点聚类池化通过合并节点来形成新的节点结构,这样不仅保留了原始图的信息,还在一定程度上维护了图的结构完整性。相反,节点丢弃池化方法着重于抛弃不重要的节点,仅保留那些被认为是图核心结构的一小部分节点。值得注意的是,尽管分层池化方法在概念上设计为在多个层次上粗化图结构,分层池化方法在技术上仍然使用扁平池化方法来获得粗化后图的表示。

1.节点聚类池化

节点聚类池[7-10]将图池化视作一个节点聚类问题,其核心思想是将图中的节点根据相似性或其他准则映射到若干个簇中。
为了全面阐释这种方法,这里提供了一个通用的分解框架,主要由以下两个主要模块来实施节点聚类池化:1)簇分配矩阵(Cluster Assignment Matrix, CAM)生成器:给定一个输入图,CAM根据输入图计算节点到簇的分配,这一步骤可能产生每个节点到簇的硬/软分配。2) 图粗化(Graph Coarsening)模块:该模块利用上述簇分配矩阵,通过提取新的特征表示和更新邻接矩阵,转换原始图为一个粗化的简化版本。这一粗化过程旨在保留图的核心结构特性,同时减小了图的规模,从而在保持图的关键信息的同时提高了计算效率。

对于给定的图 G = { A , X } \mathcal{G}=\{A,X\} G={A,X},其中 A A A 是图的邻接矩阵, X X X是节点的特征矩阵。节点聚类池化过程可以如下表述:
C ( l ) = CAM ( X ( l ) , A ( l ) ) , X ( l + 1 ) , A ( l + 1 ) = Coarsen ( X ( l ) , A ( l ) , C ( l ) ) , C^{(l)}=\text{CAM}(X^{(l)},A^{(l)}),\\ X^{(l+1)},A^{(l+1)}=\text{Coarsen}(X^{(l)},A^{(l)},C^{(l)}), C(l)=CAM(X(l),A(l)),X(l+1),A(l+1)=Coarsen(X(l),A(l),C(l)),
其中, CAM \text{CAM} CAM Coarsen \text{Coarsen} Coarsen 分别指的簇矩阵生成和图粗化操作。 CAM \text{CAM} CAM 以第 l l l 层的邻接矩阵和节点特征矩阵为输入,输出第 l l l 层的簇矩阵 C ( l ) ∈ R n l × n l + 1 C^{(l)}\in\mathbb{R}^{n_l\times n_{l+1}} C(l)Rnl×nl+1 n l n_l nl 是第 l l l 层的节点个数。 Coarsen \text{Coarsen} Coarsen 以第 l l l 层邻接矩阵、节点特征矩阵和簇矩阵为输入,输出第 l + 1 l+1 l+1 层的邻接矩阵和节点特征矩阵。

2.节点丢弃池化

节点丢弃池化[11-16]策略通过采用可学习的评分机制来识别并剔除相对不重要的节点,有效地简化图结构。
为了深入理解节点丢弃池化的过程,我们构建了一个由三个独立模块组成的通用框架,旨在清楚地说明其工作原理:1)分数生成器(Score Generator):针对输入图的每个节点,该模块负责生成一个反映节点重要性的分数。(2)节点选择器(Node Selector):根据生成的重要性分数,此模块负责挑选出分数最高的前 k k k个节点。(3)图粗化(Graph Coarsen):利用所选节点来构建一个新的粗化图,即新的特征矩阵和邻接矩阵。通过这个分模块的框架,节点丢弃池化过程的每个环节都被结构化地展现出来,,从而为优化图结构提供了清晰的路径。

对于给定的图 G = { A , X } \mathcal{G}=\{A,X\} G={A,X},其中 A A A 是图的邻接矩阵, X X X 是节点的特征矩阵。节点丢弃池化过程可以如下表述:
S ( l ) = Score ( X ( l ) , A ( l ) ) , idx ( l + 1 ) = Top-k ( S ( l ) ) , X ( l + 1 ) , A ( l + 1 ) = Coarsen ( X ( l ) , A ( l ) , S ( l ) , idx ( l + 1 ) ) , S^{(l)}=\text{Score}(X^{(l)},A^{(l)}),\\ \text{idx}^{(l+1)}=\text{Top-k}(S^{(l)}),\\ X^{(l+1)},A^{(l+1)}=\text{Coarsen}(X^{(l)},A^{(l)},S^{(l)},\text{idx}^{(l+1)}), S(l)=Score(X(l),A(l)),idx(l+1)=Top-k(S(l)),X(l+1),A(l+1)=Coarsen(X(l),A(l),S(l),idx(l+1)),
这里,函数Score,Top-k和Coarsen分别表示的是分数生成器,节点选择器和图粗化。
Score以第 l l l层的邻接矩阵和节点特征矩阵为输入,输出 S l ∈ R n l × 1 S^{l}\in \mathbb{R}^{{n_l}\times 1} SlRnl×1 表示节点重要性分数,其中 n l n_l nl是第 l l l层的节点个数。 Top-k将分数从大到小排列并提供 S l S^{l} Sl中最大的 k k k个值的索引, idx ( l + 1 ) \text{idx}^{(l+1)} idx(l+1)指示新图中保留节点的索引。与节点聚类池化中Coarsen不同,这里在以第 l l l 层邻接矩阵、节点特征矩阵和簇矩阵为输入的同时,需要额外使用 idx ( l + 1 ) \text{idx}^{(l+1)} idx(l+1) 信息。


参考文献

  1. Fan X, Gong M, Xie Y, et al. Structured self-attention architecture for graph-level representation learning[J]. Pattern Recognition, 2020, 100: 107084.
  2. Itoh T D, Kubo T, Ikeda K. Multi-level attention pooling for graph neural networks: Unifying graph representations with multiple localities[J]. Neural Networks, 2022, 145: 356-373.
  3. Yunsheng B, Ding H, Qiao Y, et al. Unsupervised inductive graph-level representation learning via graph-graph proximity[C]//Proceedings of the 28th International Joint Conference on Artificial Intelligence. 1988, 1994.
  4. Bai L, Jiao Y, Cui L, et al. Learning graph convolutional networks based on quantum vertex information propagation[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(2): 1747-1760.
  5. Wang Z, Ji S. Second-order pooling for graph neural networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 45(6): 6870-6880.
  6. Chen K, Song J, Liu S, et al. Distribution Knowledge Embedding for Graph Pooling[J]. IEEE Transactions on Knowledge and Data Engineering, 2023, 35(08): 7898-7908.
  7. Khasahmadi A H, Hassani K, Moradi P, et al. Memory-Based Graph Networks[C]//International Conference on Learning Representations.
  8. Yuan H, Ji S. Structpool: Structured graph pooling via conditional random fields[C]//Proceedings of the 8th international conference on learning representations. 2020.
  9. Liu N, Jian S, Li D, et al. Hierarchical adaptive pooling by capturing high-order dependency for graph representation learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(4): 3952-3965.
  10. Wu J, Chen X, Xu K, et al. Structural entropy guided graph hierarchical pooling[C]//International conference on machine learning. PMLR, 2022: 24017-24030.
  11. Lee J, Lee I, Kang J. Self-attention graph pooling[C]//International conference on machine learning. pmlr, 2019: 3734-3743.
  12. Ranjan E, Sanyal S, Talukdar P. Asap: Adaptive structure aware pooling for learning hierarchical graph representations[C]//Proceedings of the AAAI conference on artificial intelligence. 2020, 34(04): 5470-5477.
  13. Zhang L, Wang X, Li H, et al. Structure-feature based graph self-adaptive pooling[C]//Proceedings of The Web Conference 2020. 2020: 3098-3104.
  14. Ma Z, Xuan J, Wang Y G, et al. Path integral based convolution and pooling for graph neural networks[J]. Advances in Neural Information Processing Systems, 2020, 33: 16421-16433.
  15. Gao H, Liu Y, Ji S. Topology-aware graph pooling networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43(12): 4512-4518.
  16. Shu D W, Kwon J. Hierarchical bidirected graph convolutions for large-scale 3-D point cloud place recognition[J]. IEEE Transactions on Neural Networks and Learning Systems, 2023.

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

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

相关文章

软考(中级-软件设计师)(0919)

软考 一、软件设计师-历年考试考点分布情况-上午-计算机与软件工程知识 知识点分数说明比例软件工程基础知识11开发模型、设计原则、测试方法、质量特性、CMM、Pert图、风险管理14.67%面向对象12面向对象基本概念、面向对象分析与设计、UML、常见算法16.00%数据结构与算法10…

代码随想录算法day37 | 动态规划算法part10 |

今天开始正式子序列系列!!!!! 300.最长递增子序列 本题是比较简单的,感受感受一下子序列题目的思路。 力扣题目链接(opens new window) 给你一个整数数组 nums ,找到其中最长严格递增子序列的长…

读mamba有感,自然而然产生的问题及答案。

原文链接:https://arxiv.org/abs/2312.00752 Q:为什么说Mamba可以比肩甚至超越transformer?各自有什么优劣? A:Transformer在处理长序列时,存在着计算效率低下的问题,无法对有限窗口之外的任何…

查询中的行选择

用WHERE子句限制从查询返回的行。一个WHERE子句包含一个必须满足的条件,WHERE子句紧跟着FROM子句。如果条件是true,返回满足条件的行。 在语法中: WHERE 限制查询满足条件的行 condition 由列名、表达式、常数和比较操作组成…

bootstrap application nacos环境配置失效

tmd 环境配置 是yaml ,yml 后缀配置不生效 (不,看你取得文件名是什么) 如果 file-extension 配置的是yaml 就读取不到 yml 中的配置 2 . 如果还不行,、nacos 配置只能卸载bootstrap.yml 中,application.yml 不生效 bootstrap.yml…

c/c++语言中extern的用法(VS编译)

c/c语言中extern的用法 前言:1. 声明外部变量2. 声明外部函数3. 在头文件中使用注意事项 效果展示: 前言: extern 关键字不仅在 C 语言中使用,在 C 语言中也同样适用。它主要用于声明一个变量或者函数是在别的文件或翻译单元中定…

怎么操作使http变成https访问?

获取SSL证书 选择证书颁发机构:可以选择受信任的免费或付费证书颁发机构(CA)如JoySSL 申请和验证域名:注册并填写注册码230920,验证域名所有权。下载SSL证书文件到本地电脑. JoySSL品牌证书 注册享大额优惠JoySSL是网…

Android开发高频面试题之——Android篇

Android开发高频面试题之——Android篇 Android开发高频面试题之——Java基础篇 Android开发高频面试题之——Kotlin基础篇 Android开发高频面试题之——Android基础篇 1. Activity启动模式 standard 标准模式,每次都是新建Activity实例。singleTop 栈顶复用。如果要启动的A…

车市状态喜人,国内海外“两开花”

文/王俣祺 导语:随着中秋假期告一段落,“金九”也正式过半,整体上这个销售旺季的数据可以说十分喜人,各家车企不是发布新车、改款车就是推出了一系列购车权益,充分刺激了消费者的购车热情。再加上政府政策的鼎力支持&a…

Unity 使用Editor工具查找 Prefab 中的指定脚本

在 Unity 项目中,随着项目规模的扩大和 Prefab 数量的增加,管理和定位 Prefab 中的脚本变得更加复杂。为了提高开发效率,所以需要编写一个自定义的 Unity Editor 工具,帮助查找某个 Prefab 中是否使用了指定的脚本。本文将介绍如何…

LIN总线CAPL函数——干扰LIN帧响应段(linInvertRespBit )

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

目标检测:滑块验证

最近在做一些爬虫相关的任务,有时候在登录时候需要去做滑块验证,刚好自己是做AI这一块得,就想着使用目标检测去做检测,然后绕过滑块。

AI 时代,大模型产业落地的八大思考

引言 在人工智能领域,大模型技术正逐渐成为推动行业进步的关键力量。随着技术的发展,大模型不仅在学术界引起了广泛的关注,也在产业界展现出巨大的应用潜力。然而,如何将这些强大的模型有效地应用到实际产业中,仍然是…

什么软件可以远程控制电脑?好用的电脑远程控制软件有哪些?这6款可以帮到你!

在如今的数字化办公环境中,远程控制电脑已成为解决问题、协作工作的必备技能。 无论是技术支持、远程办公,还是简单的文件传输,远程控制软件都能让我们随时随地连接其他电脑,省时省力。 那么,有哪些好用的远程控制软…

大数据和代理:揭示它们之间的微妙联系

大数据,顾名思义,是指使用传统数据处理应用程序无法有效处理的极其庞大而复杂的数据集。这些数据集的特点是数量庞大、速度快、种类繁多,有可能提供有价值的见解并支持各个行业的决策过程。 这些数据可能来自各种来源,例如社交媒体…

一文速通calcite结合flink理解SQL从文本变成执行计划详细过程

文章目录 你可以学到啥测试代码背景知识SQL转变流程图问题 你可以学到啥 SQL如何一步步变成执行计划的有哪些优化器,哪些优化规则calcite 和flink 如何结合的 测试代码 EnvironmentSettings settings EnvironmentSettings.inBatchMode(); TableEnvironment tabl…

Shein西班牙开放平台模式广受市场欢迎,Shein适合卖什么产品?

Shein是一家专注于女性快时尚的跨境B2C互联网企业,主要面向欧美、中东等消费市场。经过海外十余年的发展,Shein在全球积累了数量庞大且仍在高速增长的广泛用户基础。目前Shein已开放自营商家及平台卖家两大合作模式,通过入驻Shein平台&#x…

23ai DGPDB,Oracle资源池战略的最后一块拼图

Oracle对资源池是有执念的! 在我看来,这种执念一方面是应用架构的微服务化,数据库被拆分的越来越小,而服务器的硬件能力是不断提升的,CPU核心数、内存和存储的容量都按照摩尔定律在不断增加,这就使得数据库…

QTAndroid编译环境配置

开始 QT 官网的安装教程安装,经过测试有部分小错误。以下是结合教程和网上搜集的一些材料最后安装成功的步骤。 SDK和JDKhttp://链接: https://pan.baidu.com/s/13CImHLAoUFAdecF2BVsBlQ?pwd627g 提取码: 627ghttp://链接: https://pan.baidu.com/s/13CImHLAoUFAd…

Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)

两种情况(场景) 情况一 代码还只在本地,未push到运程仓库,想把代码还原到上一次commit的代码,此时操作为代码撤销 解决方案: git reset [--hard|soft|mixed|merge|keep] [commit|HEAD] 情况二 …