深度时间序列模型:全面调查与基准

深度时间序列模型:全面调查与基准

论文:https://arxiv.org/abs/2407.13278
Github: https://github.com/thuml/Time-Series-Librar

摘要

时间序列是指按照离散时间顺序排列的数据点序列,在现实世界的应用中无处不在。与其他模态不同,时间序列由于其复杂和动态的特性,带来了独特的挑战,包括非线性模式和时间变动趋势的纠缠。在现实场景中,分析时间序列数据具有重要意义,并且在几个世纪以来得到了广泛研究。近年来,时间序列研究领域取得了显著突破,技术从传统的统计方法转向先进的深度学习模型。本文探讨了深度时间序列模型在各种分析任务中的设计,并从基础模块和模型架构两个角度回顾现有文献。此外,我们开发并发布了时间序列库(TSLib),作为不同分析任务的深度时间序列模型的公平基准,实施了24种主流模型,涵盖来自不同领域的30个数据集,并支持五种流行的分析任务。基于TSLib,我们在不同任务上全面评估了12种先进的深度时间序列模型。实证结果表明,具有特定结构的模型非常适合特定的分析任务,这为深度时间序列模型的研究和应用提供了见解。代码可在 https://github.com/thuml/Time-Series-Library 获取。

索引词-时间序列分析,深度时间序列模型,调查,基准

1 引言

时间序列是指按照离散时间顺序索引的数据点序列[1],[2],在现实世界的应用中无处不在,例如金融风险评估、能源可持续性与天气预报。随着各个领域中大量时间序列数据的日益丰富,时间序列分析领域经历了巨大的进展。与具有客观规定语法或直观模式的图像和文本数据相比,时间序列数据的语义信息主要来源于时间变动[3]。这对理解数据提出了重大挑战,例如识别序列依赖关系、趋势、季节模式和复杂动态。因此,分析时间序列数据需要复杂的方法来捕捉和利用这些复杂的时间表示。

鉴于时间序列数据在现实世界应用中的关键作用[4],[5],[6],时间序列分析一直是一个长期研究方向。时间序列分析包括分析时间变动的过程,以理解时间序列数据并做出准确的预测和明智的决策。时间序列分析的一个基本基石是发现时间序列数据中的潜在模式,这涉及到数据内在的复杂时间依赖性和变量相关性。通过捕捉这些复杂的依赖关系,时间序列模型能够有效揭示内在动态,促进包括预测、分类、填补和异常检测在内的各种下游任务。

传统的时间序列方法,如自回归积分滑动平均(ARIMA)[1],指数平滑法和谱分析[7],长期以来一直是时间序列分析中的坚实工具。这些基于统计方法的模型在发现时间变动中的模式、趋势和季节性方面发挥了重要作用。然而,由于捕捉复杂非线性关系和现实世界时间序列数据中长时依赖的固有限制,它们的能力受到了限制。支撑传统模型的线性和稳定性严格假设限制了它们对多事事件和不断演变的数据流的适应能力。

深度模型在多个领域赢得了大量关注,并取得了显著的性能,包括自然语言处理(NLP)[16],[17],计算机视觉(CV)[18],[19],和推荐系统[20]。近年来,深度学习模型[3],[21],[22],[23],[24]证明了其捕捉时间序列数据中复杂依赖关系的能力,使得深度学习模型成为时间序列分析中比传统统计方法更强大的工具。最近,最初为自然语言处理任务开发的带注意力机制的Transformer模型在处理大规模数据时展现出惊人的能力[17],并且也被适配用于学习时间序列数据。这些架构的优势在于可以有选择性地关注输入序列的不同部分,从而更细致地发现时间序列中的时间和变量依赖关系。

相关调查 尽管近年来出现了针对不同分析任务设计的各种时间序列模型,但缺乏涵盖任务和模型的现有方法的全面概述。以往的评审专注于特定模型架构或分析任务。例如,[8],[9],[10],[11]评审了针对特定时间序列分析任务的深度学习方法,但未包括先进架构,如Transformer。一些调查[12],[13]提供了关于专门深度学习架构(即图神经网络和Transformer)的时间序列分析的最新评讨。最近,BasicTS[14]和TFB[15]引入了预测基准,以便对现有方法进行无偏评估,但没有提供关于这些深度模型的架构设计的概述。
在这里插入图片描述

在本次调查中,我们为研究人员和从业者提供了一份关于深度时间序列模型的全面综述,从基础模块到现代架构。为了促进实际应用,提供了一个时间序列基准,用于公平评估和识别现有模型的有效范围。我们的调查组织如下:第二节介绍时间序列分析的背景概念。第三节介绍在盛行的深度时间序列模型中广泛使用的基本模块。第四节审查现有的深度时间序列模型在架构设计方面的表现。第五节介绍建议的开源基准——时间序列库(TSLib),并进行广泛的实验比较和详细分析。第六节简要讨论未来的研究方向,而第七节总结了本次调查。

2 前言

2.1 时间序列

时间序列是按时间顺序排列的 T T T个观察值的序列,可以表示为 X = { x 1 , x 2 , … , x T } ∈ R T × C \mathbf{X} = \left\{ {{\mathbf{x}}_{1},{\mathbf{x}}_{2},\ldots ,{\mathbf{x}}_{T}}\right\} \in {\mathbb{R}}^{T \times C} X={x1,x2,,xT}RT×C,其中 x t ∈ R C {\mathbf{x}}_{t} \in {\mathbb{R}}^{C} xtRC表示在时间点 t t t的观察值,$ C$是变量的数量。由于时间序列数据是从传感器获得的物理测量,因此系统通常记录多个变量。因此,现实世界的时间序列通常以多变量形式记录。理论研究 [25],[26] 显示,当有两个或更多非平稳序列时,它们的线性组合可以是平稳的。这种协整特性有助于揭示和建模非平稳序列之间的长期关系。因此,时间序列分析的本质在于捕捉和利用观察中的时间依赖性和变量间相关性。

时间依赖性 鉴于观察中固有的顺序特性,一个显而易见的技术范式是捕捉一组历史数据的时间依赖性。时间依赖性的基本思想是时间点或子序列之间的复杂相关性。传统的统计模型为建模时间依赖性奠定了基础。著名的模型包括 ARIMA(自回归积分滑动平均) [1],已被广泛研究用于捕捉时间序列模态中的复杂时间模式。由于其简单性和可解释性,这些统计方法仍在底层时间动态不表现出高度复杂性的任务中受到欢迎。考虑到现实世界时间序列的高维性和非平稳性,研究重点转向了时间序列分析中的深度学习。这些先进的方法旨在处理更复杂的时间动态,并在捕捉时间序列数据的时间依赖性方面提供更高的灵活性。

变量相关性 除了捕捉时间依赖性,理解高维度内的变量相关性在分析多变量时间序列中发挥了关键作用。这些相关性是指随着时间变化,不同变量之间的复杂交互和关联。它们为测量之间的潜在动态和依赖关系提供了宝贵的见解,使对潜在过程有更全面的理解。传统方法,如向量自回归(VAR)模型 [27],将自回归的概念扩展到多个变量,并可以捕捉多种量随时间演变的关系。从技术上讲,VAR 将每个变量表示为其滞后值与模型中所有其他变量的滞后值的线性组合,这导致无法捕捉复杂和非线性的关系。最近,先进的深度模型,如图神经网络 [28] 和变换器 [29],[30],也被引入用于变量相关性建模。

2.2 时间序列分析任务

基于对时间序列数据中潜在模式和趋势的理解,时间序列分析涵盖各种下游应用,包括预测 [31],[32]、插补 [33],[34],[35]、分类 [8],[36] 和异常检测 [5],[37],每个任务在不同的应用领域中具有独特的目的。

我们在图1中说明了代表性的时间序列分析任务。预测是时间序列分析中的一个基本任务,需要模型揭示数据中的时间依赖性和动态模式。通过捕捉过去和未来数据之间的关系,预测模型旨在预测输入序列的未来值或趋势。由于传感器故障、数据损坏或缺失测量导致的缺失数据在实际应用中非常普遍,因此对时间序列插补的需求日益增长,以获取更高质量的数据。与预测不同,预测基于历史观察来预测未来值,而插补则专注于利用可用背景信息重建缺失值。异常检测涉及识别时间序列中不寻常或异常的模式,这可能表明关键事件、系统故障或需要进一步调查的离群值。最后,分类根据给定时间序列的特征分配一个标签或类别,这是在医学诊断等领域广泛应用的任务。

在这里插入图片描述

图1. 不同时间序列分析任务的示意图。

3 基本模块

时间序列建模方法经历了显著的发展,从传统的统计模型转变为复杂的深度学习模型。尽管这些进步,许多经典工具和分析算法依然被广泛使用,并继续作为现代深度模型中的基础设计原则。在本节中,我们关注经典时间序列分析的主要工具,并展示它们如何作为当代深度时间序列模型的基本组成部分进行集成。

