时间序列预测、分类 | 图神经网络开源代码分享(上)

本期结合《时间序列图神经网络(GNN4TS)综述》,整理了关于图神经网络在时间序列预测、分类等任务上的开源代码和学习资料以供大家学习、研究。

参考论文:《A Survey on Graph Neural Networks for Time Series: Forecasting, Classification, Imputation, and Anomaly Detection》

链接:https://arxiv.org/abs/2307.03759

1. 简介

近年来,图神经网络(GNN)在时间序列数据分析领域大放异彩,已然成为一种极具潜力的强大工具。它之所以备受瞩目,关键在于具备独特的能力,能够精准地捕捉时间序列数据中各种复杂的关系。

一方面,对于多变量序列而言,不同变量之间并非孤立存在,而是存在着错综复杂的连接关系。例如在经济数据中,GDP、通货膨胀率、失业率等多个变量相互交织影响。GNN 能够通过构建图结构,将这些变量作为节点,以它们之间的关联作为边,从而有效地捕捉到变量间的复杂依赖关系,挖掘出隐藏在多变量序列背后的深层次模式。

另一方面,时间序列数据本质上具有时间维度上的依赖特性。不同时间点的数据相互关联,过去的数值会对未来的走势产生影响。以气象数据中的气温变化为例,今日气温往往与前几日的气温有着紧密的关联。GNN 可以对这种时间间的依赖关系进行建模,通过在时间轴上构建关系网络,把握时间序列的动态演化规律,进而更准确地预测未来趋势。

鉴于现实世界中的场景往往蕴含着复杂的时空依赖性,越来越多的研究聚焦于将 GNN 与各种时间建模框架相结合。这些时间建模框架,如循环神经网络(RNN)及其变体长短时记忆网络(LSTM)、门控循环单元(GRU)等,擅长处理时间序列数据的时序特性;而变换器(Transformer)架构则在捕捉长程依赖关系方面表现出色。将 GNN 与这些框架融合,能够充分发挥各自的优势,既能利用 GNN 洞察空间维度上变量间的复杂连接,又能借助时间建模框架把握时间维度上的动态变化。这种结合在众多实际应用中展现出了令人振奋的结果,如在交通流量预测、电力负荷预测、金融市场分析等领域,大幅提升了预测精度和模型的解释性,为解决复杂的时空数据分析问题提供了新的思路和方法。

1.1 图神经网络的基本概念

(1)图的结构:

  • 一个图通常由节点(nodes,也称为顶点)和边(edges)组成。节点表示实体,边表示实体之间的关系。

  • 图可以是有向的(directed)或无向的(undirected),也可以是加权的(weighted)。

(2)图神经网络的目标:

GNNs的目标是学习节点的表示(embeddings),这些表示可以用于各种下游任务,如节点分类、链接预测和图分类等。

1.2 图神经网络的工作原理

(1)消息传递机制(Message Passing):

  • GNNs的核心思想是节点通过边与其邻居进行信息交换,这一过程通常称为消息传递。

  • 在每一层网络中,每个节点会聚合来自邻居节点的信息,并结合自身的信息更新其表示。

(2)层次结构:

  • GNN通常由多层组成,每一层负责聚合来自更远邻居的信息。

  • 通过堆叠多层,GNN可以捕获图中节点的高阶邻域信息。

(3)常见的聚合函数:

典型的聚合函数包括求和(sum)、平均(mean)、最大(max)等,这些函数用于整合邻居节点的信息。

(4)非线性变换:

在每一层的聚合操作之后,通常会有一个非线性变换(例如通过使用ReLU激活函数)来增强模型的表达能力。

1.3 常见的图神经网络模型

(1)Graph Convolutional Networks (GCNs):

通过卷积操作对图数据进行处理,类似于CNN在图像数据中的应用。GCN是最早提出的将卷积概念应用于图结构数据的模型之一。

(2)Graph Attention Networks (GATs):

引入了注意力机制,使得模型能够为不同邻居分配不同的权重,从而更灵活地聚合邻居信息。

(3)GraphSAGE:

提出了采样和聚合策略,使得在处理大规模图时更加高效。

(4)Graph Isomorphism Network (GIN):

强调了模型的表达能力,旨在更准确地区分不同的图结构。

(5)其他图神经网络与对比:

