Informer: Beyond Efficient Transformer for Long SequenceTime-Series Forecasting
博客贡献人
谷雨
作者
周浩宇、张尚航、聂杰鹏、张帅、李建新、徐辉、张文才
标签
时序预测,Transformer,自注意力蒸馏
摘要
在多个实际应用场景中,预测长序列时间序列是一项关键任务。例如,在能源管理领域实现电量规划就属于此类问题。长序列时间序列预测(LSTF)要求模型必须具备高阶特征提取能力以保证预测精度和可靠性。近期研究表明,在这一领域中Transformer架构展现出显著的优势。然而,在直接应用于LSTF任务时该架构仍面临多重挑战:计算复杂度呈二次方增长、内存占用率较高且编码器-解码器架构限制了其扩展性。针对这些问题研究者提出了一种高效的基于Transformer的新架构Informer其主要创新点体现在三个方面:首先概率稀疏自注意力机制显著降低了算法复杂度使其达到O(Llog L)水平同时在捕捉时间依赖关系方面表现不俗;其次通过减少级联层输入规模一半的方式突出主注意力机制从而能够高效处理极长输入序列;第三创新式的生成式解码器虽然从概念上相对简单但能够一次完成多步预测而非传统的逐步推导模式这大大提升了预测效率。经过大量实验结果表明Informer不仅在性能指标上超越现有方法组成了新的解决方案。
介绍
LSTF 的主要难点在于需增强其预测效果以适应不断扩张的数据序列。该系统需具备(a)卓越的长程对齐能力以及(b)高效的长序列输入与输出操作机制。
而相对于RNN结构模型而言,Transformer在捕捉长程依赖方面展现出卓越的能力,并不依赖递归循环结构而提升了计算效率
但是,自注意力机制违反了要求 (b),对于长度为

的序列来说需要

计算复杂度和内存占用尽管在某些自然语言处理任务中表现出色但也造成了巨大的资源消耗

(a) LSTF 能够涵盖比短序列预测更为持续的时间,在政策制定与投资保护等方面展现出显著差异性。
(b) 现有技术的预测能力制约了 LSTF 的性能表现。具体而言,在长度为 48 时情况尤为突出:均方误差 (MSE) 值急剧上升到难以让人接受的程度,并伴随计算效率随之急剧下降。
使用Transformer 在解决 LSTF 问题时有三个明显的局限性:
自注意力机制进行二次运算。自注意力机制的基本操作即规范点积,导致每层的时间复杂度和内存使用量为 O(

)。
2. 长输入堆叠层的内存瓶颈。

层编码器/解码器堆栈使总内存使用量为 O(

),这限制了模型在接收长序列输入时的可扩展性。
3. 预测长输出的速度快速降低。原版 Transformer 的动态解码过程与基于 RNN 的模型具有相同的速度(图 1b)。
为了优化self-attention机制的效率,已有研究者提出了改进型Transformer模型.其中, Sparse Transformer、LogSparse Transformer及Longformer均尝试通过启发式策略寻求解决方案,最终将每层计算复杂度降低至O(LlogL).然而,这些方法在实际应用中取得的效果提升有限;Reformer则采用局部敏感哈希机制实现自注意力计算,同样实现了与前者相当的时间复杂度;而Linformer则成功实现了线性时间复杂度O(L),但在面对真实世界中较长的序列数据时由于无法固定映射矩阵而出现了性能上的退化.

潜在风险;Transformer-XL和Compressive Transformer通过利用辅助隐状态去捕捉长程依赖关系的过程中可能会导致限制1被进一步放大从而影响计算效率
所有这些工作主要集中在限制 1 上,而限制 2 和 3 在 LSTF 问题中仍未解决。
本文的贡献总结如下:
这项研究展示了Informer模型在LSTF问题上的预测能力得到了显著提升,并且成功证明了基于Transformer-like架构的模型具有潜力优势。研究表明,在处理长期依存关系时,该模型能够有效地捕捉到时间序列输入与输出之间的复杂关联。
开发了 ProbSparse 自我注意机制作为规范自注意力的有效替代方案。该机制具备了依赖对齐的算法架构,并成功实现了其对应的 O(Llog L) 时间复杂度和 O(Llog L) 内存使用特性。
该系统通过开发一种自我注意力蒸馏操作,在J层堆叠结构中优化主导注意力获取流程,并使总空间复杂度得以显著降低至O(2−...)

)Llog L),这有助于接收长序列输入。
开发出了一种生成式解码器,在单向推导过程中即可生成较长的目标序列,并成功降低了推理过程中累积误差的扩散。
LSTF 问题定义
在具有固定大小窗口的滚动预测设置下,作者在时间 t 有输入

