系列文章目录
文章目录
摘要
深度学习已经被积极研究用于时间序列预测,主流范式是基于神经网络架构的端到端训练,范围从经典的LSTM/ rnn到最近的tcn和transformer。由于最近在计算机视觉和自然语言处理中表示学习的成功,我们认为时间序列预测更有前途的范式是首先学习解纠缠的特征表示,然后是简单的回归微调步骤-我们从因果角度证明了这种范式。根据这一原则,我们提出了一种新的时间序列表示学习框架CoST,该框架采用对比学习方法来学习解纠缠的季节趋势表示。成本包括时域和频域对比损失,分别用于学习判别趋势和季节表征。在真实数据集上进行的大量实验表明,成本方法的性能始终优于最先进的方法,在多变量基准测试中,其MSE提高了21.3%。它对各种骨干编码器的选择以及下游回归器也具有鲁棒性。代码可从https://github.com/salesforce/CoST获得。
提示:以下是本篇文章正文内容
一、介绍
时间序列预测已广泛应用于各个领域,如电价(Cuaresma等人,2004)、需求预测(Carbonneau等人,2008)、容量规划和管理(Kim, 2003)以及异常检测(Laptev等人,2017)。最近,将深度学习应用于预测的努力激增(Wen et al., 2017;Bai et al., 2018;Zhou等人,2021),并且由于数据可用性和计算资源的增加,这些方法在预测文献中提供了比传统方法更有希望的性能。与传统方法相比,这些方法能够通过堆叠一系列非线性层来进行特征提取,然后是一个专注于预测的回归层来共同学习特征表示和预测函数(或预测函数)。
然而,从观测数据端到端共同学习这些层可能会导致模型过度拟合并捕获观测数据中包含的不可预测噪声的虚假相关性。当学习到的表征被纠缠时——当特征表征的单个维度编码来自数据生成过程的多个局部独立模块的信息时——以及一个局部独立模块经历分布移位时,这种情况会加剧。图1就是这样一个例子,观测到的时间序列是由季节模块和非线性趋势模块生成的。如果我们知道季节模已经经历了分布转移,我们仍然可以基于不变趋势模做出合理的预测。然而,如果我们从观察到的数据中学习到一个纠缠的特征表示,那么对于学习到的模型来说,处理这种分布转移将是一个挑战,即使它只发生在数据生成过程的局部组件中。总之,当数据来自非平稳环境时,从端到端训练方法中学习到的表示和预测关联无法很好地转移或泛化,而非平稳环境是时间序列分析中非常常见的场景。因此,在这项工作中,我们退一步,旨在学习对时间序列预测更有用的解纠缠的季节趋势表示。
图1:由季节和趋势组成的时间序列。
为了实现这一目标,我们利用了结构时间序列模型的思想(Scott & Varian, 2015;Qiu et al., 2018),将时间序列表述为趋势、季节和误差变量的总和,并利用这些先验知识来学习时间序列表示。首先,我们提出了通过因果透镜学习解纠缠的季节趋势表征的必要性,并证明了这种表征对误差变量的干预具有鲁棒性。然后,受Mitrovic等人(2020)的启发,我们提出通过数据增强来模拟对误差变量的干预,并通过对比学习来学习解耦的季节趋势表示。
基于上述动机,我们提出了一种新的对比学习框架,用于学习长序列时间序列预测(LSTF)任务的解纠缠季节性趋势表示(Zhou et al., 2021)。具体来说,CoST利用模型架构中的归纳偏差来学习不纠缠的季节趋势表示。成本有效地学习趋势表示,通过引入混合的自回归专家来减轻回顾窗口选择的问题。它还通过利用可学习的傅立叶层来学习更强大的季节性表征,从而实现频内交互。趋势表示和季节表示都是通过对比损失函数来学习的。趋势表示是在时域中学习的,而季节表示是通过一种新的频域对比损失来学习的,这种损失鼓励了判别性的季节表示,并回避了确定数据中存在的季节模式周期的问题。我们的工作贡献如下:
- 我们通过因果关系的角度来展示,通过对比学习来学习解纠缠的季节趋势表示对时间序列预测的好处。
- 我们提出了CoST,这是一种时间序列表示学习方法,它利用模型架构中的归纳偏差来学习解耦的季节和趋势表示,并结合了一种新的频域对比损失来鼓励判别季节性表示。
- 在现实世界的基准测试中,成本比现有的最先进的方法有相当大的优势——在多变量设置中,MSE提高了21.3%。我们还分析了每个提议模块的优点,并通过广泛的烧蚀研究确定CoST对各种骨干编码器和下游回归器的选择具有鲁棒性。
二、 时间序列的季节趋势表示
问题表述 设 ( x 1 , … x T ) ∈ R T × m (\boldsymbol{x}_1,\ldots\boldsymbol{x}_T)\in\mathbb{R}^{T\times m} (x1,…xT)∈RT×m为时间序列,其中m为观测信号的维数。给定回顾窗口h,我们的目标是预测下一个k步, X ^ = g ( X ) \hat{\boldsymbol{X}}=g(\boldsymbol{X}) X^=g(X),其中 X ∈ R h × m X\in\mathbb{R}^{h\times m} X∈Rh×m, X ^ ∈ R k × m \hat{X}\in\mathbb{R}^{k\times m} X^∈Rk×m, g ( ⋅ ) g(\cdot) g(⋅)表示预测映射函数,X′预测X的下一个k步。
在这项工作中,我们不是通过g(·)共同学习表征和预测关联,而是专注于从观测数据中学习特征表征,以提高预测性能。形式上,我们的目标是学习一个非线性特征嵌入函数
V
=
f
(
X
)
V=f(\boldsymbol{X})
V=f(X),其中
X
∈
R
h
×
m
X\in\mathbb{R}^{h\times m}
X∈Rh×m,
V
∈
R
h
×
d
V\in\mathbb{R}^{h\times d}
V∈Rh×d,将m维原始信号投影到每个时间戳的d维潜在空间中。随后,最终时间戳vh的学习表示被用作预测任务的下游回归量的输入。
图2:时间序列数据生成过程的因果图。
解开季节趋势表征学习及其因果解释 正如Bengio等人(2013)所讨论的那样,复杂数据来自多个来源的丰富相互作用——一个好的表示应该能够分解各种解释来源,使其对复杂和结构丰富的变化具有鲁棒性。不这样做可能会导致捕获虚假的特征,这些特征在非id数据分布设置下不能很好地传输。
为了实现这一目标,有必要为时间序列引入结构先验。在这里,我们借鉴了贝叶斯结构时间序列模型(Scott & Varian, 2015;邱等人,2018)。如图2因果图所示,我们假设观测到的时间序列数据X是由误差变量E和无误差潜在变量 X ⋆ X^{\star} X⋆生成的。 X ⋆ X^{\star} X⋆由趋势变量T和季节变量S生成。由于E不可预测,如果我们能够发现仅依赖于T和S的 X ⋆ X^{\star} X⋆,则可以实现最优预测。
首先,我们强调现有的工作使用端到端深度预测方法来直接模拟时间滞后关系和沿着观测数据X的多变量相互作用。不幸的是,每个X都包含不可预测的噪声E,这可能导致捕获虚假相关性。因此,我们的目标是学习无误差潜在变量 X ⋆ X^{\star} X⋆。
其次,根据独立机制假设(Peters et al., 2017;Parascandolo et al., 2018),我们可以看到季节和趋势模块并不相互影响或通知。因此,即使一种机制由于分布转移而改变,另一种机制也保持不变。分离季节性和趋势的设计可以在非平稳环境中更好地传递或泛化。此外,独立的季节和趋势机制可以独立学习,并且可以灵活地重复使用和重新利用。
我们可以看到,对E的干预并不影响条件分布 P ( X ⋆ ∣ T , S ) P(X^{\star}|T,S) P(X⋆∣T,S),即对于E域中的任意ei, ej, P d o ( E = e i ) ( X ⋆ ∣ T , S ) = P d o ( E = e j ) ( X ⋆ ∣ T , S ) P^{do(E=e_{i})}(X^{\star}|T,S)=P^{do(E=e_{j})}(X^{\star}|T,S) Pdo(E=ei)(X⋆∣T,S)=Pdo(E=ej)(X⋆∣T,S)。S和T在e的变化下是不变的。学习S和T的表示使我们能够在各种类型的误差中找到与最优预测( X ⋆ X^{\star} X⋆)的稳定关联。由于目标 X ⋆ X^{\star} X⋆是未知的,我们构建了一个受Mitrovic等人(2020)启发的代理对比学习任务。具体来说,我们使用数据增强作为误差E的干预,并通过对比学习学习T和S的不变表示。由于不可能生成所有可能的误差变化,我们选择了三种典型的增强方法:尺度、位移和抖动,它们可以模拟大量不同的误差集,有利于学习更好的表示。
三、季节趋势对比学习框架
在本节中,我们将介绍我们提出的成本框架,以学习解纠缠的季节趋势表示。我们的目标是学习这样的表示,即对于每个时间步,我们都有季节和趋势分量的解耦表示,即 V = [ V ( T ) ; V ( S ) ] ∈ R h × d \boldsymbol{V}=[\boldsymbol{V}^{(T)};\boldsymbol{V}^{(S)}]\in\mathbb{R}^{h\times d} V=[V(T);V(S)]∈Rh×d,其中 V ( T ) ∈ R h × d T \boldsymbol{V}^{(T)}\in\mathbb{R}^{h\times d_T} V(T)∈Rh×dT, V ( S ) ∈ R h × d S V^{(S)}\in\mathbb{R}^{h\times d_S} V(S)∈Rh×dS,使得 d = d T + d S d=d_T+d_S d=dT+dS。
图3a说明了我们的整体框架。首先,我们利用编码器主干fb:
R
h
×
m
→
R
h
×
d
\mathbb{R}^{h\times m}\to\mathbb{R}^{h\times d}
Rh×m→Rh×d将观测值映射到隐空间。接下来,我们从这些中间表示中构建趋势表示和季节表示。具体来说,趋势特征解纠缠器(TFD)
f
T
:
R
h
×
d
→
R
h
×
d
T
f_T:\mathbb{R}^{h\times d}\to\mathbb{R}^{h\times d_T}
fT:Rh×d→Rh×dT通过自回归专家的混合提取趋势表示,并通过时域对比损失
L
t
i
m
e
\mathcal{L}_{\mathrm{time}}
Ltime学习。季节性特征解除器(SFD),
f
S
:
R
h
×
d
→
R
h
×
d
S
f_{S}:\mathbb{R}^{h\times d}\to\mathbb{R}^{h\times d_{S}}
fS:Rh×d→Rh×dS,通过可学习的傅立叶层提取季节性表征,并通过频率域对比损失学习,其中包括幅度分量
L
a
m
p
\mathcal{L}_{\mathrm{amp}}
Lamp和相位分量
L
p
h
a
s
e
\mathcal{L}_{\mathrm{phase}}
Lphase。我们将在下一节中详细描述这两个组件。模型以端到端方式学习,整体损失函数为
其中α是平衡趋势和季节因素之间权衡的超参数。最后,我们将趋势和季节特征解缠器的输出连接起来,以获得最终的输出表示。
图3:(a)总体框架。给定来自骨干编码器的中间表示
V
~
=
f
b
(
X
)
\tilde{\boldsymbol{V}}=f_{b}(\boldsymbol{X})
V~=fb(X) , TFD和SFD分别产生趋势特征
V
(
T
)
=
f
T
(
V
~
)
V^{(T)}=f_T(\tilde{\boldsymbol{V}})
V(T)=fT(V~)和季节特征
V
(
S
)
=
f
S
(
V
~
)
\boldsymbol{V}^{(S)}=f_S(\tilde{\boldsymbol{V}})
V(S)=fS(V~)。(b)趋势特征解纠缠器。自回归专家的混合组合,实例化为核大小为2i的一维因果卷积,∀i = 0,…, L,其中L是超参数。然后是L+1表示的平均池。©季节性特征解缠剂。在通过FFT将中间表示转换到频域后,SFD对每个频率应用具有唯一权重的(复值)线性层。然后,执行逆FFT将表示映射回时域,以形成季节表示
V
(
S
)
\boldsymbol{V}^{(S)}
V(S)。
3.1趋势特征表示
提取潜在趋势对于时间序列建模至关重要。自回归滤波是一种广泛使用的方法,因为它能够从过去的观察中捕获时间滞后的因果关系。一个具有挑战性的问题是选择合适的回顾窗口——较小的窗口会导致欠拟合,而较大的模型会导致过拟合和过度参数化问题。一个直接的解决方案是在训练或验证损失上通过网格搜索来优化这个超参数(Hyndman & Khandakar, 2008),但这种方法的计算成本太高。因此,我们建议使用混合的自回归专家,它可以自适应地选择适当的回顾窗口。
趋势特征解缠器(TFD) 如图3b所示,TFD是L+1个自回归专家的混合物,其中
。每个专家被实现为具有d个输入通道和dT个输出通道的1d因果卷积,其中第i个专家的核大小为2i。每个专家输出一个矩阵
V
~
(
T
,
i
)
=
C
a
u
s
a
l
C
o
n
v
(
V
~
,
2
i
)
\tilde{\boldsymbol{V}}^{(T,i)}=\mathrm{CausalConv}(\tilde{\boldsymbol{V}},2^{i})
V~(T,i)=CausalConv(V~,2i)。最后,对输出执行平均池化操作,以获得最终的趋势表示。
时域对比损失 我们在时域中使用对比损失来学习判别趋势表示。具体来说,我们应用MoCo (He et al., 2020)的对比学习变体,该变体利用动量编码器获得正对的表示,并使用带有队列的动态字典获得负对。我们在附录a中进一步阐述了对比学习的细节。那么,给定N个样本和K个负样本,则时域对比损失为
其中给定一个样本
V
(
T
)
V^{(T)}
V(T),我们首先为对比损失选择一个随机时间步长T,并应用一个投影头,它是一个单层MLP来获得q, k分别是来自动量编码器/动态字典的相应样本的增广版本。
3.2季节特征表示
频域频谱分析已广泛应用于季节性检测(Shumway et al., 2000)。因此,我们转向频域来处理季节表征的学习。为此,我们的目标是解决两个问题:i)我们如何支持频率内交互(特征维度之间),这使得表征更容易编码周期性信息,ii)需要什么样的学习信号来学习能够区分不同季节性模式的表征?标准骨干架构无法轻松捕获频内级交互,因此,我们引入SFD,它利用可学习的傅立叶层。然后,为了在不事先知道周期性的情况下学习这些季节特征,对每个频率引入频域对比损失。
**季节性特征解除器(SFD)**如图3c所示,SFD主要由离散傅立叶变换(DFT)组成,将中间特征映射到频域,然后是可学习的傅立叶层。我们在附录b中包含了DFT的进一步细节和定义。DFT沿着时间维度应用,并将时域表示映射到频域, F ( V ~ ) ∈ C F × d \mathcal{F}(\tilde{\boldsymbol{V}})\in\mathbb{C}^{F\times d} F(V~)∈CF×d,其中 F = ⌊ h / 2 ⌋ + 1 F=\lfloor h/2\rfloor+1 F=⌊h/2⌋+1是频率的数量。接下来,可学习的傅立叶层,它使频域相互作用,是通过一个元素线性层实现的。它在每个频率上应用仿射变换,每个频率都有一组唯一的复值参数,因为我们不期望这一层是平移不变的。最后,我们使用逆DFT运算将表示转换回时域。
这一层的最终输出矩阵是季节表示,
V
(
S
)
∈
R
h
×
d
S
V^{(S)}\in\mathbb{R}^{h\times d_S}
V(S)∈Rh×dS。形式上,我们可以将输出的第i, k个元素表示为
式中,
A
∈
C
F
×
d
×
d
S
\mathbf{A}\in\mathbb{C}^{F\times d\times d_S}
A∈CF×d×dS
,
B
∈
C
F
×
d
S
,B\in\mathbb{C}^{F\times d_S}
,B∈CF×dS为每元素线性层的参数。
频域对比损失 如图3c所示,频域损失函数的输入为ifft前的表示,用 F ∈ C F × d S F\in\mathbb{C}^{F\times d_{S}} F∈CF×dS表示。这些是频域中的复值表示。为了学习能够区分不同季节模式的表征,我们引入了频域损失函数。由于我们的数据增强可以解释为对误差变量的干预,因此季节信息不会改变,因此,频域的对比损失对应于给定频率的不同周期模式之间的区分。为了克服用复值表示构造损失函数的问题,每个频率可以由其振幅和相位表示 ∣ F i , : ∣ a n d ϕ ( F i , : ) |\boldsymbol{F}_{i,:}|\mathrm{~and~}\phi(\boldsymbol{F}_{i,:}) ∣Fi,:∣ and ϕ(Fi,:)唯一地表示。然后,将损失函数记为:
其中
F
i
,
:
(
j
)
F_{i,:}^{(j)}
Fi,:(j)是小批量中的第j个样本,
(
F
i
,
:
(
j
)
)
′
(\boldsymbol{F}_{i,:}^{(j)})'
(Fi,:(j))′是该样本的增广版本。
四、实验
在本节中,我们报告了CoST的详细实证分析结果,并将其与各种时间序列表示学习方法进行比较,以及与端到端监督预测方法进行比较。附录F包含运行时分析的进一步结果。
4.1实验设置
数据集 我们在五个真实世界的公共基准数据集上进行了广泛的实验。ETT(电力变压器温度)1 (Zhou et al., 2021)由两个小时级数据集(ETTh)和一个15分钟级数据集(ETTm)组成,测量六个电力负荷特征和“油温”,这是单变量预测所选择的目标值。Electricity2测量了321个客户的用电量,并遵循流行的基准,将数据集转换为小时级测量值,并将“MT 320”设置为单变量预测的目标值。Weather3是一个小时级别的数据集,包含来自美国近1600个地点的11个气候特征,我们将“湿球数”作为单变量预测的目标值。最后,我们还在附录J中包含了M5数据集(Makridakis et al., 2020)。
评估设置 根据先前的工作,我们在两种设置下进行实验-多元和单变量预测。多变量设置涉及多变量输入和输出,考虑数据集的所有维度。单变量设置涉及单变量输入和输出,即上面描述的目标值。我们使用MSE和MAE作为评估指标,并执行60/20/20训练/验证/测试分割。输入是零均值归一化,并在不同的预测长度上进行评估。接下来(Yue et al., 2021),首先在列车分割上训练自监督学习方法,然后在学习到的表示上训练脊回归模型,直接预测整个预测长度。验证集用于在{0.1,0.2,0.5,1,2,5,10,20,50,100,200,500,1000}的搜索空间上选择合适的脊回归正则化项α。评估结果报告在测试集上。
实现细节对于CoST和所有其他表示学习方法,所使用的主干编码器是一个时间卷积网络(遵循TS2Vec的类似实践(Yue等人,2021)),除非该方法包括或是一个架构修改(详见附录E)。所使用的所有方法的表示维数都为320。我们在所有数据集上使用标准的超参数设置-批量大小为256,学习率为1E−3,动量为0.9,权重衰减为1E−4,使用SGD优化器和余弦退火。时域对比损耗的MoCo实现使用队列大小为256,动量为0.999,温度为0.07。对于少于100,000个样本的数据集,我们训练200次迭代,否则训练600次迭代。有关成本中使用的数据扩充的详细信息可在附录C中找到。
4.2结果
在我们的主要结果中,我们报告了表征学习技术的性能,包括TS2Vec, TNC和MoCo的时间序列自适应。由于篇幅限制,可以在附录H中找到基于特征的预测方法的更广泛的基准。关于基线的更多细节可以在附录e中找到。我们包括监督预测方法-两种基于Transformer的模型,Informer (Zhou等人,2021)和LogTrans(Li等人,2020),以及直接在端到端预测损失上训练的骨干TCN。端到端预测方法的比较见附录一。
表1总结了多变量设置的成本和最佳表现基线的结果,表7(由于篇幅限制,在附录G中)总结了单变量设置的结果。对于端到端预测方法,TCN通常优于基于Transformer的方法、Informer和LogTrans。与此同时,表示学习方法优于端到端预测方法,但确实存在一些情况,例如在单变量设置的某些数据集中,端到端TCN表现得非常好。虽然变形金刚在其他领域(如NLP)已经被证明是强大的模型,但这表明TCN模型仍然是一个强大的基线,仍然应该考虑用于时间序列。
总体而言,我们的方法达到了最先进的性能,在多变量和单变量设置中分别比表现最好的端到端预测方法高出39.3%和18.22% (MSE)。在多变量和单变量设置中,CoST也分别比表现第二好的基于特征的方法高出21.3%和4.71% (MSE)。这表明CoST通过学习趋势和季节特征的组合来学习更多相关的特征,这些特征对预测任务至关重要。
1https://github.com/zhouhaoyi/ETDataset
2https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDiagrams20112014
3https://www.ncei.noaa.gov/data/local-climatological-data/
表1:多变量预测结果。最好的结果以粗体突出显示。
总体而言,我们的方法达到了最先进的性能,在多变量和单变量设置中分别比表现最好的端到端预测方法高出39.3%和18.22% (MSE)。在多变量和单变量设置中,CoST也分别比表现第二好的基于特征的方法高出21.3%和4.71% (MSE)。这表明CoST通过学习趋势和季节特征的组合来学习更多相关的特征,这些特征对预测任务至关重要。
4.3参数灵敏度
表2:α in CoST在ETT数据集上的参数敏感性。
α控制总体损失函数中季节分量的权重,L = Ltime + α 2 (Lamp + Lphase)。我们对这个超参数进行了敏感性分析(表2),并表明可以选择一个最优值,并且在各种设置中都具有鲁棒性。对于所有其他实验,我们选择α = 5E−04,因为它在多变量和单变量设置上都表现良好。我们注意到,α的小值源于频域对比损失通常比时域对比损失大三个数量级,而不是季节性分量比趋势分量重要性低的指标。此外,我们强调,总体而言,虽然选择较小的α值可以在大多数数据集上获得更好的性能,但在某些情况下,较大的α可能更可取,如表2的下部分所示。
4.4消融研究
表3:ETT数据集上CoST各组成部分的消融研究)。TFD: Trend Feature Disentangler, MARE: Mixture of Auto-regressive Experts (TFD without MARE指的是带有单个AR专家的TFD模块,核尺寸为 h/2),SFD: Seasonal Feature Disentangler, LFL: Learnable Fourier Layer, FDCL:频域对比损失。†表示具有监督预测损失的端到端训练模型。‡表示†,有额外的对比损失。
Components of CoST 我们首先进行消融研究,以了解成本中每个组件带来的性能优势。表3给出了ETT数据集在所有预测水平设置上的平均结果(与表4和表5类似)。我们表明,趋势和季节成分都改善了基线(SimCLR和MoCo)的性能,而且,趋势和季节成分的组合导致了最佳性能。我们进一步验证了用监督预测损失端到端训练我们提出的模型架构会导致更差的性能。
Backbones 接下来,我们验证了我们提出的趋势和季节分量以及对比损失(时域和频域)对各种骨干编码器具有鲁棒性。TCN是所有其他实验中使用的默认骨干编码器,我们给出了等效参数大小的LSTM和Transformer骨干编码器的结果。虽然使用TCN骨干网的性能优于LSTM和Transformer,但我们表明,我们的方法在所有三种设置上都优于竞争方法。
Regressors 最后,我们表明成本对用于预测的各种回归量也具有鲁棒性。除了脊回归模型外,我们还对线性回归模型和带RBF核的核脊回归模型进行了实验。如表5所示,我们还演示了在所有三种设置上CoST优于竞争基线。
4.5案例分析
我们将学习到的表征可视化到一个包含季节和趋势成分的简单合成时间序列上,并表明CoST能够学习能够区分各种季节和趋势模式的表征。合成数据集是通过定义两个趋势和三个季节模式,并将交叉积形成六个时间序列(详见附录D)生成的。在合成数据集上训练编码器后,我们可以通过T-SNE算法将它们可视化(Van der Maaten & Hinton, 2008)。图4显示,我们的方法能够从数据集中学习趋势和季节模式,并且学习到的表示具有高聚类性,而TS2Vec无法区分各种季节模式。
图4:CoST和TS2Vec学习表征的T-SNE可视化。(上)通过选择单一季节性后的可视化表示生成。颜色代表了两种截然不同的趋势。(下)通过选择单个趋势后的可视化表示生成。颜色代表三种不同的季节模式。
五、相关工作
深度预测通常被视为端到端监督学习任务,其中早期的工作考虑使用基于RNN的模型(Lai等人,2018)作为对时间序列数据建模的自然方法。最近的工作还考虑将基于Transformer的模型用于时间序列预测(Li et al., 2020;Zhou et al., 2021),特别专注于解决Transformer模型的二次空间复杂性。Oreshkin等人(2020)提出了一种单变量深度预测模型,并表明深度模型优于经典时间序列预测技术。
虽然最近在时间序列表示学习方面的工作集中在表示学习的各个方面,例如如何对对比对进行抽样(Franceschi等人,2020;Tonekaboni等人,2021),采用基于Transformer的方法(Zerveas等人,2021),探索复杂的对比学习任务(Eldele等人,2021),以及构建时间层次表示(Yue等人,2021),都没有涉及由趋势和季节特征组成的学习表示。虽然现有的工作只专注于时间序列分类任务,但Yue等人(2021)首次表明,通过对比学习学习的时间序列表示在深度预测基准上建立了新的最先进的性能。
经典的时间序列分解技术(Hyndman & Athanasopoulos, 2018)已被用于将时间序列分解为季节和趋势成分,以获得可解释性。最近有研究在开发更健壮和有效的分解方法(Wen等人,2018;2020;Yang等人,2021)。这些方法的重点是将原始时间序列分解为趋势和季节成分,这些成分仍然被解释为原始输入空间中的时间序列,而不是学习表征。Godfrey & Gashler(2017)提出了使用神经网络对时间序列数据中的周期和非周期成分建模的初步尝试,利用周期激活函数对周期成分建模。与我们的工作不同的是,这种方法只能对每个模型的单个时间序列进行建模,而不能在给定的回顾窗口中产生分解的季节性趋势表示。
六、结论
我们的工作表明,将表示学习和下游预测任务分离是一种比标准的端到端监督训练方法更有前途的时间序列预测范式。我们从经验上证明了这一点,也从因果关系的角度解释了这一点。通过遵循这一原则,我们提出了CoST,这是一个对比学习框架,用于学习时间序列预测任务的解纠缠的季节趋势表示。广泛的实证分析表明,成本比以前的最先进的方法有相当大的优势,并且对骨干编码器和回归器的各种选择具有鲁棒性。未来的工作将扩展我们的框架,用于其他时间序列情报任务。
A CONTRASTIVE LEARNING
通过实例辨别任务进行对比学习是一种有效的自我监督学习方法。在这里,我们描述了该方法的要点,这是我们提出的方法的基础。首先,定义了一个数据扩充族a。给定数据xi∈X的单个样本,对两个数据增广算子进行采样, a ∼ A , a ′ ∼ A . q i = f ( a ( x i ) ) a\sim\mathcal{A},a^{\prime}\sim\mathcal{A}.\boldsymbol{q}_{i}=f(a(\boldsymbol{x}_{i})) a∼A,a′∼A.qi=f(a(xi))被称为具有编码器f的查询表示, k i = f ( a ′ ( x i ) ) k_i=f(a^{\prime}(\boldsymbol{x}_i)) ki=f(a′(xi))是正键表示。最后,InfoNCE的损失函数是
其中τ为温度超参数,kj为负键表示,K为负样本总数。标准方法使用一种有效的机制来获得负样本-通过简单地将小批中的所有其他样本视为负样本,即K = N−1。MoCo (He et al., 2020)引入了使用大小为K的队列(超参数)来获取负样本的想法。在训练的每次迭代中,简单地从队列中弹出N个样本,并将N个表示形式推送到当前的小批中。
B 离散傅里叶变换
DFT提供了给定序列的频域视图,
x
=
(
x
0
,
x
1
,
…
,
x
N
−
1
)
\begin{aligned}\boldsymbol{x}=(x_0,x_1,\ldots,x_{N-1})\end{aligned}
x=(x0,x1,…,xN−1),将具有规则间隔的时间序列映射为傅里叶系数,即长度相等的复数序列。由于实值信号的DFT的共轭对称性,我们可以简单地考虑第一个
⌊
N
/
2
⌋
+
1
\lfloor N/2\rfloor+1
⌊N/2⌋+1傅立叶系数,
每个复分量ck可以用振幅|ck|和相位
ϕ
(
c
k
)
\phi(c_{k})
ϕ(ck))表示,
其中 R { c k } and I { c k } \mathfrak{R}\{c_k\}\text{ and }\mathfrak{I}\{c_k\} R{ck} and I{ck}分别是ck的实分量和虚分量。最后,逆DFT将频域表示映射回时域,
C DATA AUGMENTATIONS
在我们的实验中,我们利用了三种数据增强的组合,按以下顺序应用——缩放、移动和抖动,激活的概率为0.5。
D合成数据生成
E基线的详细信息
TS2Vec、TNC、MoCo、Triplet、CPC、TST、TCC的结果基于我们的重现,而Informer、LogTrans和LSTNet (Lai等人,2018)的结果直接取自Yue等人(2021)的ETT和Electricity数据集,以及Zhou等人(2021)的Weather数据集。对于所有的再现方法,对于少于100,000个样本的数据集,我们训练200次迭代,否则训练600次迭代。除了Triplet和TST之外,所有方法中使用的编码器都是TS2Vec中提出的因果TCN编码器(Yue et al., 2021)。首先使用全连接层将每个时间步从多变量时间序列的维度投影到隐藏通道(大小为64)。然后,有10层卷积块。每个卷积块是GELU, DilatedConv, GELU, DilatedConv的序列,每个块之间都有跳过连接。DilatedConvs在卷积块的每层i中都有2i的扩张,所有的核大小都是3,输入/输出通道大小都是64。最后一个卷积块用于将隐藏通道映射到输出通道(大小为320)。对于Triplet,编码器是他们提出的因果TCN编码器,而对于TST,他们提出的变压器编码器被使用。更多的细节可以在他们各自的论文中找到。
TS2Vec (Yue et al., 2021) TS2Vec最近被提出作为一种通用框架,通过在增强的上下文视图上以分层方式进行对比学习来学习时间序列表示。他们建议学习时间戳级别的表示。我们按原样从他们的开源存储库中运行代码4,使用的超参数都是他们论文中建议的默认值。TNC (Tonekaboni et al., 2021) TNC提出了一种自监督框架,用于学习非平稳时间序列的可推广表示。他们利用增强的Dickey-Fuller平稳性检验来确保正样本来自相似信号的邻域。我们使用他们的开源代码5,在损失函数中设置w = 0.005, mc样本量= 20,批处理大小为8,使用Adam优化器学习率为1E−3。
MoCo (He et al., 2020) MoCo是计算机视觉中流行的自监督学习基线,我们使用他们的开源代码实现了MoCo的时间序列版本6。我们使用批量大小为128,队列为256,动量编码器的动量为0.999,损失函数的温度为0.07,SGD优化器的学习率为1E−3,使用余弦退火。Triplet (Franceschi et al., 2020)提出了一种时间序列自监督学习方法,将正样本作为锚点的子串,并从数据集中随机抽取负样本。我们通过改编他们的开源代码7来重现他们的方法,利用他们提出的因果TCN模型架构。使用AdamW优化器,我们使用批大小为10,学习率为1E−3。
CPC (van den Oord et al., 2019) CPC通过使用自回归模型在潜在空间中预测未来来学习表征。他们使用概率对比损失,诱导潜在空间来捕获对预测未来样本最有用的信息。我们通过引用一个非官方的实现来重现这种方法8。我们对AR模块使用GRU,在八个AR步骤之后使用两个预测步骤。我们使用AdamW优化器的批大小为8,学习率为1E−3。TST (Zerveas et al., 2021) TST是一种基于变压器的方法,使用重建损失。我们按原样使用开源实现。TCC (Eldele et al., 2021) TCC引入了一个时间对比模块和一个艰难的跨视图预测任务。我们使用他们的开源实现。我们使用的学习率为3E−4,亚当优化器λ1 = 1, λ2 = 0.7,在他们的实现中,抖动比例为1.1,最大段长度为8,抖动比为0.8,遵循他们的HAR设置。
F RUNTIME ANALYSIS
表6:每个方法在训练和推理阶段的运行时间(秒)。对于表示方法,我们将运行时间分为A + B,其中A指编码器的时间,B是脊回归器在下游阶段的时间。
表6显示了各种表示学习方法和端到端方法的每个阶段的运行时间(以秒为单位)。所有实验均在NVIDIA A100 GPU上进行。请注意,对于Informer,我们遵循作者所描述的超参数(包括回顾窗口长度),这些参数可能会因不同的预测范围而变化,因此运行时间可能不会随着预测范围的增加而严格增加。我们想要强调的是,对于所有的表示学习方法,脊回归量部分应该是相等的,因为所有方法使用的维度大小是相同的,任何差异都只是由于随机性。尽管与一些基线方法相比,CoST方法的训练时间稍长,但它获得了更好的结果(参见主论文中的表1)。此外,与TS2Vec相比,CoST的额外计算时间是由于混合AR专家组件中每个专家的顺序计算,可以通过并行方法进一步加速(He et al., 2021)。
G单变量预测基准
H在基于特征的预测基线上的结果
通过使用TSFresh包中的特征,我们在基准测试中包含了手工制作的特征(使用与表示学习方法相同的实验方法)。我们为所有数据集和设置选择相同的特征集,以避免需要领域专业知识的大量特征工程。TSFresh在多变量基准测试中通常表现不佳,因为它提取的是单变量特征,因此特征大小随输入大小线性增加。另一方面,它在单变量设置上表现相对较好。
I 与成本相比,I的结果是端到端预测基线
J 在m5个数据集
K案例研究:解缠
图5:成本嵌入中季节性趋势解缠的T-SNE可视化。TFD表示是指趋势特征解缠器生成的表示,而SFD表示是指季节特征解缠器生成的表示。(a)我们选择一个单一的季节性和可视化的表示。这两种颜色代表了两种截然不同的趋势。(b)我们选择一个趋势并将其表示可视化。三种颜色代表三种不同的季节图案。
为了展示CoST分离趋势和季节成分的能力,我们分别绘制了趋势特征分离器(TFD)和季节特征分离器(SFD)的T-SNE表示。从图5a中,我们看到TFD的表示确实具有更好的聚类性,SFD的表示在两种趋势模式之间有一定程度的重叠。从图5b中,我们看到TFD表示在三种季节性模式之间的重叠程度高于SFD表示。在这里,为了更好地突出季节性表征在提取季节模式方面的强大能力,我们使用了复杂的季节性模式(如下所述)。
与附录D中的合成数据生成过程类似,我们生成了三种不同的季节性模式,然后将它们与两种趋势模式结合起来。第一种季节性模式是没有季节性。第二种模式以周期、相位和幅度为{3,0,10}的正弦波开始,此后,在整个模式上应用掩模,由三个1和七个0组成的重复模式。第三种模式以周期、相位和幅度为{10,0.5,15}的正弦波开始,此后,对整个模式应用掩模,由两个1和8个0组成的重复模式。