NeurIPS 2023 | Koopa: 基于库普曼理论的非平稳时序预测模型

2023-11-23 15:02:03 浏览数 (2)

#TSer#

本文介绍一篇由清华大学软件学院机器学习组在时间序列预测方向的最新工作,该论文已被NeulPS 2023收录。

在该论文中,研究者解决了时间序列预测中的非平稳性挑战,提出了一种名为Koopa的新方法,该方法利用Koopman理论来捕捉非平稳序列的潜在时变动态。Koopa使用傅里叶滤波器分离时变和时不变组件,并设计Koopman预测器来推动动态向前发展。它利用可堆叠的块来学习分层动态,并计算时间邻域内的上下文感知操作符来处理时变动态。通过将Koopman预测器集成到深度残差结构中,Koopa实现了端到端预测目标优化。实验结果表明,Koopa优于最先进的模型,同时显著减少了训练时间和内存使用。

论文地址:https://arxiv.org/abs/2305.18803

论文源码:https://github.com/thuml/Koopa

研究背景

时间序列预测已成为现实世界应用的重要组成部分,如天气预报、能源消耗和财务评估。随着大量可用观测数据的出现,深度学习方法展现出优越的性能,推动了深度预测模型的发展。TCN(时间卷积网络)、RNN(循环神经网络)、Transformers以及MLP(多层感知机)搭建的深度模型在时序预测场景中取得了不断突破。

尽管模型设计精巧,但深度模型在泛化不同分布时面临一个根本问题,由于固有的非平稳性,这个问题在现实世界的时间序列中广泛存在。以前的方法调整现有架构设计来减弱非平稳性的不利影响,但很少有研究工作在理论上可用于自然处理时变时间模式的基础理论。

此外,作为分析复杂动力学的主要方法之一,Koopman理论提供了一种启示,即将非线性系统转化为测量函数空间,这可以通过线性的Koopman算子来描述。一些初步工作通过与深度学习方法的集成来实现,如使用自动编码器网络和算子学习。更重要的是,Koopman理论证明,对于时变动力学,存在系统的坐标变换,其中局部Koopman算子可以有效地将整个测量函数空间描述为几个线性化的子空间。

在本文中,研究者将非平稳序列分解为时间不变和时间变化动力学,并提出了Koopa(Koopman Forecaster)作为一种新型的Koopman预测器。研究者的贡献概括如下:

  • 提出了由模块化傅里叶滤波器和Koopman预测器组成的Koopa,它可以分层地解缠和利用时间不变和时间变化动力学进行时间序列预测。
  • 基于Koopman算子的线性,所提出的模型能够利用传入序列并适应不断变化的动力学以扩大预测视野。
  • 与最先进的方法相比,Koopa模型在节省77.3%的训练时间和76.0%的内存方面达到了竞争性的性能,这是从六个现实世界基准中平均得出的。

模型设计

01

模型结构

Koopa模型由多层基础模块组成。每个Koopa块专注于学习特定层次的动力学特性,并通过叠加这些块,我们的模型能够捕捉到时间序列的多层次、复杂的动态变化。这种方法提高了模型的预测精度,并且增强了模型对复杂、非线性和非平稳时间序列的适应性。

为了更好地建模时间序列,研究者充分考虑非平稳数据的可分解特性。基于Wold's Theorem,对任意弱平稳时间序列有如下分解:

为确定性分量(例如正弦波 )一般具备时不变性(例如周期,幅值,频谱);为高斯白噪声,作为线性滤波器的平稳过程输入。

受此启发,研究者认为时序数据在动力学视角下可进一步被分解为时不变(time-invarinat)和时变(time-variant)组分,两种组分应使用完全不同的建模方式。如上图,时不变组分在不同时期具备相对稳定的转移,使用全局共享算子建模从历史观测到未来预测的转移;时变组分在不同时期具备不同的转移,是非平稳性的主要成因,所以研究者针对不同时期计算局部化的算子。

研究者提出一种基于傅立叶分析的方法滤出上述组分,并设计两种不同的库普曼预测器(Koopman Predictor)进行分别建模。每个KoopaBlock由上述模块组成,计算过程如下:

其中 代表层序号,下标 分别代表时不变/时变组分。另外,时变预测器除了输出预测外,还会输出对历史观测的拟合结果,与基础模块的输入相减后进入下一模块,继续建模残差的动力系统。Koopa模型通过堆叠获得可扩展性(Scalability)以建模复杂非平稳数据,预测结果为所有基础模块中两种预测器输出的总和:

