模型漫谈:图神经网络(GNN)是什么样的存在

文章大纲:

  • 从生活中的例子谈图与图神经网络

  • 什么是图神经网络?它如何起源?

  • 图神经网络的基本原理和原则

  • 图神经网络的应用方向:以环境科学为例

  • 公众号推荐

在现代科技迅速发展的今天,许多看似复杂的概念其实都有着非常贴近我们生活的基础。今天我们要聊的图神经网络(Graph Neural Networks, GNN)便是这样一个领域。在这篇文章中,我们将从生活中的例子出发,逐步揭开图和图神经网络的面纱,了解它们的起源、基本原理以及广泛的应用,尤其是在环境科学中的深远影响。

从生活中的例子谈图与图神经网络

你是否曾注意过,生活中充满了复杂的关系和连接?无论是朋友之间的社交关系、交通路网中的城市与道路,还是人与人之间的疾病传染路径,这些看似不同的系统其实有一个共同点:它们都可以用来表示。一些图表示示例如图1所示。

,在数学中是由节点(node)和边(edge)组成的结构。节点代表个体,比如你、我和你的朋友们,而边代表着连接关系,比如朋友之间的社交联系。一个复杂的社交网络就是由很多节点和边构成的,这些节点和边描绘了每一个人的社交圈,也展现了人与人之间的紧密程度。

那么,图神经网络是什么呢?为了更好理解,我们可以用社交网络推荐系统的例子。想象一下,当你在社交平台上看到好友推荐(比如好友向您推荐了公众号:Environmodel)时,这些推荐背后离不开一些强大的算法,它们根据你和其他用户的关系、兴趣的相似性、共同的朋友等信息进行计算,这样的平台才能精准地推荐可能认识的朋友。这种复杂的关联数据的处理,正是图神经网络擅长的领域。正可谓

友于虚拟传声器, 推荐Environmodel如遇知。

算法深藏背后力, 结网连线洞天机。

image-20241007194220001

图1 以图形表示信息的一些应用:(a)化合物(肾上腺素)、(b)图像和(c)网络子集。

该图来自文献:Scarselli, F., Gori, M., Tsoi, A.C., Hagenbuchner, M., Monfardini, G., 2009. The Graph Neural Network Model. IEEE Transactions on Neural Networks 20, 61–80. https://doi.org/10.1109/TNN.2008.2005605

什么是图神经网络?它如何起源?

图神经网络(Graph Neural Networks, GNN)是一种专门处理图结构数据的神经网络模型。传统的神经网络,如卷积神经网络(CNN)和循环神经网络(RNN),在处理网格化或序列化的数据方面表现优异,比如图像、文本或时间序列数据。然而,很多现实世界的问题并不能用简单的矩阵或序列来表示,而是存在于复杂的网络关系之中。这时候,图神经网络应运而生。

图神经网络(Graph Neural Networks, GNNs)的概念并不是由某一篇文章提出的,其起源可以追溯到上世纪末。早期的研究者试图通过扩展神经网络来处理图结构的数据,而随着机器学习技术的进步,以及社交网络、交通网络等图数据的爆发性增长,图神经网络逐渐发展成为一种高效且灵活的工具,能够从复杂的网络结构中学习出有价值的特征和信息。经过了多年的研究和发展,图神经网络及其理论逐步形成。下面列举3篇高引GNN论文:

  • Scarselli, F., Gori, M., Tsoi, A.C., Hagenbuchner, M., Monfardini, G., 2009. The Graph Neural Network Model. IEEE Transactions on Neural Networks 20, 61–80.

    这篇论文首次正式提出了“图神经网络”这一术语,并且描述了一个基于递归神经网络的图神经网络框架。

  • Wu, Z., Pan, S., Chen, F., Long, G., Zhang, C., & Philip, S. Y.,2020. A comprehensive survey on graph neural networks. IEEE transactions on neural networks and learning systems, 32(1), 4-24.

  • Zhou, J., Cui, G., Hu, S., Zhang, Z., Yang, C., Liu, Z., ... & Sun, M. (2020). Graph neural networks: A review of methods and applications. AI open, 1, 57-81.

