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

图神经网络简介

一、说明

本文介绍了GNN网络一些要素,其中与CNN进行过一些对比,并且对GNN的一些统计原理进行介绍。

二、介绍

对于不同类型的训练数据集,卷积神经网络 (CNN) 擅长处理方形或网格状或欧几里得结构化数据,例如具有固定长度的一维数据、具有固定长度和宽度的二维数据、具有固定长度、宽度和高度的三维数据等。另一方面,递归神经网络 (RNN) 展示了对序列数据的熟练程度,包括具有可变长度的时间或空间序列。CNN 和 RNN 通常将数据集中的每个元素或样本视为同等重要,将元素或样本之间的关系视为组合选择和同等重要性。

然而,当考虑每个元素或样本具有不同程度的重要性并且关系受到特定约束的数据集结构时,引入了图神经网络 (GNN) [1-3]。传统方法植根于图论,主要关注图拓扑,而 GNN 旨在生成节点嵌入。最初,节点具有特征表示。GNN 有助于将这些表示形式传输到连接的节点,称为单跳。通过多跳,GNN 迭代更新节点表示。此过程通常包括两个关键步骤:聚合来自相邻节点的信息并将最终节点表示转换为所需的信息。

针对特定图形类型上的特定任务量身定制的 GNN 模型的典型设计管道包括四个基本步骤:

识别图形结构
指定图形类型和小数位数
设计损失函数
使用计算模块构建模型。
在这里插入图片描述

三、任务挑战

在 GNN 领域,学习任务通常分为三个不同的组:节点级任务、边缘级任务和图形级任务。

节点级任务以单个节点为中心,包含节点分类、节点回归和节点集群等活动。节点分类涉及将节点分配给特定类,而节点回归预测每个节点的连续值。另一方面,节点集群侧重于将节点划分为单独的组,目的是将相似的节点放置在同一个集群中。

边缘级任务围绕图中的边缘展开,通常涉及边缘分类和链接预测。这些任务要求模型对不同类型的边缘进行分类或预测两个指定节点之间是否存在边缘。

图形级任务与整个图形相关,涉及图形分类、图形回归和图形匹配等任务。在这些任务中,模型需要学习整个图的表示,从而能够在更高层次上理解和分析图结构。
在这里插入图片描述
此外,GNN 的应用被系统地分为三个主要场景:结构场景、非结构场景和其他场景。

结构场景涉及具有显式关系结构的数据,例如图形。这些场景包含关键任务,包括 Graph Mining,它采用技术从图形数据中提取有价值的见解。此外,GNN 在物理和化学系统建模中发挥着重要作用,促进了物理和化学中复杂系统的仿真和分析。此场景中的工业应用程序涉及各种应用程序,例如用于信息管理的知识图谱、用于交通流预测分析的交通网络以及根据用户偏好定制的推荐系统。

相反,非结构场景 与关系结构隐含或不存在的数据有关。此类别的主要领域包括计算机视觉应用程序,其中 GNN 有助于理解图像数据之间的关系,尤其是图像的不同组件之间的关系。此外,在自然语言处理任务中,GNN 在问答和阅读理解等任务中至关重要,在这些任务中,理解单词和句子之间的关系至关重要。
除了这两个方案之外,还有 其他方案,它包含了与前面的区别并不完全一致的各种应用程序。这些方案包括关系推理等高级任务,其中使用关系网络和交互网络等复杂模型来解决基于文本数据的复杂推理挑战。
在这里插入图片描述

四、典型的 GNN:

GNN 中计算模块的设计包括三个关键组件:传播模块、采样模块和池化模块。其中,传播模块至关重要,因为它们封装了 GNN 功能的核心,涉及沿互连边传输节点特征表示。在接下来的讨论中,我们将更深入地研究传播模块。最初,我们将探索卷积算子方法,特别关注图卷积网络 (GCN) [4]、图样本和聚合 (GraphSAGE) [5] 和图注意力网络 (GAT) [6] 采用的典型方法。随后,我们将简要概述递归运算符方法和 skip 连接方法。
在这里插入图片描述
光谱方法 (GCN):
在这里插入图片描述

最初,图信号 x 通过图傅里叶变换转换为谱域。随后,通过在频谱域内乘以信号来执行卷积运算。卷积后,通过逆图 Fourier 变换将生成的信号恢复到其原始域。
在这里插入图片描述
在这里插入图片描述
其中矩阵 U 包含归一化图 Laplacian 矩阵 L 的特征向量。L 是一个正半定矩阵。由于 L 是实数且对称的,因此它的所有特征值都是实数,并且其特征向量是正交的。由于 L 也是正半定的,因此它的所有特征值也是非负的。
等效地,GCN 可以通过矩阵乘法实现变换和卷积运算。GCN 背后的基本思想是,我们根据节点的本地网络邻居生成节点嵌入,使用神经网络传递或积累从邻居那里收集的消息。因此,模型可以是任意深度的,这意味着:

