摘要:多元时间序列预测是一项具有挑战性的任务,因为数据涉及长期和短期模式的混合,变量之间具有动态的时空相关性。现有的图神经网络(GNN)通常用预定义的空间图或学习到的固定邻接图来建模多元关系。它限制了GNN的应用,无法应对上述挑战。在本文中,我们提出了一个新的框架,即静态和动态图学习神经网络(SDGL)。该模型从数据中获取静态和动态图矩阵,分别对长期和短期模式进行建模。静态矩阵通过节点嵌入来捕获固定的长期关联模式,利用图的规律性来控制学习的静态图的质量。为了捕获变量之间的动态依赖关系,我们提出了动态图学习方法,基于变化的节点特征和静态节点嵌入生成时变矩阵。在该方法中,我们将学习到的静态图信息作为归纳偏倚,更好地构建动态图和局部时空模式。在两个具有额外结构信息的交通数据集和四个时间序列数据集上进行了大量实验,结果表明,我们的方法在几乎所有数据集上都实现了最先进的性能。
背景:1. 大多数GNN方法是在具有预定义图结构的数据上执行的;2.大多数多元时间序列数据中,变量之间的关系必须从数据中发现,而不是作为先验知识提供
挑战:
挑战1:长期和短期模式的相互作用。
•挑战2:变量之间的动态时空依赖性
解决方案:
对于挑战一:学习两种不同的矩阵,一种是静态图矩阵,静态图用于捕获数据的长期模式。通过不同的图粒度控制图学习方向。在静态图的基础上取动态图来精确短期模式,其中静态图是不变的,而动态图是根据节点级数据变化的。另一种是动态图矩阵:
对于挑战二:我们提出了一种动态图学习方法来捕获变量之间的不同依赖关系
Framework of SDGL
SDGL on the highest level consists of static and dynamic graph learning layers, temporal convolution (TCN), graph convolution modules (GCN), and an output module.
两个图学习层产生两种邻接矩阵,即静态矩阵和动态矩阵.TCN采用由两个并行时态模块组成的门控结构来提取时态依赖关系。在GCN中,我们使用两个独立的模块根据学习到的静态和动态矩阵来聚合信息。
Static Graph Learning Layer
我们使用节点嵌入来获取数据中的固定关联,独立于动态节点级输入。不同的是,我们在训练过程中增加了图的规则项来控制学习方向,使得学习到的图具有更好的收敛性和可解释性
1)Static Graph Learning:
节点嵌入字典Ms∈RN×d,其中d为节点嵌入的维数。
2)Graph Regularization:控制学习图的平滑性、连通性和稀疏性是非常重要的,我们首先将正则化应用于动态数据集以控制图的学习方向
Dynamic Graph Learning Layer
:首先利用设计的信息融合模块将图形结构与输入信息进行融合。然后提出动态图学习模块,根据融合结果动态生成矩阵。
1)Information Fusion module
为了自适应地融合固定图和动态输入,我们采用了一种门控机制。我们首先使用一个线性层将X变换为与Ms相同维数的XT
Dynamic Graph Learning Module
为了有效地捕获变量之间的动态短期相关性,我们设计了动态图学习模块(DGLM),该模块根据融合结果直接生成关联矩阵。我们的目标是构造节点之间的关联矩阵
Dynamic relationship construction:
我们采用多角度的方法构造一个矩阵来从多个角度捕捉变量之间的相关性。然后,我们对每个q, K的投影版本并行执行矩阵计算,并生成头矩阵,
为了避免输出,RT收敛于一个秩为1的矩阵,我们添加了跳跃连接和多层感知器(MLPs)。We do dot-product using Er ∈ RN×dk, where Er = WrhT, as residual connection as in Eq.(6), where LN denotes LayerNorm.
Inductive bias:在短期模式中,时空依赖性倾向于局部变化,为了反映这种趋势,我们添加了诱导偏差
为了保证动态节点嵌入与静态节点嵌入的关联,我们引入了动量更新
Temporal Convolution Module
Graph Convolution Module
图卷积模块的目的是融合节点和邻居的特征,以获得新的节点表示
为了对短期模式和长期模式的交互进行建模,我们采用两个图卷积层分别捕获静态图和动态图上的节点信息,
Joint Learning with A Hybrid Loss
我们通过最小化结合预测和图正则化损失的混合损失来共同学习图和GNN参数。
Experiments
实验结果
1)Multi-step forecasting
2)Single-step forecasting