时间序列预测中,经常存在不同粒度的规律性,比如以天为粒度、周为粒度、月为粒度等。以前的时间序列建模方法,往往只考虑了单一的粒度。比如Informer这类模型,只考虑了单个点的最细粒度;而PatchTST等方法,将时间序列分成多个patch,每个patchh分别进行编码,只考虑了patch长度对应的粒度。
然而,多维粒度的信息对于时间序列预测非常重要。那么如何在Transformer中引入时间序列从细粒度到粗粒度不同维度的信息呢?今天介绍的这篇文章就提出了一种新的Transformer多元时间序列建模方法,可以实现任意粒度的时间序列信息建模。模型的整体结构分为趋势季节项分解、DI Embedding、Encoder-Decoder等模块,下面给大家详细这篇工作。
论文标题:Multi-scale Transformer Pyramid Networks for Multivariate Time Series Forecasting
下载地址:https://arxiv.org/pdf/2308.11946v1.pdf
首先对于原始的时间序列,进行趋势项和季节项分解。趋势项部分,使用简单的Linear模型进行预测,在之前的一些工作中,都采用线性模型建模趋势项效果更好。对于季节项,使用本文提出的主体模型MTPNet进行建模。最终,将趋势项和季节项相加,得到最终的预测结果。
下面重点介绍MTPNet的模型实现思路。
MTPNet模型的整体建模思路基于PatchTST,即使用分patch的方式处理原来的多元时间序列,然后使用Transformer进行建模。其中和原来PatchTST、Informer等工作的一大区别是Embedding的设计上。
如下图,之前的Embedding部分主要是Spatial Embedding和Temporal Embedding两种模式。这两种模式,一种是在空间维度分patch,另一种是在时间维度分patchh。Spatial Embedding将每个时间步的所有变量映射到一个向量,类似Informer的做法;Temporal Embedding将每个变量的序列单独处理,将多个时间步的子序列映射到一个向量。
而本文认为,这个Embedding生成过程应该同时考虑时间维度和空间维度。因此本文提出了DI Embedding,通过一个3*1的卷积先对原来的时间序列做处理,实现空间维度信息的融合,然后再在时间维度上进行分patch的操作。通过这种方式,每个patch的embedding既考虑了时间维度信息的融合,又考虑了空间维度信息的融合。
文中的整体Encoder-Decoder模型架构如下图,左侧是某一层的Transformer结构,右侧是多层的结构,每一层k代表一种粒度的建模,各个粒度之间的信息是相互关联的。
其中,Encoder-Decoder的层次结构是本文的重点。为了实现不同粒度的建模,文中采用了patch尺寸来控制。K层中每一层对应一种大小的patch size,基于这个patch size进行DI embedding,可以实现不同粒度的信息提取。第k层的信息会通过拼接的方式融合第k-1层的编码结果,计算过程如下,其中H是上一层的编码结果,X是当前层使用对应patch size得到的编码:
而Transformer就是传统的QKV形式,这部分没有做修改。Encoder和Decoder都进行这种多粒度信息的建模,最终融合各个粒度的编码结构得到最终的预测结果。
下表列出了在多个多元时间序列预测数据集上,本文提出的方法和其他方法的对比。可以看出,本文提出的MTPNet方法有着不错的效果提升。

加交流群请加微信,备注机构+方向拉群~

内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