3.1 平稳化

作为时间序列分析中的基础概念,平稳性是指时间序列的统计属性随时间保持不变的特性。平稳时间序列具有恒定的均值和方差,这简化了统计分析,并使得捕捉时间序列中的潜在模式和行为变得更容易。由于许多基于统计的时间序列分析方法将平稳性视为基本假设,因此时间序列数据的平稳化已成为一个重要模块。将非平稳时间序列转化为平稳时间序列的方法有很多。传统时间序列模型通过差分或对数变换来实现时间序列的平稳化。在最近的深度学习方法中,数据规范化 [38] 以简单而有效的方式充当平稳化的角色,它标准化了观测值的值分布,同时保持了内在的变化,并进一步帮助缓解源域和目标域之间的分布转移。

深度自适应输入标准化(DAIN)层 [39] 被提出来根据其原始分布自适应地平稳化时间序列数据。RevIN [40] 引入可逆实例规范化到时间序列数据中,这是一种具有可学习的仿射变换的有效标准化和反标准化方法,使模型能够绕过非平稳输入。非平稳变换器 [41](以下称为平稳)提出了一种更简单但更有效的系列平稳化技术,能够提升非平稳系列的预测能力而不需要额外的参数。具体来说,对于具有 T T T时间戳和 C C C变量 X = { X 1 , X 2 , … , X T } ∈ R T × C \mathbf{X} = \left\{ {{\mathbf{X}}_{1},{\mathbf{X}}_{2},\ldots ,{\mathbf{X}}_{T}}\right\} \in {\mathbb{R}}^{T \times C} X={X1,X2,,XT}RT×C的序列,平稳 [41] 的大纲可以总结为:

μ x = 1 T ∑ i = 1 T X i , σ x 2 = ∑ i = 1 T 1 T ( X i − μ x ) 2 , (1) {\mu }_{\mathbf{x}} = \frac{1}{T}\mathop{\sum }\limits_{{i = 1}}^{T}{\mathbf{X}}_{i},{\sigma }_{\mathbf{x}}^{2} = \mathop{\sum }\limits_{{i = 1}}^{T}\frac{1}{T}{\left( {\mathbf{X}}_{i} - {\mu }_{\mathbf{x}}\right) }^{2}, \tag{1} μx=T1i=1TXi,σx2=i=1TT1(Xiμx)2,(1)

X ′ = ( X − μ x ) σ x 2 + ϵ , Y ′ = Model ⁡ ( X ′ ) , Y ^ = σ x 2 ( Y ′ + μ x ) , {\mathbf{X}}^{\prime } = \frac{\left( \mathbf{X} - {\mu }_{\mathbf{x}}\right) }{\sqrt{{\sigma }_{\mathbf{x}}^{2} + \epsilon }},{\mathbf{Y}}^{\prime } = \operatorname{Model}\left( {\mathbf{X}}^{\prime }\right) ,\widehat{\mathbf{Y}} = {\sigma }_{\mathbf{x}}^{2}\left( {{\mathbf{Y}}^{\prime } + {\mu }_{\mathbf{x}}}\right) , X=σx2+ϵ (Xμx),Y=Model(X),Y =σx2(Y+μx),

其中 ϵ \epsilon ϵ是一个小值以确保数值稳定。 μ x , σ x 2 ∈ R 1 × C {\mu }_{\mathbf{x}},{\sigma }_{\mathbf{x}}^{2} \in {\mathbb{R}}^{1 \times C} μx,σx2R1×C是变量特定的均值和方差。为了恢复原始序列的分布和非平稳性,进一步使用反标准化模块来增强模型输出 Y ′ {\mathbf{Y}}^{\prime } Y的输入均值和方差统计。

平稳化的思想及上述技术已被广泛应用于后续的深度时间序列模型 [23], [30], [42], [43]。最近的SAN [44] 重新思考了非平稳数据的本质,并尝试将其分割成不重叠的等大小片段,并对每个片段进行标准化。具体来说,基于统计属性的演变趋势,SAN 引入了一个统计预测模块来预测未来片段的分布。

3.2 分解

分解 [45], [46],作为时间序列分析中的传统方法,可以将时间序列拆分为几个具有分类模式的组件,主要用于探索复杂系列变化。在之前的工作中,探索了多种分解范式。

3.2.1 季节-趋势分解

季节-趋势分解 [47], [48] 是使原始数据更可预测的最常见做法之一,它可以将系列分离为几个不同的组件:趋势、季节性、周期性和不规则性,即

X = T + C + S + I (2) \mathbf{X} = \mathbf{T} + \mathbf{C} + \mathbf{S} + \mathbf{I} \tag{2} X=T+C+S+I(2)

其中,趋势组件 T \mathbf{T} T代表数据随时间的整体长期模式,周期组件 C \mathbf{C} C反映数据中的重复但非周期性的波动,季节组件 S \mathbf{S} S表示固定周期内的重复模式,不规则组件 I \mathbf{I} I是在其他组件被移除后剩余的时间序列残差。

趋势-季节性分解可以通过使用数学工具,如滤波器或指数平滑 [49], [50] 来实现。之前的统计方法主要将趋势-季节性分解作为数据预处理 [51]。在深度模型中,Autoformer [22] 首先将分解的概念引入到深度学习架构中,并提出系列分解块作为一个基本模块,以提取深度特征和输入系列的季节性和趋势-周期部分,其计算过程可以形式化为:

X T = AvgPool ⁡ ( Padding ⁡ ( X ) ) (3) {\mathbf{X}}_{\mathcal{T}} = \operatorname{AvgPool}\left( {\operatorname{Padding}\left( \mathbf{X}\right) }\right) \tag{3} XT=AvgPool(Padding(X))(3)

X S = X − X T {\mathbf{X}}_{\mathcal{S}} = \mathbf{X} - {\mathbf{X}}_{\mathcal{T}} XS=XXT

系列分解块是基于一个带有填充操作的时间平均池化层进行简洁实现,以保持序列长度不变。该设计能够捕捉趋势 X T {\mathbf{X}}_{\mathcal{T}} XT,余下的部分被视为季节部分 X S {\mathbf{X}}_{\mathcal{S}} XS。所提出的系列分解块已在后续工作中广泛使用 [6], [52], [53], [54], [55] 作为深度模型的本地构建块,以拆解深度特征的潜在模式。

3.2.2 基础扩展

基础扩展是一种数学方法,用于以新一组预定义函数的形式表示一个函数或一组数据点。这些新函数构成了一个函数空间的基础,意味着该空间中的任何函数都可以作为这些基础函数的线性组合来表示。在时间序列分析的背景下,基础扩展用于通过将时间序列分解为基本变动的组合来揭示复杂的非线性时间关系,这也增强了可解释性。作为一个代表模型,N-BEATS [56] 通过利用全连接层生成用于向后和向前预测的扩展系数,对时间序列进行分层分解。对于所提议的分层架构中的第 l l l块,操作如下:

X l = X l − 1 − X ^ l − 1 (4) {\mathbf{X}}_{l} = {\mathbf{X}}_{l - 1} - {\widehat{\mathbf{X}}}_{l - 1} \tag{4} Xl=Xl1X l1(4)

X ^ l , Y ^ l = Block ⁡ l ( X l ) {\widehat{\mathbf{X}}}_{l},{\widehat{\mathbf{Y}}}_{l} = {\operatorname{Block}}_{l}\left( {\mathbf{X}}_{l}\right) X l,Y l=Blockl(Xl)

其中 X ^ l − 1 {\widehat{\mathbf{X}}}_{l - 1} X l1是反向预测结果,该结果限制块去近似输入信号 X l − 1 {\mathbf{X}}_{l - 1} Xl1,然后 X l {\mathbf{X}}_{l} Xl X ^ l − 1 {\widehat{\mathbf{X}}}_{l - 1} X l1移除良好估计信号的部分 X ^ l − 1 {\widehat{\mathbf{X}}}_{l - 1} X l1,因此提供了分层分解。 Y ^ l \widehat{\mathbf{Y}}{l} Y l 是基于分解输入 X l \mathbf{X}{l} Xl 的部分预测,最终预测 Y ^ = ∑ l Y ^ l \widehat{\mathbf{Y}} = \sum_{l} \widehat{\mathbf{Y}}_{l} Y =lY l 是所有部分预测的总和。

随后,N-HiTs [57] 通过在全连接块之前整合子采样层重新定义了 N-BEATS,这通过多频率数据采样增强了输入分解,而未来预测通过多尺度插值进行增强。DEPTS [58] 提出了一个新的周期时间序列的解耦公式,通过引入周期状态作为隐变量,然后在残差学习之上开发深度扩展模块,以进行观察信号和隐周期状态之间的逐层扩展。类似地,DEWP [59] 也是一种逐层扩展模型,处理多变量时间序列数据,其中每个堆栈由一个变量扩展块组成,以捕捉多个变量之间的依赖关系,以及一个时间扩展块,以学习时间依赖性。

