论文解读-A Comprehensive Survey on Graph Neural Networks

news/2024/12/12 0:27:04/文章来源:https://www.cnblogs.com/zhang-yd/p/18601235

 

论文介绍

 

论文是2019年定稿的,算是比较陈旧的论文,综述性质的论文。

论文发表于IEEE Transactions on Neural Networks and Learning Systems, 2021。质量挺高的。

 


论文主要工作
论文提出了一个新的图神经网络的分类方法,把图神经网络分为四类:循环图神经网络,卷积图神经网络,图自动编码器,时空图神经网络
概述了图神经网络领域的各个算法,数据集,基准数据集,最优算法,分析现有方法的局限性

 

GNN的比较

GNN和网络嵌入
GNN旨在以端到端的方式解决与图相关的任务,网络嵌入式在将网络节点表示为低维向量,主要区别是GNN是一组为各种任务设计的神经网络模型,而网络嵌入涵盖了针对同一个任务的各种方法

GNN和图核方法
图核方法可以通过映射函数将图或节点嵌入到向量空间,两者不同之处是映射函数是确定的而非学习得到。

 

GNN的分类

 

RecGNN旨在学习具有递归神经架构的节点表示,图中的节点不断与其邻居交换信息,最终达到平衡状态
ConvGNN的主要思想是聚合它自己的特征和邻居的特征来生成新的特征表示,堆叠多个图卷积层以提取高级节点表示

 

GAE为无监督学习框架,将节点或图编码到潜在向量空间并从编码信息中重新建图数据

 


STGNN的关键思想是同时考虑空间依赖性和时间依赖性,旨在从时空图中学习隐藏信息

 

 


GNN的训练方式

节点级别的半监督学习方法:给定一个部分节点被标记而其他节点未标记的单个网络,可以训练ConvGNN来识别未标记的节点

图级别的监督学习:目的是预测整个图的类标签,可以构建端到端的图分类架构,组合了图卷积层,图池化层和readout层

图嵌入的无监督学习:当图中没有可用的标签,可以在端到端框架中以完全无监督的方式学习图嵌入

 

 

循环神经网络
基于信息扩散机制,GNN通过循环交换邻域信息来更新节点的状态,直到平衡状态。
节点的隐藏状态由以下方式循环更新

门控图神经网络采用门控循环单元GRU作为循环函数

 

卷积图神经网络
使用固定数量的层在每一层中使用不同的权重来解决循环相互依赖的关系。分为两种,基于spectral和基于spatial两种,
spectral-based的通过从图信号处理的角度引入滤波

spatial-based的继承了RecGNN的思想,通过信息传播来定义图卷积

 

图自动编码
网络嵌入

图生成

 

时空图神经网络(SPATIAL-TEMPORAL GRAPH NEURAL NETWORKS)

该方法是捕捉图的动态性,基于连接节点之间的相互依赖关系这个假设条件,对动态节点输入进行建模。

同时捕获图的空间和时间依赖性,任务是可以预测未来的节点值或标签

 

数据集的应用和评估
节点分类
大多数方法都遵从基准数据集 cora,citeseer,pubmed,PPI的标准划分
图分类
实验设置比较模棱两可,通常采用10折交叉验证来进行模型评估。

选择的基准数据集如下

 

节点分类中最常见的数据集测试结果

 

总结

论文梳理了GNN领域,根据模型的差异区分了四种不同的子类。目前对无监督的还不是很熟悉,待定后面继续深入研究。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于GoogleNet深度学习网络的手语识别算法matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)手语How are you,测试识别结果如下:手语I am fine,测试识别结果如下:手语I love you,测试识别结果如下: 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)%% Dataset = imageDat…

vxe-table 实现任意列拖拽排序

vxe-table 实现任意列拖拽排序,通过 column-drag-config.isCrossDrag 启用任意列拖拽排序,除了自身之外。 官网:https://vxetable.cn启用后可以在不同表头直接任意拖拽,需要注意所有列必须有 field 属性 <template><div><vxe-grid v-bind="gridOptions…

医疗花费预测(保姆级教程)

目标 想要一开始快速抓住一个实验的方向,我觉得一个好方法就是抓住实验目的。 本实验:根据一个人的年龄、性别、BMI、子女个数、是否吸烟和生活地区,预测这个人在医疗方面花费的金额。 线性回归 这里我想问个问题,线性回归是什么,或者说针对于DBSCAN聚类算法之后得到的样本…

在CodeBolcks+wxWidgets+wxSmith下的C++编程教程——用向导创建一个wxWidgets项目(sTetris)

0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。 了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:…

国城杯

n0ob_un4er 打开题目即可得到源码<?php $SECRET = `/readsecret`; include "waf.php"; class User {public $role;function __construct($role) {$this->role = $role;} } class Admin{public $code;function __construct($code) {$this->code = $code;}f…

基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真

1.程序功能描述 基于HMM隐马尔可夫模型的金融数据预测算法.程序实现HMM模型的训练,使用训练后的模型进行预测。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序% 初始化预测值矩阵yuce和误差矩阵err yuce = zeros(size(data, 1), lens); err = zeros(…

Mysql的整体架构设计

整体分层连接层 服务层 存储引擎层连接层 客户端要连接到服务器 3306 端口,必须要跟服务端建立连接,那么 管理所有的连接,验证客户端的身份和权限,这些功能就在连接层完成。 服务层 连接层会把 SQL 语句交给服务层,这里面又包含一系列的流程。 比如查询缓存的判断、根据 S…

[Linux]信号

信号 认识信号 什么是信号 信号本质上是一种软件中断,用于通知进程发生了特定的事件。进程接收到信号后,会根据信号的类型采取相应的操作。 拿生活中的红绿灯来举例,当你看到红灯的时候你不会过马路,当变为绿灯时才会通过。但是也有可能在等红灯的时候,此时绿灯亮了而你正…

通过 sealos 部署 k8s 集群

sealos 官方文档 release 背景 sealos 是用于一键部署 k8s 集群的工具。对于不想被太多操作系统细节配置困扰,又想快速装好一套测试k8s集群的同学,无疑是很方便的 网上教程很多,这边自己简单写下在公司机器上安装的过程,绕了一部分坑,帮助大家更快地使用 官方文档还说明 s…

Elasticsearch 系列(八)- 使用NSSM将Kibana安装为Windows服务

本章将和大家分享如何使用NSSM将Kibana安装为Windows服务。本章将和大家分享如何使用NSSM将Kibana安装为Windows服务。废话不多说,下面我们直接进入主题。 一、下载并安装Node.js 我们的 Kibana 是用 Node.js 写的,所以在安装 Kibana 之前我们首先需要先安装一下 Node.js 。 …

SAP配置网络打印机

1、网络打印机 在项目中需要用打印机打印表单,如果不配置网络打印机,通常需要通过连接特定的计算机(如打印服务器)来进行打印,或者使用本地连接的打印机,这样每台计算机可能需要单独配置打印机或安装驱动,导致资源浪费,也不方便。 如果配置了网络打印机,无需本地连接特…

【Java开发】SLF4J 桥接器及其原理,让你的旧代码也可以起飞

前言 虽然在新的项目中,我们一般使用推荐的SLF4J + 日志实现框架(Logback等)组合方式,但是对于一些旧的项目,已经使用了SLF4J之外的日志框架(如Log4j 1.x等),而且这些旧的代码我们无法直接修改源码,如果我们想使用SLF4J的API,那么就需要使用各种SLF4J的桥接器来实现。…