论文精读:基于图神经网络的时间序列模型(预测任务部分)
论文链接:https://arxiv.org/abs/2307.03759
一、摘要
时间序列数据的复杂在于涉及时间和变量之间的复杂相互作用以及变量之间的关系。
与其他深度学习方法相比,图神经网络(Graph Neural Networks,GNNs)可以明确地建模变量间关系(多元序列中不同变量之间的联系)和时间间关系(不同时间点之间的依赖关系)。
\[用于时间序列分析的图神经网络(GNN4TS)应用: \begin{cases} 预测 \\ 分类\\ 异常检测\\ 数据插补 \end{cases} \]以风力发电厂为例的时间序列分析任务
二、相关定义
时间序列数据包括一段时间收集或记录的一系列数据,定期或不定期采样的(缺失值时间序列数据)。进一步分为单变量时间序列和多变量时间序列。
以下:X表示矩阵,x表示向量,斜体字母表示集合。
定义1 单变量时间序列
随时间收集的标量观测数据序列,可以定期或不定期采样。
定期采样的单变量时间序列定义为\(\mathbf{X}=\{x_1,x_2,...,x_T\}\in\mathbb{R}^T\text{,where }x_t\in\mathbb{R}.\)
不定期采样的单变量时间序列定义为\(\mathbf{X}=\{(t_1,x_1),(t_2,x_2),...,(t_T,x_T)\}\in\mathbb{R}^T\)。
定义2 多元时间序列
随时间收集的 N 维向量观测值序列,即\(\mathbf{X}\in\mathbb{R}^{N\times T}\)。
定期采样的多元时间序列在统一的时间间隔内收集矢量观测数据,即\(\mathbf{x}_{t}\in\mathbb{R}^{N}\)。
不定期采样的多元时间序列中,可能有 N 个与时间步长不对齐的时间序列,每个时间步长只有 0 ≤ n ≤ N 个观测值可用。
基于 GNN 的大多数研究都侧重于多变量时间序列建模,多变量时间序列可以自然地抽象为空间-时间图。这种抽象可以准确描述动态的时间和变量间依赖关系。前者描述的是每个时间序列中不同时间步之间的关系(例如图 2 中 t1 和 t3 之间红色节点的时间动态),而后者捕捉的是时间序列之间的依赖关系(例如图 2 中每个时间步的四个节点之间的空间关系)。
定义3 属性图
属性图是一种静态图,它将每个节点与代表节点特征的一组属性关联起来。形式上,属性图定义为 \(\mathcal{G}=(\mathbf{A},\mathbf{X})\),它由一个加权邻接矩阵\(\mathbf{A}\in\mathbb{R}^{N\times N}\)和一个 节点特征矩阵 \(\mathbf{X}\in\mathbb{R}^{N\times N}\)组成。邻接矩阵表示图拓扑结构,可以用\(\mathcal{V}=\{v_{1},v_{2},\ldots,v_{N}\}\)表示N 个节点的集合,\(\mathcal{E}=\{e_{ij}:=(v_i,v_j)\in\mathcal{V}\times\mathcal{V}\mid\mathbf{A}_{ij}\neq0\}\)表示边的集合;特征矩阵\(\mathbf{X}\)包含节点属性,其中第 i 行\(\mathbf{x}_i\in\mathbb{R}^D\)表示节点\(v_i\)的 D 维特征向量。
时空图可以被描述为一系列的属性图
定义4 时空图
空间-时间图可以解释为离散-时间动态图,即\(\mathcal{G}=\{\mathcal{G}_1,\mathcal{G}_2,\cdots,\mathcal{G}_T\}\),其中\(\mathcal{G}_t=(\mathbf{A}_t,\mathbf{X}_t)\)表示时间 t 的归属图,\(\mathbf{A}_t,\mathbf{X}_t\)是相应的邻接矩阵和特征矩阵。\(\mathbf{A}_t\)可以随时间演变,也可以保持固定,这取决于具体设置。
典型图神经网络的核心操作通常被称为图卷积,涉及相邻节点之间的信息交换。在时间序列分析中,图卷积使我们能够明确图边所代表的变量间依赖关系。考虑到不同的细微差别,在空间域定义了 GNN,即用可学习函数沿 N 维度转换输入信号。
定义5 图神经网络
给定一个属性图\(\mathcal{G}=(\mathbf{A},\mathbf{X})\),定义\(\mathbf{x}_i=\mathbf{X}[i,:]\in\mathbb{R}^D\)为节点\(v_i\)的 D 维特征向量。GNN 通过两个主要函数学习节点表示:AGGREGATE(-) 和 COMBINE(-) 。AGGREGATE(-) 函数计算并聚合相邻节点的信息,而 COMBINE(-) 函数则合并聚合状态和之前的状态,从而转换节点嵌入。从形式上看,GNN 的第 k 层是由发送节点\(v_j\)和接收节点\(v_i\)分别计算的扩展信息或更一般的聚合信息定义的。
\[\begin{aligned} &\mathbf{a_{i}}^{(\mathbf{k})} =\text{АGGREGATE}^{(k)}\left(\left\{\mathbf{h_j^{(k-1)}}:v_j\in\mathcal{N}(v_i)\right\}\right), \\ &&\text{1)} \\ &\mathbf{h_{i}^{(k)}} =\text{СOMBINE}^{(k)}\left(\mathrm{h_i^{(k-1)},a_i^{(k)}}\right), \end{aligned} \]\(\mathbf{a_{i}^{(k)}}\mathrm,\mathbf{h_{i}^{(k)}}\)分别代表第 k 层中来自邻居的聚合信息和节点\(v_i\)的转换节点嵌入。GNN 的输入和输出分别为\(\mathbf{h_i^{(0)}}:=\mathbf{x_i}\mathrm{~and~}\mathbf{h_i^{({K})}}:=\mathbf{h_i}.\)
公式一的表示称为空间GNN而非谱图论角度定义的光谱GNN。
要利用 GNN 进行时间序列分析,必须提供图形结构。有两种策略可用于从数据中生成缺失的图形结构:启发式或从数据中学习。
-
启发式图形
这类方法基于启发式方法从数据中提取图结构,例如:空间接近性:基于节点对的地理位置,通过考虑节点对之间的邻近性来定义图结构。一个典型的例子是,当时间序列数据具有地理空间属性时,根据节点之间的最短旅行距离构建邻接矩阵:
\[\mathbf{A}_{i,j}=\begin{cases}\frac1{dij},&\mathrm{if~}d_{ij}\neq0,\\0,&\mathrm{otherwise},&\end{cases}\quad\quad(2) \]\(d_{ij}\)表示节点\(i\)和节点\(j\)之间的最短旅行距离。
成对连接:图结构是由节点对之间的连通性决定的,就像交通网络那样。邻接矩阵定义:
\[\mathbf{A}_{i,j}=\begin{cases}1,&\mathrm{if~}v_i\text{and}v_j\text{are directly linked},\\0,&\text{otherwise}.&\end{cases}\quad(3) \]典型的情况包括代表公路、铁路或相邻区域的边。在这种情况下,图可能是无向或有向的,从而产生对称和非对称邻接矩阵。
成对相似性:通过连接具有相似属性的节点来构建图。一个简单的例子是根据时间序列之间的余弦相似性构建邻接矩阵:
\[\mathbf{A}_{i,j}=\frac{\mathbf{x}_i^\top\mathbf{x}_j}{\|\mathbf{x}_i\|\|\mathbf{x}_j\|},\quad\quad\quad(4) \]\(\|·\|\)表示欧几里德规范。创建基于相似性的图还有几种变体,如皮尔逊相关系数(PCC)和动态时间扭曲(DTW)。
功能依赖:根据节点对之间的功能依赖性来定义图结构。
-
基于学习的图形
旨在直接从数据中学习与下游任务端到端的图结构。通常涉及在训练过程中优化图结构和模型参数,能够发现更复杂、潜在信息量更大的图结构。
三、框架和分类
基于任务的分类方法
统一的GNN架构方法论框架,所有体系结构都由一个类似的基于图的相似处理模块\(f_{\theta}\)和一个专门针对下游任务的第二个模块\(p_ø\)组成。
四种任务的架构示意图
时间序列插补(imputation):核心是估计和填补时间序列中缺失或不完整的数据点。研究可大致分为两种主要方法:样本内估算和样本外估算。样本内估算涉及填补给定时间序列中的缺失值,而样本外估算则涉及推断训练数据中不存在的缺失数据。
时间序列分类:根据给定时间序列的基本模式或特征为其分配一个分类标签。时间序列分类的精髓不在于捕捉时间序列数据样本中的模式,而在于辨别有助于根据类别标签区分样本的差异模式。
统一的框架
框架性质从以下三个方面描述(以STGNNs为例):
- 时间模块
①时间域表示(离散的):基于循环的方法(如RNNs)、基于卷积的方法(TCNs)、基于注意力的方法(如Transformer)以及两者的组合(混合型)
②频率域表示(连续的):采用类似的迹数+正交空间投影 - 空间模块:STGNNs采用静态图上GNNs的设计原则
①频谱GNNs:基于频谱图理论,使用图移位算子(如图拉普拉斯算子)来捕捉图频域中的节点关系。
②空间GNNs:通过直接设计局部化到每个节点邻域的滤波器来简化频谱GNNs。
③混合型 - 模型架构:离散的、连续的
①分解型(时间-空间):时间处理可在空间处理之前或之后进行
②耦合型(时间与空间):时间模块和空间模块交替进行
用于时间序列分析的图神经网络分类
-
STGNN如何集成到时间序列分析的通用流程
给定时间序列数据集后,首先使用数据处理模块对其进行处理,该模块执行基本的数据清理和归一化任务,包括提取时间序列拓扑结构(即图结构)。随后,利用 STGNN 获取时间序列表示,然后将其传递给不同的处理程序(即下游任务预测模块),以执行各种分析任务,如预测和异常检测。
图神经网络的典型计算过程(以GraphSAGE为例):GraphSAGE是一种用于学习顶点表示的图神经网络算法,通过对顶点邻域进行采样和聚合生成顶点的嵌入。
基于GNN的预测模型
方法:空间依赖关系建模+时间依赖关系建模+融合
变量间(空间)依赖关系建模:当前的研究通常采用 (1) 谱 GNN、(2) 空间 GNN 或 (3) 两者的混合方法来模拟这些空间依赖关系。
谱GNN和空间GNN
GNN 被划分成空域和谱域两大类,空域模型不需要矩阵特征分解,能直接在空域视角进行矩阵计算;谱域模型则从信号处理的角度实现 GNN。
与传统GNN相比,谱GNN在图节点表示学习中使用了拉普拉斯矩阵的特征向量.
如上图所示,频域和谱域之间存在三种等价关系
①(A1)空域中局部聚合过程即调整邻居节点上的权重=(B1)谱域中频率聚合过程即调整频率分量上的权重
②(A2)空域中连接顺序过程即聚合不同阶数的邻居节点=(B2)谱域中近似顺序过程即不同结束频率分量的加和
③(A3)空域中传播类型是指标签传播中是否存在逆向传播=(B3)谱域中近似类型是指滤波函数中是否有简单的分母
时间依赖关系建模
表 2 列出了具有代表性的方法及其时间模块分类。给定长度为\(T\)的单变量时间序列\(X_n\),主要目标是学习一个有效的时间模型,称为 TEMPORAL(-)。该模型有望准确捕捉\(X_n\)中数据点之间的依赖关系,即\(\hat{X_n}=TEMPORAL(X_n)\)。其中\(\hat{X_n}\)表示时间序列 \(X_n\)的表征形式。在 TEMPORAL(-) 的构造中,时域和频域都可以在卷积和注意机制中加以利用。循环模型也可专门用于时域建模。此外,在这两个域中还存在混合模型,将注意力和卷积神经网络等不同方法整合在一起。
典型模型:Graph WaveNet
多步骤短期预测、离散分解型、空间GNN
背景:之前的工作,空间层面用固定的图结构/关系捕获空间的依赖特征(不一定反映真实的依赖关系),时间层面用RNNs(不能很好捕获长期依赖、梯度消失、爆炸)或变体LSTM(所需资源多、训练时间长)
模型定义:
模型结构:
左边是输入部分,K层时空层提取时空依赖特征,每个时空层包括一个gated TCN块和GCN块,gated TCN用于提取时间依赖,包括两个TCN模块。TCN模块提取到时间依赖特征后传到GCN层提取空间依赖特征。右边是输出层,相当于MLP。
时间依赖建模:(创新是扩张因果卷积)
①Gated-TCN:TCN-a(相当于input)激活函数是tanh,TCN-b(gate)激活函数是sigmoid(值域0~1),两者乘积得到该组件的输出 \(\mathbf{h}=g(\boldsymbol{\Theta_1}\star\mathcal{X}+\mathbf{b})\odot\sigma(\boldsymbol{\Theta_2}\star\mathcal{X}+\mathbf{c})\)。
②Dilated Casual Conv(扩张因果卷积):将所有的输入数据以时间维度为轴看作一维向量,对所有的输入向量进行1D卷积操作。
因果卷积:某时刻的预测值仅仅和历史时刻的值相关,保证在预测任务中,只是用历史信息进行预测,不包含未来的信息。但存在的一个问题是如果要提取很久以前的信息,就需要很多层或者很大的filter来增加卷积的感受野。卷积层数的增加可能会产生梯度消失,训练复杂等问题,为了解决这个问题,在因果卷积的基础上增加了扩张卷积。
扩张卷积(膨胀卷积、空洞卷积):相比于标准卷积增加了扩张因子,是在标准的卷积核中加入空洞。使用扩张卷积用很少的层数,就可以大大扩大感受野的范围。
该图是结合了扩张卷积的因果卷积的执行状态,扩张因子分别是1、2、4、8,可以得到比之前单纯用因果卷积更大的感受野。
空间依赖建模:(创新是网络的填补+自适应学习出的邻接矩阵)
①Diffusion Conv(扩散卷积):将图上的信息传递看作是随机游走
②自适应邻接矩阵:补充固定拓扑结构中提取特征的不足,不需要任何先验知识,是可以通过随机梯度下降学习到的。
模型总结:
首先input经过一层linear把维度升高,然后将输入数据输入到gated TCN中,捕获时间依赖,然后传入GCN中提取节点之间的空间信息,然后与最初的输入进行残差连接,防止循环次数过程中信息的丢失。然后堆叠K层,通过不同大小的扩张因子,先后提取短期时间依赖和长期,逐步扩大感受野。(在底层,也就是k比较小的时候,GCN获取到的是短期的时间依赖;K比较大时,接收到的时长期的时间依赖。经过多层的迭代,时空层就可以捕捉到长短期的时间依赖以及不同程度的空间依赖关系了。)右侧的输出部分就是MLP的结构,将K个时空层的结果concatenate,然后通过两个线性层得到输出序列。这里的输入和输出对应的维度分别是输入序列和输出序列的长度。只要运行一次就可以得到想要的输出,这样做的好处是,每一层都可以得到一个输出,这样相比于RNN系列方法,可以提高效率。
基于GNN的异常检测模型
时间序列异常检测的目的:识别不符合数据生成过程名义机制的数据观测值。与正常的时间序列数据不同,异常很难描述,主要有两个原因。首先,异常数据通常与罕见事件相关,因此收集和标记异常数据往往是难。其次,确定潜在异常事件的全部范围通常是不可能的,这破坏了监督学习技术的有效性。因此,无监督检测技术作为解决方案得到广泛探索。
异常检测的一般模型:
骨干模块和评分模块构成的分叉模块框架。首先,训练骨干模型 \(\mathrm{BACKNBONE}(·)\),以适应给定的训练数据,这些数据被假定为名义数据或包含极少异常的数据。其次,评分模块\(\mathrm{SCORER}(\mathbf{X},\mathbf{\hat{X}})\)通过比较骨干模块的输出\(\mathbf{\hat{X}=\mathrm{BACKNBONE}(X)}\)和观察到的时间序列数据\(X\),产生一个用于识别异常的分数。该分值用于衡量正常和异常情况下预期信号之间的差异。当差异分值较高时,发生异常事件的可能性较大。此外,模型还必须通过精确定位相关变量来诊断异常事件。因此,评分函数通常会先计算每个通道的差异,然后再将所有通道的差异合并为一个异常值。
简单说,骨干网可以是一个 GNN 预测器,它可以为评分器提前一步进行预测。然后,评分器将异常值计算为每个通道变量的绝对预测误差之和,即\(N\)个通道变量的\(\sum_i^N|x_t^i-\hat{x}_t^i|\)。由于最终得分是根据通道误差的总和计算的,因此操作员可以通过计算每个变量对误差总和的贡献来确定根本原因变量。
基于GNN的分类模型
方法:将时间序列数据转化为图表示,GNN捕捉局部和全局的模式并映射不同时间序列数据样本之间的关系。
基于GNN的插补模型
基于图神经网络的时间序列插补包括样本内和样本外插补、确定性插补和概率性插补
标签:精读,mathbf,综述,卷积,神经网络,时间,序列,GNN,节点 From: https://www.cnblogs.com/PangYuanyuan/p/18034450