3.2.3 矩阵分解

上述两种分解方法是针对单变量序列提出的,或以变量独立的方式应用于多变量序列。在这里,我们讨论一种基于分解的多变量序列分解。具体而言,许多现实场景中的多变量时间序列数据也可以称为高维数据。它们可以以矩阵的形式进行表示,其行对应于变量,列对应于时间点。由于多变量时间序列中的变量往往高度相关,可以将其简化为更紧凑的空间。矩阵分解方法 [60] 通过将高维系列数据分解为低维潜在空间中的两个矩阵的乘积来工作。对于一个多变量时间序列 X ∈ R T × C \mathbf{X} \in \mathbb{R}^{T \times C} XRT×C,如图 2 所示,矩阵可以通过两个低秩嵌入矩阵的乘积进行近似,即 X ≈ F X ^ \mathbf{X} \approx \mathbf{F}\widehat{\mathbf{X}} XFX ,其中 F ∈ R T × k \mathbf{F} \in \mathbb{R}^{T \times k} FRT×k X ^ ∈ R k × C \widehat{\mathbf{X}} \in \mathbb{R}^{k \times C} X Rk×C,且 k k k 是超参数。

在这里插入图片描述

图 2. 多时间序列的矩阵分解。 F \mathbf{F} F 捕获每个时间序列的特征, X ^ \widehat{\mathbf{X}} X 捕获时间依赖变量。

除了估计,还有正则化器以避免分解中的过拟合问题。在采用平方弗罗贝尼乌斯范数作为正则化器的经典设计基础上,时间正则化矩阵分解(TRMF) [61] 设计了一种基于自回归的时间正则化器,以描述潜在时间嵌入之间的时间依赖性。此外,[62] 通过引入新的空间自回归正则化器,扩展了 TRMF,以通过同时学习空间和时间自相关来估计低秩潜在因子。NoTMF [63] 将向量自回归过程与差分操作整合到经典的低秩矩阵分解框架中,以更好地建模具有趋势和季节性的真实世界时间序列数据。BTF [64] 是一个完全贝叶斯模型,整合了概率矩阵分解和向量自回归过程到一个单一的概率图模型,消除了调整正则化参数的需要。DeepGLO [65] 利用时间卷积网络进行正则化,以捕获非线性依赖关系。LSTM-GL-ReMF [66] 包含一个基于 LSTM 的时间正则化器,以学习复杂的长期和短期非线性时间相关性,以及一个图拉普拉斯空间正则化器 [67] 来捕获空间相关性。

3.3 傅里叶分析

傅里叶分析 [68], [69] 可以将物理信号转换为傅里叶域,以突出原始数据的固有频率特性,并已在广泛的领域中被公认为是一种分析工具。由于时间序列通常通过对原始连续信号进行采样以离散时间点的序列进行记录,傅里叶分析已成为时间序列建模的主流工具之一,并已证明其有效性和效率 [70], [71]。引入傅里叶域不仅增强了原始序列的表示,还提供了一个全局视图,频谱分布可以指示时间序列的基本周期属性。在实践中,快速傅里叶变换(FFT) [72] 和小波变换(WT) [73] 作为将离散时间域连接到频率域的基本算法,在深度时间序列模型的模块化设计中越来越受欢迎 [74], [75], [76], [77], [78], [79], [80], [81]。现有方法大致可分为两类:时域建模和频域建模。

3.3.1 时域建模

傅里叶变换的基本原理是序列数据可以通过一系列周期信号进行分解和表示。因此,它可以通过分析幅度最高的成分来识别数据中可能主导的周期及其对应的频率。作为典型的实践,TimesNet [3] 采用快速傅里叶变换(FFT)提取幅度值最高的最重要频率,随后基于识别的周期将 1D 时间序列数据重塑为 2D 空间,以便更好地进行表示学习。在 TimesNet 之后,PDF [82] 假定具有较大值的频率促进了长期和短期关系之间更明显的区分。

除了利用傅里叶变换器获得的序列信息外,一些工作尝试通过快速傅里叶变换器进行高效计算。自相关是时间序列分析中的一个基本概念,测量数据序列中不同时间点之间观察值的依赖性。维纳-金钦定理 [83] 提供了自相关函数与平稳随机过程的功率谱密度(PSD)之间的数学关系,其中自相关函数表示 PSD 的反向傅里叶变换。将数据视为实际离散时间过程,Autoformer [22] 提出了一种自相关机制,采用高效的快速傅里叶变换来捕捉序列相关性。

频域表示提供了有关幅度和相位的信息,其中低频成分对应于信号中的较慢变化或趋势,而高频成分捕获细节或快速变化。大量研究集中于利用频域信息增强模型捕捉时间依赖性的能力。FiLM [84] 引入了频率增强层(FEL),结合傅里叶分析和低秩近似,以保留与低频傅里叶成分和顶部特征空间相关的表示部分,以有效降低噪声并提高训练速度。FITS [85] 结合了低通滤波器(LPF),以消除超过特定截止频率的高频成分,从而在保留基本信息的同时压缩模型大小。从相反的角度考虑,FEDformer [86] 假定仅保留低频成分不足以进行时间序列建模,因为这可能会忽略数据中的重要波动。基于上述考虑,为了捕捉时间序列的全局视图,FEDformer 通过随机选择固定数量的傅里叶成分来表示序列,包括高频和低频成分。

3.3.2 频域建模

基于信号处理中的时频分析,已经开发出几种方法来同时研究时间序列在时间域和频率域中的表现。ATFN [87]包含一个增强的序列到序列模型,该模型学习复杂非平稳时间序列的趋势特征,以及一个旨在捕捉动态和复杂周期模式的频率域模块。TFAD [88]引入了一种基于时频分析的模型,该模型利用时间卷积网络学习时间域和频率域的表示。

一些研究开发了专门的深度学习架构来处理时间序列的频率域。STFNet [75]对输入信号应用短时傅里叶变换,直接在频率域应用过滤、卷积和池化操作。StemGNN [28]结合图傅里叶变换(GFT)和离散傅里叶变换,以建模系列间相关性和时间依赖性。EV-FGN [89]在嵌入的时空平面上使用二维离散傅里叶变换,并执行图卷积,以同时捕捉频率域中的时空依赖性。FreTS [90]利用离散傅里叶变换(DFT)将数据转换为频谱,并引入为复数设计的频率域MLP,分别对实部和虚部进行建模。FCVAE [91]同时将全局和局部频率特征整合到条件变分自编码器(CVAE)的条件中。最近,TSLANet [92]提出了一种轻量级的自适应谱块(ASB)来替代自注意力机制,这是通过全局和局部滤波器的傅里叶相关乘法实现的。FourierDiffusion [93]探索扩展基于评分的SDE扩散公式到复值数据,因此在频率域中实施时间序列扩散。

4 模型架构

正如我们在第2节中讨论的,时间序列模型需要挖掘观察数据中所隐含的内在时间依赖关系和变数相关性。在这一节中,我们提供现有深度时间序列模型的技术评述。正如我们在图3中所示,现有的研究可以根据其骨干架构分为五类,分别是基于MLP、基于RNN、基于CNN、基于GNN和基于Transformer的模型。

在这里插入图片描述

图3. 按时间顺序展示的代表性时间序列模型概览。我们根据架构的不同用不同颜色标记模型。

4.1 多层感知器

作为传统统计时间序列模型的代表,自动回归(AR)模型假设模型输出线性依赖于其自身的历史值。受到自动回归模型出色表现的启发,多层感知器(MLP)成为建模时间序列数据的流行架构。

作为线性模型的代表性工作,N-BEATS [24]是一个纯粹基于MLP的深度时间序列模型,没有任何时间序列特定知识来捕捉时间序列中的时间模式。具体而言,如公式(4)所述,N-BEATS由多层全连接层的深度堆叠组成,每层有两个残差分支,一个用于回推预测,另一个为预测分支。扩展神经基扩展分析的思想,N-HiTs [57]使用多速率信号采样和分层插值,而N-BEATSx [94]则结合外生变量以增强预测。

