您现在的位置是:首页 >学无止境 >基于Pathways架构的自适应多尺度时间序列预测模型Pathformer网站首页学无止境
基于Pathways架构的自适应多尺度时间序列预测模型Pathformer
本文主要是转载一下几篇博客(感谢楼主),进行一个总结以及思考:
ICLR2024 | Pathformer: 基于Pathways架构的自适应多尺度时间序列预测 - 知乎
时序必读论文09|ICLR24基于Transformer 自适应多尺度patch的时序预测模型 - 知乎
[ICLR 2024] 基于Pathways架构的自适应多尺度时间序列预测模型Pathformer-阿里云开发者社区
话不多说,开始讲解
原文地址:pdf
发表会议:ICLR2024
代码地址:decisionintelligence/pathformerhttps://github.com/decisionintelligence/pathformer
作者:陈鹏, 张颖莹, 程云爻, 树扬, 王益杭, 文青松, 杨彬, 郭晨娟
单位:华东师范大学、阿里巴巴、奥尔堡大学
前言
这篇文章的思路就是:通过傅立叶变化进行周期分解,把时序数据自适应切分为最佳的、不同尺度的patch,然后设计patch内和patch间的注意力机制,进行下游任务。关于自适应尺度这样的学术词汇,以电影举例,有的电影情节冗长拖沓,我们就会快进,看电影的粒度和尺度就会更宽。而有的电影情节紧凑,我们会慢慢欣赏,看电影的粒度和尺度就很精细。自适应的意思就是根据电影情节密度自动帮你计算合适的快进步长。
多尺度(日、月、季节等)建模主要从不同的尺度中提取时序特征和依赖关系,建模多尺度需要考虑两个方面:时间分辨率和时间距离。时间分辨率指用于建模的每个时间patch的大小。如图1中,相同的时序别划分为小的patch(蓝色)或大的patch(橙色),提出细粒度和粗粒度的时序特征。时间距离对应于显示建模时间依赖性,决定用于时序建模时时间步之间的距离。如图1中,黑色箭头模拟了相邻时间步之间的关系,提取时序的局部细节,而彩色箭头模拟了跨长距离的时间步之间的关系,提取时序的全局关联。

挑战
基于Transformer模型的多尺度建模,主要有两个挑战。
一:不完备的多尺度建模。只是针对时间分辨率不能有效地捕捉不同范围的时间依赖关系,相反,考虑时间距离虽然能提取不同范围的时间依赖,但到数据全局和局部间隔受划分的影响,单一的时间分辨率并不完备。
二:固定的多尺度建模过程。对所有时序采用固定的多尺度建模阻碍了每个时序的重要特征捕捉,然而为每个数据集或每个时序手动调整最佳尺度非常耗时且难以处理。
解决方案
针对这两个挑战,提出了一个基于Pathways架构的自适应多尺度Transformer模型(Pathformer)。
- 针对挑战一,整合了时间分辨率和时间距离提出了一个多尺度Transfomer模块,主要包括patch 划分和双重注意力机制。使用不同大小的patch进行多尺度划分,基于每个尺度得到的patch划分,使用双重注意力机制(patch内注意力和patch间注意力)建模时间依赖关系,通过patch内注意力捕捉局部细节,patch间注意力捕捉全局关联。
- 针对挑战二,提出自适应pathways,激活Transformer的多尺度间建模能力。在模型的每一层,一个多尺度路由器根据输入时序的时间动态性自适应选择不同的patch大小进行划分,经过双重注意力进行建模,然后使用聚合器自适应聚合这些多尺度的特征。这种逐层地路由和聚合最终形成了自适应pathways的多尺度建模。
框架
论文提出Pathformer模型,它整合了时序的resolution和distance,能够根据输入时间序列中不同的时序,动态调整多尺度建模过程,自适应的用不同尺度的patch分解时间序列。并在patch内和patch间设计了注意力机制,以捕获全局和局部的依赖关系,用于时间序列预测。提高了预测准确性和泛化性。对九个真实世界数据集的实验结果表明,Pathformer优于现有模型,展现出更强的泛化能力。

