前言
这篇文章的思路就是:通过傅立叶变化,把时序数据自适应切分为最佳的、不同尺度的patch,然后设计patch内和patch间的注意力机制,进行下游任务。思路非常清晰简洁。
关于自适应尺度这样的学术词汇,我想通过举例子其实非常容易理解。以电影举例,有的电影情节冗长拖沓,我们就会快进,看电影的粒度和尺度就会更宽。而有的电影情节紧凑,我们会慢慢欣赏,看电影的粒度和尺度就很精细。自适应的意思就是根据电影情节密度自动帮你计算合适的快进步长。
如上图就是一个例子,左图:时间序列被划分为具有不同尺度的patch,作为时间分辨率。蓝色、橙色和红色的间隔代表不同的patch大小。右图:通过不同的时间距离建模局部细节(黑色箭头)和全局相关性(彩色箭头)。
本文工作
论文提出Pathformer模型,它整合了时序的resolution和distance,能够根据输入时间序列中不同的时序,动态调整多尺度建模过程,自适应的用不同尺度的patch分解时间序列。并在patch内和patch间设计了注意力机制,以捕获全局和局部的依赖关系,用于时间序列预测。提高了预测准确性和泛化性。对九个真实世界数据集的实验结果表明,Pathformer优于现有模型,展现出更强的泛化能力。
如上图左半部分所示,整个预测网络由:实例正则化(Instance Norm)、自适应多尺度块(Adaptive Multi-Scale block, AMS Blocks)的堆叠,以及预测器(Predictor)组成,核心是中间的自适应多尺度AMS block模块。
AMS block模块则包含多尺度Transformer block模块和Adaptive pathways模块 。其中:
一、Multi-Scale Transformer block
多尺度Transformer block在图右半部分,主要实现patch的分割和双注意力机制。
- 多尺度分割。每个patch大小为S,原序列长度为H,则序列被分割为P(其中P = H/S)个patch,即(X1, X2, ..., XP)。patch的大小就是分割的尺度差异,为输入序列提供不同分辨率的时间视图。
- 双注意力机制。基于每个尺度的patch划分,作者构建了双重注意力机制来建模patch的依赖关系。如图所示,构建了patch内部和patch之间的不同依赖关系。
二、Adaptive Pathways
这里又引出了一个新的问题,即需要自动的匹配到最佳的序列分割长度。作者在adaptive pathways模块设计了两个部分,包括:多尺度路由器和多尺度聚合器。
- 多尺度路由器。通过傅立叶变换选择最佳的patch划分尺寸,从而控制了多尺度建模的过程。路由器中引入了时间分解模块,它包括季节性和趋势分解,以提取周期性和趋势模式,选择top K个权重送至多尺度Transformer模块以执行多尺度建模。
- 多尺度聚合器。对从多尺度Transformer模块获得的特征进行加权聚合。
结论
本文提出了一种用于时间序列预测的多尺度Transformer与自适应路径(Pathformer)。它通过引入具有多尺寸的patch划分和对划分的patch进行双重注意力建模,将多尺度序列分辨率和距离整合在一起,从而实现了对多尺度特征的全面建模。此外,自适应路径根据不同的时间动态路由选择和聚合尺度特定特征。这些创新机制共同使Pathformer能够在多个预测任务中取得出色的预测性能,并展现出强大的泛化能力。
个人感受:patch是一个趋势,后续的工作应该考虑先patch,然后设计各类改进。patch动态分割是很容易从图像领域借鉴过来的,只是没想到有人速度如此之快。此外,关于未来可做的点还想说一句:diffusion和patch的结合或许有搞头。