来源论文iclr2024
论文地址:https://arxiv.org/abs/2405.14616
源码地址: https://github.com/kwuking/TimeMixer
背景
数据是有连续性,周期性,趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为:
短期变化(细粒度):例如局部波动、尖峰等,通常与日常行为或随机事件相关。
长期变化(粗粒度):例如趋势、周期性或季节性模式,这些通常反映更广义的规律。
现有方法(如 RNN 和 Transformer)通常只能从单一时间尺度建模,忽略了不同时间尺度之间的关联性。
确实,在金融领域,如a股是有明显的周期性的,在股价预测方面确实可以借鉴。
模型创新点和现有方法的局限性
创新点:
1.多尺度混合架构:TimeMixer 提出了一种新颖的多尺度混合架构,通过 过去可分解混合(Past-Decomposable-Mixing, PDM) 和 未来多预测器混合(Future-Multipredictor-Mixing, FMM) 两部分,分别用于过去信息提取和未来预测。
PDM:通过分解时间序列的季节性和趋势部分,分别从细到粗和粗到细的方向进行混合,整合微观和宏观信息。
FMM:集成多个预测器,利用多尺度时间序列的互补预测能力,提升预测性能。
2.全MLP结构:TimeMixer完全基于MLP,简化了模型架构,在保证性能的同时显著提高了运行效率。
3.一致性与广泛适用性:TimeMixer 在长短期时间序列预测任务上均达到了最新的性能,并在多个基准数据集上表现优异,包括复杂且低预测性的场景。
现有方法的局限性:
1.依赖固定架构:现有方法(如基于Transformer和CNN的模型)通常受限于其基础架构,难以同时捕获时间序列的微观细节和宏观趋势。
2.缺乏多尺度整合:虽然部分模型(如Pyraformer, SCINet)尝试了多尺度设计,但它们未能在未来预测阶段充分利用多尺度信息的互补性。
3.效率问题:Transformer类模型计算复杂度高,对硬件要求较高,不适用于实时应用。
4.单一分解方式:传统方法(如Autoformer, FEDformer)仅局限于简单的时间序列分解,无法灵活适应复杂的时间序列变化
模型架构
Past-Decomposable-Mixing (PDM)模块
PDM 模块负责从历史数据中提取多尺度的时间特征,通过分解和多层混合来捕捉趋势和季节性
PDM 的具体步骤:
时间序列分解:
使用分解模块(如基于 Autoformer 的策略)将时间序列分为:
1.趋势性成分(Trend):表示长期变化。
2.季节性成分(Seasonal):表示短期波动。
生成多尺度的趋势和季节性子序列。(也就是将其自底向上隔点取值)
那是怎么进行多尺度划分的呢?
看这里 我们取P为96,l取0,1,2,3.
原文采用的是普通的平均池化来进行多尺度划分,将P和l进行带入后获得的多尺度提取序列是,第一次比如是隔2个点进行取值获得第一次的粗序列,第二次进行四个点取值的粗序列,第四次是隔八个点取的粗序列,反正是根据2的指数进行递增的。如下图。
下面这是特征提取层
那么这个PDM模块得到的是哪个mixing呢?
答案是总的
那我们如何得到这些趋势向和季节向?
原文就是通过平均池化,得到趋势向
然后用总的减去趋势向得到季节向
那么为什么用平均池化可以得到趋势向?
举个例子, 2,4,6,8,假设池化步幅为2
平均池化后得到3,3,7,7那么这就是趋势向得到的结果,这时候我们可以看到这是有上升趋势的,
那么用原来的序列减去平均池化后的序列结果呢?得到-1,1,-1,1 这样一看就很有周期性。
先看季节向的公式:
季节向是自底向上的,为什么自底向上,是因为季节性的话(也就是周期性),提取向上后时间间隔越来越大,那么得到的上层的周期性就不明显,就需要用下层的信息去补充上层信息,使其达到季节性效果。
趋势层是自上到下的,自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。
FMM模块
就是将多尺度提取后mixing模块的结果进行维度转换,把它统一到一个维度去,最后在进行加权得到最后的预测结果。
总体模型图如下。
实验部分
最后实验部分也是比sota模型高。
TimeMixer在所有基准测试中都实现了一致的最先进性能,涵盖了具有不同频率、
变量数和实际场景的大量系列。特别是,TimeMixer的性能明显优于PatchTST,天气MSE降低
了9.4%,Solar-Energy MSE降低了24.7%。值得注意的是,即使在Solar-Energy和ETT等可预测
性较低的数据集上,TimeMixer也表现出了良好的性能,进一步证明了TimeMixer的通用性和有
效性。
为了验证模型的泛化能力,在一些比较随机性差的数据集是否有效果,作者定义了一个指标
Forecastability,Forecastability可预测指数(2013ForeCA算法)
谱熵–反映数据在频域中的不确定性,度量数据集混乱程度的指标,熵值越高,时间序列趋势越复杂,越难以预测
(1-熵值)越大,可预测Forecastability:性越强