如上图左半部分所示,整个预测网络由:实例正则化(Instance Norm)、自适应多尺度块(Adaptive Multi-Scale block, AMS Blocks)的堆叠,以及预测器(Predictor)组成,核心是中间的自适应多尺度AMS block模块。
AMS block模块则包含多尺度Transformer block模块和Adaptive pathways模块 。其中:
多尺度Transformer模块
多尺度划分. 为了方便表示,我们以单变量进行描述。在多尺度Transformer块中,定义M个patch大小集合, 每一个patch大小对应一个patch划分操作。对于输入的时序
,其中每个 patch 大小为 S,原序列长度为 H,则序列被分割为 P(其中 P=H/S)个 patch,一个patch
大小为S划分时序为
,P表示Patch的数量,不同的patch大小得到不同时序的时间分辨率。

双重注意力机制. 基于每个尺度的patch划分,提出了双重注意力机制来建模不同范围的时间依赖。如图3(a)所示,经过patch大小S划分得到的(X1,X2,…,XP),patch内注意力(intra-patch attention)建模每个patch内部不同时间点之间的关联。对于第i个patch ,对特征维度d进行embedding得到
,然后进行线性映射得到键矩阵和值矩阵
。初始化一个可学习的查询矩阵
,然后对
进行跨注意力计算来建模第i个patch内部局部细节。
经过了patch内注意力机制,每个patch的长度从S变为1.将每个patch的得到的注意力结果进行合并得到最终的结果。
patch间注意力(inter-patch attention)建模不同patch之间的关系来捕获全局关联。对划分后的时序在特征维度上进行embedding。根据标准的自注意力机制,通过线性映射得到
,计算出注意力结果
,代表时序的全局关联。
自适应Pathways
这里又引出了一个新的问题,即需要自动的匹配到最佳的序列分割长度。作者在adaptive pathways模块设计了两个部分,包括:多尺度路由器和多尺度聚合器。
- 多尺度路由器。通过傅立叶变换选择最佳的patch划分尺寸,从而控制了多尺度建模的过程。路由器中引入了时间分解模块,它包括季节性和趋势分解,以提取周期性和趋势模式,选择top K个权重送至多尺度Transformer模块以执行多尺度建模。
- 多尺度聚合器。对从多尺度Transformer模块获得的特征进行加权聚合。
多尺度路由器
周期分解将时序从时域转换到频域来提取周期模式。我们利用离散傅立叶变换将输入时序分解为傅立叶基并选择振幅
的基,然后通过逆傅立叶变换
得到周期模式
。
这里 分别代表经过每个频率对应的相位和振幅,
表示具有前
个振幅的频率。趋势分解使用不同的 kernel 进行平均池化来提取周期分解后的剩余部分的趋势模式
。对于不同的 kernel,采用加权操作来获得最终的趋势项表示。
我们对周期项和趋势项与原输入相加,然后在时间维度上进行线性映射得到 。基于时序分解的结果
,路由器使用路由函数
生成路径权重来选择 patch 大小进行划分。为了避免权重生成过程中一直选择某几个 patch 大小,导致相应的尺度模块重复更新而忽视其它更有用的尺度,因此我们引入噪声项来为权重生成加入随机性。整个权重生成过程如下所示:
为了保持路由的稀疏性同时鼓励选择关键尺度,在路径权重上使用 Top-K 策略,保留前 K 个路径权重,并将其余权重设置为 0,并将最终结果表示为 。
多尺度聚合器
生成的路径权重的每个维度对应多尺度Transformer中的一个patch大小,其中 表示执行此patch大小对应的patch划分和双重注意力。设表示patch大小为
对应的多尺度Transformer块的输出,基于路径权重,聚合器对多尺度输出执行加权聚合操作,得到AMS块的最终输出:
这里是指示函数,在时输出 1,否则输出 0。
实验
如表1所示,Pathformer超过了baselines,取得了SOTA预测效果。相比于最好的基准PatchTST,Pathformer在MAE和MSE上取得了8.1% 和6.4% 的提升。相比于线性模型DLinear和NLinear,Pathformer超过了它们,特别是在大数据集上,说明基于Transformer架构的模型依然具有很大的前景。相比于多尺度模型Pyraformer和Scaleformer, Pathformer展现出很大的预测效果提升,说明基于自适应多尺度的建模更加有效。

