FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting
Transformer-based methods unable to capture the global view of time series (e.g. overall trend).
为了解决这些问题,我们建议将Transformer与季节趋势分解方法相结合,其中分解方法捕获时间序列的全局轮廓,而Transformers捕获更详细的结构。
为了进一步提高变压器的长期预测性能,我们利用了大多数时间序列在众所周知的基上(如傅立叶变换基)往往具有稀疏表示的事实,并开发了频率增强变压器。
1. Introduction
-
长期时间序列预测在各种应用(如能源、天气、交通、经济)中是一个长期存在的挑战。尽管RNN型方法取得了令人印象深刻的结果(Rangapuram et al.,2018;Flunkert et al.,2017),但它们经常遇到梯度消失或爆炸的问题(Pascanu et al.,2013),严重限制了其性能。
-
在NLP和CV社区最近取得成功后(Vaswani et al.,2017;Devlin et al.,2019;Dosovitskiy et al.,2021;Rao et al.,2021),
Transformer(Vaswani et al.,2017)已被引入时间序列预测中,以捕捉长期相关性,并显示出有希望的结果(Zhou et al.,2021;Wu et al.,2021)。
由于高计算复杂性和内存需求使得Transformer难以应用于长序列建模,因此大量研究致力于降低Transformer的计算成本(Li et al.,2019;Kitaev et al.,2020;Zhou et al.,2021;Wang et al.,2020;Xiong et al.,2021;Ma et al.,2021)。附录A中提供了该工程线的全面概述。 -
尽管基于变压器的时间序列预测方法取得了进展,
在某些情况下,它们往往无法捕获时间序列的总体特征/分布。
在图1中,我们比较了真实世界ETTm1数据集(Zhou等人,2021)中地面真实值的时间序列与vanilla Transformer方法(Vaswani等人,2017)预测的时间序列。
很明显,预测的时间序列具有不同的分布
地面真相。地面真实和预测之间的差异可以通过变压器中的逐点注意和预测来解释。由于每个时间步的预测都是单独进行的,因此该模型很可能无法保持时间序列作为一个整体的全局属性和统计信息。
为了解决这个问题,我们在这项工作中利用了两个想法。
第一个想法是将时间序列分析中广泛使用的季节趋势分解方法(Cleveland et al.,1990;Wen et al.,2019)纳入基于变压器的方法。
尽管这一想法之前已经被利用过(Oreshkin et al.,2019;Wu et al.,2021),但根据科洛格罗夫-斯米尔诺夫分布检验,我们提出了一种特殊的网络设计,可以有效地使预测分布接近地面真实分布。
我们的第二个想法是将傅立叶分析与基于变压器的方法相结合。
我们没有将Transformer应用于时域,而是将其应用于频域,这有助于Transformer更好地捕获时间序列的全局特性。
结合这两种想法,我们提出了一种频率增强
分解变压器,简称FEDformer,用于
长期时间序列预测 -
FEDformer的一个关键问题是傅里叶分析应该使用哪个频率分量子集来表示时间序列。
一个共同的智慧是保留低频成分,丢弃高频成分。
这可能不适用于时间序列预测,因为时间序列中的一些趋势变化与重要事件有关,如果我们简单地删除所有高频成分,这段信息可能会丢失。
我们通过有效利用时间序列在傅里叶基等基础上具有(未知)稀疏表示这一事实来解决这个问题。根据我们的理论分析,随机选择的频率分量子集,包括低和高频率分量,
将为时间序列提供更好的表示,这将通过广泛的实证研究得到进一步验证。
除了对长期预测更有效外,将变压器与频率分析相结合,还可以将变压器的计算成本从二次复杂度降低到线性复杂度。
我们注意到,这与之前加速变压器的努力不同,后者通常会导致性能下降。
简而言之,我们将这项工作的主要贡献总结如下:
1、为了更好地捕捉时间序列的全局特性,我们提出了一种频率增强的分解变压器结构,其中混合了用于季节趋势分解的专家。
2、我们在变压器结构中提出了傅立叶增强块和小波增强块,允许我们通过频域映射捕获时间序列中的重要结构。它们可以替代自我注意和交叉注意块。
3、通过随机选择固定数量的傅立叶分量,该模型实现了线性计算复杂度和内存开销。从理论和实证两方面验证了该选择方法的有效性。
4、我们在多个领域(能源、交通、经济、天气和疾病)的6个基准数据集上进行了广泛的实验。我们的实证研究表明,对于多变量和单变量预测,所提出的模型将最新方法的性能分别提高了14.8%和22.6%。
2. Compact Representation of Time Series in Frequency Domain
众所周知,时间序列数据可以从时域和频域建模。与其他长期预测算法不同,我们的工作的一个关键贡献是使用神经网络进行频域运算。由于傅立叶分析是深入频域的常用工具,而如何使用傅立叶分析适当地表示时间序列中的信息至关重要。
由于时间序列中的许多高频变化是由噪声输入引起的,因此简单地保留所有频率分量可能会导致较差的表示。另一方面,由于时间序列中的某些趋势变化代表重要事件,仅保留低频分量也可能不适用于序列预测。
相反,使用少量选定的傅立叶分量保持时间序列的紧凑表示将导致变压器的高效计算,
这对于长序列建模至关重要。我们建议通过随机选择恒定数量的傅立叶分量来表示时间序列,包括高频和低频分量。下面,从理论上分析了随机选择的合理性。在实验环节可以找到经验验证
X 1 ( t ) , . . . , X m ( t ) X_1(t), . . . , X_m(t) X1(t),...,Xm(t) | m个 time series |
---|---|
a i = ( a i , 1 , … … , a i , d ) T ∈ R d a_i=(a_{i,1},……,a_{i,d})^T∈ R^d ai=(ai,1,……,ai,d)T∈Rd | X i ( t ) X_i(t) Xi(t)傅里叶变换后的向量 |
A = ( a 1 , a 2 , … … , a m ) T ∈ R m × d A=(a_1,a_2,……,a_m)^T ∈ R^{m\times d} A=(a1,a2,……,am)T∈Rm×d | 拼接矩阵,每一行为为不同时间序列,每一列为傅里叶元素 |
-
虽然使用所有傅立叶分量可以最好地保留时间序列中的历史信息,但它可能会导致历史数据的过度拟合,从而导致对未来信号的预测不佳。因此,我们需要选择傅里叶分量的子集,一方面应该足够小以避免过拟合问题,另一方面应该能够保留大部分历史信息。
-
这里,我们建议从d傅里叶分量(s<d)中均匀随机地选择s分量。更具体地说,我们用i1<i2<…<是随机选择的组件。我们构造矩阵 S ∈ { 0 , 1 } s × d S∈ \{0,1\}^{s×d} S∈{0,1}s×d,如果 i = i k i=i_k i=ik, S i , k = 1 S_{i,k}=1 Si,k=1,否则=0。然后,我们对多元时间序列的最终表示变成 A ′ = A S ⊤ ∈ R m × s A'=AS^⊤ ∈ R^{m×s} A′=AS⊤∈Rm×s
-
下面,我们将表明,尽管傅里叶基是随机选择的,但在温和的条件下,A′能够保留A的大部分信息。为了证明A’能够很好地保留A中的信息,我们将A的每个列向量投影到A′中的列向量所跨越的子空间中。使用 P A ′ ( A ) 表 示 P_{A'}({A})表示 PA′(A)表示
-
A k A_k Ak表示A的第一个k个最大奇异值分解的近似值。下面的定理1表明| A−PA′(A)|接近| A−Ak |如果随机采样的傅立叶分量s的数量为 k 2 k^2 k2
-
对于真实的多变量时间序列,傅里叶变换得到的相应矩阵A通常表现出低秩特性,因为多变量时间序列中的单变量不仅依赖于其过去的值,而且相互依赖,并且具有相似的频率分量。因此,如定理1所示,随机选择傅里叶分量的子集允许我们适当地表示傅里叶矩阵A中的信息。
-
类似地,小波正交多项式(如勒让德多项式)遵循受限等距特性(RIP),也可用于捕获时间序列中的信息。与傅里叶基相比,基于小波的表示在捕捉时间序列局部结构方面更为有效,因此对于某些预测任务更为有效。
我们推迟了附录B中基于小波的表示的讨论。在下一节中,我们将介绍将傅立叶变换纳入变压器的频率增强分解变压器体系结构的设计
3. Model Structure
- 在本节中,我们将介绍
(1)FEDformer的总体结构,如图2所示,
(2) 信号处理有两种颠覆结构:一种使用傅里叶基,另一种使用小波基,
(3) 季节趋势分解的混合专家机制,以及
(4)所提出模型的复杂性分析。
3.1. FEDformer Framework
- 初步长期时间序列预测是一个序列到序列的问题。我们将输入长度表示为I,输出长度表示为O。我们将D表示为序列的隐藏状态。编码器的输入是I×D矩阵,解码器有(I/2+O)×D输入
FED变压器结构受季节趋势分解和分布分析的启发,如第1节所述,我们将变压器改造为深度分解结构如图2所示,包括频率增强魔块(FEB),连接编码器和解码器的频率增强注意力模块(FEA),
和混合专家分解块(MOEDecomp)。
FEB、FEA和Moedecom块的详细说明将分别在以下第3.2、3.3和3.4节中给出。
输
入
X
e
n
0
∈
R
I
×
D
是
历
史
序
列
的
e
m
b
e
d
输入X^0_{en} ∈ R^{ I×D }是历史序列的embed
输入Xen0∈RI×D是历史序列的embed
X
e
n
l
=
E
n
c
o
d
e
r
(
X
e
n
l
−
1
)
,
l
∈
{
1
,
⋅
⋅
⋅
,
N
}
X^l_{en} = Encoder(X^{l-1}_{en} ), l ∈ \{1, · · · , N\}
Xenl=Encoder(Xenl−1),l∈{1,⋅⋅⋅,N}
编码器具体功能如公式1:
其中
S
e
n
l
,
1
S_{en}^{l,1}
Senl,1,
i
∈
{
1
,
2
}
,
l
∈
{
1
,
⋅
⋅
⋅
,
N
}
i∈ \{1,2\} , l ∈ \{1, · · · , N\}
i∈{1,2},l∈{1,⋅⋅⋅,N}分别表示第l层第i个分解块后的季节因素。
解码器具体功能如公式2:
S
d
e
l
,
i
,
T
d
e
l
,
i
S^{l,i}_{de} , T^{l,i}_{de}
Sdel,i,Tdel,i表示季节和趋势因素
最终结果为两种趋势的综合
W
s
∗
X
d
e
M
+
T
d
e
M
,
W
为
投
影
算
子
W_s*X_{de}^M+T_{de}^M,W为投影算子
Ws∗XdeM+TdeM,W为投影算子
FEB
对于FEB模块,它有两个不同的版本(FEB-f和FEB-w),分别通过离散傅立叶变换(DFT)和离散小波变换(DWT)机制实现,可以无缝地替代自我注意块。
Frequency Enhanced Block with Fourier Transform (FEB-f)
Q
~
=
S
e
l
e
c
t
(
Q
)
=
S
e
l
e
c
t
(
F
o
u
r
i
e
r
(
q
)
)
=
=
S
e
l
e
c
t
(
F
o
u
r
i
e
r
(
w
∗
x
)
)
,
x
∈
R
N
×
D
,
w
∈
R
D
×
D
\tilde Q=Select(Q)=Select(Fourier(q))==Select(Fourier(w*x)),x\in R^{N\times D},w\in R^{D\times D}
Q~=Select(Q)=Select(Fourier(q))==Select(Fourier(w∗x)),x∈RN×D,w∈RD×D
然后将q从时域转换为频域 ,Select选择M个模式,
Q
~
∈
C
M
×
D
,
M
<
<
N
\tilde Q∈C^{M×D},M << N
Q~∈CM×D,M<<N
F
E
B
−
f
(
q
)
=
F
o
u
r
i
e
r
−
1
(
P
a
d
d
i
n
g
(
Q
~
⊙
R
)
)
,
随
机
初
始
化
的
参
数
化
内
核
R
∈
C
D
×
D
×
M
FEB-f(q)=Fourier^{-1}(Padding(\tilde Q \odot R)),\\ 随机初始化的参数化内核R ∈ C^{D×D×M}
FEB−f(q)=Fourier−1(Padding(Q~⊙R)),随机初始化的参数化内核R∈CD×D×M
对乘机算子的解释:
FEA
q ∈ R L × D , k ∈ R L × D , v ∈ R L × D . q ∈ R^{L×D}, k ∈ R^{L×D}, v ∈ R^{L×D.} q∈RL×D,k∈RL×D,v∈RL×D.
Q ~ = S e l e c t ( F ( q ) ) , K ~ = S e l e c t ( F ( k ) ) , V ~ = S e l e c t ( F ( v ) ) , \tilde Q = Select(F(q)) ,\tilde K = Select(F(k)) ,\tilde V = Select(F(v)) , Q~=Select(F(q)),K~=Select(F(k)),V~=Select(F(v)),
F
E
A
−
f
(
q
,
k
,
v
)
=
F
−
1
(
P
a
d
d
i
n
g
(
=
σ
(
Q
~
⋅
K
~
T
)
⋅
V
~
)
)
FEA-f(q,k,v)=F^{-1}(Padding(=σ(\tilde Q·\tilde K^T) ·\tilde V))
FEA−f(q,k,v)=F−1(Padding(=σ(Q~⋅K~T)⋅V~))
其中σ是激活函数。我们使用softmax或tanh进行激活,因为它们的收敛性能在不同的数据集中有所不同。设Y=σ(
Q
~
\tilde Q
Q~·
K
~
T
\tilde K^T
K~T) ·
V
~
\tilde V
V~和
Y
∈
C
M
×
D
Y∈C^{M\times D}
Y∈CM×D 在形成逆傅立叶变换之前,需要将
C
M
×
D
C^{M\times D}
CM×D零填充到
C
L
×
D
C^{L\times D}
CL×D。FEA-f结构如图4所示。
3.4. Mixture of Experts for Seasonal-Trend Decomposition
由于在实际数据中经常观察到复杂的周期模式,再加上趋势分量,使用固定窗口平均池很难提取趋势。为了解决这个问题,我们设计了一个混合专家分解模块(Moedecom),它包含一组大小不同的平均滤波器,用于从输入信号中提取多个趋势分量,以及一组与数据相关的权重,用于将它们组合为最终趋势。正式地说,我们有
X
t
r
e
n
d
=
S
o
f
t
m
a
x
(
L
(
x
)
)
∗
(
F
(
x
)
)
(10)
X_{trend} = {\color{blue}Softmax(L(x))} ∗{\color{red} (F(x))} \tag{10}
Xtrend=Softmax(L(x))∗(F(x))(10)
F(·) | a set of average pooling filters |
---|---|
Softmax(L(x)) | weights for mixing these extracted trends. |
3.3. Wavelet Enhanced Structure
参考与更多
Transformers in Time Series: A Survey
时间戳编码。
在真实场景中建模时间序列时,通常可以访问时间戳信息,包括日历时间戳(例如,秒、分钟、小时、周、月和年)和特殊时间戳(例如,节假日和事件)。
这些时间戳在实际应用中非常有用,但在普通的Transformers中几乎没有利用。
为了缓解这个问题,Informer【Zhou等人,2021】建议使用可学习的嵌入层将时间戳编码为额外的位置编码。Autoformer[Wu等人,2021]和FEDformer[Zhou等人,2022]中使用了类似的时间戳编码方案。