图神经网络的基本原理和原则

图神经网络的核心思想是在图的节点之间传递信息,使每个节点能够在图的整体结构中获取更多的上下文信息。为了更好地理解这一点,我们可以从以下几个基本原理入手:

  1. 消息传递机制

    图神经网络的一个关键概念是消息传递机制(Message Passing)。每个节点都会从它的邻居节点接收信息,然后通过一定的规则进行聚合,如图2所示。例如,社交网络中某个人的信息会受到其朋友信息的影响。通过不断地信息传递和聚合,节点会逐渐了解它所处的局部乃至全局网络的结构和特点。

    image-20241007195742118

    图 2.  图与一个节点的邻域。节点1的状态取决于其邻域中所包含的信息。

    该图来自文献:Scarselli, F., Gori, M., Tsoi, A.C., Hagenbuchner, M., Monfardini, G., 2009. The Graph Neural Network Model. IEEE Transactions on Neural Networks 20, 61–80. https://doi.org/10.1109/TNN.2008.2005605

  2. 嵌入表示

    在图神经网络中,每个节点和边都可以通过一个向量来表示,这被称为节点嵌入(Node Embedding)。通过不断地训练,这些嵌入向量可以学习到节点和它们之间关系的重要特征。比如在电力网络中,图神经网络可以学到哪些变电站对整体电力分配起到至关重要的作用。

  3. 层的堆叠与非线性变换

    图神经网络与传统神经网络相似,通过堆叠多个层次来实现深度学习。在每一层中,节点会收集来自邻居的信息,然后通过某种非线性函数进行变换。这种层级的堆叠使得图神经网络能够捕捉到多层次的关系,处理更加复杂的网络结构。

  4. 注意力机制

    在一些图神经网络的变种中,还引入了注意力机制(Attention Mechanism),使得每个节点在聚合信息时可以对不同的邻居赋予不同的重要性权重。这样,重要的邻居节点信息会得到更多关注,而次要的信息则会被弱化。

一个典型的GNN模型框架如图3所示,其中convolutional operatorrecurrent operatorsampling module 和 skip connection用于在每一层中传播信息,然后添加池化模块以提取高级信息。

img

图 3. GNN模型的通用设计流程

该图来自文献:Zhou, J., Cui, G., Hu, S., Zhang, Z., Yang, C., Liu, Z., Wang, L., Li, C., Sun, M., 2020. Graph neural networks: A review of methods and applications. AI Open 1, 57–81. https://doi.org/10.1016/j.aiopen.2021.01.001

图神经网络的应用方向:以环境科学为例

图神经网络的应用领域非常广泛,涵盖了社交网络、推荐系统、化学分子结构分析、交通网络优化等等。而在众多的应用方向中,环境科学是一个具有深远意义且极具挑战的领域。接下来,我们将着重讨论图神经网络在环境科学中的应用。

  1. 生态系统网络建模

    在生态学研究中,生物种群之间的相互作用通常可以建模为一个图。在这个图中,每个节点代表一种物种,边代表物种之间的交互关系,如捕食、竞争或共生关系。图神经网络可以用来分析这些物种之间复杂的关系,帮助生态学家预测某一物种的数量变化对整个生态系统的影响。这对于维持生物多样性、制定保护措施非常有帮助。

  2. 气候变化与空气质量监测

    环境科学中的另一个重要应用是气候变化和空气质量的监测。气象站或传感器节点可以看作是图中的节点,而它们之间的相互关系(如地理位置、气象模式的相似性)则可以作为边。图神经网络能够有效地聚合多个节点的测量数据,从而预测某地区未来的空气质量变化,提供更精准的污染预警。

  3. 水资源管理与流域网络

    水资源的管理是环境科学的重要组成部分,尤其是在干旱和水污染问题日益严重的今天。河流流域可以被看作一个复杂的图结构,河流和湖泊等水体节点相互连接构成水流网络。图神经网络可以用来模拟水流的动态变化,分析不同地区水资源的流动特征,帮助优化水资源的分配方案。

  4. 土地利用与城市环境建模

    城市中的建筑、道路、绿地等也可以被建模为图结构。在城市环境的建模和分析中,图神经网络可以帮助科学家预测土地利用的变化趋势,评估城市扩张对周围环境的影响。通过这样的分析,政府可以制定更科学的城市规划政策,以减少对环境的不良影响。

  5. 物种迁移与生境连接性分析

    随着气候变化和人类活动的影响,很多物种的栖息地受到破坏,导致它们不得不迁移到新的栖息地。在这种情况下,研究物种如何在栖息地之间移动,栖息地的连接性变得尤为重要。图神经网络可以帮助我们理解这种迁移过程,通过对栖息地网络的分析,预测哪些通道是关键的迁移路径,从而为制定保护策略提供科学依据。

