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

图神经网络简介

一、说明

本文介绍了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 跳外邻居的更多信息。尽管如此,来自各种实验的经验观察表明,增加模型深度并不能始终导致性能改进;事实上,更深的模型有时甚至会表现出较差的性能。这种现象主要归因于这样一个事实,即添加更多图层可能会从呈指数级增长的扩展邻域成员中传播噪声信息。此外,它还会加剧过度平滑的问题,即随着模型深入到更深的层,节点在聚合作后往往会收敛到类似的表示形式。为了应对这些挑战,许多方法都试图将 “跳过连接” 集成到图神经网络模型中,以促进增加深度。

相关文章:

图神经网络简介

一、说明 本文介绍了GNN网络一些要素,其中与CNN进行过一些对比,并且对GNN的一些统计原理进行介绍。 二、介绍 对于不同类型的训练数据集,卷积神经网络 (CNN) 擅长处理方形或网格状或欧几里得结构化数据,…...

小程序报错The JavaScript function Pointer_stringify(ptrToSomeCString)

小程序报错The JavaScript function Pointer _stringify(ptrToSomeCString) 介绍修改地址总结 介绍 这个报错是我在打包小程序在手机上运行时报的错,这个地方问题是个小问题,其实就是Pointer_stringify(ptrToSomeCString) 函数过时…...

DeepSeek 与网络安全:AI 驱动的智能防御

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 随着人工智能(AI)的快速发展,深度学习技术正渗透到多个领域,从医疗诊断到…...

Redission看门狗

在 Redisson 中,lock.tryLock() 和 lock.lock() 是两种不同的加锁方式,它们的行为有所不同: lock.lock():这是阻塞方法,当调用时,如果锁当前不可用,线程将被阻塞,直到获取到锁。如果…...

LeetCode 热题 100_组合总和(58_39_中等_C++)(递归(回溯))

LeetCode 热题 100_组合总和(58_39) 题目描述:输入输出样例:题解:解题思路:思路一(递归(回溯)): 代码实现代码实现(思路一&#xff08…...

使用PHP爬虫获取1688商品分类:实战案例指南

在电商领域,商品分类信息是商家进行市场调研、选品分析和竞争情报收集的重要基础。1688作为国内领先的B2B电商平台,提供了丰富且详细的商品分类数据。通过PHP爬虫技术,我们可以高效地获取这些分类信息,为商业决策提供有力支持。 …...

Nginx location 和 proxy_pass 配置详解

概述 Nginx 配置中 location 和 proxy_pass 指令的不同组合方式及其对请求转发路径的影响。 配置效果 1. location 和 proxy_pass 都带斜杠 / location /api/ {proxy_pass http://127.0.0.1:8080/; }访问地址:www.hw.com/api/upload转发地址:http://…...

云创智城充电系统:基于 SpringCloud 的高可用、可扩展架构详解-多租户、多协议兼容、分账与互联互通功能实现

在新能源汽车越来越普及的今天,充电基础设施的管理和运营变得越来越重要。云创智城充电系统,就像一个超级智能管家,为新能源充电带来了全新的解决方案,让充电这件事变得更方便、更高效、更安全。 一、厉害的技术架构,让…...

AIP-143 标准代号

编号143原文链接AIP-143: Standardized codes状态批准创建日期2019-07-24更新日期2019-07-24 许多常见的概念,如语言、国家、货币等,都有用于数据通信和处理的通用代号(通常由国际标准化组织正式定义)。这些代号解决了在书面语言…...

机器视觉--数字图像格式

图像格式 在数字图像的世界里,不同的图像格式有着各自的特点和适用场景。了解这些图像格式,对于我们在处理图像时选择合适的存储和传输方式至关重要。下面就让我们来详细探讨一下常见的几种数字图像格式。 一、BMP 文件(Bitmap)…...

Kotlin 2.1.0 入门教程(十七)接口

接口 接口可以包含抽象方法的声明,也可以包含方法的实现。 接口与抽象类的不同之处在于,接口无法存储状态。接口可以拥有属性,但这些属性要么必须是抽象的,要么就得提供访问器的实现。 接口使用 interface 关键字来定义&#x…...

渗透测试工具:SQLmap安装教程及使用

在渗透测试的世界里,SQL注入攻击无疑是最常见且最具威胁的安全漏洞之一。幸运的是,SQLmap 这个强大的自动化工具,能够帮助我们快速识别和利用这些漏洞。如果你也想了解如何用 SQLmap 进行渗透测试,那么这篇文章就是为你准备的&…...

4.SpringSecurity在分布式环境下的使用

参考 来源于黑马程序员: 手把手教你精通新版SpringSecurity 分布式认证概念说明 分布式认证,即我们常说的单点登录,简称SSO,指的是在多应用系统的项目中,用户只需要登录一次,就可以访 问所有互相信任的应…...

RocketMQ和Kafka如何实现顺序写入和顺序消费?

0 前言 先说明kafka,顺序写入和消费是Kafka的重要特性,但需要正确的配置和使用方式才能保证。本文需要解释清楚Kafka如何通过分区来实现顺序性,以及生产者和消费者应该如何配合。   首先,顺序写入。Kafka的消息是按分区追加写入…...

SQL联合查询

文章目录 MySQL系列:1.内连接2.外连接3.自连接4.子查询5.合并查询6.插入查询 MySQL系列: 初识MySQL,MySQL常用数据类型和表的操作,增删改查(CRUD)操作(总),数据库约束数据库设计 #班级表 drop table if exists class; create ta…...

deepseek:三个月备考高级系统架构师

一、备考总体规划(2025年2月11日 - 2025年5月) 1. 第一阶段:基础夯实(2025年2月11日 - 2025年3月10日) 目标:快速掌握系统架构师考试的核心知识点。 重点内容: 计算机组成原理、操作系统、数据…...

支持向量机原理

支持向量机(简称SVM)虽然诞生只有短短的二十多年,但是自一诞生便由于它良好的分类性能席卷了机器学习领域。如果不考虑集成学习的算法,不考虑特定的训练数据集,尤其在分类任务中表现突出。在分类算法中的表现SVM说是排…...

DeepSeek人工智能AI汽车营销销售培训讲师培训师唐兴通讲课汽车销售大数据存量客户数字化营销数字化销售大模型销售话术引流内容社群私域

唐兴通 数字商业创新实践专家、数字营销与销售顾问 沃顿商学院特邀演讲嘉宾|美国营销协会艾菲奖评委 核心专长: AI商业化应用、数字营销创新、数字新销售能力体系打造、数字化转型、 教学经历:从教20年,执教12所全球顶尖商学院…...

Molecular Communication(分子通信)与 Molecular Semantic Communication(分子语义通信)

1. 引言 随着传统无线通信在极端环境(如微观生物体内、海洋深处)中的局限性凸显,分子通信(Molecular Communication, MC)成为一种新型通信范式。分子通信通过分子作为信息载体,在纳米尺度上传输信息&#…...

Webpack代码分割、分割策略性能优化详解

在前端面试中,Webpack 是一个常见的考察点,特别是关于性能优化、构建配置以及代码分割等方面的问题。以下是 Webpack 常见问题详解,包括 代码分割 相关的内容。 1. Webpack 基础概念 1.1 Webpack 是什么? Webpack 是一个前端构建工具,主要用于将项目中的各种资源(JavaS…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

日常一水C

多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...

MySQL的pymysql操作

本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...