GNN 种类机制优点缺点适用范围实现成本
GCN - 谱分解图卷积拉普拉斯矩阵特征分解参数共享拉普拉斯矩阵唯一,已训练图结构不能应用于其他图;训练时要将全图加载进内存固定的小规模图结构节点数目越多,图规模越大,训练成本越高
GCN - 空间图卷积在图上直接卷积,定义空间近邻节点卷积权重共享操作参数共享中心节点、感受域、聚合函数不确定,相互制约依赖较大规模的图结构空间卷积操作难度低,较易实现
GAE编码器将图转为低维连续表示,解码器重构图的结构和属性提取最具有代表性图信息;缩减输入量,中间隐含表示可用于下游图任务需要手动设置隐层维度;多为无监督学习,比有监督性能差小规模图结构取决于编码器对原始图降维程度
GGN交替生成节点和边,或者对抗训练生成完整图表示对图结构和属性具有强大的模拟学习能力对噪声敏感,需要精确的图标标签信息;图质量检查要求专家级知识;可能发生模式坍塌领域相关的图生成任务取决于相关领域的图复杂程度
GRN将图转为序列,用 Bi - RNN、LSTM、GRU 等循环神经网络训练迭代压缩节点信息,能学习图在时间维度上的特征具有顺序依赖性具有时空特征的图不能并行化,实现成本较高
GAT引入注意力机制,关注对任务有影响的邻居节点信息,从而分配不同的权重鲁棒性和可解释性更强;无需全图信息增加了额外计算邻居节点信息的时间和内存消耗,注意力的作用跟网络初始化有关归纳式图任务可并行化,适用于较大规模的图

2. 时间序列预测任务

近年来,基于图神经网络(GNN)的方法在明确有效地建模多变量时间序列数据的时空依赖关系方面显示出巨大的潜力,从而提高了预测性能。

基于GNN的预测模型可以从多个角度进行分类和检验。在预测任务方面,虽然许多模型侧重于多步预测(即,根据历史观察预测多个连续步骤),但少数模型也讨论单步预测(即,预测下一步或任意一步)。从方法的角度来看,这些模型可以从三个方面进行剖析:(1)建模空间(即变量间)依赖关系,(2)建模跨时间依赖关系,(3)融合时空模块进行时间序列预测。

2.1 变量间依赖关系建模

空间依赖关系或变量间关系在影响模型的预测能力方面起着关键作用。当前的研究通常采用(1)光谱gnn,(2)空间gnn,或(3)两者的混合来模拟这些空间依赖关系。当提供时间序列数据和描述时间序列之间相互联系强度的相应图结构时。在高层次上,这些方法都借鉴了图形信号处理的原理。

(1)基于谱GNN的方法:

论文题目:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

论文链接:https://arxiv.org/abs/1606.09375

开源代码:https://github.com/mdeff/cnn_graph

论文题目:Spectral Temporal Graph Neural Network for Multivariate Time-series Forecasting

论文链接:https://arxiv.org/abs/2103.07719

开源代码:https://github.com/microsoft/StemGNN/

(2)基于空间GNN的方法:

论文题目:Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting

论文链接:https://dl.acm.org/doi/abs/10.1145/3292500.3330884

开源代码:https://github.com/panzheyi/ST-MetaNet

论文题目:Spatial-Temporal Synchronous Graph Convolutional Networks: A New Framework for Spatial-Temporal Network Data Forecasting

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/5438

开源代码:https://github.com/Davidham3/STSGCN

(3)混合方法:

论文题目:Spatio-Temporal Graph Structure Learning for Traffic Forecasting

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/5470

开源代码:https://github.com/VeritasYin/STGCN_IJCAI-18

2.2 跨时间依赖关系建模

时间序列内时间依赖性的建模是各种基于gnn的预测方法中的另一个重要元素。这些依赖关系(例如,时间模式)能够在时间或/和频率域中建模。

在构建TEMPORAL(·)时,时域和频域都可以在卷积和注意机制中被利用。循环模型也可以用于时域的具体建模。此外,混合模型存在于这两个领域,集成了不同的方法,如注意力和卷积神经网络。

(1)循环模型:

论文题目:Spatio-Temporal Graph Structure Learning for Traffic Forecasting

论文链接:https://arxiv.org/abs/1707.01926

开源代码:https://github.com/liyaguang/DCRNN

(2)卷积模型:

论文题目:Dynamic spatial-temporal graph convolutional neural networks for traffic forecasting

论文链接:https://arxiv.org/pdf/1812.02019

开源代码:https://github.com/SYLan2019/DSTAGNN

(3)注意力模型:

论文题目:Spatial-Temporal Synchronous Graph Convolutional Networks: A New Framework for Spatial-Temporal Network Data Forecasting

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/5438

开源代码:https://github.com/microsoft/StemGNN

(4)混合模型:

论文题目:Hierarchical Graph Convolution Networks for Traffic Forecasting

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/16088

开源代码:https://github.com/guokan987/HGCN

2.3 预测架构融合

鉴于所讨论的空间和时间模块,分别表示为空间(·)和时间(·),已经确定了四类神经结构融合作为捕获时间序列数据中时空依赖性的有效手段:(1)离散分解,(2)离散耦合,(3)连续分解和(4)连续耦合。

在离散分解模型中,空间和时间依赖关系通常是独立学习和处理的。这种方法可能涉及在模型构建块中堆叠和交错空间和时间模块[53],[58],[76]。

与离散模型不同,一些方法将底层建模过程抽象为神经微分方程,我们将其归类为连续模型。具体而言,连续分解模型涉及不同的过程,部分或完全连续,以模拟空间和时间依赖性。

(1)离散架构:

论文题目:GMAN: A Graph Multi-Attention Network for Traffic Prediction

论文链接:https://arxiv.org/abs/1911.08415

开源代码:https://github.com/zhengchuanpan/GMAN

(2)连续的体系架构:

论文题目:Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting

论文链接:https://arxiv.org/abs/2106.12931

开源代码:https://github.com/square-coder/STGODE

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

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

相关文章

Vue 添加水印(防篡改: 删除水印元素节点、修改水印元素的样式)

MutationObserver_API: 观察某一个元素的变化// index.vue<template><div class="container"><Watermark text="版权所有" style="background: #28c848"><!-- 可给图片、视频、div...添加水印 --><div class=&quo…

如何处理开发不认可测试发现的问题

解决方案 第一步&#xff1a;收集确凿证据 确保有完整的复现结果准备详细的记录材料&#xff1a; 截屏录屏操作步骤记录 带着这些证据与开发人员进行沟通 第二步&#xff1a;多角度验证 如果与开发人员沟通无果&#xff1a; 竞品分析&#xff1a;查看市场上同类产品如何…

linux生产环境下根据关键字搜索指定日志文件命令

grep -C 100 "error" server.log 用于在 server.log 文件中查找包含 “error” 的行&#xff0c;并同时显示该行前后100行的上下文。这是排查日志问题的常用技巧&#xff0c;解释一下&#xff1a; 命令参数详解 grep&#xff1a;文本搜索工具&#xff0c;用于在文件…

用vue和echarts怎么写一个甘特图,并且是分段式瀑布流

vue echarts 甘特图功能 index.vue <template><div ref"echart" id"echart" class"echart"></div> </template><script setup>import { nextTick, onMounted, ref } from "vue";import * as echarts f…

Pandas使用教程:从入门到实战的数据分析利器

一、Pandas基础入门 1.1 什么是Pandas Pandas是Python生态中核心的数据分析库&#xff0c;提供高效的数据结构&#xff08;Series/DataFrame&#xff09;和数据分析工具。其名称源于"Panel Data"&#xff08;面板数据&#xff09;和"Python Data Analysis"…

NuttX Socket 源码学习

概述 NuttX 的 socket 实现是一个精心设计的网络编程接口&#xff0c;提供了标准的 BSD socket API。该实现采用分层架构设计&#xff0c;支持多种网络协议族&#xff08;如 TCP/IP、UDP、Unix域套接字等&#xff09;&#xff0c;具有良好的可扩展性和模块化特性。 整体架构设…

基于YOLO的语义分割实战(以猪的分割为例)

数据集准备 数据集配置文件 其实语义分割和目标检测类似&#xff0c;包括数据集制备、存放格式基本一致像这样放好即可。 然后需要编写一个data.yaml文件&#xff0c;对应的是数据的配置文件。 train: C:\图标\dan\语义分割pig\dataset\train\images #绝对路径即可 val: C:\…

钉钉智能会议室集成指纹密码锁,临时开门密码自动下发

在当今快节奏的工作环境中&#xff0c;会议室的高效管理和使用成为了企业提升工作效率的关键一环。湖南某知名企业近期成功升级了原有使用的钉钉智能会议室系统&#xff0c;并配套使用了启辰智慧联网指纹密码锁&#xff0c;实现了会议室管理的智能化升级&#xff0c;提升了会议…

C++讲解—类(1)

类 在 C 中&#xff0c;类是一个关键概念&#xff0c;凭借其封装和继承的特性&#xff0c;能够助力程序员之间实现高效的分工协作&#xff0c;共同完成复杂的大型项目。我们先从最简单的概念入手&#xff0c;再进行更深层次的了解和应用。 1. 类的定义 类是用户自定义的一种…