希望这篇文章让你对图神经网络有了一个初步的了解。如果你对这方面的技术感兴趣,未来不妨深入学习相关的知识,或者关注更多这方面的应用进展。科学的力量,正在一步步改变我们的生活,而图神经网络无疑是其中闪耀的新星之一。

个人公众号

看到这里的各位朋友,肯定都是真爱,在下是一个从事环境科学领域的科研牛马,主要研究方向为深度学习环境领域的应用,如果您也同样的在做相关的研究,关注在下的微信公众号:Environmodel,每日分享环境领域的模型研究、机器学习等研究进展,当然也还会有不少实用的编程技巧分享。同时,欢迎您分享给您需要的朋友。(*^▽^*)
 

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

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

相关文章

【GitHub】上传文件到GitHub

参考视频:手把手教你在github上传文件_哔哩哔哩_bilibili 1.找到文件夹右键,选择open git bash here 2.完成指令 git initgit add *git commit -m "first commit"3.打开该文件夹,打开隐藏文件.git/config 编辑输入邮箱和GitHub用…

python全栈学习记录(二十三)反射、内置方法、类相关的函数、元类

反射、内置方法、类相关的函数、元类 文章目录 反射、内置方法、类相关的函数、元类一、反射二、内置方法1.__str__2.__repr__3.__del__4.__getattr__5.__setattr__ 三、类相关的函数四、元类1.python中类的产生过程2.元类控制类的产生 一、反射 反射的意思是通过字符串来操作…

大模型应用探讨,免费AI写作、一键PPT、免费PDF百种应用、与AI对话

大模型应用平台知识普及, 应用可见评论区 我们生活在一个充满无限可能的数字时代,人工智能技术正在推动着各种创新的边界。大模型应用平台一般包含以下功能。 ## 1. 一键生成论文 写作是学生、研究人员和职场人士都无法避免的任务。大模型应用平台拥有强大的文本生…

Lesson3 - 操作系统软件视角和系统调用

文章目录 硬件支持系统 系统管理硬件异步行为中断的分类 同步行为虚拟地址空间shell系统调用与软中断区分系统调用trace 命令 硬件支持系统 系统管理硬件 计算机硬件由三样东西组成:CPU、内存、I/O设备。为了更有效地管理这些硬件资源,系统设计者引入了…

使用bert模型进行命名实体识别任务

一、实验内容 本实验使用预训练的 BERT 模型进行命名实体识别(NER)任务,并且使用 Hugging Face 的 Transformers 库完成模型的训练、验证和测试。最后,使用测试集评估模型性能,计算NER指标。 二、算法介绍 Bert是一种…

Observability:使用 OpenTelemetry 自动检测 Go 应用程序

作者:来自 Elastic Damien Mathieu 使用 OpenTelemetry 检测 Go 应用程序可以深入了解应用程序的性能、依赖项和错误。我们将向你展示如何使用 Docker 自动检测 Go 应用程序,而无需更改应用程序代码。 在快节奏的软件开发领域,尤其是在云原生…