,输出是预测相应的序列

相较于现有研究,LSTF必须预测长度更长的序列,并且不仅仅局限于单一变量的预测

编码器-解码器架构 许多流行的模型被设计为将输入

编码成隐状态序列

,之后再将

解码为

。其中,解码涉及一个名为 “动态解码” 的分步过程:
在第 k 步中,decoder会利用前一个时刻的隐状态

以及其他必要的前一时刻的输出来计算一个新的隐状态

,然后来预测当前时刻的输出

在Transformer模型中也继承了类似的动态解码机制(即在推断阶段必须执行动态解码,在训练阶段则可避免此步骤),而在本文所提出的Informer模型中同样采用了基于编码器- decoder架构的设计框架(即继承了Transformer的基本组件),但在具体实现上做出了重大调整:它放弃了传统的动态解码过程,并引入了一种生成式的统一编码机制以一次性完成整个序列的生成过程

。
方法论
现有时间序列预测方法可划分为两大类:一类是基于经典的单变量时间序列模型;另一类则是基于深度学习的方法通常采用 RNN 等变体构建编码器-解码器架构以进行预测。本文所提出的 Infor 模型在继承 LSTF 方法优势的同时也保留了传统的编码器-解码器架构。如图 2 所示将详细介绍相关内容

图 2:Informer 模型架构概述。左侧展示编码模块处理多长度序列输入(绿色线条表示输入序列)。研究团队采用基于概率稀疏机制的概率稀疏自注意力模块取代传统自注意力机制(蓝色方框标记)。右侧解码模块通过自注意力蒸馏技术提取主要注意力信息,并通过多层堆叠增强模型稳定性;同时,在解码过程中将目标区域置为零向量用于生成预测输出结果(橙色线条表示输出序列)。
基于RNN的模型主要通过其内部循环机制来学习时序数据,并对时间戳的依赖相对较少。而在Transformer架构中,则将时间戳视为局部位置信息的一种标识。相比之下,在LSTM网络中(或LSTF模型中),为了捕捉长期依赖关系,则需要引入全局的时间信息。例如,在这种架构下可采用层次化时序编码(如每周、每月、每年)以及去知性时序编码(如假日和特定时间段)等方式。为此,本文则提出了一种统一的输入表示方法

作者有第 t 个序列输入

和 p 个类型的全局时间戳,并且模型的输入维度为

,首先使用固定的位置编码 PE 来表示局部的位置信息,即:


其中,

每种类型的全局时间戳都被分配了一个可学习的时间戳embedding

每种embedding都具有确定的vocabulary size(其最大值可达60个单位),这些单位通常基于分钟划分。此外,在统一维度方面采取措施时,作者采用了卷积核宽度为3、步长为1的一维卷积网络。

映射到

维的

。最终输入到模型中的序列为:

其中,


是一个超参数,用来平衡

和位置编码以及时间戳embedding,如果输入已经被标准化,那么建议 α=1 。
高效的自注意力机制
基于Transformer模型的设计中,自注意力机制通过接受一组关键参数来进行操作.具体来说,在这一过程中,模型首先生成一组查询(Query)、键(Key)和值(Value),随后对这些特征进行缩放点积运算.

其中,

这里的 d 指输入的维度。这里使用

,

,

分别表示 Q,K,V 的第 i 行,那么第 i 个query的attention就被定义为一个概率形式的核平滑方法(kernel smoother):

其中

且

选择不对称指数核