什么是Hadoop Yarn

Hadoop YARN&#xff1a;分布式集群资源管理系统详解 1. 什么是YARN&#xff1f; YARN&#xff08;Yet Another Resource Negotiator&#xff09;是 Apache Hadoop 生态系统中的资源管理和作业调度系统&#xff0c;最初在 Hadoop 2.0 中引入&#xff0c;取代了 Hadoop 1.0 的…

项目开发中途遇到困难的解决方案

1. 正视困难&#xff0c;避免逃避 开发遇阻时&#xff0c;退缩会带来双重损失&#xff1a;既成为"失败者逃兵"&#xff0c;又损害职业信心1。 行动建议&#xff1a; 立即向团队透明化问题&#xff08;如进度延迟、技术瓶颈&#xff09;&#xff0c;避免问题滚雪球…

Blender硬表面建模篇收集学习建模过程中的Demo

c 齿轮 创建一个圆柱体&#xff0c;选择侧面的所有&#xff0c;然后进行隔断选择&#xff0c;两次挤出面&#xff0c;一次缩放面&#xff0c;通过圆柱面三次插入面缩放挤出得到齿轮中心&#xff0c;选中齿轮的锯齿中间&#xff0c;然后进行相同周长选择行选择齿与齿中间的面&…

Chromium 136 编译指南 macOS篇:获取源代码(四)

1. 引言 在现代软件开发的宏大版图中&#xff0c;源代码的获取往往标志着从理论探索向实践应用的关键转折。对于Chromium 136这样一个拥有超过2500万行代码、涉及数百个第三方库的超大规模开源项目而言&#xff0c;源代码的获取不仅仅是简单的文件下载&#xff0c;更是一个涉及…

OpenCV C++ 边缘检测与图像分割

一、边缘检测 在数字图像处理领域&#xff0c;边缘检测是一项至关重要的基础技术。它如同为图像赋予 “骨架”&#xff0c;帮助计算机快速识别图像中的物体轮廓、形状与结构&#xff0c;广泛应用于目标识别、图像分割、图像配准等多个领域。 1.1 概念 边缘检测的核心目标是找…

线段树(2025年6月14日)

原文 https://www.beiweidoge.top/132.html P1&#xff1a;求最大值1 题目描述 题目描述 小明给了你n个数字&#xff0c;你需要依次输出&#xff1a; 1到n的最大值&#xff0c;1到n/2的最大值&#xff0c;n/21到n的最大值&#xff0c;1到n/4的最大值&#xff0c;n/41到n/2…

渗透实战PortSwigger Labs AngularJS DOM XSS利用详解

本Lab学习到关于AngularJS的 xss 漏洞利用 直接输入回显页面&#xff0c;但是把<>进了 html 编码了 当我们输入{{11}}&#xff0c;没有当作字符处理&#xff0c;而是执行了 {{}} 是多种前端框架&#xff08;如 Vue、Angular、Django 模板等&#xff09;中常见的模板插值语…

Ubuntu 多网卡安全路由配置(SSH 不断线版)

Ubuntu 多网卡路由配置笔记&#xff08;内网 外网同时通&#xff09;&#xff08;SSH断线版&#xff09;文章浏览阅读386次&#xff0c;点赞4次&#xff0c;收藏5次。本文介绍了Ubuntu 如何配置双网卡设备的路由规则&#xff0c;使默认流量走外网&#xff08;192.168.2.0/24&a…

基于昇腾NPU部署llamafactory单机多卡微调Qwen3教程

1. 进入华为云 华为云首页 点击右上角控制台 2.进入ModelArts 点击搜索框->搜索“ModelArts”->选择AI开发平台ModelArts->进入平台后点击开发者空间 3.创建Notebook 3.1在开发者空间中点击Notebook->在西南贵阳一下点击创建Notebook 3.2进入创建Notebook页…

关于XES文件格式诸多问题

1. 格式类型是什么&#xff1f; case:concept:name (案例ID) - 必须是字符串类型concept:name (活动名称) - 字符串类型time:timestamp - 必须是datetime类型 2. 如何修改&#xff1f; data[case:concept:name] data[case:concept:name].astype(str)data[concept:name] data…

数据融合平台有哪些?在数据治理中发挥什么作用?

目录 一、常见的数据融合平台 &#xff08;一&#xff09;传统数据融合平台 &#xff08;二&#xff09;实时数据融合平台 &#xff08;三&#xff09;云数据融合平台 二、数据融合平台在数据治理中的作用 &#xff08;一&#xff09;提升数据质量 &#xff08;二&#…