点关注,不迷路,用心整理每一篇算法干货~
今天给大家介绍一篇CIKM 2024中的时间序列预测工作,这篇文章针对高维多变量时序预测问题,提出了一种基于Transformer的建模方法。
论文标题:Scalable Transformer for High Dimensional Multivariate Time Series Forecasting
下载地址:https://arxiv.org/pdf/2408.04245v1
现在的时间序列预测主要研究点都是如何扩长能够建模的历史长度和未来长度,也就是时间维度上的扩展。比较少的工作研究如何建模变量维度上的扩展。
在多变量时间序列建模中,现在的方法主要集中在channel-independ和channel-depend两种方式上。后者虽然能考虑到变量间的关系,理论上界更高,但是实际应用中效果往往会比channel-independ方法效果差。特别是当变量维度增大后,这种效果差异更加明显。
例如文中通过实验验证,Crossformer、iTransformer等channel-independ建模方法,相比PatchTST等channel-independ建模方法,在高维多变量时序预测中平均会差19%。
文中在一个数据集上验证了Crossformer、iTransformer等channel-depend建模方法中,选择变量的数量对效果的影响。选择的变量按照和目标序列的相关系数进行排序,先引入相关度最高的,后引入相关度低的。从图中可以看出,当选择50%的最高相关性变量建模时,效果达到最好,说明引入多变量间关系建模确实可以提升效果。但是当进一步引入更多变量时,效果开始下降。
文中认为,下降的原因主要是随着引入变量的相关性变差,引入了更多噪声,反而影响了模型的学习。比如下图中,先引入的相关变量都和目标序列趋势很像,但是后引入的变量和目标变量差异很大。
针对上述分析,为了适应这种高维多变量建模问题,文中提出了一种稀疏关联矩阵的Transformer建模方法。核心是筛选出相关性比较高的变量作为目标变量的辅助序列,再基于Transformer构建时间-空间的二维attention,实现最大化相关序列有效信息的引入。
整体的建模方法如图所示。对于每个序列,根据皮尔逊相关系数,选择和其最相关的topK的其他序列,这些序列作为辅助序列,和目标序列一起输入到后续的模型中。
这种引入外部序列的方法,会导致一个batch内的样本数量大增。为了减轻内存和计算压力,文中采用了一种ReIndex方法重新组织数据。原本的建模方法每个batch数据的组织方法如下图灰色部分所示,随机采样多组target-辅助序列组合输入模型。ReIndex的引入如右图灰色所示,相当于每次只训练一个target序列,然后将其辅助序列的不同子序列训练采样多组。通过这种方式,省去了对多个target序列的采样,大大降低的计算和内存开销。
在具体的模型结构上,文中采用了一种2维Transformer。对于目标序列和辅助序列,都分成多个patch。对于每个patch,加上其对应的时间位置编码,以及其对应的channel位置编码。相比于Crossformer在时间和变量两个维度进行两阶段的attention,本文直接将所有时间、变量维度的patch放到一起进行attention,实现任意时刻、任意变量之间的attention计算。
文中在高维数据集中验证了效果,相比之前的channel-depend和channel-independ方法都取得了显著的效果提升。
下图展示了引入最相关topK、最不相关topK作为辅助序列的效果以及不引入辅助序列的效果对比,可以看到,只有当引入最相关topK个序列时,效果才是最优的,表明辅助序列和目标序列的相关性,确实是channel-depend建模的关键。
投稿&加交流群请加微信,备注机构+方向拉群~