。
首先对规范自我注意的习得注意力模式进行定性评估。“稀疏度”作为自我注意分数呈现长尾特征(如附录 C所示),即其中少数点积对主要关注产生显著影响而其他点积仅产生微小的关注强度。那么如何实现这种区分呢?第i个查询对所有键的关注程度被定义为概率

它的输出被视为其与值v的组合。由主导点积引导的关注概率分布将显著偏离均匀分布。如果

接近均匀分布

,则自注意力仅由值 V 的微不足道之和构成,并且在分析住宅输入时显得多余。此外,在分析住宅输入时,在考察分布 p 和 q 之间的相似性时会发现这一特征能够有效地区分出重要查询的具体表现形式。具体而言,在研究住宅输入时,

。删除常量,作者将第 i 个查询的稀疏度量定义为

其中,第一项是所有键上 qi 的 Log-Sum-Exp (LSE),第二项是键上的算术平均值。如果第 i 个查询获得较大的

则其注意力概率 p 更加呈现更丰富的多样性,并且很可能在长尾自注意力分布的 header 字段区域中涵盖具有主导地位的点积对。
ProbSparse 自注意力
该测量方法被提出后,在允许每个键仅处理其u个最重要的查询的情况下,ProbSparse实现了自注意力。

其中

表示该研究中的q是一个具有相同规模的稀疏矩阵,并且仅包含与稀疏度量M(q, K)相关的Top-u查询。基于固定的采样比例c进行设置。

,这使得 ProbSparse 自注意只需要为每个查询键查找计算 O(

) 点积,并且层内存使用保持 O(

)。在多头视角下,这种关注会在每个头生成独特的稀疏查询键对以规避严重信息流失。而对于测量M(qi,K)的所有查询而言,在计算每一对点积时必须遍历全部组合这将导致时间复杂度达到二次O(n^2)

除此之外,在深入分析LogSumExp(LSE)操作时发现其存在潜在数值稳定性问题。受到这一启发,在研究过程中我们开发了一种基于经验的技术,并将其应用于计算查询结果的空间稀疏程度。
引理 1.对于键集 K 中的每个查询

和

,作者的边界为


。当

时,它也成立。根据引理 1(证明在附录 D.1 中给出),作者建议最大均值测量为

Top-u 的大致范围属于命题 1 边界区域的放松状态中,并得以成立(参见附录 D.2)。在长尾分布情况下,则只需进行随机采样即可满足条件

点积对来计算

,即用零填充其他对。然后,作者从中选择稀疏 Top-u 作为 Q。

其中,在操作中,默认情况下的默认值对于零值具有一定的鲁棒性,并且整体表现出良好的数值稳定性。
通常,在实际应用中,在处理查询和键时,在输入长度上保持一致。

,使得 ProbSparse 自注意力时间复杂度和空间复杂度的总和 O(

)。

图 3展示了Informer编码器内部单个堆栈的结构。(1)其中水平方向上的堆栈代表了图 1中编码器副本中的独立单元。(2)而那个主堆栈则是接收并处理整个输入序列的核心部分。接着第二个子模块采用了输入序列的一半切片,并在此基础上构建后续的子模块结构。(3)其中红色层采用了点积矩阵机制,并通过自注意力蒸馏技术提取关键特征。从而形成了逐层递减的重要信息层级。(4)最后将各个子模块产生的特征图进行整合汇总作为编码器的整体输出结果。
编码器:允许在内存使用限制下处理更长的顺序输入
编码器负责提取长序列输入中存在的持久稳定的内部关联。随后,在完成输入表示构建后,后续将处理第 t 个时间步的序列输入

已形成矩阵

。作者在图 3 中给出了编码器的草图。
自注意力蒸馏 作为 ProbSparse 自注意力机制的自然结果,编码器的特征图具有值 V 的冗余组合。作者使用蒸馏操作来优先选择具有主导性质的优势特征,并在下一层构建一个集中的自注意力特征图。它大幅修剪了输入的时间维度,如图(3)中Attention块的n头权重矩阵(重叠的红色方块)所示。受离散卷积的启发,作者的“蒸馏”过程从第 j 层推进到第 (j + 1)层,如下所示:

