【时序】TFT:具有可解释性的时间序列多步直接预测 Transformers
时间:2023-10-26 14:07:02
论文名称:Temporal Fusion Transformers for interpretable multi-horizon time series forecasting
论文下载:https://www.sciencedirect.com/science/article/pii/S0169207021000637
论文年份:2021
93(2022/05/01)
论文代码:https://github.com/greatwhiz/tft_tf2
Abstract
Multi-horizon forecasting often contains a complex mix of inputs – including static (i.e. time-invariant) covariates, known future inputs, and other exogenous time series that are only observed in the past – without any prior information on how they interact with the target. Several deep learning methods have been proposed, but they are typically ‘black-box’ models that do not shed light on how they use the full range of inputs present in practical scenarios. In this paper, we introduce the Temporal Fusion Transformer (TFT) – a novel attention-based architecture that combines high-performance multi-horizon forecasting with interpretable insights into temporal dynamics. To learn temporal relationships at different scales, TFT uses recurrent layers for local processing and interpretable self-attention layers for long-term dependencies. TFT utilizes specialized components to select relevant features and a series of gating layers to suppress unnecessary components, enabling high performance in a wide range of scenarios. On a variety of real-world datasets, we demonstrate significant performance improvements over existing benchmarks, and highlight three practical interpretability use cases of TFT.
多范围预测(Multi-horizon forecasting)通常包括复杂的输入组合-包括协变量静态(即时间不变)、未来已知输入以及其他过去观察到的外生时间序列——没有关于他们如何与目标互动的先验信息。已经提出了几种深度学习方法,但它们通常是黑盒子模型,没有澄清它们如何使用实际场景中的所有输入。在本文中,我们介绍了它时间融合 Transformer(Temporal Fusion Transformer,TFT)——基于注意力的新颖结构结合高性能、多范围预测和对时间动态的可解释性洞察力。学习不同尺度的时间关系,TFT 局部处理采用循环层,长期依赖可解释的自注意层。 TFT使用特殊的组件来选择相关的特性,并使用一系列的门控制层来抑制不必要的组件,从而在广泛的场景中实现高性能。在各种现实世界的数据集上,我们展示了比现有基准测试显着的性能改进,并强调了 TFT 三个实际可解释用例。
1. Introduction
多范围预测,即感兴趣变量的预测在多个未来持续了很长时间,它是时间序列机器学习中的一个关键问题。与一步一步的预测相比,多范围预测为用户提供了估计整个路径的访问权限,使他们能够在未来的多个步骤中优化行动(比如零售商在即将到来的季节优化库存,或者临床医生优化病人的治疗计划)。零售预测范围广(B?se et al., 2017; Courty & Li, 1999),医疗保健(Lim, Alaa, & van der Schaar, 2018; Zhang & Nawata, 2018)和经济学(Capistran, Constandse, & RamosFrancia, 2010)-对现有方法的性能改进具有重要价值。
实际的多范围预测应用程序通常是可访问各种数据源,如图 1 所示,包括
- 关于未来的已知信息(比如即将到来的假期日)
- 其他外生时间序列(exogenous time series,例如,历史客户流量)
- 静态元数据(static metadata,例如,商店的位置)
没有关于他们如何互动的先验知识。数据源的异质性和关于它们交互的信息很少,这使得多范围的时间序列预测特别具有挑战性。
研究中存在的问题
深度神经网络 (DNN) 与传统时间序列模型相比,越来越多地用于多范围预测,表现出强大的性能改进(Alaa & van der Schaar, 2019; Makridakis, Spiliotis, & Assimakopoulos, 2020; Rangapuram et al., 2018)。尽管许多架构都专注于循环神经网络 (RNN) 架构的变体(Rangapuram et al., 2018; Salinas, Flunkert, Gasthaus, & Januschowski, 2019; Wen et al., 2017),但最近的改进也被使用了过去基于注意力增强相关时间步长的选择方法(Fan et al., 2019年-基于Transformer的模型(Li et al., 2019年)。然而,这些通常是在多范围预测中测中常见的不同类型的输入,或者假设所有的外生输入都是未来已知的(Li et al., 2019; Rangapuram et al., 2018; Salinas et al., 2018年)-自回归模型的常见问题-或忽略重要的静态协变量 (Wen et al., 2017)——它们每一步都与其他时间相关的特征简单连接。最近时间序列模型的许多改进来自于架构与独特数据特征的一致性(Koutník, Greff, Gomez, & Schmidhuber, 2014; Neil et al., 2016)。我们论证和证明,通过设计一个适合多范围预测的归纳偏差网络,也可以获得类似的性能改进。
除了不考虑常见的多范围预测异质输入(heterogeneity)此外,目前大多数架构都是黑盒模型,预测由许多参数之间复杂的非线性相互控制。这使得很难解释模型是如何得出预测结果的,反过来又使用户难以信任模型的输出和模型构建者对其进行调试。不幸的是,DNN 常用的可解释性方法不适用于时间序列。事后方法(例如 LIME (Ribeiro et al., 2016) 和 SHAP (Lundberg & Lee, 2017)不考虑输入特征的时间顺序。例如,对于 LIME,代理模型是为每个数据点独立独立构建的 SHAP,特征是独立考虑相邻时间步。这种方法会导致解释质量差,因为时间步长之间的依赖关系在时间序列中通常非常重要。另一方面,提出了一些建议基于注意力的结构,它们对顺序数据(主要是语言或语音)具有固有的可解释性,例如 Transformer 结构。应用它们的基本警告是,多范围预测包括许多不同类型的输入特征,而不是语言或语音。这些们的传统形式中,这些架构可以提供对多范围预测相关时间步长的洞察,但它们无法区分给定时间步长不同特征的重要性。总体而言,除了需要新的方法来解决多维度预测中数据的异质性以实现高性能之外,还需要新的方法来使这些预测具有可解释性,考虑到用例的需要。
【本文的解决方案】
在本文中,我们提出了时间融合Transformer(Temporal Fusion Transformer,TFT)——一种基于注意力的 DNN 架构,用于多范围预测,在实现高性能的同时实现新的可解释性形式。为了在状态基准测试上获得显着的性能改进,我们引入了多种新颖的想法,以使架构与多范围预测常见的全部潜在输入和时间关系保持一致——特别是结合
- 1)编码上下文的静态协变量编码器用于网络其他部分的向量
- 2)贯穿始终的门控机制和样本相关变量选择,以最小化不相关输入的贡献
- 3)用于局部处理已知和观察到的输入的序列到序列层
- 4)一个时间自注意力解码器,用于学习数据集中存在的任何长期依赖关系
使用这些专门的组件也有助于解释性;特别是,我们展示了 TFT 支持三个有价值的可解释性用例:帮助用户识别 (i) 预测问题的全局重要变量,(ii) 持久的时间模式,以及 (iii) 重要事件。在各种现实世界的数据集上,我们展示了如何实际应用 TFT,以及它提供的见解和好处。
2. Related work
用于多范围预测的 DNN:与传统的多范围预测方法类似(Marcellino, Stock, & Watson, 2006; Taieb, Sorjamaa, & Bontempi, 2010),最近的深度学习方法可以分类为使用自回归模型的迭代方法(Li et al., 2019; Rangapuram et al., 2018; Salinas et al., 2019)或基于序列到序列模型的直接方法(Fan et al., 2019; Wen et al., 2017)。
迭代方法利用单步预测模型,通过将预测递归地输入到未来的输入中来获得多步预测。已经考虑了具有LSTM 网络的方法,例如
-
Deep AR (Salinas et al., 2019),它使用堆叠的 LSTM 层来生成单步高斯预测的参数分布。
-
深度状态空间模型 (DSSM) (Rangapuram et al., 2018) 采用了类似的方法,利用 LSTM 生成预定义线性状态空间模型的参数,该模型具有通过卡尔曼滤波产生的预测分布——扩展了多变量时间序列数据 Wang et al. (2019)。
最近,Li et al. (2019) 探索了基于 Transformer 的架构,它提出了使用卷积层进行局部处理和稀疏注意机制来增加预测过程中感受野的大小。尽管它们很简单,但迭代方法依赖于这样一个假设,即除目标之外的所有变量的值在预测时都是已知的——因此只有目标需要递归地输入到未来的输入中。然而,在许多实际场景中,存在许多有用的时变输入,其中许多是预先未知的。因此,它们的直接使用仅限于迭代方法。另一方面,TFT 明确考虑了输入的多样性——自然地处理静态协变量和(过去观察到的和未来已知的)时变输入。
相比之下,直接方法被训练以在每个时间步显式生成多个预定义范围的预测。他们的架构通常依赖于序列到序列模型,例如LSTM 编码器用于总结过去的输入,以及各种生成未来预测的方法。
-
Multi-horizon Quantile Recurrent Forecaster (MQRNN) (Wen et al., 2017) 使用 LSTM 或卷积编码器生成上下文向量,这些上下文向量被馈送到每个层的多层感知器 (MLP)。
-
Fan et al. (2019) 多模态注意机制与 LSTM 编码器一起使用,为双向 LSTM 解码器构建上下文向量。尽管性能优于基于 LSTM 的迭代方法,但对于此类标准直接方法而言,可解释性仍然具有挑战性。
相比之下,我们表明,通过解释注意力模式,TFT 可以提供关于时间动态的有见地的解释,并在这样做的同时保持各种数据集上的最先进性能。
带注意的时间序列可解释性:注意机制用于翻译(Vaswani 等,2017)、图像分类(Wang、Jiang、Qian、Yang、Li、Zhang、Wang 和 Tang,2017)或表格学习(Arik & Pfister , 2019),使用注意力权重的大小来识别每个实例的输入的显着部分。最近,它们已经被应用到具有可解释性的时间序列(Alaa & van der Schaar,2019;Choi 等人,2016;Li 等人,2019),使用基于 LSTM(Song 等人,2018)和基于Transformer (Li et al., 2019) 的架构。然而,这是在没有考虑静态协变量的重要性的情况下完成的(因为上述方法在每个输入处混合变量)。 TFT 通过在自注意力之上的每个时间步对静态特征使用单独的编码器-解码器注意力来确定时变输入的贡献,从而缓解了这一问题。
DNN 的实例变量重要性:实例(即样本)变量重要性可以通过事后解释方法(Lundberg & Lee, 2017; Ribeiro et al., 2016; Yoon, Arik, & Pfister, 2019)和固有的可解释模型(Choi 等人,2016 年;Guo、Lin 和 Antulov-Fantulin,2019 年)获得。
-
事后解释方法,例如LIME (Ribeiro et al., 2016)、SHAP (Lundberg & Lee, 2017) 和 RL-LIM (Yoon et al., 2019) 应用于预训练的黑盒模型,通常基于提炼成可解释的代理模型,或分解为特征属性。它们的设计并未考虑输入的时间顺序,从而限制了它们对复杂时间序列数据的使用。
-
固有的可解释建模方法将用于特征选择的组件直接构建到架构中。特别是对于时间序列预测,它们基于明确量化时间相关变量的贡献。例如,Interpretable Multi-Variable LSTM (Guo et al., 2019) 对隐藏状态进行分区,使每个变量对其自己的内存段做出唯一贡献,并对内存段进行加权以确定变量的贡献。 Choi 等人 (2016) 也考虑了结合时间重要性和变量选择的方法,它根据每个人的注意力权重计算单个贡献系数。然而,除了仅建模一步超前预测的缺点之外,现有方法还专注于注意力权重的实例特定(即样本特定)解释,而没有提供对全局时间动态的洞察。
相比之下,第 7 节中的用例表明 TFT 能够分析全局时间关系并允许用户解释模型在整个数据集上的全局行为——特别是在识别任何持久模式(例如季节性或滞后效应)和目前的制度(regime)。
注:查阅资料可知,regime 亦即 state (状态)
3. Multi-horizon forecasting
让给定的时间序列数据集中有唯一的实体(entities)——例如零售中的不同商店或医疗保健中的患者。每个实体 i i i 与一组静态协变量 s i ∈ R m s s_i ∈ \R^{m_s} si∈Rms 以及输入 χ i , t ∈ R m χ χ_{i,t} ∈ R^{m_χ} χi,t∈Rmχ 和标量目标 y i , t ∈ R y_{i,t} ∈ \R yi,t∈R 在每个时间步 t ∈ [ 0 , T i ] t ∈ [0, T_i] t∈[0,Ti] 相关联。与时间相关的输入特征被细分为两类 χ i , t = [ z i , t T , x i , t T ] T χ_{i,t} = [z^T_{i,t}, x^T_{i,t}]^T χi,t=[zi,tT,xi,tT]T ——观察到的输入 z i , t ∈ R ( m z ) z_{i,t} ∈ \R^{(m_z)} zi,t∈R(mz) 只能在每一步测量并且事先未知,已知输入 χ i , t ∈ R m χ χ_{i,t} ∈ R^{m_χ} χi,t∈Rmχ 可以预先确定(例如,时间 t t t 的星期几)。
在许多情况下,通过提供目标可以采用的可能的最佳和最坏情况值的指示,预测间隔的规定可用于优化决策和风险管理。因此, 我们对多范围预测设置采用分位数回归(例如,在每个时间步输出第 10、第 50 和第 90 个百分位数)。每个分位数预测采用以下形式:
与其他直接方法一致,我们同时输出 τ m a x τ_{max} τmax 时间步长的预测——即 τ ∈ { 1 , . . . , τ m a x } τ ∈ \{1, . . . , τ_{max}\} τ∈{
1,...,τmax}。我们将所有过去的信息合并到一个有限的回顾窗口 k k k 中,仅使用
-
直到并包括预测开始时间 t 的目标和已知输入,即 y i , t − k : t = { y i , t − k , . . . , y i , t } y_{i,t−k:t} = \{y_{i,t−k}, ..., y_{i,t} \} yi,t−k:t={ yi,t−k,...,yi,t}
-
整个范围内的已知输入,即 x i , t − k : t + τ = { x i , t − k , . . . , x i , t , . . . , x i , t + τ } x_{i,t−k:t+τ} = \{x_{i,t−k}, . . ., x_{i,t}, . . . , x_{i,t+τ} \} xi,t−k:t+τ={ xi,t−k,...,xi,t,...,xi,t+τ}
4. Model architecture
我们将 TFT 设计为使用规范组件来有效地为每种输入类型(即静态、已知、观察到的输入)构建特征表示,从而在广泛的问题上实现高预测性能。 TFT 的主要成分是:
- 门控机制:跳过架构中任何未使用的组件,提供自适应深度和网络复杂性以适应广泛的数据集和场景。
- 变量选择网络:在每个时间步选择相关的输入变量。
- 静态协变量编码器:将静态特征集成到网络中,通过上下文向量的编码来调节时间动态。
- 时间处理:从观察到的和已知的随时间变化的输入中学习长期和短期时间关系。序列到序列层用于局部处理,而长期依赖关系使用新颖的可解释多头注意力块捕获。
- 通过分位数预测的预测区间,以确定每个预测范围内可能的目标值的范围。
图 2 显示了 Temporal Fusion Transformer (TFT) 的高级架构,后续部分将详细介绍各个组件。
4.1. Gating mechanisms
外生输入和目标之间的精确关系通常是事先未知的,因此很难预测哪些变量是相关的。此外,很难确定所需非线性处理的程度,并且在某些情况下,更简单的模型可能是有益的——例如,当数据集很小或嘈杂时。为了使模型能够灵活地仅在需要时应用非线性处理,我们提出了如图 2 所示的门控残差网络 (GRN) 作为 TFT 的构建块。 GRN 接受一个主要输入 a 和一个可选的上下文向量 c 并产生:
GLU 允许 TFT 控制 GRN 对原始输入 a 的贡献程度——如有必要,可能会完全跳过该层,因为 GLU 输出可能全部接近 0,以抑制非线性贡献。对于没有上下文向量的实例,GRN 只是将上下文输入视为零——即等式 (4) 中的 c = 0。在训练期间,在门控层和层归一化之前应用 dropout ——即到等式 (3) 中的 η1。
4.2. Variable selection networks
虽然可能有多个变量可用,但它们的相关性和对输出的具体贡献通常是未知的。 TFT 旨在通过使用应用于静态协变量和时间相关协变量的变量选择网络来提供实例变量选择。除了提供对预测问题最重要的变量的见解之外,变量选择还允许 TFT 消除可能对性能产生负面影响的任何不必要的噪声输入。大多数现实世界的时间序列数据集包含预测内容较少的特征,因此变量选择可以通过仅利用最显着的学习能力来极大地帮助模型性能。
我们将实体嵌入 (Gal & Ghahramani, 2016) 用于分类变量作为特征表示,并使用线性变换用于连续变量——将每个输入变量转换为 (dmodel) 维向量,该向量与后续层中的维度相匹配以进行跳过连接。所有静态、过去和未来的输入都使用具有不同权重的单独变量选择网络(如图 2 的主架构图中不同颜色所示)。不失一般性,我们在下面展示了过去输入的变量选择网络——注意其他输入的变量选择网络采用相同的形式。
我们注意到每个变量都有自己的 G R N ξ ( j ) GRN_{ξ(j)} GRNξ(j),权重在所有时间步 t t t 之间共享。然后通过其可变选择权重对处理后的特征进行加权并组合:
4.3. Static covariate encoders
与其他时间序列预测架构相比,TFT 经过精心设计以整合来自静态元数据的信息,使用单独的 GRN 编码器生成四个不同的上下文向量 cs、ce、cc 和 ch。这些联系向量连接到时间融合解码器(第 4.5 节)中的各个位置,其中静态变量在处理中起重要作用。具体来说,这包括用于
- 1)时间变量选择 (cs)
- 2)时间特征 (cc, ch) 的局部处理
- 3)使用静态信息 (ce) 丰富时间特征的上下文
例如,将 ζ ζ ζ 作为静态变量选择网络的输出,时间变量选择的上下文将根据 c s = G R N c s ( ζ ) c_s = GRN_{c_s}(ζ) cs=GRNcs(ζ) 进行编码。
4.4. Interpretable multi-head attention
TFT 采用自注意机制来学习不同时间步长的长期关系,我们从基于 Transformer 的架构中的多头注意进行修改(Li et al., 2019; Vaswani et al., 2017)以增强可解释性。一般来说,注意力机制根据键 K ∈ R N × d a t t n K ∈ \R^{N×d_{attn}} K∈RN×dattn 和查询 Q ∈ R N × d a t t n Q ∈ \R^{N×d_{attn}} Q∈RN×dattn 之间的关系来缩放 V ∈ R N × d V V ∈ \R^{N×d_V} V∈RN×dV,如下所示:
其中 A() 是归一化函数,N 是输入注意力层的时间步数(即 k + τmax)。一个常见的选择是缩放点积注意力(Vaswani et al., 2017):
为了提高标准注意力机制的学习能力,Vaswani et al., (2017) 提出了多头注意力机制,为不同的表示子空间采用不同的头:
鉴于每个头部使用不同的值,单独的注意力权重并不能表示特定特征的重要性。因此,我们修改多头注意力以在每个头中共享值,并采用所有头的加法聚合:
比较方程式 (9) 和 (14),可以看到可解释的多头注意力的最终输出与单个注意力层非常相似——关键区别在于生成注意力权重 A(Q,K) 的方法。从方程式 (15),每个头部可以学习不同的时间模式 A (Q W (h) Q , K W (h) K ),同时关注一组共同的输入特征 V——这可以解释为注意力权重的简单集成到组合等式 (14) 中的矩阵 ∼A(Q , K )。与等式 (10) 中的 A(Q , K) 相比,~A(Q , K) 以有效的方式产生增加的表示能力,同时仍然允许通过分析一组注意力权重来执行简单的可解释性研究。
4.5. Temporal fusion decoder
时间融合解码器使用下面描述的一系列层来学习数据集中存在的时间关系:
4.5.1. Locality enhancement with sequence-to-sequence layer
在时间序列数据中,重要点通常与其周围的值相关,例如异常、变化点或周期性模式。因此,通过在逐点值之上构建利用模式信息的特征,利用局部上下文可以提高基于注意力的架构的性能。例如,Li et al. (2019) 采用单个卷积层进行局部增强——在所有时间都使用相同的滤波器提取局部模式。但是,由于过去和未来输入的数量不同,这可能不适用于存在观察到的输入的情况。
因此,我们建议应用序列到序列层来自然处理这些差异——将 ∼ξt-k:t 馈入编码器,将 ∼ξt+1:t+τmax 馈入解码器。然后生成一组统一的时间特征,作为时间融合解码器本身的输入,记为 φ(t, n) ∈ {φ(t, -k), . . . , φ(t, τmax)},其中 n 是位置索引。受其在规范序列编码问题上的成功启发,我们考虑使用 LSTM 编码器-解码器,这是其他多范围预测架构中常用的构建块(Fan et al., 2019; Wen et al., 2017),尽管也可以采用其他设计。这也可以替代标准位置编码,为输入的时间排序提供适当的归纳偏置。此外,为了允许静态元数据影响局部处理,我们使用来自静态协变量编码器的 cc, ch 上下文向量分别为层中的第一个 LSTM 初始化单元状态和隐藏状态。我们还在这一层上使用了一个门控跳过连接:
4.5.2. Static enrichment layer
由于静态协变量通常对时间动态有显着影响(例如疾病风险的遗传信息),我们引入了一个静态富集层,通过静态元数据增强时间特征。对于给定的位置索引 n,静态扩充采用以下形式:
其中 GRNφ 的权重在整个层中共享,并且 ce 是来自静态协变量编码器的上下文向量。
4.5.3. Temporal self-attention layer
在静态丰富之后,我们接下来应用自注意力层。所有静态丰富的时间特征首先被分组到一个矩阵中——即 Θ(t) = [θ(t, -k), . . ., θ(t, τ)]T ——并且可解释的多头注意力(参见第 4.4 节)应用于每个预测时间(N = τ_max + k + 1):
解码器掩码 (Li et al., 2019; Vaswani et al., 2017) 应用于多头注意力层,以确保每个时间维度只能关注其之前的特征。除了通过掩码保留因果信息流外,自注意力层还允许 TFT 获取可能对基于 RNN 的架构学习具有挑战性的长期依赖关系。在 self-attention 层之后,还应用了一个额外的门控层来促进训练:
4.5.4. Position-wise feed-forward layer
我们对自注意力层的输出应用额外的非线性处理。与静态丰富层类似,这利用了 GRN:
其中 GRNψ 的权重在整个层中共享。根据图 2,我们还应用了一个门控残差连接,它跳过了整个Transformer