分治算法(3)_快速选择_数组中的第K个最大元素

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 分治算法(3)_快速排序_数组中的第K个最大元素 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论&#…

【原创】Anaconda+VScode+PySide6 完美配置Python开发环境,亲测!

准备工作 下载安装 Anaconda 下载安装Visual Studio Code 配置系统环境变量 配置Anaconda环境变量 将Anaconda安装目录及Scripts 、Library\bin 两个子目录添加到用户变量或系统变量的Path变量中。 Anaconda自带最新版Python,如果已经安装Python,建议…

Mybatis测试案例

1.创建springboot工程 创建实体类user和接口 user类 注意:java和mysql的对象的属性数据类型要一致 mapper接口 2.配置mybatis(连接数据库信息) # spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #地址url spring.datasource.urljdbc:mysql://localho…

【Python】Mistune:高效的 Python Markdown 解析器

Mistune 是一个轻量且强大的 Python Markdown 解析器。它的设计目标是兼顾速度和扩展性,同时兼容 CommonMark 标准。Mistune 支持多种渲染器(Renderers)和插件,能够根据需求将 Markdown 转换为 HTML、LaTeX 或自定义格式。此外&am…

Java中数组的应用

Java中数组的应用 数组数组的使用使用方式1-动态初始化数组的定义:数组的引用(使用/访问/获取数组元素):快速入门案例 使用方式2-动态初始化**先声明**数组**再创建**数组使用方式1和2的比较 使用方式3-静态初始化初始化数组快速入…

[嵌入式Linux]—STM32MP1启动流程

STM32MP1启动流程 1.启动模式 STM32MP1等SOC支持从多种设备中启动,如EMMC、SD、NAND、NOR、USB、UART等。其中USB、UART是作为烧录进行启动的。 STM32MP1内部ROM中存储有一段出厂代码来进行判断从哪种设备中启动,上电后这段代码会被执行,这…

CPU中的寄存器是什么以及它的工作原理是什么?

在计算机科学中,寄存器是数字设备中的一个重要组成部分,它用于存储数据和指令以快速处理。寄存器充当临时存储区,信息可以在这里被快速访问和操作,以执行复杂任务。寄存器是计算机中最基础的存储类型,它们在帮助机器高…

【Unity】版本不一致且未升级资产,导致 Unity Sprite 2D 动画播放错误

自己的 Unity版本是 2022.3.45f1。目前折腾的这插件 2D Action RPG Engine: Mythril2D ,推荐使用的 Unity 版本是 2021.3.18。 倒腾了这个 unity animation 动画半天,发现这个 animation sprite resolver 在导入动画帧的时候,一直都导入的是…

allegro 替换过孔

操作步骤如下 1.选择操作对象(需要替换的过孔),右键–>Repace……–>Selected…… 2.在弹出的窗口中选择最终需要的过孔既可以

【Matlab学习日记】② 常用滤波以及噪声分析方法(上)

关注星标公众号,不错过精彩内容 作者 | 量子君 微信公众号 | 极客工作室 【Matlab学习日记】专栏目录 第一章 ① Sinmulink自动代码生成教程 第二章 ② 常用滤波以及噪声分析方法(上) 文章目录 前言一、使用滤波的目的二、常见的几种噪声和表…

算法闭关修炼百题计划(四)

仅供个人复习 1.两数相加2.寻找峰值3.寻找旋转排序数组中的最小值4.寻找旋转排序数组中的最小值II5.搜索旋转排序数组6.岛屿的最大面积7.最大数8.会议室9.最长连续序列 1.两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储…

STM32 通用同步/异步通信

一、串行通信简介 CPU与外围设备之间的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。STM32单片机提供了功能强大的串行通信模块,即通用同步/异步收发器(USART)。 1.串行通信 串行通信是数据字节一位一位地依次传送的通信方式。…

毕业设计 深度学习水果识别

文章目录 1 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果 1 前言 Hi,大家好,这里是丹成学长,今天做一个 基于深度学习的水果…