时间序列预测、分类 | 图神经网络开源代码分享
如果你真的想学习人工智能,请不要去网上找那些零零碎碎的教程,真的很难学懂!你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!
本期结合《时间序列图神经网络(GNN4TS)综述》,整理了关于图神经网络在时间序列预测、分类等任务上的开源代码和学习资料以供大家学习、研究。

参考论文:《A Survey on Graph Neural Networks for Time Series: Forecasting, Classification, Imputation, and Anomaly Detection》
简介
近年来,图神经网络(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)其他图神经网络与对比:

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

最后
如果你真的想学习人工智能,请不要去网上找那些零零碎碎的教程,真的很难学懂!你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!
这里也给大家准备了人工智能各个方向的资料,大家可以微信扫码找我领取哈~

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)