其中
表示注意力块。它包含多头 ProbSparse 自注意力和基本操作,其中 Conv1d(·) 使用 ELU(·) 激活函数在时间维度上执行一维卷积滤波器(内核宽度=3)。作者添加一个步幅为 2 的最大池化层,并在堆叠层后将

下采样到其半切片中,这将整个内存使用量减少到 O((2−

)Llog L),其中

是一个小数值。为了提升提取操作的抗干扰能力, 作者建议采用减半输入的方法生成主堆栈的一个副本, 并通过逐层降维处理的方式逐步减少自注意力机制提取特征的数量, 如图2所示, 使各子网络输出保持一致的空间维度。随后, 将所有子网络的所有输出信息进行融合汇总, 最终生成编码器网络的整体隐式表示。
解码器:通过一个前向过程生成长顺序输出
在图2中展示了经典的解码器架构设计,在其核心组件中包含两个完全相同的多头注意力机制并行构成,在实际应用中为了应对长时预测带来的性能瓶颈问题,则采用了生成推理机制来提升计算效率,并将这些关键参数输入至解码器进行处理

其中

是起始标记,

是目标序列的占位标记(将标量赋值为 0)。在ProbSparse自注意力计算中应用掩蔽多头注意力以阻止每个位置关注后续的位置从而避免了自回归行为。最后一步是根据是否执行单变量预测还是多变量预测来决定输出层的规模。
生成推理

喂入生成式推理解码器。

包含目标序列的时间戳的信息,并特别关注其所在的目标周及其相关上下文。随后提出了一种基于正向过程的高效解码方案,相较于传统编码器-解码器架构中采用耗时的动态解码方法。计算效率部分给出了详细的性能比较。
损失函数 作者在预测目标序列时采用 MSE 损失函数,在解码器输出后反向传播到整个网络结构。
实验
数据集 作者对4个特定领域展开了系统性研究,并从2份基于LSTM的真实世界数据分析集中获取了相关样本以及从2份通用基准数据分析集中选取了具有代表性的样本。
ETT(变压器温度):作为电力系统长期部署的核心参数之一,在中国两个相互独立的县域中进行深入研究以获取两年的时间序列数据样本。研究者通过深入研究LSTF问题的时间粒度性构建专门的数据集分别适用于不同时间分辨率{ETTh₁ ETTh₂用于小时级别 ETTm₁用于分钟级别}每个样本都包含油温这一目标变量以及六个与电力负荷相关的特征训练、验证、测试周期分别占据了整整一年四个月与四个月的时间分布
ECL(用电负荷):它汇总了来自321个客户端的用电量(单位:kWh)。为了解决数据缺失问题,作者将数据集转换为两年内每小时的消费量,并将'MT 320'设为目标值。其中训练集占15个月、验证集占3个月、测试集占4个月。
Weather :该研究涵盖了自2010年至2013年间共计约4年的美国各地气象资料记录,并对其中约有近于千的数据点进行了细致采集。这些观测资料由包括'湿球温度'在内的单一目标值以及总共涉及的十一个气候因子构成。其中将样本划分为训练集占总样本比例的28%,验证集与测试集各占总样本比例的约十分之一。
实验细节
Baselines: 作者采用了五种时间序列预测方法用于对比分析,并具体包括ARIMA、Prophet、LSTMa、LSTMn和DeepAR等模型类型。通过进一步深入研究ProbSparse自我注意力机制在Informer框架中的表现情况,并结合当前研究进展,在实验中引入了规范化的变体Informer† 以及高效的Reformer变体,并结合了当前最相关的LogSparse自注意力机制进行验证研究。
超参数配置: Informer架构包含三个编码器堆叠块(分别处理不同比例的输入特征)及一个解码器堆叠块(处理四分之一比例的特征),同时支持两层解码过程以提升预测精度。本研究采用AdamW优化算法进行模型训练,在初始学习率为1\times 10^{-4}的基础上实施指数级衰减策略(每轮次衰减至当前值的50%),并通过适当引入早停机制以监控模型性能并限定总训练轮数为8个周期。为了保证数据预处理的有效性,在实验阶段采用了零均值归一化处理以确保数值稳定性,并将批量规模设定为32个样本/批。具体而言,在LSTF框架下逐步提升了预测窗口长度以适应不同时间序列特性的需求

