TimeXer: 赋能Transformer进行包含外部变量的时间序列预测

TimeXer模型是一种面向时间序列预测的新型Transformer模型,旨在结合外生变量(exogenous variables)信息,以提高对内生变量(endogenous variables)的预测精度。TimeXer模型的提出背景在于,实际应用中的时间序列往往受到各种外部因素的影响,单独依赖内生变量的历史数据无法有效反映这些复杂关系。因此,TimeXer通过引入外生变量来丰富预测的信息源,尤其在电力、气象等领域,外部条件对于目标序列的影响显著。这里主要是记录自己对TimeXer论文的阅读记录,感兴趣的话可以参考一下。

摘要

深度模型在时间序列预测中展现了显著的性能。然而,由于现实应用中部分观测的特性,仅关注目标变量(即内生变量)通常不足以保证准确的预测。值得注意的是,一个系统通常会记录多个变量,其中外生变量可以为内生变量提供有价值的外部信息。因此,与现有的将所有变量等同对待或忽略外生信息的多变量或单变量预测范式不同,本文关注一个更实际的设置:包含外生变量的时间序列预测。我们提出了一种新颖的方法,TimeXer,通过巧妙设计的嵌入层,TimeXer赋予了经典的Transformer协调内生和外生信息的能力,同时使用分块自注意力和变量交叉注意力。此外,全局内生标记被学习以有效地将外生序列中的因果信息桥接到内生时间分块中。实验上,TimeXer在十二个真实世界预测基准上实现了持续的最新性能,并展示了显著的通用性和可扩展性。代码可在以下仓库获取:https://github.com/thuml/TimeXer。

1 引言

时间序列预测在现实场景中具有迫切需求,并已广泛应用于气象学[38, 42]、电力[34]和交通[27]等多个领域。其中,包含外生变量的预测是一种普遍且不可或缺的预测范式,因为时间序列数据中的变化往往受到外部因素的影响,如经济指标、人口变化和社会事件。例如,电力价格高度依赖于市场的供需情况,仅基于历史数据预测未来价格本质上是不可能的。通过引入外生变量,如图1(左)所示,可以更全面地理解各变量之间的相关性和因果关系,从而提高性能和可解释性。

图1:左:包含外生变量的预测范式包括来自多个外部变量的输入作为辅助信息,无需进行预测。右:在现有电力价格预测与外生变量基准上的模型性能比较。

从时间序列建模的角度来看,外生变量被引入预测器以提供信息,而不需要进行预测。内生变量和外生变量之间的区别给现有的多变量预测方法带来了独特的挑战。首先,总是有多个外部因素对目标序列的预测具有启发性,这要求模型协调内生和外生变量之间的差异和依赖关系。将外生变量与内生变量同等对待不仅会导致显著的时间和内存复杂性,还会引入不必要的从内生序列到外部信息的交互。其次,外部因素可能对内生序列有因果效应,因此模型需要推理不同变量之间的时间滞后。此外,作为一种广泛应用于实际场景的实用预测范式,模型需要处理不规则和异质的外生序列,包括值缺失、时间错位、频率不匹配和长度差异,如图1(左)所示。

尽管深度学习模型在捕捉时间序列数据中的复杂时间依赖性方面取得了成功,但外生变量的引入仍未得到充分探索。常见的做法是将外生特征添加或连接到内生特征中。然而,鉴于外生变量在预测中的关键作用,精确和适当地引入它们是至关重要的。最近的Transformer[32]在时间序列预测中表现出色,因其能够捕捉时间依赖性和多变量相关性。基于注意力机制的工作维度,现有的基于Transformer的方法可以大致分为点对点、分块和变量导向模型。由于时间序列的序列性质,大多数先前的工作使用时间序列数据的点对点表示,并应用注意力机制来捕捉不同时间点之间的相关性。因此,许多高效的Transformer[22, 37, 44, 45, 9]被提出以减少点对点建模引起的复杂性。Informer[44]设计了一种ProbSparse自注意力来减少时间和内存中的二次复杂性。Autoformer[37]用Auto-correlation替换了经典的自注意力,以发现时间序列数据中的子序列相似性。Pyraformer[22]开发了一个金字塔注意力模块,以线性时间和空间复杂性捕捉短期和长期时间依赖性。