DLinear [52]的最新研究,也被称为LTSF-Linear,质疑复杂深度架构在时间建模中的有效性。它主张在原始空间中进行简单的线性回归,这在建模和效率上都取得了显著的表现。如图4所示,流行的基于MLP的深度时间序列模型主要由针对预测任务设计的简单线性层组成。同样轻量但有效的FITS [85]主张时间序列分析可以视为复杂频率域中的插值练习,并进一步引入复值线性层以学习频率域中的幅度缩放和相位偏移。受到计算机视觉中MLP-Mixer [95]的启发,若干工作尝试利用MLP来建模时间和变数依赖性。TSMixer [96]包含时间混合和特征混合的交错MLP,以从不同的视角提取信息。为了更好地建模时间序列数据中的全局依赖性,FreTS [90]研究频率域MLP所学的模式,这些模式在系列之间和内部系列尺度上操作,以捕捉多变量数据中的通道和时间依赖性。

在这里插入图片描述

图4. 预测任务中基本MLP模型的示意图,该模型通过可学习的MLP参数捕捉未来-过去的依赖关系。

近期的研究已超越在离散时间点上使用简单线性层。TimeMixer表明,时间序列在不同的采样尺度上呈现出不同的模式,并提出了一种基于MLP的多尺度混合架构。TiDE [97]结合外生变量以增强时间序列预测。基于库曼理论和动态模式分解(DMD) [98],这是分析复杂动态系统的主要方法,Koopa [99]通过端到端预测训练框架分层分解动态,并能够利用实时到来的序列进行在线开发。

4.2 循环神经网络

循环神经网络(RNN)专门用于建模序列数据 [100],[101],[102],如自然语言处理 [103] 和音频建模 [104]。由于时间序列本质上也是序列,RNN已成为分析时间序列数据的流行选择 [105]。现有的基于RNN的深度时间序列模型专注于应对由原始递归结构引起的梯度消失问题,以及建模多元变量间的互相关性。之前的工作 [106],[107],[108],[109],[110]使用了RNN的变体来建模时间依赖性。

在这里插入图片描述

图5. 预测任务中基于RNN的模型示意图。

LSTNet [111]将递归结构与卷积层结合,以捕捉变量之间的短期局部依赖性和时间序列的长期模式。此外,基于周期模式还引入了一种新的递归跳跃组件,以缓解建模长期依赖性时的梯度消失问题。同样,DA-RNN [112]将递归单元与双阶段注意机制结合,以自适应提取每个时间步相关的系列。超越确定性预测,DeepAR [113]提出一种自回归递归网络模型,以预测未来时间点的概率分布。在技术上,它不仅学习时间序列的季节性行为,还学习在时间序列中给定协变量的依赖性,允许模型即使在几乎没有历史数据时也能进行预测。

基于马尔可夫状态表示,状态空间模型(SSM) [114]是捕捉随机动态系统中观察到的测量之间概率依赖关系的另一个经典数学框架。具体地,单输入单输出(SISO)线性状态空间模型定义如下:

d d t x ( t ) = A x ( t ) + B u ( t ) (5) \frac{\mathrm{d}}{\mathrm{d}t}x\left( t\right) = \mathbf{A}x\left( t\right) + \mathbf{B}u\left( t\right) \tag{5} dtdx(t)=Ax(t)+Bu(t)(5)

y ( t ) = C x ( t ) + D u ( t ) y\left( t\right) = \mathbf{C}x\left( t\right) + \mathbf{D}u\left( t\right) y(t)=Cx(t)+Du(t)

其中 u ( t ) , x ( t ) , y ( t ) u\left( t\right), x\left( t\right), y\left( t\right) u(t),x(t),y(t)分别是输入信号、潜在状态和输出信号。该系统由矩阵 A ∈ R N × N , B ∈ R N × 1 , C ∈ R 1 × N , D ∈ R 1 × 1 \mathbf{A} \in {\mathbb{R}}^{N \times N},\mathbf{B} \in {\mathbb{R}}^{N \times 1},\mathbf{C} \in {\mathbb{R}}^{1 \times N},\mathbf{D} \in {\mathbb{R}}^{1 \times 1} ARN×N,BRN×1,CR1×N,DR1×1特征,可以通过深度神经网络进行学习。

状态空间模型(SSMs)已被证明在处理结构良好的时间序列数据方面有效且高效,但传统方法必须分别重新拟合每个时间序列样本,因此无法从相似时间序列的数据集中推断出共享模式。随着深度学习模型的兴起,现代SSMs通常以递归方式实现。通过调整和传播确定性隐状态,递归神经网络(RNNs)能够表示连续数据中的长期依赖性,提供了经典状态空间模型的替代方案。因此,一些研究工作 [115], [116] 尝试将经典状态空间模型与深度神经网络融合。代表性的如深度状态空间模型(DSSM) [117],使用递归神经网络(RNN)对特定线性SSM进行参数化,结合结构假设并学习复杂模式。结构化状态空间序列模型(S4) [118] 通过用低秩修正条件矩阵A,引入了SSM的新参数化,使其能够稳定地对角化,从而增强模型的长期建模能力。与S4类似,LS4 [119] 是一种生成模型,其潜在空间演化遵循状态空间常微分方程(ODE)。

最近的Mamba [120] 工作已经成为一种强大的方法,用于建模长上下文序列数据,并在序列长度上线性扩展。通过利用简单的选择机制,基于输入参数化SSM参数,Mamba能够以类似于注意机制的方式辨别信息的重要性,从而提供了一种潜在的有效的序列建模方式。

4.3 卷积神经网络

由于时间序列的语义信息主要隐藏在时间变化中,卷积神经网络(CNN) [18], [121] 已成为它们捕捉局部特征和模式识别能力的竞争性基础。通过利用卷积和分层特征提取,CNN在各种计算机视觉任务中表现出显著成功,例如图像分类 [122]、分割 [123] 和目标检测 [124]。

考虑到时间序列数据的时间连续性,以前的工作 [125], [126], [127] 应用一维CNN (1D CNN) 来捕捉时间序列数据的局部模式。最近的SCINet [128] 采用正常卷积与分层下采样-卷积-交互架构,以在时间序列数据的不同时间分辨率下捕获动态时间依赖性。受掩蔽卷积 [129] 思想的启发,Wavenet [130] 引入了因果卷积和扩张因果卷积来建模长期时间因果关系。类似于Wavenet,时间卷积网络(TCN) [131] 使用一组扩张卷积核,其扩张因子逐渐增大,以实现大感受野。然而,TCN的有限感受野使其难以捕捉时间序列数据中的全局关系。基于TCN,MICN [132] 是一个局部-全局卷积网络,它结合不同的卷积核,从局部和全局的角度建模时间相关性。ModernTCN [133]通过DWConv和ConvFFN分别提升了传统TCN,以捕捉跨时间和跨变量依赖性。考虑到DWConv旨在学习时间信息,它以可变无关的方式操作,以学习每个单变量时间序列的时间依赖性。

超越一维空间,受时间序列数据的周期性特征的启发,TimesNet [3] 将一维时间序列 X 1 D {\mathbf{X}}_{1\mathrm{D}} X1D数据转换为一组 2 D 2\mathrm{D} 2D张量 X 2 D = { X 2 D 1 , … , X 2 D k } {\mathbf{X}}_{2\mathrm{D}} = \left\{ {{\mathbf{X}}_{2\mathrm{D}}^{1},\ldots ,{\mathbf{X}}_{2\mathrm{D}}^{k}}\right\} X2D={X2D1,,X2Dk},在每个TimesBlock中基于估计的周期长度,其中周期内的变化呈现在张量列中,周期间的变化则显示在张量行中。这里 k k k是一个超参数,对应于不同周期的多个1D到2D转换。然后应用

在这里插入图片描述

图6. 从表示空间的角度比较现有基于CNN的时间序列模型。

inception块 [134], [135] 用于处理转换后的2D张量,可以总结为:

X 2 D i = Reshape ⁡ ( Padding ⁡ ( X 1 D ) ) , i ∈ { 1 , ⋯   , k } {\mathbf{X}}_{2\mathrm{D}}^{i} = \operatorname{Reshape}\left( {\operatorname{Padding}\left( {\mathbf{X}}_{1\mathrm{D}}\right) }\right), i \in \{ 1,\cdots, k\} X2Di=Reshape(Padding(X1D)),i{1,,k}

X ^ 2 D i = Inception ⁡ ( X 2 D i ) , i ∈ { 1 , ⋯   , k } (6) {\widehat{\mathbf{X}}}_{2\mathrm{D}}^{i} = \operatorname{Inception}\left( {\mathbf{X}}_{2\mathrm{D}}^{i}\right), i \in \{ 1,\cdots, k\} \tag{6} X 2Di=Inception(X2Di),i{1,,k}(6)

