Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors--学习笔记

alt text

alt text

模型结构图

alt text

1、背景

现实场景中大部分时序数据存在非平稳性,具有更复杂的时序变化模式,以及随时间变化的数据分布,对以往模型的建模能力带来了严峻挑战,目前为止,很少有从理论基础出发,天然适配非平稳时序数据建模的深度模型结构。
应对时间序列的分布不平稳问题------针对的问题是时间序列的漂移时间序列的不稳定

alt text

作者认为时间序列的不稳定是因为时间序列存在多种模式(有些是时不变、有些是时变,偏移正是发生在时变的部分

2、背景知识

2.1 库普曼理论

alt text
alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text

总结:复杂的非线性系统可以,通过映射到高维空间化解,这样非线性关系就转变为线性关系
时间序列(时变)->高纬多模态

2.2 设计思路

alt text

将时间序列看作一个复杂的动力系统,将时间序列映射到测量空间中,不稳定时间序列映射到线性空间

关键:通过频率的出现一致性隐式区分“全局模式”和“时期特定模式”。

3、方法

3.1 Fourier 分解

幅值大的称为时不变部分,幅值小的称为时变部分。

alt text <alt text>

3.2 Time-invariant KP

alt text

alt text

3.3 Time-invariant KP

alt text
通过将X映射到高维空间,然后时间点之间的非线性关系就可映射为线性关系,就可求解

alt text

\State \textbf{输入:} 时变成分 $X_{\text{var}} \in \mathbb{R}^{T \times C}$
\State \textbf{参数:} 段长度 $S$,嵌入维度 $D$
\State \textbf{输出:} 局部 Koopman 算子 $K_{\text{var}}$

1. 分段:$\mathbf{x}_j = [x_{(j-1)S+1}, \ldots, x_{jS}]^\top,\ j=1,\ldots,n$
2. 编码:$z_j = \text{Encoder}(\mathbf{x}_j) \in \mathbb{R}^D,\ j=1,\ldots,n$
3. 构造数据矩阵:

[
Z_{\text{back}} = [z_1, z_2, \ldots, z_{n-1}] \in \mathbb{R}^{D \times (n-1)}
]
[
Z_{\text{fore}} = [z_2, z_3, \ldots, z_n] \in \mathbb{R}^{D \times (n-1)}
]
1. 计算伪逆:$Z_{\text{back}}^{\dagger} = \text{M-P逆}(Z_{\text{back}})$
2. 计算算子:$ Z_{\text{back}}^{\dagger} = Z_{\text{fore}} K_{\text{var}} $
3. 计算算子:$K_{\text{var}} = Z_{\text{fore}} Z_{\text{back}}^{\dagger}$

4、总结

这篇论文提出了将Koopa应用到非平稳时序预测的方法,目的为解决非平稳时间序列预测的任务,使得模型不在拘泥于将序列从非平稳变成平稳的之后再去预测,而是将数据分成1.时变(长期特征、共有全局共享)2.时不变部分,这一部分的变化导致了时间序列的漂移,作者通过将这个序列映射到高维空间,完成了对时变部分分布变化的学习

参考资料

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