- Abstract
- Introduction
- Preliminary
- Methodology
- Experiment
- Conclusion
- Appendices
- References
tags: [知识追踪, Informer]
categories: [知识追踪, Informer]
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
……