X ^ 1 D i = Trunc ⁡ ( Reshape ⁡ ( X ^ 2 D i ) ) , i ∈ { 1 , ⋯   , k } , {\widehat{\mathbf{X}}}_{1\mathrm{D}}^{i} = \operatorname{Trunc}\left( {\operatorname{Reshape}\left( {\widehat{\mathbf{X}}}_{2\mathrm{D}}^{i}\right) }\right), i \in \{ 1,\cdots, k\} , X 1Di=Trunc(Reshape(X 2Di)),i{1,,k},
其中 X 2 D i {\mathbf{X}}_{2\mathrm{D}}^{i} X2Di是第 i i i个转换后的 2 D 2\mathrm{D} 2D张量。经过inception块Inception(.)后,学习到的 2 D 2\mathrm{D} 2D表示被转换回1D以进行聚合。这些转换使TimesNet能够有效地同时捕获多尺度的周期内变化和周期间变化。此外,通过利用分层卷积层,TimesNet能够学习高层次和低层次表示,促进对四个不同任务的全面时间序列分析。

4.4 图神经网络

由于变量之间复杂且常常非线性的相关性,分析多变量时间序列数据往往具有挑战性。为了解决这个挑战,图神经网络(GNNs) [136], [137] 已被广泛应用于时间序列分析。通过将多变量数据建模为时空图,其中每个节点代表一个变量,GNNs能够提取邻近节点之间的关系,并捕捉节点属性随时间的演变,从而为理解多变量时间序列的潜在动态提供了有力的框架。

在这里插入图片描述

图7. 使用GNN建模多变量时间序列的示意图。

GNN架构的核心目标是建模多变量数据中的底层拓扑关系,因此现有基于GNN的作品大致可以根据图结构是否是模型输入的一部分分为两类。DCRNN [138] 将交通的空间依赖建模为在有向图上的扩散过程,并使用扩散卷积捕获空间依赖,同时利用递归神经网络捕获时间动态。类似地,STGCN [139] 将图卷积网络整合到一起,以建模交通传感器之间的空间依赖,利用时间卷积捕捉交通时间序列数据中的时间依赖性。Graph WaveNet [140] 将图卷积与扩张因果卷积相结合,并通过节点嵌入学习自适应依赖矩阵,使模型能够自动捕获时空图数据中的隐含空间依赖性。类似地,AGCRN [141] 通过节点自适应参数学习和数据自适应图生成模块增强了传统的图卷积网络,从而允许在没有预定义图结构的情况下自动捕获空间和时间相关性。MTGNN [142] 引入了图学习层,以自适应学习图邻接矩阵,从而捕获多变量时间序列数据之间的隐含关系。STFGNN [143] 采用具有生成时间图的时空融合图神经网络,学习局部空间-时间异质性和全局空间-时间同质性。StemGNN [28] 利用图傅里叶变换(GFT)和离散傅里叶变换(DFT)的优点,在光谱域中对多变量时间序列进行建模。

4.5 Transformers

在自然语言处理领域的巨大成功 [16], [144], [145], [146], [147] 和计算机视觉 [19], [148], [149], [150] 的背景下,Transformer 也成为时间序列分析的强大基础。得益于自注意力机制 [151],基于 Transformer 的模型可以捕捉长期的时间依赖性和复杂的多变量相关性。如图 8 所示,现有的基于 Transformer 的时间序列模型可以根据用于注意力机制的表示粒度进行分类,即点-wise、 patch-wise 和 series-wise 方法。

4.5.1 Point-wise 依赖性

由于时间序列的串行特性,现有大多数基于 Transformer 的工作使用时间序列数据的点状表示,并应用注意力机制来捕捉不同时间点之间的相关性。在这些点状建模方法中,数据嵌入是一个关键组件,它将时间序列数据的值映射到高维表示。给定时间序列 X ∈ R T × C \mathbf{X} \in \mathbb{R}^{T \times C} XRT×C 及其对应的时间戳信息 X mark ∈ R T × D {\mathbf{X}}^{\text{mark}} \in \mathbb{R}^{T \times D} XmarkRT×D,其中 C C C 是变量数量,而 D D D 是时间戳的类型,嵌入模块可以总结如下:

H t = Projection ⁡ ( X t ) + PE ⁡ ( X t ) + TE ⁡ ( X t mark ) , (7) \mathbf{H}{t} = \operatorname{Projection}\left(\mathbf{X}{t}\right) + \operatorname{PE}\left(\mathbf{X}{t}\right) + \operatorname{TE}\left({\mathbf{X}}{t}^{\text{mark}}\right), \tag{7} Ht=Projection(Xt)+PE(Xt)+TE(Xtmark),(7)

其中 H t ∈ R T × d model \mathbf{H}{t} \in \mathbb{R}^{T \times d{\text{model}}} HtRT×dmodel d model d_{\text{model}} dmodel 是嵌入表示的维度。值投影 Projection : R C ↦ R d model \text{Projection}: \mathbb{R}^{C} \mapsto \mathbb{R}^{d_{\text{model}}} Projection:RCRdmodel 和时间戳嵌入 TE : R D ↦ R d model \text{TE}: \mathbb{R}^{D} \mapsto \mathbb{R}^{d_{\text{model}}} TE:RDRdmodel 是通过通道维线性层实现的, PE ⁡ ( ⋅ ) \operatorname{PE}(\cdot) PE() 表示绝对位置嵌入,以保留输入序列的顺序上下文。

为了更好地将 Transformer 架构应用于时间序列领域,研究人员探索了两个方面:设计预处理模块和修改注意力机制。正如我们在第 3.1 节中讨论的,过去的 RevIN [40] 和 Stationary [41] 通过在 vanilla Transformer 之前和之后引入归一化和反归一化模块,实现了卓越的性能。此外,Stationary [41] 进一步提出了去平稳注意力以避免过度平稳化问题。

TABLE 2 基于 Transformer 的深度时间序列模型的模型卡与架构细节。

在这里插入图片描述

在这里插入图片描述

图 8. 用于基于 Transformer 的时间序列模型的不同类型的标记化的比较及相应的代表性作品,从point-wise、patch-wise 到 series-wise。

由于经典的注意力方法导致了二次计算复杂度,因此提出了许多高效的 Transformer [21], [22], [86], [153] 以减轻点-wise 建模所导致的复杂性,如表 2 所总结的。LogSparse [152] 提出了卷积自注意力,通过采用因果卷积来替代经典注意力,以在自注意力层中生成查询和键。Informer [21] 引入了一种查询稀疏性度量,其中较大的值表示在自注意力中包含主导信息的更高概率。基于提出的稀疏性度量,它进一步设计了一个ProbSparse自注意力,仅使用测量结果最大的前查询,从而可以减少时间和内存中的二次复杂度。Pyraformer [153] 构建了一个多分辨率的 C C C-进制树,并开发了一个金字塔注意力机制,在该机制中,每个节点只能关注其相邻、相邻和子节点。通过计算得到的关注掩码,Pyraformer 可以以线性时间和空间复杂度捕获短期和长期的时间依赖性。

4.5.2 Patch-wise 依赖性

基于补丁的架构在变压器模型中发挥着至关重要的作用,无论是在自然语言处理(NLP)[16] 还是计算机视觉(CV)[19] 领域。由于逐点表示无法捕捉时间数据中的局部语义信息,因此几项研究 [23]、[154]、[155] 投入了大量精力探讨时间序列数据中的补丁级时间依赖性。

开创性工作 Autoformer [22] 提出了自相关机制,捕获时间序列的系列级依赖性,以替代传统的逐点自注意力。基于随机过程理论 [156],自相关利用快速傅里叶变换来发现不同子序列之间的时间延迟相似性。进一步提出的时间延迟模块聚合来自基础周期的相似子序列,而不是分散点之间的关系,这首先探索了基于变压器的模型中的子序列级建模。

与修改注意力机制不同,最近的许多工作利用时间序列数据的补丁级表示,执行自注意力机制以捕捉补丁级依赖性 [23]、[54]、[157]。PatchTST [23] 和后续工作将时间序列 X \mathbf{X} X拆分为一系列重叠补丁,并嵌入每个补丁,如下所示:

{ P 1 , P 2 , … , P N } = Patchify ⁡ ( X ) , \left\{ {{\mathbf{P}}_{1},{\mathbf{P}}_{2},\ldots ,{\mathbf{P}}_{N}}\right\} = \operatorname{Patchify}\left( \mathbf{X}\right) , {P1,P2,,PN}=Patchify(X),

H i = PatchEmbed ⁡ ( P i ) + W pos  i . (8) {\mathbf{H}}_{i} = \operatorname{PatchEmbed}\left( {\mathbf{P}}_{i}\right) + {\mathbf{W}}_{\text{pos }}^{i}. \tag{8} Hi=PatchEmbed(Pi)+Wpos i.(8)
假设 P , N P, N P,N是补丁长度和相应的补丁数量, P i {\mathbf{P}}_{i} Pi 表示序列长度为 P P P的第 i i i个补丁。这些补丁通过时间线性投影 PatchEmbed 映射到潜在空间 R P ↦ R d model  {\mathbb{R}}^{P} \mapsto {\mathbb{R}}^{{d}_{\text{model }}} RPRdmodel 和一个可学习的位置嵌入 W pos  ∈ R d model  × N {\mathbf{W}}_{\text{pos }} \in {\mathbb{R}}^{{d}_{\text{model }} \times N} Wpos Rdmodel ×N

