StemGNN(2020 NIPS)
Preliminary
此文做的是多变量时序预测任务。像通过一支股票的走势预测它未来的价格是单变量时序预测,如果同时观察多支股票并作出相应预测即可看成是多变量时序预测。
Challenge
多变量时序预测往往需要对单个变量内在的时间模式和多个变量间的关系同时进行建模。现有的多变量时序预测模型大多是直接堆叠例如GRU、TCN、GCN等时空间模块来捕捉时空间依赖,只能捕捉到时域的时间模式并且需要预先定义好的邻接矩阵。
Motivation
现在已经有工作使用离散傅里叶变换(DFT)与神经网络结合对时间序列做分析。考虑到将序列转到频域后能有更清晰的时间模式,作者选择在频域上提取时空依赖。
Contribution
- 此文设计了名为StemGNN的结构,通过离散傅里叶变换(DFT)和图傅里叶变换(GFT)将时空域转到频域,并同时在频域上捕捉时空间依赖。
- 此文使用数据驱动的方法学习序列间的相关性来构建邻接矩阵从而不再需要预先定义邻接矩阵。
- StemGNN在9个基准上取得了sota的结果。
Model
Overview:
如下图所示,输入首先经过Latent correlation layer学习变量间的隐关联并作为邻接矩阵。然后将输入和学习到的邻接矩阵一同输入到两层StemGNN模块中。StemGNN模块首先使用GFT将空间维度从空域转换到频域,然后使用DFT将时间维度从时域转到频域。紧接着此文在时间频域中使用1D-CNN和GLU提取时间频域中的时间模式,然后再使用IDFT将时间维度从频域转回时域。最后使用GCN提取空间频域的空间依赖并使用IGFT将空间维度从频域转回空域。
上式的前一部分是预测loss,后一部分是重建loss。因为模型是迭代预测,那么模型是否能准确识别每一次的输入也至关重要,重建loss能让模型更好的识别每一次的输入。
Latent Correlation Layer:
StemGNN Block:
Spectral Sequential Cell (Spe-Seq Cell):
Spectral Graph Convolution:
Experiments
Datasets:
本文一共使用了9个数据集如下图所示
Results:
StemGNN与单变量时序预测模型TCN、NBeats;多变量时序预测模型等DCRNN、ST-GCN等进行比较。下图中可以看到StemGNN除了PEMS08的MAE外均取得了最好的结果,同时多变量时序模型在多变量任务上优于单变量模型。
Ablation Study:
此文进行消融实验验证了提出的各个部分的有效性,可以看出没有时间提取Spe-Seq后效果最差。
Analysis:
此文对学习到的邻接矩阵进行可视化如下图。
此文还对COVID-19数据集进行实验并可视化了邻接矩阵,如下图所示。
最后此文可视化了GFT和DFT后的时间序列并可视化,可以看到频域上的序列更加平滑容易预测。