考虑到点对点表示在揭示时间变化中的局部语义信息方面的不足,PatchTST[28]将时间序列数据分割成子序列级别的分块,然后捕捉分块之间的依赖性。Pathformer[4]利用多尺度分块表示,并在这些分块上执行双重注意力,以捕捉全局相关性和局部细节作为时间依赖性。最近的大规模时间序列模型[2, 6, 25, 46, 8]广泛包含了分块级别的表示,以学习复杂的时间模式。除了捕捉单个序列中的分块级别时间依赖性外,最近的方法还致力于捕捉不同变量之间的时间分块的相互依赖性。Crossformer[43]引入了一个两阶段注意力层,以高效捕捉每个分块的跨时间和跨变量依赖性。进一步扩展感受野,iTransformer[23]利用整个序列的全局表示,并对这些序列级别的表示应用注意力,以捕捉多变量相关性。然而,如表1所示,大多数现有的基于Transformer的方法仅关注多变量或单变量时间序列预测范式,并未对外生变量进行特殊设计,这与本文研究的场景不同。

包含外生变量的预测

包含外生变量的时间序列预测在经典统计方法中得到了广泛讨论。大多数统计方法已扩展为包含外生变量作为输入的一部分。扩展公认的ARIMA模型,ARIMAX[35]和SARIMAX[31]结合了外生和内生变量之间的相关性以及内生变量的自回归。尽管时间序列建模方法已从统计模型演变为深度模型,但大多数现有的包含协变量的深度模型,如Temporal Fusion Transformer (TFT)[20],主要关注变量选择。一些方法,包括NBEAT5x[29]和TiDE[5]认为,在预测内生变量时,预测模型能够访问外生变量的未来值。值得注意的是,先前的模型在每个时间点将外生特征与内生特征连接,然后将它们映射到潜在空间,这需要内生和外生变量的对齐。然而,现实世界中的时间序列数据常常面临问题,如缺失值和不均匀采样,这给建模外生变量对内生变量的影响带来了重大挑战。相比之下,TimeXer通过巧妙设计的嵌入策略将外部信息引入Transformer架构,可以有效地将外部信息引入内生变量的分块表示中,从而能够适应时间滞后或数据缺失的记录。

表1:相关方法与其预测能力的比较。Transformer中的字符“.”表示*former的名称。字符✧表示该模型可以应用于多变量预测场景,但未明确建模跨变量依赖性。

3 TimeXer

在包含外生变量的预测中,内生序列是目标预测对象,而外生序列是提供有价值信息以提升内生预测能力的协变量。

问题设置

结构概述

如图2所示,提出的TimeXer模型在不修改任何组件的情况下重新利用了经典的Transformer,而内生和外生变量通过不同的嵌入策略进行处理。TimeXer采用自注意力和交叉注意力分别捕捉时间维度和变量维度的依赖关系。

图2:TimeXer的示意图,赋能包含外生变量的时间序列预测。(a) 内生嵌入模块生成多个时间标记嵌入和一个全局标记嵌入用于内生变量。(b) 外生嵌入模块为每个外生变量生成一个变量标记嵌入。(c) 自注意力同时应用于内生时间标记和全局标记,以捕捉分块级别的依赖关系。(d) 交叉注意力应用于内生和外生变量,以整合外部信息。

内生嵌入