基于基础的注意力机制,PatchTST [23] 学习补丁级依赖性。超越 PatchTST,最近的 Pathformer [158] 提出了具有自适应路径的多尺度基于变压器的模型。基于不同尺度的补丁划分,自适应路径选择由路由器生成的前 K K K权重的补丁大小,以捕获多尺度特征。

PatchTST 的成功也得益于通道独立性设计,其中每个时间补丁级标记仅包含来自单一序列的信息。除了捕捉单一序列中的补丁级时间依赖性,最近的许多方法 [54]、[157] 努力捕捉不同变量的补丁之间随时间变化的相互依赖性。Crossformer [29] 引入了一个包含交叉时间阶段和交叉维度阶段的两阶段注意力层,以有效捕捉每个补丁标记之间的交叉时间和交叉变量依赖性。对于获得的嵌入向量$\mathbf{H} \in {\mathbb{R}}^{N \times C \times {d}_{\text{model }}} $,总体注意力阶段可以描述如下:

Z time  = MSA ⁡ time  ( H , H , H ) {\mathbf{Z}}^{\text{time }} = {\operatorname{MSA}}^{\text{time }}\left( {\mathbf{H},\mathbf{H},\mathbf{H}}\right) Ztime =MSAtime (H,H,H)

B = MSA ⁡ 1 dim  ( R , Z time  , Z time  ) (9) \mathbf{B} = {\operatorname{MSA}}_{1}^{\text{dim }}\left( {\mathbf{R},{\mathbf{Z}}^{\text{time }},{\mathbf{Z}}^{\text{time }}}\right) \tag{9} B=MSA1dim (R,Ztime ,Ztime )(9)

Z ‾ dim  = MSA ⁡ 2 dim  ( Z time  , B , B ) {\overline{\mathbf{Z}}}^{\text{dim }} = {\operatorname{MSA}}_{2}^{\text{dim }}\left( {{\mathbf{Z}}^{\text{time }},\mathbf{B},\mathbf{B}}\right) Zdim =MSA2dim (Ztime ,B,B)
其中 R ∈ R N × C × d model  \mathbf{R} \in {\mathbb{R}}^{\mathbf{N} \times \mathbf{C} \times {d}_{\text{model }}} RRN×C×dmodel 是一个可学习的向量数组,用作路由器,从所有维度收集信息,然后分发收集的信息。

4.5.3 系列间依赖性

进一步扩展感受野,也有一些工作尝试使用整个时间序列的标记化来捕捉系列间的依赖性。iTransformer [30] 将 VariateEmbed 引入多元数据,对于第 i i i个变量 ${\mathbf{X}}^{\left( i\right) } $,可以简单地表述如下:

H ( i ) = VariateEmbed ⁡ ( X ( i ) ) (10) {\mathbf{H}}^{\left( i\right) } = \operatorname{VariateEmbed}\left( {\mathbf{X}}^{\left( i\right) }\right) \tag{10} H(i)=VariateEmbed(X(i))(10)

其中 VariateEmbed : R T → R d model  {\mathbb{R}}^{T} \rightarrow {\mathbb{R}}^{{d}_{\text{model }}} RTRdmodel 被实例化为可训练的线性投影器。基于每个系列的全局表示,iTransformer 利用基础变压器在没有任何架构修改的情况下捕捉多元时间序列数据中的相互关联。同样,TimeXer [159] 专注于带外生变量的预测,分别利用补丁级和系列级表示来针对内生和外生变量。此外,TimeXer 引入了一个内生全局标记,作为两者之间的桥梁,从而共同捕捉内生时间依赖性和外生到内生的相关性。

5 时间序列库

时间序列分析已经成为一个重要的研究领域,引起了学术界和工业界的广泛关注。最近,基于深度学习的方法在时间序列分析中的广泛探索导致了显著的进展。然而,公平基准测试的问题在这个领域中造成了紧迫的挑战。缺乏公平、合理和全面的基准可能导致不同方法之间的比较偏差,从而妨碍对其有效性的准确评估,可能夸大领域进展或妨碍实际应用。这对理解进展和促进该领域的稳健发展构成了重大障碍。

在时间序列分析领域,已提出几项基准,例如 DGCRN [160]、LibCity [161]、DL-Traff [162]、TS-bench [163] 和 BasicTS [14]。具体而言,Autoformer [22] 提出了一个标准的长期预测基准,涵盖不同的实际应用。此外,为了验证不同时间序列分析模型的普遍性,TimesNet [3] 建立了一个更全面的模型概括基准,涵盖五个主流时间序列分析任务。然而,这些基准通常存在一些局限性。目前时间序列基准的一个问题是它们对时间序列分析任务和特定领域的覆盖有限,这限制了它们的实际应用。此外,这些基准通常未能提供任务类型、模型架构和特定基准方法的详细讨论和全面总结。因此,它们未能有效指导更高效的时间序列分析方法的设计或推动该领域的进一步发展。

为了有效解决这些问题,我们引入并实施了时间序列库(TSLib),这是一个公平和全面的基准,可以比较和评估不同深度时间序列模型在各种时间序列分析任务中的性能。如图 9 所示,TSLib 包含一个统一的模型实验管道、标准化的评估协议、广泛且多样的真实世界数据集、主流和先进的时间序列分析模型以及统一的实验验证和分析过程。

在我们的时间序列库中,我们仔细遵循官方代码,实施了 24 个广泛使用和先进的深度时间序列分析模型。这些模型来自四个经典深度学习架构。用户可以根据具体的实际使用场景从这些模型中进行选择。代码可在 https://github.com/thuml/Time-Series-Library 获取。

接下来,我们将详细描述我们的 TSLib,包括设计和实现原则(第 5.1 节)、评估协议和指标(第 5.2 节)、数据集描述(第 5.3 节)以及不同架构模型的主要结果(第 5.4 节)。

5.1 设计和实现原则

TSLib基于成熟的工厂模式设计,实现了数据与模型对象之间的统一接口,从而清晰地分离深度模型的创建与使用,促进了模块化和灵活性。通过在模型训练期间加载不同的数据和模型对象,并结合特定任务头,TSLib使不同的数据集和模型能够共享和扩展,从而方便在各种时间序列分析任务之间进行切换。这些设计和实现原则为我们的TSLib提供了增强的灵活性和可扩展性。此外,如图9所示,TSLib引入了一个统一的实验管道,覆盖模型训练和评估的整体过程,包括数据源、数据处理、模型训练与分析以及模型性能评估。

在这里插入图片描述

图9. 时间序列库的架构和实验管道。左:统一的训练和评估过程。右:整体架构。

数据源 我们的TSLib提供了广泛支持各种多类型数据集的功能,支持多种格式,包括“.csv”、“.npz”、“.txt”等。如图9和表3所示,TSLib目前支持30多种来自真实世界场景的不同抽样频率的数据集,这些场景包括能源、交通、经济、天气和医学等四个主流的时间序列分析任务。此外,TSLib在可扩展性方面表现出色,能够轻松集成不同数据类型的新数据源。

数据处理 数据处理在保证时间序列分析中的稳定训练方面发挥着关键作用。在时间序列库中,进行多种数据处理步骤,包括时间窗口拆分、数据批次生成等。随后,将原始数据划分为训练、验证和测试集,以实现流畅的模型训练和公平的比较。这些步骤是实现精确和可靠的结果在多种时间序列分析任务中不可或缺的先决条件。

此外,我们的TSLib还根据不同的模型设计原则提供对多种关键和有效的数据处理策略的额外支持,以提高模型性能和训练效率。我们将这些不同的设计策略封装在我们的基本数据处理层中,涵盖数据归一化、时频分解、傅里叶分析等技术。在使用TSLib时,用户可以根据自己的具体需求和目标选择这些策略来改善训练效果。

模型训练与分析 在数据处理阶段之后,原始时间序列数据被转换为适合模型训练的格式。模型训练是整个实验管道的核心,我们根据输入微调模型参数,以尽量降低输出的误差。我们在模型训练中的主要目标是获得最佳的可训练参数,从而显著提高模型性能。每个模型都有其独特的设计和训练目标。模型分析程序通过比较训练损失与验证损失之间的相关性来确定最佳模型参数。我们的TSLib包括完整的日志记录和结果存储功能,以记录和评估训练过程。通过采用合理的模型分析技术,我们能够高效地获得性能更优和泛化能力更强的模型。

