图神经网络通用框架 —— MPNN消息传递神经网络

简介: 图神经网络通用框架 —— MPNN消息传递神经网络

前言

大家好,我是阿光。

本专栏整理了《图神经网络》,内包含了不同图神经网络的原理以及相关代码实现,详细讲解图神经网络,理论与实践相结合,如GCN、GraphSAGE、GAT等经典图网络,每一个代码实例都附带有完整的代码+数据集。

正在更新中~ ✨

🚨 我的项目环境:

  • 平台:Windows10
  • 语言环境:python3.7
  • 编译器:PyCharm
  • PyTorch版本:1.11.0
  • PyG版本:2.1.0

💥 项目专栏:【入门图神经网络】


一、图计算框架

对于空域的图神经网络常见有GAT、GCN等变体,除此之外目前还提出了几个通用的计算框架,目的就是将一些模型集成到一个框架当中。

对于常见的计算模块通常有传播模块、采样模块、池化模块等,针对每个模块目前都有很多不同的设计模式,所以一些研究人员想要提出一个通用的框架来表示这个计算流程。

二、计算模块

  • 传播模块:用于在节点之间传播信息,以便聚合的信息可以捕获特征和拓扑信息。在传播模块中,卷积算子和递归算子通常用于聚集来自邻居的信息,而跳过连接操作用于从节点的历史表示中收集信息并缓解过度平滑问题。
  • 采样模块:当图很大时,通常需要采样模块来对图进行传播。采样模块通常与传播模块相结合。
  • 池化模块:当我们需要高级子图或图的表示时,需要池模块来从节点中提取信息。

Monti等人提出了混合模型网络MoNet,这是在图或流形上定义的几种方法的通用空间框架。Gelmer等人提出了消息传递神经网络MPNN,该网络使用消息传递函数来统一几个变体。Wang等人提出了非局部神经网络NLNN,它统一了几种“自我注意力”方法。Battaglia等人提出了图形网络GN,它是一个更加通用的框架,能够学习节点级、边级和图级别的表示学习。

三、MPNN消息传递神经网络

MPNN是Gilmer等人为实现分子性质预测提出的一个通用计算框架。

该模型主要包含两个阶段:消息传递阶段和读取阶段

  • 消息传递阶段(Message Passing Phase):该阶段分别两个步骤,分别是聚合邻居信息和更新状态信息
    image.png

上式用于聚合邻居,其中 M t M_tMt 代表一个可微函数,用于聚合信息使用,最简单的设计就是一个全连接神经网络,将输入的节点与邻居节点的特征向量以及边特征进行映射形成新的维度特征,然后将所有邻居聚合后的信息进行加和。

image.png

该式是用于更新节点状态的,同理 U t U_tUt 也是一个可微函数,输入的信息是当前节点的隐状态信息以及聚合后的信息,经过更新作为新的时间点的隐状态特征向量。

对于下标v表示当前节点,上标t代表第t个时间步,或者可以理解为第t层特征经过了几个网络层,N v N_vNv代表节点v的所有邻居。

  • 读取阶段(Readout Phase):这个阶段主要是为整张图计算一个特征向量用于表示整张图

image.png

对于R一般常见有均值聚合器、最大聚合器、LSTM聚合器,类似于图像处理中的最大池化层,对于均值聚合器,我们可以将整张图所有节点的特征向量进行加权平均作为整张图的向量表示,对于LSTM聚合器就是将所有节点的特征向量输入到LSTM当中,利用LSTM网络进行提取信息然后将最后一个时间步的输出作为整张图的表示。

参考文章

  • Neural Message Passing for Quantum Chemistry
  • Graph neural networks: A review of methods and applications


目录
相关文章
|
5月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
119 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
3月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
|
3月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
233 0
|
3月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
152 0
|
6月前
|
机器学习/深度学习 API TensorFlow
BayesFlow:基于神经网络的摊销贝叶斯推断框架
BayesFlow 是一个基于 Python 的开源框架,利用摊销神经网络加速贝叶斯推断,解决传统方法计算复杂度高的问题。它通过训练神经网络学习从数据到参数的映射,实现毫秒级实时推断。核心组件包括摘要网络、后验网络和似然网络,支持摊销后验估计、模型比较及错误检测等功能。适用于流行病学、神经科学、地震学等领域,为仿真驱动的科研与工程提供高效解决方案。其模块化设计兼顾易用性与灵活性,推动贝叶斯推断从理论走向实践。
194 7
BayesFlow:基于神经网络的摊销贝叶斯推断框架
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
270 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
228 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
239 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。

热门文章

最新文章