每个节点在每一层都有一个 embedding。
第 0 层的嵌入对应于其输入特征。
第 k 层的嵌入聚合了来自 k 跃点距离的邻居的信息。
层传播遵循以下规则,这意味着将 filter 内核放在具有可学习层特定权重矩阵 W 的 lay-wise input 信号上。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当然,GCN 的缺点是显而易见的。首先, GCN 需要将整个图形加载到内存和 GPU 内存中,这会导致大量内存消耗,因此无法处理大型图形。其次,在训练期间,GCN 需要访问图的完整结构信息,包括要预测的节点。在某些无法获得如此完整结构信息的真实场景中,例如使用在当前数据上训练的模型预测未来数据,其中明天的节点是未知的。

空间方法 (GraphSAGE):

为了解决 GCN 的局限性,引入了 GraphSAGE。GraphSAGE 作为归纳学习框架运行。在其具体实现中,在训练期间,它仅保留连接训练样本的边,并执行两个主要步骤:采样和聚合。Sampling 确定如何选择相邻节点,而 Aggregation 涉及这些相邻节点嵌入的集成,以更新节点自己的嵌入信息。
在这里插入图片描述
GraphSAGE 的学习过程概述如下,其中我们可以采用 Mean Aggregator、LSTM Aggregator 或 Pooling Aggregator。

邻域采样。
将采样的邻居嵌入传播到节点,然后使用指定函数进行聚合以更新节点的嵌入。
根据更新的嵌入向量预测节点标签。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GraphSAGE 具有以下几个优势:

通过采用采样机制,它有效地解决了需要完整图信息的问题,克服了 GCN 在训练过程中遇到的内存和 GPU 限制。这种方法可以确保即使对于未知的新节点也能进行表示。
聚合器和权重矩阵参数在所有节点之间共享。
模型参数的数量与图形中的节点数量无关,使 GraphSAGE 能够处理更大的图形。
它在处理有监督和无监督的任务方面用途广泛。
但是,GraphSAGE 也存在某些缺点。鉴于每个节点的邻居数量众多,GraphSAGE 的采样不考虑不同邻居节点之间不同的重要性级别。此外,在聚合计算期间,相邻节点的重要性与当前节点的重要性不同。

基于注意力的空间方法 (GAT):

为了解决以前的 GNN 在聚合过程中不考虑相邻节点之间不同重要性水平的问题,图注意力网络 (GAT) 从 Transformer 模型中汲取了灵感。它引入了一种掩蔽的自注意力机制,在计算图中每个节点的表示时,根据相邻节点的不同特征分配不同的权重。

在这里插入图片描述
在这里插入图片描述
为了增强模型拟合复杂数据的能力,引入了一种多头自我注意机制,涉及同时使用多个 W 矩阵来计算自我注意力。然后合并计算结果(串联或求和)。
在这里插入图片描述
此外,由于 GAT 架构的固有特性,GAT 不需要预定义的图形,使其适用于转导学习和归纳学习场景。

GAT 的一些优点包括:

训练 GAT 不需要完全了解整个图形结构;只需要每个节点的相邻节点。
它提供快速的计算速度,支持跨不同节点的并行计算。
GAT 用途广泛,适用于转导学习和归纳学习任务,允许处理看不见的图形结构。
循环运算符方法:

循环算子和卷积算子之间的一个关键区别因素在于权重共享方案:卷积算子中的层使用不同的权重,而递归算子中的层使用共享权重。
在这里插入图片描述
跳过连接方法:

在许多应用程序中,通常采用展开或堆叠图神经网络层的策略来提高性能,因为额外的层(例如 k 层)使每个节点能够聚合来自 k 跳外邻居的更多信息。尽管如此,来自各种实验的经验观察表明,增加模型深度并不能始终导致性能改进;事实上,更深的模型有时甚至会表现出较差的性能。这种现象主要归因于这样一个事实,即添加更多图层可能会从呈指数级增长的扩展邻域成员中传播噪声信息。此外,它还会加剧过度平滑的问题,即随着模型深入到更深的层,节点在聚合作后往往会收敛到类似的表示形式。为了应对这些挑战,许多方法都试图将 “跳过连接” 集成到图神经网络模型中,以促进增加深度。


http://www.kler.cn/a/545830.html

相关文章:

  • 理解 WebGPU 中的 GPUQueue:GPU 的命令队列
  • 机器学习:朴素贝叶斯
  • 指标+大模型,构建更全、更准、更快的数据分析体验
  • Java中关于JSON的基本使用
  • Linux 系统中,进程间通信机制
  • DedeBIZ系统审计小结
  • 关于多语言商城系统的开发流程
  • 基于Flask的全国婚姻关系数据可视化分析系统的设计与实现
  • Linux CAN编程——SocketCAN读写CAN数据
  • 华为昇腾部署 DeepSeek-R1 (671B) 大模型实战指南
  • ES的典型架构图及其核心组件
  • 网络安全之攻防笔记--web安全攻防
  • 基于Python、使用`pandas`库和`Brightway2`库实现根据Excel表格某一列内容与数据库进行匹配
  • 【Uniapp】关于实现下拉刷新的三种方式
  • 中国通信企业协会 通信网络安全服务能力评定 证书使用说明
  • 从零开始学Python爬虫:(一)爬虫前言
  • 微信小程序请求大模型监听数据块onChunkReceived方法把数据解析成json
  • 网络安全架构师怎么考 网络安全 架构
  • 如何解决ChatGPT API响应慢的问题
  • Git 建立远端仓库并push