大多数现有的基于Transformer的预测模型将每个时间点或时间序列的一段嵌入为时间标记,并应用自注意力来学习时间依赖性。为了精细捕捉内生变量中的时间变化,TimeXer采用分块级别的表示。具体来说,内生序列被分割成不重叠的分块,每个分块被投影到一个时间标记。鉴于内生和外生变量在预测中的不同角色,TimeXer以不同的粒度嵌入它们。因此,直接将不同粒度的内生标记和外生标记结合会导致信息错位。为了解决这个问题,我们为每个内生变量引入了一个可学习的全局标记,作为宏观表示与外生变量交互。这种设计有助于将外生序列中的因果信息桥接到内生时间分块中。总体内生嵌入正式表述为:

外生嵌入

外生变量的主要用途是促进内生变量的准确预测。我们将在附录B.3中展示,不同变量之间的交互可以通过变量级别的表示更自然地捕捉,这些表示适应任意的不规则性,如缺失值、时间错位、不同频率或回溯长度的差异。相比之下,分块级别的表示对于外生变量过于细粒度,不仅引入了显著的计算复杂性,还引入了不必要的噪声信息。这些见解导致了一种设计,即每个外生序列被嵌入为一个序列级别的变量标记,正式表述为:

内生自注意力

为了准确的时间序列预测,发现内生变量中的内在时间依赖性以及与外生变量级别的表示的交互至关重要。除了内生时间标记上的自注意力(分块到分块),可学习的全局标记在内生和外生变量之间建立了一个“桥梁”。具体来说,全局标记在交叉注意力中扮演不对称角色:(1)分块到全局:全局标记关注时间标记以聚合整个序列的分块级别信息;(2)全局到分块:每个时间标记关注全局标记以接收变量级别的相关性。这提供了内生变量中时间依赖性的全面视图,以及与任意不规则外生变量的更好交互。注意力机制可以正式表述如下:

总体过程可以简化为内生自注意力计算:

外生到内生的交叉注意力

交叉注意力在多模态学习[17]中被广泛用于捕捉不同模态之间的自适应标记级别依赖性。在TimeXer中,交叉注意力层以内生变量为查询,外生变量为键和值,以建立两种变量之间的连接。由于外生变量被嵌入为变量级别的标记,我们使用内生变量的学习全局标记来聚合外生变量的信息。上述过程可以正式表述为:

预测损失

并行多变量预测

多变量预测可以看作是预测多变量数据中的每个变量,将其他变量视为外生变量。因此,对于每个变量,其他变量通过TimeXer来促进更准确和因果的预测。我们的关键发现是,包含外生变量的预测可以是一个统一的预测范式,直接推广到多变量预测。通过采用通道独立机制,对于多变量中的每个变量,它被视为内生变量。然后,TimeXer以并行方式应用于所有变量,共享自注意力和交叉注意力层。

4 实验

为了验证TimeXer的有效性和通用性,我们在两种不同的时间序列范式下进行了广泛的实验,包括包含外生变量的短期预测和长期多变量预测,涵盖了来自不同领域的多种真实世界时间序列数据集。我们还在多变量基准上进行了包含外生变量的长期预测实验,详细结果见附录I.3。

表2:EPF数据集上的短期预测任务的完整结果。我们遵循短期电力价格预测的标准协议,其中输入长度和预测长度分别设置为168和24,适用于所有基线模型。Avg表示所有五个数据集的平均结果。

表3:多变量预测结果。我们按照iTransformer [23]的设置,在不同预测长度下比较了广泛竞争模型。回溯长度L设置为96,适用于所有基线模型。结果是所有预测长度S = {96, 192, 336, 720}的平均值。

表4:消融研究结果。Ex.和En.分别是外生变量和内生变量的缩写。P、G和V分别表示分块标记、可学习全局标记和变量标记。

 图3:随着回溯长度从{96, 192, 336, 512, 720}变化的表现。不同样式的线条代表不同的预测长度。在大多数情况下,内生和外生序列的回溯长度的增加都有利于预测性能。

表5:在缺失值情况下的模型性能。Zeros和Random分别表示相应序列被设置为零或随机值的情况。

数据集

对于短期预测任务,我们包括了短期电力价格预测数据集(EPF)[15],这是一个来自五个主要电力市场数据的真实世界包含外生变量的预测基准,每个数据集包含六年的数据。每个数据集包含电力价格作为内生变量和两个实际中有影响力的外生变量。同时,我们采用了七个公认的公共长期多变量预测基准[33]来评估TimeXer在多变量预测中的性能。

基线模型

我们包含了九个最新的深度预测模型,包括基于Transformer的模型:iTransformer[23]、PatchTST[28]、Crossformer[43]、Autoformer[37],基于CNN的模型:TimesNet[36]、SCINet[21],以及基于线性的模型:RLinear[19]、DLinear[41]、TiDE[5]。值得注意的是,TiDE是一种最近开发的专门设计用于外生变量的先进预测器。

图4:大规模时间序列数据集上的预测性能。左:预测场景的说明。内生变量是气象站收集的温度,外生变量是包括气象站在内的周围3x3网格的气象指标。每个区域包含四种信息,即温度、压力、u和v风分量。右:TimeXer优于其他先进预测器。

实现细节

对于短期电力价格预测,我们遵循NBEATSx[29]的标准协议,其中输入序列长度和预测长度分别设置为168和24。此外,我们将分块长度设置为24且不重叠。对于长期预测数据集,我们统一使用分块长度16,并将回溯序列的长度固定为96,而预测长度在四个长度{96, 192, 336, 720}之间变化。

主要结果

短期和长期预测的综合预测结果分别列于表2和表3。较低的MSE或MAE表示更好的预测性能。

短期电力价格预测任务源自现实场景,为预测模型带来了独特的挑战,因为内生变量与数据集中的两个外生变量高度相关。由于不同变量之间的交互对这一任务至关重要,线性预测器,包括RLinear[19]和DLinear[41],未能超越基于Transformer的预测器。与TimeXer类似,Crossformer将所有输入序列分割成不同的分块,并捕捉所有分块的多变量相关性;然而,它未能超越其他基线,这表明在粒度级别建模所有变量会引入不必要的噪声到预测中。同样设计用于捕捉跨变量依赖性的iTransformer忽略了时间维度的注意力模块,表明仅通过线性投影捕捉时间依赖性仍有限制。相比之下,我们提出的TimeXer有效地整合了外生变量的信息,同时捕捉了内生序列的时间依赖性。如表2所示,TimeXer在所有五个数据集上实现了持续的最新性能,优于各种基线模型。

我们还评估了TimeXer在公认的公共基准上的传统多变量长期预测性能。如上所述,TimeXer通过采用通道独立机制进行多变量预测。我们将所有四个预测长度的结果平均列于表3。可以观察到,TimeXer在大多数数据集上实现了持续的最新性能,突显了其有效性和通用性。此外,由于TimeXer最初设计用于外生变量,我们还通过将多变量数据的最后一个维度作为内生序列,其他维度作为外生变量,在这些数据集上进行了包含外生变量的预测。详细结果列于附录I.3。

图5:TimeXer的模型分析。左:学习到的注意力图的可视化以及具有最高和最低注意力得分的内生时间序列和外生时间序列。右:在ECL数据集上包含外生变量的预测范式下的模型效率比较。

消融研究

在TimeXer中,使用了三种类型的标记来捕捉时间维度和变量维度的依赖性,包括多个分块级别的时间标记、内生变量的可学习全局标记和多个变量级别的外生标记。此外,为了引入外生变量的信息,TimeXer采用了一个交叉注意力层来建模不同变量之间的相互关系。为了详细阐述TimeXer的有效性,我们进行了涵盖嵌入模块和外生因素包含的详细消融研究。具体来说,对于嵌入设计,我们分别替换或移除外生和内生变量的现有嵌入向量的组件。此外,我们保持现有的嵌入设计,并通过将外生变量的变量标记添加到内生变量的变量标记或连接所有变量标记和时间标记来替换交叉注意力。如表4所示,TimeXer在所有数据集上展示了优于各种架构设计的性能。

TimeXer的通用性

4.3.1 实际情况

增加回溯长度理论上,模型的预测性能可能会受益于增加时间序列的回溯长度,因为更长的历史上下文包含更全面的信息。然而,当回溯长度变得过长时,注意力会分散。在TimeXer中,我们使用外生变量的变量级别表示,这允许内生和外生变量之间的错位。这在现实场景中特别有价值,其中时间序列数据可能来自新引入的传感器,其历史数据有限。因此,我们通过增加内生或外生序列的长度进行了三种不同的实验设置,包括“固定内生并增加外生”、“增加内生并固定外生”和“增加内生和外生”。图3所示的结果表明,TimeXer可以适应内生和外生回溯不匹配的情况。此外,扩展回溯长度确实提高了预测性能。与扩大历史外生序列相比,增加内生序列的回溯长度对模型的益处更大,并且在两者都增加时性能进一步提高。

缺失值为了进一步验证TimeXer在复杂现实场景中的通用性,我们在时间序列历史信息缺失的情况下进行了实验。具体来说,对于外生和内生序列,我们采用两种策略来评估TimeXer对缺失历史信息的适应性:(1)零填充:将整个序列填充为标量值0。(2)随机填充:将整个序列替换为区间 [0,1) 上的均匀分布的随机值。如表5所示,当外生变量被替换为无意义的噪声时,预测结果恶化,表明模型的性能受益于包含信息丰富的外生变量。有趣的是,无论是使用零填充的外生序列还是使用随机数的外生序列,模型性能都没有显著下降。这种鲁棒性可以归因于TimeXer的设计,它使用两个注意力层分别建模内生时间依赖性和内生与外生变量之间的多变量相关性。这种架构允许内生时间表示主导预测,即使在存在无信息的外生数据时也能确保一致的性能。因此,可以观察到,当内生序列被替换为无意义的零或随机值,使时间序列不可预测时,模型性能显著下降。这表明TimeXer的性能与内生序列的质量密切相关,当历史信息严重受限时,性能显著恶化。

4.3.2 可扩展性

由于最近的基于Transformer的预测器展示了有前景的可扩展性,导致了大规模时间序列模型的成功,我们探索了TimeXer在大规模时间序列数据上的可扩展性。具体来说,我们构建了一个大规模天气数据集,用于包含外生变量的预测。内生序列是全球3,850个气象站的每小时温度数据,时间跨度从2019年1月1日到2020年12月31日,可从国家环境信息中心(NCEI)[1]下载,并已由[38]进行了良好的处理。进一步,我们利用ERAS[11]中相应邻近区域的气象指标作为外生变量,采样间隔为3小时。邻近区域定义为以内生气象站为中心的3x3网格,每个网格单元包含四种气象变量,总计36个外生变量。我们将内生和外生的历史视野设置为7天,以预测未来3天的内生变量。值得注意的是,这是一个复杂的预测场景,如前所述,内生和外生的频率不同。我们选择现有的最新多变量预测器作为基线,并使用相同的隐藏维度和批量大小进行公平比较。由于基线预测器无法处理不匹配的序列,我们使用最近值对内生序列进行插值。图4显示,TimeXer超越了其他基线,验证了其处理大规模预测任务的能力。

模型分析

变量维度的相关性TimeXer采用全局内生标记和变量级别外生标记之间的交叉注意力来捕捉多变量相关性,增强了学习到的注意力图的可解释性。为了验证变量标记上注意力的合理性,我们可视化了学习到的注意力图,并展示了最高和最低注意力得分的时间序列。如图5(左)所示,Weather数据集上的案例研究表明,具有不同外生变量的内生变量的注意力图有显著差异。这表明TimeXer有能力区分外生变量,将更多注意力分配给对预测最有信息的变量,从而导致更集中和可解释的注意力图。此外,观察到形状与内生序列相似的外生序列往往获得更多注意力。这种现象可能是因为形状相似的时间序列通常共享时间特征,导致更高的相似性得分。因此,注意力机制最显著突出的外生序列可能直观上与内生变量相似。此外,物理解释为可视化的提供了支持。对于内生变量CO2浓度,它与空气密度确实有很强的相关性,而最大风速的影响相对较小,这验证了TimeXer的有效性。

模型效率为了评估TimeXer的效率,我们评估了TimeXer在包含外生变量的预测中与六个基线模型在训练时间和内存占用方面的比较,使用相同的隐藏维度和批量大小进行公平比较。我们在包含320个外生变量的ECL数据集上展示了结果,如图5(右)所示。值得注意的是,当面对众多变量时,TimeXer在内存占用方面展示了其优势,优于iTransformer。值得注意的是,iTransformer将每个变量序列嵌入为一个标记,并在所有变量标记(无论是内生还是外生)之间应用自注意力机制。尽管这种设计可以在多层中不断优化学习到的变量标记,但它确实增加了更多的复杂性。至于TimeXer,外生变量将在开始时嵌入为变量标记,这些标记将在所有层中共享,并通过交叉注意力与内生全局标记交互。因此,TimeXer省略了学习到的外生变量标记之间的交互,从而提高了效率。我们在附录E中提供了模型效率的综合理论分析。

5 结论

考虑到外生变量在现实预测场景中的普遍性,我们赋予了经典的Transformer架构在不进行架构修改的情况下整合外生信息的能力。技术上,TimeXer以分块到变量的方式重新审视了注意力机制,以同时捕捉内生时间依赖性和内生与外生变量之间的多变量相关性。通过巧妙设计的全局标记,我们提出的TimeXer能够协调不同目的的变量。实验结果表明,我们提出的TimeXer有效地引入了外生信息,以促进内生序列的预测,在单变量和多变量设置中均表现出色。此外,TimeXer展示了潜在的可扩展性和解决复杂现实预测场景的能力,包括值缺失、时间错位或序列异质性等挑战。

03-08
### TimeXer简介 TimeXer是一种基于Transformer架构设计的时间序列预测工具,特别适用于包含外部变量时间序列预测任务。该模型在保持经典Transformer结构不变的基础上,引入了特定于时间序列的改进措施[^1]。 #### 特征概述 - **双路径嵌入机制**:为了有效区分并处理内部(内生)和外部(外生)因素的影响,TimeXer实现了两种不同类型的嵌入——即`Endogenous Embedding`用于表示内在特征;`Exogenous Embedding`则负责编码外界条件的变化情况。 - **多级注意力网络**:通过集成自注意力层(`Self-Attention`)以及跨模态交互层(`Cross-Attention`),能够同时捕捉到沿时间轴发展的模式关联性及时变要素间的相互作用规律。 ```python import timexer as txr # 初始化配置参数字典 config = { 'input_size': 784, # 输入向量长度 'output_size': 10, # 输出类别数 'hidden_dim': 512, # 隐藏单元数量 } model = txr.TimeXerModel(config) # 加载预训练权重 (如果有的话) if pretrained_weights_path is not None: model.load_state_dict(torch.load(pretrained_weights_path)) ``` 此段代码展示了如何创建一个简单的TimeXer实例,并加载可能存在的预训练权重文件。需要注意的是,在实际应用中还需要根据具体场景调整输入尺寸和其他超参设置。 ### 使用指南 对于想要利用TimeXer来进行更深入研究或者项目开发的研究人员来说: - 应当熟悉Python编程环境及其常用的数据科学库; - 掌握基本的时间序列理论基础,了解ARIMA等传统方法的工作原理有助于更好地理解新旧技术之间的联系与区别; - 学习掌握PyTorch或其他支持动态计算图构建的深度学习框架将是必不可少的前提之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Together_CZ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值