性能评估 模型评估是验证训练好的时间序列模型有效性和泛化能力的关键步骤。它涉及模型预测和性能评估,为我们提供关于训练模型有效性的见解。在TSLib中,我们为四个主流时间序列分析任务提供评估支持:分类、插补、预测(长期或短期)和异常检测。每个任务都有其特定的评估指标,从而实现对模型性能的全面评估。这些指标在确定训练模型的有效性及其对特定任务的适用性方面发挥着至关重要的作用。

5.2 评估协议

为了进行公平和全面的模型性能验证,我们的时间序列库被设计为为四个主流时间序列分析任务提供标准化的评估协议,遵循[3]。这些标准化和统一评估协议的主要目标是量化不同时间序列分析方法的有效性,尤其是在不同架构之间的比较。此外,它们还提供了对不同方法在多样的时间序列分析任务中的优缺点的宝贵见解。通过建立这些标准化的评估协议,我们旨在促进不同方法之间的公平比较,并提高我们对它们在不同时间序列分析场景下表现的理解。

对于长期预测和插补,我们依赖均方误差(MSE)和平均绝对误差(MAE)作为主要评估指标。这些指标帮助我们准确评估我们预测和插补的准确性。对于短期预测,我们使用对称平均绝对百分比误差(SMAPE)和平均绝对缩放误差(MASE)作为指标,这些指标关注绝对误差并减少异常值的影响,在不同数据集和方法论中提供可靠的预测准确性评估。在时间序列分类任务中,我们利用准确率作为评估指标。准确率通过计算正确分类样本与总样本数量的比率来衡量总体预测性能。对于异常检测,我们采用F1分数来验证异常值的识别。F1分数代表精确率和召回率的平衡组合,为分类器在面对异常检测中不平衡类别时的表现提供全面的评估。

表3

在这里插入图片描述

5.3 数据集

TSLib 包含多种主流数据集,涵盖不同样本数量和类别,任务丰富,领域多样。在本节中,我们将重点介绍时间序列库中各种时间序列分析任务的代表性数据集。

分类时间序列分类旨在根据时间特征将标签或类别分配给时间序列。为了评估这一能力,我们从 UEA 时间序列分类档案中选择了十个多变量数据集,这些数据集在我们的 TSLib 中得到了支持。这些数据集涵盖了多种实际任务,包括手势、动作、音频识别和通过心跳监测进行的医疗诊断。我们根据文献中提供的描述对数据集进行了预处理。详细的数据集描述见表3。

填充由于故障,收集的时间序列数据可能包含部分缺失值,这给时间序列分析带来了挑战。因此,时间序列填充在实际应用中是一个关键任务,旨在根据数据的上下文观察填充时间序列中的缺失值。作为我们的基准,我们选择了电力变压器温度 (ETT)、电力和天气数据集,以评估在不同缺失比例下的时间序列填充任务的性能。

预测时间序列预测是时间序列分析中的一项重要任务,并且在学术和工业领域得到了广泛探索。通过利用历史模式和趋势,模型可以预测时间序列的未来值或趋势。时间序列预测大致分为两种类型:长期预测和短期预测。对于长期时间序列预测任务,我们的基准数据集包括电力变压器温度 (ETT)、电力、天气、交通、货币交换和疾病 (ILI)。对于短期预测任务,我们选择了 M4 数据集,该数据集包含六个具有不同采样频率和领域的子数据集。

在这里插入图片描述

图10. 时间序列库中模型性能的比较。完整结果是从 TSLib 支持的多种数据集中平均得出的,涵盖四个主流分析任务。在分类和异常检测任务中,更高的准确度或 F1 分数表明更好的预测性能。相反,更低的平均 MSE 或 MAE 表明其他任务更优异的模型有效性。每个时间分析任务的前三个模型在排行榜上突出显示,每个时间序列分析任务的最佳模型也被指明。

在这里插入图片描述

图11. 具有不同深度架构的模型的整体性能。异常检测
异常检测涉及识别时间序列中的不寻常或异常模式。这些异常可能表示需要关注或进一步调查的关键事件、故障或异常值。在TSLib中支持的一些主流异常检测数据集包括服务器机器数据集(SMD)[167]、火星科学实验室探测器(MSL)[168]、土壤湿度主动被动卫星(SMAP)[168]、安全水处理(SWaT)[169]和汇总服务器指标(PSM)[170],这些数据集来自各种工业场景。

5.4 主要结果

为了考察各种方法在主流时间序列分析任务中的优缺点,我们从TSLib中选择了十二种具有代表性的模型。这些模型涵盖了四种流行的深度模型架构,涉及长时间和短时间预测、分类、填充和异常检测等任务。

基准
为了进行公平的比较分析,彻底探讨不同模型架构在各种时间序列分析任务中的有效性,我们使用基于不同深度架构设计的最新模型进行比较实验。如图11所示,我们选择了几种先进且具有代表性的基于Transformer的模型:iTransformer [30]、PatchTST [23]、Autoformer [22]、非平稳Transformer(平稳)[41]和FEDformer [86]来验证性能。此外,我们考虑TimesNet [3]和SCINet [128]作为基于CNN的模型进行对比。对于基于RNN的模型,我们包含了新颖且有效的Mamba [120]。最后,我们将DLinear [52]、N-BEATS [24]和TiDE [97]作为代表性的基于MLP的模型纳入分析。值得一提的是,TiDE [97]旨在依赖特定时间戳,无法轻易适应不依赖时间戳的部分任务,例如短期预测、异常检测和分类。

统一实验设置
对于长期预测任务,我们进行了两种实验设置以确保公平和全面的比较:统一超参数和超参数搜索。对于统一超参数,我们使用一系列标准化的超参数在不同数据集上进行实验。这使我们能够在保持其他因素不变的情况下准确评估具有不同深度架构的时间序列模型的相对性能。至于“超参数搜索”场景,我们针对不同的模型架构和时间序列数据集进行了单独的超参数搜索。这种方法使我们能够识别不同时间序列分析模型的最佳性能。通过采用以上两种设置,我们获得了对不同时间序列模型预测性能的全面理解。对于其他剩余任务,我们遵循[3]中概述的标准实验设置,以验证不同时间序列模型的性能。

整体结果
基于图11中不同架构模型的整体结果,我们惊讶地发现,基于MLP的模型通常更简单且计算开销更低,在时间序列预测任务中表现良好。然而,这些模型在其他类型的任务中似乎效果较差,这要求模型学习更具信息性的表示。相反,基于CNN的模型展示了更全面的能力,在分类、填充和异常检测任务中表现出色。基于RNN的模型在异常检测任务中表现良好,但与其他模型架构相比,其效果有限。相比之下,基于Transformer的模型在各种时间序列分析任务中表现出高度竞争力。这可以归因于Transformer架构固有的强大数据建模能力,这为其在各种时间序列分析任务中提供了一贯的卓越性能。这进一步表明,基于Transformer的模型在时间序列分析领域具有重要的研究价值和应用潜力,并成为时间序列领域中特别有前景的选择。

如图10所示,我们还包括了四个代表性时间序列分析任务的更详细结果和前三名表现排行榜。这些结果清晰地表明,基于Transformer的模型,即iTransformer [30]和PatchTST [23],在长期和短期预测任务中展现了优越的预测能力。这进一步证明探索时间序列中时间代币的不同建模方法具有重要意义和价值。此外,TimesNet [3]在时间序列分类、填充和异常检测任务上表现出更全面且有效的性能,为通用时间序列分析模型开创了一项里程碑。

我们相信,TSLib可以为未来的研究和现实世界应用提供有用的启动代码、关于模型属性的宝贵见解和模型选择的指导。

6 未来方向

在本节中,我们对时间序列分析的有前景的方向进行讨论。

6.1 时间序列预训练

预训练-微调学习范式是一种通常在自然语言处理(NLP)[171]、[16]、[172]、[173]、[173]和计算机视觉(CV)[174]、[175]、[176]、[177]中使用的两阶段方法。预训练通过无监督学习[178]、[179]建立大型模型的能力基础。微调可以提高预训练模型在特定任务或领域的性能。

由于标记数据集的有限可用性,自监督预训练[175]引起了重大关注,并在自然语言建模和计算机视觉领域得到了广泛研究。自监督预训练范式显著降低了标记费用,并使得各种下游任务受益。值得注意的是,最近的研究努力引入了几种针对时间序列数据的自监督预训练方法,主要可分为对比学习[180]和掩码时间序列建模[16]、[181]。