包含{1天期, 2天期, 7天期, 14天期, 30天期, 40天期}, ETTm中则包含{6小时, 12小时, 24小时, 72小时, 168小时}. 指标: 主要基于以下两个关键评估标准.

和

基于多变量预测的平均值划分的每一个滑动窗口上进行处理,并采用 stride = 1 的步长进行滚动遍历整个数据集。运行环境:所有模型均在单个Nvidia V100 32GB显卡上进行训练和测试。源代码可从GitHub仓库https://github.com/zhouhaoyi/Informer2020下载获取。

表 1:四个数据集上的单变量长序列时间序列预测结果(5 个案例)

表 2:四个数据集上的多变量长序列时间序列预测结果(5 个案例)
结果和分析
表格1和表格2汇总了所有方法在4个数据集上的单变量或多变量评估结果。为了提升预测效果的需求,在每种方法中逐渐延长了预测范围。其中LSTF问题设置被精确调节以便每种方法都能更方便地在单个GPU上处理。最终的最佳结果采用了加粗显示的方式。
基于单变量时间序列的预测任务中
多变量时间序列预测 在此设置中存在一些不适合单变量方法的情况,在这种情况下LSTNet作为当前最先进的基准模型依然具有很强的表现力与适用性;相比之下作者提出的信息分解器Informer则通过微调最终的全连接层实现了从单变量到多变量预测的有效转换;从表2可以看出以下几点:(1)所提出的模型信息分解器在性能上显著优于其他现有算法并且其在单变量场景下的两项关键发现仍然适用于多维时间序列建模;(2)相比于基于循环神经网络(RNN)的LSTMa以及基于卷积神经网络(CNN)的传统LSTNet模型信息分解器不仅展现出更优的整体性能而且还实现了平均26.6%至34.3%的均方误差(MSE)降低效果;相较于单一场景下的表现信息分解器的表现提升更加显著这可能是由于其各向异性特征维度预测能力所导致的现象;此外无论是以分钟级别还是小时级别的数据进行建模信息分解器均展现出了超越传统基准模型的优势并实现了对齐过程中的最优解。

图4:Informer中三个组件的参数灵敏度
参数敏感性
作者在单变量设置下对 ETTh1 上提出的 Informer 模型进行敏感性分析。输入长度 :见图(4a) 时,当预测短序列(如 48)时,最初增加编码器/解码器的输入长度会降低性能,但进一步增加会导致 MSE 下降,因为它会带来重复的短期模式。但是,在预测长序列(如 168)时,MSE 会随着输入时间的增加而降低。因为较长的 encoder input 可能包含更多的依赖项,而较长的 decoder token 具有丰富的本地信息。采样因子 : 采样因子ProbSparse自注意力中的信息带宽。作者从小因子 (=3) 开始到大因子,总体性能略有增加,最后在图 4b 中稳定下来。它验证了作者的查询稀疏性假设,即自注意力机制中存在冗余的点积对。作者在实践中设置样本因子 c = 5 (红线)。层堆叠的组合 :层的副本与自我注意力蒸馏相辅相成,作者在图 4c 中研究了每个堆栈 {L, L/2, L/4} 的行为。较长的堆栈对输入更敏感,部分原因是接收到更多的长期信息。作者选择的方法是红线,即连接 L 和 L/4,是最稳健的策略。

表 3:ProbSparse 自我注意机制的消融研究