迁移实验
在两种场景中进行了迁移实验。为了评估模型在不同数据集之间的迁移,模型在ETTh1和ETTm1上进行预训练,然后在ETTh2和ETTm2进行迁移。为了评估模型在同一数据集中对时间的迁移,模型在阿里云三个集群数据(Cluster-A,Cluster-B,Cluster-C)取 前70% 训练数据进行预训练, 用后30%训练数据进行微调。我们在基准上进行了两种迁移方式,直接预测(zero-shot)和全部微调。同时Pathformer提出了一个部分微调策略,针对模型中少量参数(如多尺度路由网络参数)进行微调,大大降低了计算成本。
如表3所示, Pathformer在直接预测和全部微调方法上都超过了基准,表明了Pathformer具有好的泛化性和迁移性,主要来自它自适应多尺度建模的能力。部分微调作为一种轻量化的微调方式仍然实现了一个好的预测效果,大部分超过了基准,说明Pathformer能够提供一种轻量级迁移学习方法。

消融实验
为了验证pathformer中各个模块的有效性,进行了消融实验,重点关注patch间注意力,patch内注意力,时序分解和Pathways。 如表3所示, 每个模块展现了不同的影响,其中Pathways的影响显著,这强调了模型自适应选择不同尺度进行多尺度建模的能力对预测效果很重要。patch内注意力在捕捉局部模式方面比较出色,与捕捉全局模型的patch间注意力形成对比。时间序列分解模块分解出周期和趋势项,提升了模型捕捉时间动态性,帮助路由网络更好地进行自适应选择。

敏感性分析
对自适应选择patch size K 的数量进行敏感性分析, 评估不同的K 对模型预测效果的影响。如表4所示,K为2和3时比K为1和4产生更好的预测效果,说明模型的自适应建模多尺度特征帮助提升预测准确率。同时,选择所有的patch 大小并没有取得最好的预测效果,说明针对一个时序样本并不是所有的patch都完全有效,有些patch大小对某些时序样本可能对模型产生负面预测效果,这也突出自适应多尺度建模的重要性。

思考和总结
本文提出了一种用于时间序列预测的多尺度Transformer与自适应路径(Pathformer)。它通过引入具有多尺寸的patch划分和对划分的patch进行双重注意力建模,将多尺度序列分辨率和距离整合在一起,从而实现了对多尺度特征的全面建模。此外,自适应路径根据不同的时间动态路由选择和聚合尺度特定特征。这些创新机制共同使Pathformer能够在多个预测任务中取得出色的预测性能,并展现出强大的泛化能力。
patch是一个趋势,后续的工作应该考虑先patch,然后设计各类改进。patch动态分割是很容易从图像领域借鉴过来的,只是没想到有人速度如此之快。此外,关于未来可做的点还想说一句:diffusion和patch的结合或许有搞头。
这篇论文的路由函数选择最佳patch有什么依据?
路由函数配备了趋势分解和季节性分解模块。通过将时间序列从时间域转换到频率域,提取周期性模式,然后通过逆变换得到季节性成分,同时还可以得到趋势成分。这样路由器能够更好地理解时间序列的内在特性,从而为选择合适的 patch 大小提供依据。
代码讲解
代码部分,为了大家更好的阅读和探讨我在飞书进行上传,有问题大家可以在疑问区域直接评论和且代码部分每个公式我也做了详细数学介绍,绝对通俗易懂!
代码位置: