Abstract
现实世界中的许多应用都需要对长序列时间序列进行预测,例如用电量规划。长序列时间序列预测(LSTF)对模型的预测能力提出了很高的要求,即能够有效地捕捉到输出和输入之间精确的长期依赖耦合。最近的研究表明,Transformer 具有提高预测能力的潜力。然而,Transformer 有几个严重的问题阻碍了它直接应用于 LSTF,例如二次时间复杂度、高内存使用率以及编码器-解码器体系结构的固有限制。针对这些问题,我们设计了一种高效的基于 Transformer 的 LSTF 模型 Informer,该模型具有三个显著的特点:(1)ProbSparse 自我注意机制,在时间复杂度和内存使用量上达到 O(LlogL),在序列依赖比对方面具有相当的性能。(2)自我注意提取通过将级联层输入减半来突出主导注意力,并有效地处理超长输入序列。(3)生成式解码器虽然概念简单,但对长时间序列的预测采用一次正向运算,而不是分步预测,大大提高了长序列预测的推理速度。在四个大规模数据集上的大量实验表明,Informer 的性能明显优于现有方法,为 LSTF 问题提供了一种新的解决方案。
Introduction
时间序列预测是许多领域的关键组成部分,例如传感器网络监测(Papadimitriou 和 Yu 2006)、能源和智能电网管理、经济和金融(Zhu 和 Shasha 2002)以及疾病传播分析(Matsubara 等人 2014 年)。在这些场景中,我们可以利用大量关于过去行为的时间序列数据来进行长期预测,即长序列时间序列预测(LSTF)。然而,现有的方法是在有限的问题背景下设计的,比如预测 48 点或更少(Hochreiter 和 Schmidhuber 1997;Li 等人 2018 年;Yu 等人 2017 年;Liu 等人 2019 年;Qin 等人 2017 年;Wen 等人 2017 年)。越来越长的序列使模型的预测能力变得紧张,以至于有人认为,这种趋势正在阻碍 LSTF 的研究。作为一个实证例子,图(1)显示了在实际数据集上的预测结果,其中 LSTM 网络预测了变电站从短期(12 点,0.5 天)到长期(480 点,20 天)的每小时温度。当预测长度大于 48 点(图(1(c)中的 ★)时,总体性能差距很大。MSE 分数上升到不能令人满意的程度,推理速度急剧下降,LSTM 模型失效。
图 1:(a)短序列预测只揭示不久的将来。(b)长序列时间序列预测可以涵盖更长的时期,以便更好地进行政策规划和投资保护。(c)现有方法的预测能力限制了长序列的性能,即从 length=48 开始,均方误差上升到不可接受的水平,推理速度迅速下降。
LSTF 面临的主要挑战是提高预测能力以满足日益增长的长序列需求,这要求(a)特别的长期比对能力和(b)对长序列输入和输出的有效操作。目前,与 RNN 模型相比,Transformer 模型在捕获长期依赖关系方面表现出更好的性能。自注意机制可以将网络信号传输路径的最大长度减少到理论上的最短 O(1),并且避免了递归结构,从而使 Transformer 在 LSTF 问题上显示出很大的潜力。但另一方面,由于 L-quadratic 计算和 L 长度的输入/输出上的内存消耗,自我注意机制违反了要求(b)。一些大型 Transformer 模型倾注了大量资源,并在 NLP 任务上产生了令人印象深刻的结果(Brown 等人 2020),但是在几十个 GPU 上的训练和昂贵的部署成本使得这些模型在现实世界的 LSTF 问题上负担不起。自我注意机制和 Transformer 框架的效率成为它们应用于 LSTF 问题的瓶颈。因此,在本文中,我们试图回答这样一个问题:能否改进 Transformer 模型以提高计算、存储和体系结构的效率,同时保持更高的预测能力?
Vanilla Transformer (Vaswani et al. 2017)在求解 LSTF 时有三个显著的局限性:
- 自我注意的平方计算。自我注意机制的原子运算(atom operation),即规范点积(canonical dot-product),使每层的时间复杂度和内存使用量为 O(L)。
- 用于长输入的堆叠层中的内存瓶颈。由于 J 编码/解码层的堆栈使得总内存使用量为 O(J·L),限制了模型在接收长序列输入时的可扩展性。
- 预测长期输出的速度急转直下。Vanilla Transformer 的动态解码使得逐步推理的速度与基于 RNN 的模型一样慢,如图 1(c)所示。
关于提高自我注意效率的研究已经有了一些前人的研究成果。The Sparse Transformer(Child et al. 2019)、LogSparse Transformer(Li et al. 2019)和 Longformer (Beltagy, Peters, and Cohan 2020)都使用启发式方法来处理限制 1,并将自我注意机制的复杂性降低到 O(LlogL),其中它们的效率增益是有限的(Qiu et al. 2019)。Reformer (Kitaev, Kaiser,和 Levskaya 2019)也通过局部敏感的哈希自我注意实现 O(LlogL),但它只适用于非常长的序列。最近,Linformer (Wang et al. 2020)声称其线性复杂度为 O(L),但对于真实世界的长序列输入,投影矩阵不能被固定,可能会有退化到的风险。Transformer- XL (Dai et al. 2019)和 Compressive Transformer (Rae et al. 2019)使用辅助隐藏状态捕获长期依赖,这可能放大限制 1,不利于打破效率瓶颈。所有的工作主要集中在限制 1,限制 2 和 3 仍然存在于 LSTF 问题中。为了提高预测能力,我们将解决所有这些问题,并在建议的 Informer 中实现超越效率的改进。
为此,我们的工作明确地探讨了这三个问题。我们研究了自我注意机制的稀疏性,对网络组件进行了改进,并进行了大量的实验。本文的研究成果概括如下:
- 我们提出的 Informer 在 LSTF 问题中成功地提高了预测能力,验证了 Transformer-like 模型在捕捉长序列时间序列输出和输入之间的个体长期依赖方面的潜在价值。
- 提出了 ProbSparse 自我注意机制,有效地取代了规范的自我注意机制,达到了 O(LlogL)的时间复杂度和 O(LlogL)的内存使用量。
- 提出了在 J-堆叠层中以自我注意提取操作权限控制注意力得分,并将总空间复杂度大幅降低到 O((2−ε)LlogL)。
- 提出了生成式解码器(Generative Style Decoder),只需一个前向步骤即可获得长序列输出,同时避免了推理阶段的累积误差扩散。
Preliminary
我们首先提供问题定义。在具有固定大小窗口的滚动预测设置下(Under the rolling forecasting setting with a fixed size window),我们有 t 时刻的输入,并且预测相应序列的输出为
。LSTF 问题鼓励比以前研究更长的输出长度(Cho 等人 2014 年;Sutskever、Vinyals 和 Le 2014),并且特征维度不限于单变量情况(dy≥1)。
**编码器-解码器体系结构: **许多流行的模型被设计成将输入表示“编码”成隐藏状态表示
,并从
解码出输出表示
。该推断涉及一种名为“动态解码”的逐步过程,其中解码器根据前一状态
和来自第 k 步的其他必要输出计算出新的隐藏状态
,然后预测第(k+1)个序列
。
输入表示:给定统一的输入表示来增强时间序列输入的全局位置上下文和局部时间上下文。为了避免使描述变得琐碎,我们将详细信息放在附录 B 中。
Methodology
现有的时间序列预测方法大致可以分为两类。经典的时间序列模型是时间序列预测的可靠工具(Box et al. 2015; Ray 1990; Seeger et al. 2017; Seeger,Salinas, and Flunkert 2016)。深度学习技术主要是通过使用 RNN 及其变体来开发编码器-解码器预测范式 (Hochreiter and Schmidhuber 1997; Li et al. 2018; Yu et al. 2017)。我们提出的 Informer 在针对 LSTF 问题的同时保持了编码器-解码器的体系结构。请参见图(2)的概述和下列各节的详细内容。
图 2:Informer 模型的总体图。左边的部分是编码器,它接收大量的长序列输入(绿色序列)。我们已经用提议的 ProbSparse 自我注意取代了规范的自我注意。蓝色梯形是一种取出主导注意力的自我注意提取操作,大大减小了网络规模。层堆叠副本提高了鲁棒性。对于右边的部分,解码器接收长序列输入,将目标元素填充为零,测量特征图(feature map)的加权注意力组成,并以生成式(generative style)即时预测输出元素(橙色序列)。
Due to the space limitation, a complete related work survey is provided in Appendix A.
Efficient Self-attention Mechanism
(Vaswani et al. 2017)中规范自我注意被定义为接收到元组输入(Query,Key,Value),并执行缩放点积, 其中
,
,
,d 是输入维度。为了进一步探讨自注意机制,让
分别代表 Q、K、V 中的第 i 行。根据(Tsai et al. 2019)的公式,第 i 个查询的注意被定义为一个概率形式的核平滑器:
其中,
选取非对称指数核
。自我注意基于计算概率
来组合这些值并获得输出。它需要二次点积计算( the quadratic times dot-product computation)和
的内存使用,这是提高预测能力的主要缺点。
前人的一些尝试揭示了自我注意概率的分布具有潜在的稀疏性,并且在不显著影响性能的情况下设计了一些对所有的“选择性”计数策略。The Sparse Transformer (Child et al. 2019)合并了行输出和列输入,其中稀疏性产生于分离的空间相关性。The LogSparse Transformer (Li et al. 2019)注意到自我关注的周期性模式,并迫使每个细胞以指数步长关注前一个细胞。 The Longformer (Beltagy, Peters, and Cohan 2020) 将前两个工作扩展到更复杂的稀疏配置。但是,他们都局限于理论分析,遵循启发式的方法,用相同的策略来解决每个多头自我注意问题,这就限制了其进一步的改进。
为了激发我们的方法,我们首先对习得的规范自注意的注意模式进行定性评估。“稀疏性”自我注意分数形成了一个长尾分布(a long tail distribution )(详见附录 C),即少数几个点积对贡献了大部分注意力,其他的可以忽略不计。那么下一个问题是如何区分它们呢?
Query Sparsity Measurement 公式(1)中,第 i 个 query 对所有 keys 的关注定义为概率,输出是它与 values v的结合。主要的点积对使得相应查询的关注概率分布偏离均匀分布。如果
接近于均匀分布
,则自我注意就成了 values V的 trivial sum 并且对 residential 输入是多余的。(the self-attention becomes a trivial sum of values V and is redundant to the residential input) 当然,分布 p 和 q 之间的“相似性”可以用来区分“重要的”查询。我们通过 Kullback-Leibler 发散度
来度量“相似性”。丢弃常量,我们将第 i 个查询的稀疏度量定义为
其中第一项是在所有 keys 上的 Log-Sum-Exp (LSE),第二项是它们的算术平均值。如果第 i 个查询获得较大的
,则其注意概率 p 更加“多样化”,。并且很有可能在长尾自我注意分布的头字段中包含主导点积对。
**ProbSparse Self-attention **基于所提出的度量,我们通过允许每个键只关注 u 个主要查询来实现 ProbSparse Self-attention
其中是与 q 相同大小的稀疏矩阵,并且它仅包含稀疏度量 M(q,K)下的 Top-u 个查询。在固定采样因子 c 的控制下,设置
,这使得 ProbSparse self-attention 对于每个 query-key lookup 只需要计算
次点积,而层内存使用量保持
。
然而,遍历度量的所有查询需要计算每个点积对,即二次
,并且 LSE 操作存在潜在的数值稳定性问题。受此启发,我们提出了一种近似的查询稀疏度量方法。
**Lemma 1. **对于每个查询和 keys set K中的
,我们有界为
。当
时,它也成立。
从 Lemma 1(证明见附录 D.1)出发,我们提出最大均值度量为
Top-u 的顺序与命题 1 的边界松弛一致(The order of Top-u holds in the boundary relaxation with Proposition 1)(参见附录 D.2 中的证明)。在长尾分布下,我们只需要随机抽样个点-积对即可计算
,即用零填充其他对。我们从中选择稀疏的 Top-u 个作为
。
中的最大算子对零值的敏感性较低,并且数值稳定。在实际应用中,查询和关键字的输入长度通常相等,即
,使得 ProbSparse self-attention 的总时间复杂度和总空间复杂度为
。
**Proposition 1. ** 假设,令
表示集合
,
存在 κ>0 使得:在区间
中,如果
,则有
的概率很大。为简化起见,在证明中给出了概率的估计。
Encoder: Allowing for processing longer sequential inputs under the memory usage limitation
该编码器的设计目的是提取长序列输入的鲁棒长期依赖。在输入表示之后,第 t 个序列输入 X 已被整形为矩阵。为了清楚起见,我们在图(3)中给出了编码器的草图。
图 3:Informer 编码器的体系结构。(1)每个水平堆栈代表图(2)中一个单独的编码器副本;(2)上层堆栈是主堆栈,接收整个输入序列,第二层堆栈接收输入的半个切片;(3)红色层是自我注意机制的点积矩阵,通过对每一层进行自我注意提取得到级联递减;(4)将两层堆栈的特征映射连接起来作为编码器的输出。
自注意提取 作为 ProbSparse Self-attention 机制的自然结果,编码器的特征映射存在价值 V 的冗余组合,我们利用提取操作将主要特征赋予上级特征(privilege the superior ones with dominating features ),在下一层生成一个聚焦的自我注意特征映射。它大幅削减了输入的时间维数,如图(3)所示的注意块的 n 个头(n-heads)的权值矩阵(红色方块重叠)。受到膨胀卷积的启发(Y u, Koltun, and Funkhouser 2017;Gupta and Rush 2017),我们的“提取”过程从第 j 层向前推进到第(j+1)层,如下所示
其中包含多头 ProbSparse 自注意和注意块中的基本操作,而 Conv1d(·)利用 ELU(·)激活函数在时间维度上执行一维卷积滤波(核宽度=3)(Clevert,Unterthiner 和 Hochreiter 2016)。在堆叠一个层之后,我们增加一个步长为 2 的最大池化层,并将 X 下采样到其半片中,从而将整个内存使用量减少到
,其中 ε 是一个很小的数字。为了增强提取操作的健壮性,我们建立了主栈的一半副本,并通过一次丢弃一层来逐步减少自注意提取层的数量,就像图(3)中的金字塔(pyramid),从而使它们的输出维度对齐。因此,我们将所有堆栈的输出连接起来,得到编码器的最终隐藏表示。
Decoder: Generating long sequential outputs through one forward procedure
我们使用标准的解码器结构(Vaswani et al. 2017),它由 2 个相同的多头注意层堆叠而成。然而,在长期预测中,采用了产生式推理(generative inference)来缓解速度骤降。我们向解码器提供如下矢量
其中l 是开始令牌,
是目标序列的占位符(将标量设置为 0)。通过将掩码的点积设置为 −∞,将掩码多头注意应用于 ProbSparse 自注意计算。它防止每个位置关注即将到来的位置,从而避免自回归(auto-regressive)。一个全连接层获得最终输出,它的大小 d 取决于我们执行的是单变量预测还是多变量预测。
Generative Inference 起始令牌(start token)是 NLP“动态解码”中的一种有效技术(Devlin et al. 2018 年),我们将其扩展为一种生成性的方式。我们不选择特定的标志作为令牌,而是在输入序列中采样一个 L 大小的长序列,它是输出序列之前的较早片段。以图(2(b))中预测 168 个点为例(7 天温度预测),我们将目标序列之前的已知 5 天作为“start token”,并用喂给生成式推理(generative-style inference)解码器。X 包含目标序列的时间戳,即目标周的上下文。注意,我们提出的解码器通过一个前向过程来预测所有的输出,并且在简单的编码器-解码器体系结构中没有耗时的“动态解码”事务。在 computation efficiency 部分给出了详细的性能比较。
**Loss function ** 我们选择 MSE 损失函数对目标序列进行预测,损失从解码器的输出传回整个模型。
Experiment
Datasets
我们在四个数据集上进行了实验,其中包括为 LSTF 收集的两个真实数据集和两个公共基准数据集。
ETT (Electricity Transformer Temperature): ETT 是电力长期运行的重要指标。我们从中国两个不同的县收集了两年的数据。为了探索 LSTF 问题的粒度,我们为 1 小时级别的创建了单独的数据集,为 15 分钟级别的创建了
。每个数据点由目标值“油温”和 6 个电力负荷特征组成。The train/val/test 是 12/4/4 个月。
ECL(Electricity Consuming Load):收集 321 个用户的用电量(千瓦时)。由于数据缺失(Li et al. 2019 年),我们将数据集转换为 2 年的小时用电量,并将‘MT_320’设置为目标值。The train/val/test 是 15/3/4 个月。
Weather:该数据集包含美国近 1600 个地点的当地气候数据,从 2010 年到 2013 年的 4 年间,每 1 小时收集一次数据点。每个数据点由目标值“wet bulb”和 11 个气候特征组成。The train/val/test 为 28/10/10 个月。
We collected the ETT dataset and published it at https://github.com/zhouhaoyi/ETDataset.
ECL dataset was acquired at https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDiagrams20112014
Weather dataset was acquired at https://www.ncdc.noaa.gov/orders/qclcd/
Experimental Details
我们简要总结了基本信息,有关网络组件和设置的更多信息请参见附录 E。
**Baselines: **附录 E.1 提供了网络组件的详细信息。我们选择了 5 种时间序列预测方法作为比较,包括 ARIMA (Ariyo, Adewumi, and Ayo 2014)、Prophet (Taylor and Letham 2018)、LSTMa (Bahdanau, Cho, and Bengio 2015)、LSTnet (Lai et al. 2018)和 DeepAR (Flunkert, Salinas, and Gasthaus 2017)。为了更好地探索 ProbSparse 自我注意在我们所提出的 Informer 的表现,我们在实验中纳入了规范的自我注意变体(Informer)、高效的变体 Reformer(Kitaev、Kaiser and Levskaya 2019)和最相关的研究 LogSparse self-attention(Li et al. 2019)。
Hyper-parameter tuning: 我们对超参数进行网格搜索,详细范围见附录 E.3。Informer 包含一个 3 层堆栈和一个 2 层堆栈(1/4 输入)的编码器以及 2 层解码器。我们提出的方法采用 Adam 优化器进行优化,其学习速率从 1e 开始,每 2 个 epochs 衰减 10 倍,总 epochs 为 10。我们按照推荐设置了比较方法,batch size 为 32。**Setup: 对每个数据集的输入进行零均值归一化。在 LSTF 设置下,我们逐步延长预测窗口大小,即{ETTh, ECL, Weather}中的{1d, 2d, 7d, 14d, 30d, 40d}, ETTm 中的{6h, 12h, 24h, 72h, 168h}。Metrics: 我们在每个预测窗口上使用了两个评估指标,包括和
(多变量预测的平均值),并以 stride =1 滚动整个集合。Platform: ** 所有型号都在单个 Nvidia V100 32GB GPU 图形处理器上进行训练/测试。
Results and Analysis
表 1 和表 2 总结了所有方法在 4 个数据集上的单变量/多变量评估结果。随着对预测能力的更高要求,我们逐渐延长了预测范围。为了进行公平的比较,我们精确控制了问题设置,使每种方法的 LSTF 都可以在单个 GPU 上处理。最佳结果以粗体突出显示。
Univariate Time-series Forecasting:在这种设置下,每种方法都可以在一段时间内实现单个变量的预测。从表 1 中我们观察到:(1)所提出的模型 Informer 极大地提高了所有数据集的推理性能(最后一列的获胜计数),并且它们的预测误差在不断增长的预测范围内平稳而缓慢地上升。这表明 Informer 在提高 LSTF 问题的预测能力方面取得了成功。(2)Informer 主要在获胜计数上优于规范降级的 Informer†,即 28>14,这支持了查询稀疏性假设,提供了可比较的注意力特征映射。我们提出的方法也比最相关的研究 LogTrans 和 Reformer 性能更好。我们注意到,Reformer 保持动态解码,在 LSTF 中表现不佳,而其他方法则受益于生成式解码器作为非自回归预测器。(3)Informer 模型的预测结果明显优于递归神经网络 LSTMa。我们的方法的均方误差分别降低了 41.5%(at 168), 60.7% (at 336) and 60.7% (at 720)。这表明在自我注意机制中,较短的网络路径比基于 RNN 的模型具有更好的预测能力。(4)与 DeepAR、ARIMA 和 Prophet 相比,本文提出的方法在 MSE 上的平均降幅分别为 20.9% (at 168), 61.2% (at 336), and 51.3% (at 720) 。在 ECL 数据集上,DeepAR 在较短的范围(≤336)上表现得更好,而我们的方法在较长的范围上表现得更好。我们将这归因于一个具体的例子,在这个例子中,问题的可伸缩性反映了预测能力的有效性。
Multivariate Time-series Forecasting: 在这种情况下,一些单变量方法是不合适的,而 LSTnet 是最先进的基线。相反,通过调整最终的 FCN 层,我们提出的 Informer 很容易从单变量预测转变为多变量预测。从表 2 中,我们观察到:(1)所提出的模型 Informer 的性能大大优于其他方法,并且在单变量设置下的结果 1 和 2 在多变量时间序列中仍然成立。(2)Informer 模型比基于 RNN 的 LSTMa 模型和基于 CNN 的 LSTnet 模型具有更好的预测效果,平均 MSE 分别下降了 9.5% (at 168), 2.1% (at 336), 13.8% (at 720)。与单变量结果相比,压倒性的性能有所降低,这种现象可能是由于特征维度预测能力的各向异性(anisotropy)造成的。这超出了本文的范围,我们将在今后的工作中对其进行探讨。
**LSTF with Granularity Consideration: ** 我们进行了额外的比较,试图探索不同粒度下的性能。将 {96, 288, 672} of ETTm1(minutes-level)与{24, 48, 168}
of ETTh1(hour-level)比对。即使序列的粒度级别不同,所提出的 Informer 的性能也优于其他基线。
Parameter Sensitivity
在单变量设置下,我们对提出的 Informer 模型在 ETTh1 上进行了敏感度分析。Input Length: 在图(4(a))中,当预测短序列(如 48)时,最初增加编码器/解码器的输入长度会降低性能,但进一步增加会导致 MSE 下降,因为这会带来重复的短期模式(repeat short-term patterns)。然而,在预测长序列(如 168)时,输入越长,MSE 越低。因为较长的编码器输入可能包含更多的依赖性,并且较长的解码器令牌具有丰富的本地信息。Sampling Factor: 采样因子控制公式(3)中 ProbSparse 自注意的信息带宽(bandwidth)。我们从小的因素(=3)开始, 到大的因素,在图(4(b))中,总体性能略有提高,最终趋于稳定。验证了我们的查询稀疏性假设,即自我注意机制中存在冗余的点积对,在实践中我们设样本因子=5(红线)。**The Number of Layer Stacking: ** 层的副本对于自我注意的提取是互补的,我们在图(4(c))中研究了每个堆栈{L,L/2,L/4}的行为。堆栈越长,对输入越敏感,部分原因是接收的长期信息更多。我们方法的选择(红线),即结合 L 和 L/4,是最稳健的策略。
Ablation Study: How Informer works?
考虑到消融,我们还对 ETTh1 进行了额外的实验。
The performance of ProbSparse self-attention mechanism:在表 1 和 2 的总体结果中,我们对问题设置进行了限制,以使规范自我注意的内存使用是可行的。在本研究中,我们将我们的方法与 LogTrans 和 Reformer 进行了比较,并深入探讨了它们的极限性能。为了隔离内存效率问题,我们首先将设置减少为{Batch Size=8,Heads=8,Dim=64},并在单变量情况下保持其他设置。在表 3 中,ProbSparse 自我注意显示出比对应自我注意更好的性能。LogTrans 在极端情况下获得 OOM(out of memory),因为它的公共实现是完全注意的掩码(mask of the full-attention),它仍然有 O(L)的内存使用量。我们提出的 ProbSparse 自我注意避免了公式(4)中的查询稀疏性假设带来的简单性,参考了附录 E.2 中的伪代码,并且达到了更小的内存使用量。
The performance of self-attention distilling:在本研究中,我们使用 Informer†作为基准来消除 ProbSparse 自我注意的额外影响。另一种实验设置与单变量时间序列的设置一致。从表 4 可以看出,Informer†已经完成了所有实验,并且在利用长序列输入后取得了更好的性能。相比较的方法 Informer‡则去除了提取操作,并使用更长的输入(>720 时)达到 OOM。关于 LSTF 问题中长序列输入的好处,我们得出结论:自我注意提取是值得采用的,特别是当需要更长的预测时。
The performance of generative style decoder:在本研究中,我们证明了我们的解码器在获得“生成性”结果方面的潜在价值。与已有方法不同的是,在训练和推理过程中,标签和输出是强制对齐的,我们提出的解码器的预测仅依赖于时间戳,时间戳可以用偏移量进行预测。从表 5 可以看出,Informer‡的总体预测性能随着偏移量的增加而下降,而对应的 Informer§的动态解码失败。它证明了解码器能够捕捉任意输出之间的单个长期依赖关系,并避免了推理中的错误累积。
Computation Efficiency
在使用多变量设置和每种方法当前最好的实现下,我们在图(5)中执行了严格的运行时间比较。在训练阶段,在基于 Transformer 的方法中,Informer(红线)的训练效率最高。在测试阶段,我们的方法比其他生成式解码方法要快得多。表 6 总结了理论时间复杂度和内存使用量的比较,Informer 的性能与运行时间实验一致。请注意,LogTrans 侧重于自我注意机制,我们在 LogTrans 中应用了我们提出的解码器,以进行公平的比较(the ★ in Table 6)。
Conclusion
本文研究了长序列时间序列的预测问题,提出了一种用于预测长序列的 Informer 模型。具体地说,我们设计了 ProbSparse 自我注意机制和提取操作,以应对 Vanilla Transformer 中的二次方时间复杂度和二次方内存使用的挑战。此外,精心设计的生成式解码器缓解了传统编码器-解码器体系结构的局限性。在真实数据上的实验表明,Informer 在提高 LSTF 问题预测能力方面是有效的。
Appendices
Appendix A Related Work
下面我们提供长序列时间序列预测(LSTF)问题的文献综述。
Time-series Forecasting 现有的时间序列预测方法大致可以分为两类:经典模型和基于深度学习的方法。经典时间序列模型作为时间序列预测的可靠工具,具有诸如可解释性和理论保证等吸引人的特性 (Box et al. 2015; Ray 1990)。现在的扩展模型包括对支持丢失数据(Seeger et al. 2017) 和多种数据类型(Seeger, Salinas, and Flunkert 2016)。基于深度学习的方法主要通过使用 RNN 及其变体开发序列到序列预测范式,取得突破性的性能(Hochreiter and Schmidhuber 1997; Li et al. 2018; Y u et al. 2017)。尽管已经取得了实质性的进展,但现有的算法仍然不能以令人满意的精度预测长序列时间序列。典型的最先进的方法 (Seeger et al. 2017; Seeger, Salinas, and Flunkert 2016),特别是深度学习方法 (Y u et al. 2017; Qin et al. 2017; Flunkert, Salinas, and Gasthaus 2017; Mukherjee et al. 2018; Wen et al. 2017),仍然是一种循序渐进的序列到序列的预测范式,具有以下局限性:(i)即使它们可以实现一步前向的准确预测,它们也经常遭受动态解码的累积误差,导致 LSTF 问题的较大误差 (Liu et al. 2019; Qin et al. 2017)。预测精度随着预测序列长度的增加而下降。(ii)由于梯度消失和内存约束的问题(Sutskever, Vinyals, and Le 2014),现有的大多数方法不能学习时间序列整个历史的过去行为。在我们的工作中,Informer 就是为了解决这两个限制而设计的。
**Long sequence input problem: **从上面的讨论中,我们提到了关于长序列时间序列输入(LSTI)问题的第二个限制。我们会探讨相关的工作,并在 LSTF 问题之间进行比较。研究人员截断/汇总/采样输入序列,以便在实践中处理非常长的序列,但在进行准确预测时,有价值的数据可能会丢失。Truncated BPTT (Aicher, Foti, and Fox 2019) 没有修改输入,而是只使用最后的时间步长来估计权重更新中的梯度和 Auxiliary Losses (Trinh et al. 2018)通过添加辅助梯度来增强梯度流。其他尝试包括 Recurrent Highway Networks(Zilly et al. 2017)和 Bootstrapping Regularizer (Cao and Xu 2019)。这些方法都试图改善递归网络长路径中的梯度流,但在 LSTI 问题中,随着序列长度的增长,其性能受到限制。基于 CNN 的方法(Stoller et al. 2019; Bai, Kolter, and Koltun 2018)使用卷积滤波器捕捉长期依赖,它们的接收域随着层的堆叠呈指数增长,这不利于序列对齐。在 LSTI 问题中,主要任务是提高模型接收长序列输入的能力,并从这些输入中提取长期依赖。但 LSTF 问题寻求提高模型对长序列输出的预测能力,这需要建立输出和输入之间的长期相关性。因此,上述方法不能直接用于 LSTF。
**Attention model: **Bahdanau 等人首先提出了 addictive attention (Bahdanau,Cho,and Bengio 2015),以改善翻译任务中编码器-解码器体系结构的词对齐。随后,其变体(Luong,Pham,and Manning 2015)提出了广泛使用的位置注意、一般注意和点积注意。流行的基于自我注意的 Transformer(Vaswani et al. 2017)作为序列建模的新思路被提出,并取得了巨大的成功,特别是在自然语言处理领域。通过将其应用于翻译、语音、音乐和图像生成,验证了更好的序列比对能力。在我们的工作中,Informer 利用了它的序列比对能力,使其能够适应 LSTF 问题。
**Transformer-based time-series model: ** 最相关的研究(Song et al. 2018 年;Ma et al. 2019 年;Li et al. 2019 年)都是从在时间序列数据中应用 Transformer 的尝试开始的,由于使用了 Vanilla Transformer,LSTF 预测失败。和其他一些研究(Child et al. 2019 年;Li et al. 2019)注意到自我注意机制的稀疏性,我们已经在主要背景中讨论了它们。
Appendix B The Uniform Input Representation
RNN 模型(Schuster and Paliwal 1997;Hochreiter 和 Schmidhuber 1997;Chung 等人,2014;Sutskever, Vinyals, Le 2014;Qin 等人 2017;Chang et al. 2018)通过循环结构本身捕捉时间序列模式,几乎不依赖于时间戳。The vanilla transformer(Vaswani 等人 2017 年;Devlin 等人 2018)使用按点自我注意机制,时间戳作为作本地位置上下文。然而,在 LSTF 问题中,捕获长期独立性的能力需要全局信息,如层次时间戳(周、月和年)和不可知的(agnostic) 时间戳(假日、事件)。这些在规范的自我注意中很难被利用,并且由此导致的编码器和解码器之间的查询-关键字不匹配会对预测性能带来潜在的降级。我们提出了一种统一的输入表示来缓解这个问题,图(6)给出了直观的概述。
假设我们有第 t 个序列输入和 P 种全局时间戳,输入表示后的特征维数为
。我们首先使用固定位置嵌入,即
。每个全局时间戳由有限的词汇量(最多 60 分钟,即以分钟为最细粒度)的可学习戳嵌入
使用。也就是说,自我注意的相似度计算可以访问全局上下文,并且计算消耗在长输入上是可承受的。为了对齐维数,我们使用一维卷积滤波器(核宽度=3,步长=1)将标量上下文
投影到
向量
中。因此,我们就有了 feeding vector
其中 i∈{1,…, Lx},α 是平衡标量投影和局部/全局嵌入之间大小的因子。如果序列输入已标准化,我们建议 α=1。
Appendix C The long tail distribution in self- attention feature map
我们在 ETTh1 数据集上使用 Vanilla Transformer 实验来研究自我注意特征影身的分布。我们选择{Head1,Head7}@Layer1 的注意力分数。图(7)中的蓝线形成了一个长尾分布,即少数点积对贡献了主要注意力,其他点积对可以忽略不计。
Appendix D Details of the proof
Proof of Lemma 1
略
Proof of Proposition 1
略
Appendix E Reproducbility
Details of the experiments
表 7 总结了所提出的 Informer 模型的细节。对于概率稀疏的自我注意机制,我们设 d=32, n=16,并同样增加了残差连接、按位置前馈层(内层维度是 2048)和一个 dropout 层(p = 0.1)。注意,我们为每个数据集保留了 10%的验证数据,所以所有的实验都是在 5 次随机的 train/val 移位选择上随时间进行的,结果是 5 次运行的平均值。所有的数据集进行标准化,使变量的均值为 0,标准差为 1。
lmplement of the ProbSparse self- attention
我们已经在 Python3.6 和 Pytorch1.0 中实现了 ProbSparse 自我注意。伪码代码在 Algo(1)中给出。源代码可以在https://github.com/zhouhaoyi/Informer2020 上找到。所有过程都可以高效地进行向量运算,并保持对数总内存使用率。通过在步骤 6 上应用位置掩码并在步骤 7 的 mean(·)中使用 cmusum(·)即可实现掩码版本。
The hyperparameter tuning range
对于所有方法,ETTh1、ETTh2、Weather 和 Electricity 数据集的递归分量输入长度都是从{24,48,96,168,336,720}中选择,对于 ETTm 数据集,从{24,48,96,192,288,672}中选择。对于 LSTMa 和 DeepAR,隐藏状态的大小从{32,64,128,256}中选择。对于 LSTnet,Recurrent-skip layer 的递归层和卷积层隐藏维度从{64,128,256}和{32,64,128}中选择,对于 ETTh1,ETTh2,Weather 和 ECL 数据集,递归-跳跃层的跳跃长度设置为 24,对于 ETTm 数据集,设置为 96。对于 Informer,编码器层数从{6,4,3,2}中选择,解码器层设置为 2,多头注意的头数从{8,16}中选择,多头注意的输出维度设置为 512。对于 ETTh1、ETTh2、Weather 和 ECL 数据集,编码器的输入序列和解码器的起始令牌的长度从{24,48,96,168,336,480,720}中选择,对于 ETTm 数据集,从{24,48,96,192,288,480,672}中选择。在实验中,解码器的起始令牌是从编码器的输入序列中截断的片段,因此解码器的起始令牌的长度必须小于编码器的输入长度。
基于 RNN 的方法在预测窗口左移的情况下执行动态解码。我们提出的方法 Informer-Series 和 LogTrans(我们的解码器)执行非动态解码。
Appendix F Extra experimental results
图(9)给出了 8 个模型的预测切片。最实际的工作 LogTrans 和 Reformer 显示了可以接受的结果。LSTMa 模型不适用于长序列预测任务。ARIMA 和 DeepAR 可以捕捉到长序列的长期趋势。Prophet 探测到变化点,并用比 ARIMA 和 DeepAR 更好的平滑曲线来拟合它。我们提出的模型 Informer 和 Informer†显示了明显优于上述方法的结果。
Appendix G Computing Infrastructure
所有实验均在 Nvidia Tesla V100 SXM2 GPUs (32GB 内存)上进行。其他配置包括 2 _ Intel Xeon Gold 6148 CPU、384GB DDR4 RAM 和 2 _ 240GB M.2 SSD,这足以满足所有的基线。
References
……
- 本文作者: YuT
- 本文链接: https://ytno1.github.io/archives/133d7289.html
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!