对比学习是指通过对比相似和不相似对的样本来学习数据的表示,其中相似样本对被学习为彼此靠近,而不相似的样本对则远离[180]、[182]、[183]。尽管SimCLR [182]在计算机视觉领域取得了显著成功,但将SimCLR直接应用于时间序列数据领域的结果不尽如人意,因为不足以建模时间依赖关系。CPC [184]引入了对比预测编码,利用模型预测的特征作为正样本,随机采样的特征作为负样本,从而获得对下游任务有利的时间序列表示。TimeCLR [185]提出了一种DTW数据增强技术,以生成相位偏移和振幅变化现象,从而保持时间序列的结构和特征信息。TS-TCC [186]应用专为时间序列数据设计的高效数据增强,从提出的时间对比模块和上下文对比模块中学习可区分的表示。TS2Vec [187]采用分层对比学习方法,从不同增强上下文视角定义对比损失,获得每个时间戳的鲁棒上下文表示。此外,LaST [188]借鉴了变分推理理论[189],提出了季节-趋势表示学习与解缠机制。CoST [190]提出了一种对比学习框架,以学习长期序列时间序列数据的解缠季节-趋势表示。TF-C [191]开发了基于频率的对比增强,利用丰富的谱信息并探索时间-频率一致性。

掩码建模是一种基于重建的方法,可以根据上下文的未掩码部分来预测序列中的掩码代币[16]、[181]、[192]。TST [193]遵循BERT [16]中提出的预训练范式,并提出了一个多变量时间序列的预训练框架。此外,PatchTST [23]将时间序列数据分割为多个不重叠的块,并提出了一种块级的掩码建模方法。SimMTM [194]将掩码建模与流形学习相关联,提出了一种基于系列表示空间中学习的相似性进行重建的邻域聚合设计。HiMTM [195]提出了一种新颖的分层掩码时间序列预训练框架,以有效捕捉时间序列数据的多尺度特性。TimeSiam [196]构建了一项不对称掩码重建任务,以捕捉随机采样的过去和当前子序列之间的内在时间相关性,并基于Siamese网络学习内部时间依赖的表示。

6.2 大型时间序列模型

随着大型语言模型(LLMs)的出现,利用大规模模型解决时间序列下游任务得到了显著关注,成为未来研究的方向。目前的研究为大型时间序列模型提供了以下两条可能的发展路线。

6.2.1 时间序列基础模型

最近在深度学习方面的进展,尤其是基础模型(FMs)的出现,证明了自然语言处理(NLP)和计算机视觉(CV)领域的重大进展[179]、[197]、[198]。与之前的深度模型不同,基础模型是在大量数据上进行预训练的,使它们能够学习来自不同领域的广泛通用知识。鉴于它们在捕捉上下文信息和语义理解方面的成功,探索一种广义时间序列基础模型,能够有效学习复杂的时间依赖关系并捕捉时间序列数据中固有的动态特性是有前景的。早期的尝试如TimeGPT [199]、Lag-LlaMa [200]和Timer [155]仅专注于单变量时间序列数据。然而,在现实世界的预测场景中,涉及与目标时间序列的时间变化相关的其他信息至关重要,这些信息必须被考虑,例如天气条件或假期。MOIRAI [201]试图将多变量时间序列扁平化为包含所有变元的单一序列,但其对其他下游分析任务的推广能力尚待探索。除了建模序列间依赖关系外,建模时间序列与外部因素之间的关系也可以更好地理解时间序列数据。这些外部因素可能以其他模态的形式存在,例如文本数据或日历数据,因此多模态学习是多模态时间序列基础模型发展的未来趋势。## 6.2.2 大型语言模型的适应性

大型语言模型(LLMs)在解决各种自然语言处理任务方面取得了显著进展。以 GPTs [17]、[146] 和 LLaMA [202]、[203] 等模型的成功为例,LLMs 已被证明能够通过简单遵循提供的提示来推广到未见过的任务。因此,释放 LLMs 在时间序列领域的能力已成为一个有前景的未来研究方向。以下是适应 LLMs 的两种范式。

微调预训练语言模型 基于类似的顺序特性,对预训练语言模型进行微调以赋予其时间序列分析能力已成为一个有前景的研究主题。在将 LLMs 应用于时间序列时,必须在将时间序列输入预训练模型之前对其进行标记。因此,适应 LLMs 以处理时间序列包括两个关键组成部分:时间序列标记和适用于时间序列分析任务的高效微调方法。LLM4TS [204] 提出了一个两阶段的微调策略,包括时间序列对齐阶段,以对齐 LLMs 与时间序列数据的细微差别,以及下游任务的微调阶段。LLMTime [205] 将时间序列预测视为文本中的下一个标记预测,并尝试将时间序列数据编码为数字字符串。最近的 Chronos [206] 引入了一种基于现有 Transformer 语言模型架构的预训练概率时间序列模型。在技术上,Chronos 使用缩放和量化将时间序列值标记为固定词汇,并通过交叉熵损失在这些标记时间序列上训练模型。得益于 LLMs 的生成能力,现有的大多数研究集中在时间序列预测任务上。GPT4TS [207] 通过使用预训练的 GPT-2 模型,微调每个分析任务的位置信息嵌入和层归一化参数,提出了一个统一的多样时间序列分析任务框架。

提示大型语言模型 最近的大型语言模型表现出了强大的上下文学习 [146] 和指令遵循 [208] 能力。因此,利用自然语言指令或任务示例来指导模型解决新任务的范式已经成为一种突破性方法 [209]、[210]、[211],这在时间序列分析任务中成为了一种潜在解决方案 [212]。最近的文献,如 PromptCast [212]、UniTime [213] 和 TimeLLM [214],专注于研究提示模板,使 LLMs 能够执行预测任务。还有其他一些工作,如 Autotimes [55]、[215],尝试为时间序列数据设计软提示。然而,现有的提示方法主要针对预测,如何赋能 LLMs 以处理预测以外的其他时间序列任务尚未被广泛探索。

6.3 实际应用

6.3.1 处理极长序列

深度时间序列模型在广泛的下游任务中表现出了显著的性能,它们在处理较长时间序列数据的适用性往往受到可扩展性和高计算复杂性的限制。在工业时间序列分析中,高频采样导致历史数据较长,从而妨碍了先进深度模型的实际实施。现有方法通常包括补丁技术,使其能够处理长序列,当输入长度变得更长时,补丁长度可以相应增加,以减少计算复杂性。然而,模型性能与补丁长度密切相关;因此,单纯增加补丁大小以减少复杂性可能会妥协其能力。因此,解决深度模型在处理较长时间序列时的局限性可能是一个有前景的主题。

6.3.2 利用外生变量

由于时间序列内部的变动往往受外部因素的影响,因此在分析中纳入外生变量至关重要,以全面理解这些因素。外生变量在时间序列预测任务中被广泛讨论,它们被纳入模型中以便为建模时间序列数据进行统一训练,而不需要单独分析。然而,在实际应用中,与多变量时间序列分析不同,主要变量和协变量通常占据不同的位置。鉴于外生变量在现实应用中所扮演的重要角色,探索一个统一框架以建模内生与外生变量之间的关系至关重要,这将有助于更全面地理解不同变量之间的相互关系和因果关系,从而实现更好、更可靠的模型性能以及可解释性。

6.3.3 处理异构数据

在时间序列分析领域,关于异构时间序列数据建模的领域仍然是一个未被探索的领域。异构时间序列数据包含多种多样的特征,例如不同的采样频率、不规则性和不同的长度尺度。这些多样特征使得开发能够有效捕捉数据中潜在模式和关系的模型变得富有挑战性。此外,当前深度学习模型对固定大小输入的需求限制了它们处理异构时间序列数据动态特性的能力。解决这些挑战需要创新的方法,以适应每个个体时间序列的独特特性,同时仍能捕捉多个序列之间的总体模式。这可能涉及开发新的特征提取技术,将领域知识纳入模型设计,或探索更适合处理可变长度输入的替代架构。

随着研究人员继续探索这一时间序列分析中的未被探索领域,在金融、医疗和环境监测等领域有可能取得显著进展。通过提高我们对异构时间序列数据的建模和分析能力,我们可以更深入地洞察复杂系统,并基于预测分析做出更明智的决策。总的来说,该领域的进一步研究对于提高我们对时间数据动态的理解和增强时间序列建模在实际应用中的能力充满希望。

7 结论

在本次调查中,我们提供了一份关于深度模型在时间序列分析中的系统综述,并引入了时间序列库(TSLib)作为一个跨各种分析任务的深度时间序列模型的公平基准。与以前专注于特定分析任务或模型架构的综述相比,本文提供了对现有深度时间序列分析模型的全面调查和概述,涉及预测、分类、填充和异常检测等。我们首先详细回顾了时间序列模型中广泛使用的通用模块,包括归一化、分解和傅里叶分析。接下来,我们从骨干架构的角度总结了现有的深度时间序列模型。基于对现有文献的回顾,我们引入了一个实用的开源库,时间序列库(TSLib),其中包括了代表性的深度时间序列模型,可以作为时间序列分析领域的公平评估基准。最后,我们讨论了基于 AI 社区的近期发展和现实世界场景中时间序列分析的实际应用需求,对深度时间序列模型的未来研究方向。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值