本期结合《时间序列图神经网络(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