02

基于傅里叶分析的组分分解

为分解出时变/时不变组分,我们从时间上的“全局”视角分析时序数据,考虑到训练时模型的输入是通过在数据集上分窗得到的,我们将利用这个序列集合,找到时变与时不变的组分。

时序分析的两个维度一般包含时域与频域,其中,频率是描述的正是一个全局概念,使用傅立叶变换,我们可以获得序列各种频率的强度(频谱),进而提取数据集的时不变特性。

具体而言,我们对每个序列进行傅里叶变换 ,计算训练数据的频谱强度分布,强度高的频率即为数据集(整段时期)的主要频率,记强度排名前 的频率集合为 。每次输入待预测序列时,利用傅立叶变换将频率在 的组分过滤为时不变组分,而剩余的组分就是每个序列所处时期的独特成分,即为时变组分。计算过程如下:

03

时不变库普曼预测器

如下图所示,在时不变组分的建模中,我们使用一对编/解码器学习测量函数与其反函数,在编码得到的历史观测特征表示 上学习全局共享的转移算子 ,得到预测结果的表示 ,并解码为时不变组分预测输出:

左:时不变预测器结构;右:时变预测器结构

04

时变库普曼预测器

由于每个时期的时变组分的状态转移都不同,我们需要使用局部化的算子独立描述每个窗口的序列输入。为了提高处理效率并获取更具语义的信息,研究者将输入的时间变化部分

切分成了多个长度为S的段,每个段被标记为

并使用一对编/解码器学习到高维线性系统的变换:

根据分段结果,使用数据驱动的eDMD算法获得时变算子 (在每个窗口都是独立计算且不同的),计算如下:

基于得到算子可以对历史观测的动力系统计算拟合结果:

也可以进一步外推得到对未来的预测结果:

最后重新将这些分段组合即可得到模块的拟合输出和序列预测:

实验分析

研究者在七个公开的预测任务基准上测试模型效果,覆盖52种不同的预测场景,在模型效果与计算效率取得了显著突破。

01

预测效果

研究者展示了模型在代表性任务上的预测效果(纵轴),计算效率(横轴)以及显存占用(图标大小),可以发现:

  • 在预测效果上,Koopa大幅超越此前的库普曼预测模型KNF以及线性模型DLinear;
  • 相较于此前效果SOTA但计算代价极高的PatchTST模型,Koopa体现出显著效率优势。在序列数较多的交通流量预测任务上(Traffic),Koopa最多可节省的的训练时间并且仅需其的显存开销;

此外,在M4数据集的单变量预测实验中,Koopa取得了一致最优预测效果。

02

模块分析

1. 消融实验

研究者通过模块消融实验,证明所提出的傅立叶分解模块有效地适配了建模非平稳数据所需的分解方式,以及所提出库普曼预测器之间的互补性。

2. 分解效果

进而再验证了分解模块的有效性。通过对比获得组分的时变性程度(Degree of Variation)。证明了所提出的模块能有效分离时变分量与时不变分量(如下图所示)。

左:组分时变性对比;右:算子可视化

03

算子可视化

研究者在汇率数据上以年为间隔采样时序数据,并可视化各期学到的算子。如上图,不同时期算子表现出明显的差异性,且序列的上升阶段对应值较大的热力图,下降阶段则反之,为非平稳时序数据建模提供了更好的可解释性。

04

算子谱分析

不同于以往库普曼预测器,研究者首次提出时变分解和分层学习机制,能够学到更稳定的算子,从而提高训练过程的稳定性。

算子特征值可视化

05

自适应滚动预测

不同于以往模型固定的输入输出场景,Koopa可利用到来的数据来自适应更新算子。研究者提出一种滚动预测与算子更新结合的机制,该算法能使模型无需训练即可适配数据分布变化,进一步提高预测效果,在非平稳的时间序列中取得了尤为显著的提升。

总结

针对非平稳时序预测这一现实中广泛存在的科学问题,该论文提出了一种基于动力学系统和傅里叶分析的时间序列预测模型。Koopa模型能够有效地处理非平稳时间序列,并通过实验验证了其性能和效率,对于经济、气象、运维等领域具有优秀的应用潜力。

0 人点赞