表 4:每层的 L 相关计算复杂度。
消融研究:Informer 的效果如何?
作者还对 ETTh1 进行了额外的实验,并考虑了消融。
在ProbSparse自注意机制性能研究中(如图1所示),作者限定问题参数设置以满足规范自注意力下的内存使用需求(如图2)。本研究中(如图3),作者将Informer与LogTrans及Reformer进行了系统对比,并深入挖掘了其极限性能表现(如图4)。为排除内存效率干扰(如图5),作者首先将关键参数设置缩减至{batch size=8, heads=8, dim=64}(如图6),并在单变量场景下维持其他配置不变(如图7)。在表3对比结果中可见(如图8),ProbSparse自我注意力机制在测试指标上优于其对照组模型(如图9)。值得注意的是(如图10),LogTrans在极端负载条件下会触发内存溢出错误(OOM),因为其公共实现采用了full-attention掩码机制(如图11),尽管其计算复杂度仍为O(N²)级别

) 内存占用率。作者提出了一种ProbSparse自注意力机制,在避免查询稀疏性假设的前提下降低了算法复杂度,并参考附录E.2中的伪代码实现以优化内存占用。

表 5:自注意力蒸馏的消融研究。

表 6:生成式解码器的消融研究。
本研究中对自注意力蒸馏性能的关注点在于对比现有方法的表现差异以及优化空间的探索。作为基准模型使用的 Informer† 通过排除 ProbSparse 的自我注意力干扰来实现对传统自我注意机制的有效替代。另一个实验条件则遵循单变量时间序列的标准设置以保证结果的一致可比性。研究表明,在引入较长序列输入后, Informer† 的性能表现显著提升, 这一发现基于表 5 所示的数据并结合了多轮实验验证的结果. 此外, 探讨长序列输入在长短时记忆网络(LSTF)问题中的应用价值, 显示出该方法在预测精度方面具有明显优势. 研究表明, 自注意力蒸馏策略能够在保留原始模型核心能力的同时显著提升预测效率, 这一发现对于希望在内存受限环境下运行复杂模型的情形具有重要的指导意义.
生成式解码器的性能 作者在研究中表明他们的解码器在获得"生成"结果方面的潜在价值。不同于现有方法,在标签和输出被迫对齐训练与推理时,作者提出的解码器的预测完全基于时间戳。时间戳可通过偏移量进行预测。根据表6的数据可知,在Informer‡中随着偏移量的增加其一般预测性能表现出一定的抵抗能力但在动态解码方面表现欠佳这表明该解码器能够有效捕获任意输出间的单个长距离依赖关系并避免错误的累积。
计算性能 在多元环境下及现有最优实现的基础上,在图(5)中我们展开了详细的运行时间评估。在训练环节中,在基于Transformer架构的方法中达到最高水平的训练性能的是Informer(以红线标记)。而在测试环节上,则我们的方法显著优于所有具备生成式解码能力的方法。表4详细列出了理论时间复杂度与内存消耗的相关数据对比结果,并证实了Informer算法性能与实际运行时测试结果的高度一致性。值得注意的是LogTrans算法着重于改进自注意力机制,在LogTrans架构下我们采用了本文提出的新解码器构建进行了公平性对比实验(表4中的相关数据)。

)。
结论
我们对长序列时间序列预测问题展开了深入研究,并提出了一种名为 Inforner 的方法来实现对该问题的有效预测。具体而言,在模型架构设计上我们进行了两项关键创新:第一,在算法层面开发出了新型的概率稀疏自注意力机制;第二,在训练策略上引入并行蒸馏技术以显著降低模型计算复杂度与内存占用需求。特别地,在编码器与解码器之间构建了一种新型的生成式解码架构,在这种架构下可以有效缓解传统编码器-解码器架构在处理长尾分布数据时所带来的性能瓶颈。通过一系列真实世界数据集的实验测试表明,在提升长期序列时间序列预测精度方面 Inforner 明显优于现有方案
[启发]
- 经过深入的数学推导和细致的数据剖析, 能够更加有效地实现模型优化
- 通过借鉴采样-筛选-计算的方法可进一步提升模型运行效能
Bib Tex
@inproceedings{zhou2021informer,
title={Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting},
author={Zhou, Haoyi and Zhang, Shanghang and Peng, Jieqi and Zhang, Shuai and Li, Jianxin and Xiong, Hui and Zhang, Wancai},
booktitle={The Thirty-Fifth AAAI Conference on Artificial Intelligence (AAAI-21)},
year={2021},
organization={Association for the Advancement of Artificial Intelligence (www.aaai.org)}
}
