Informer:最强最快序列预测神器
1个轮廓
在许多实用问题上,需要预测长序列时间序列,例如电力消耗规划。 长序列时间序列预测(LSTF )要求模型能够有效地捕捉高预测能力,即输出与输入之间的准确的长距离相关耦合。 最近的研究表明,转换器有可能提高预测能力。
但是,转换器存在:等重大问题
二级时间复杂性、高内存利用率和编码器-解码器体系结构特有的限制。
为了解决这些问题,我们设计了有效的基于转换器的LSTF模型信息器。 这有三个特点。
ProbSparse Self-Attention是通过时间复杂性和内存使用率实现的,在序列依赖对准中具有相当高的性能。
自证明提取通过将级联层的输入减半来强调控制的注意,从而有效地处理较长的输入序列。
生成式解码器在概念上很简单,但不是一步到位,而是通过一个正向操作来预测较长的时间序列,这将大大提高较长序列预测的推理速度。
在4个大数据集上的大量实验表明,信息中心的性能明显优于现有方法,为LSTF问题提供了新的解决方案。
2背景
intuition :转换器能否提高计算、内存和体系结构的效率并提高预测能力?
原始转换器问题
根据自证明二次计算的复杂性、自证明机制的操作,我们模型的时间复杂性如下:
长输入堆叠层的存储器瓶颈: j个编码器/解码器的堆叠会导致存储器的使用;
预测长输出的速度会急剧下降:动态解码会使step-by-step的inference变得非常慢。
本文的巨大贡献
本文提出的方案同时解决了上述三个问题,研究了自感知机制中的稀疏性问题。 本论文的贡献有以下几点。
我们提出Informer成功地提高了LSTF问题的预测能力,这验证了类Transformer模型的潜在价值,捕捉长序列的时序输出和输入之间的单一长期依赖性;
我们提出了ProbSparse self-attention机制,有效地替换了通常的自我证明,提出了所得时间的复杂性和内存使用率;
我们提出了自助注册操作全县,这大大降低了所需总空间的复杂性;
我们为了得到长序列的输出提出了生成式的解码器,这进一步避免了inference阶段的累计误差传播;
问题的定义
在固定大小窗口的滚动预测中,时间输入需要预测对应的输出序列,LSTF问题鼓励输出更长的输出,特征维数不再依赖于univariate示例。
编码器-解码器框架:许多常用的模型被设计为对输入表示进行编码,编码为一个隐藏状态表示,并对输出表示进行解码。 在推理过程中设计为step-by-step的过程(动态解码),解码器根据前一状态计算新的隐藏状态和第一步的输出
输入表示:为了加强时间序列输入的全局位置上下文和本地时间上下文,给出了统一的输入表示。
3方法
现有时序计划的预测大致可以分为两类。
高效的自证明机制
传统的自助注意事项主要由(query,key,value )构成,其中: 第一个注意事项定义为核平滑的概率格式。
自我证明所需的内存和二次积分计算成本是预测能力的主要缺点。
首先,对典型的自我注意的学习注意模式进行定性评价。 “稀疏性”self-attention得分形成长尾分布,即少数点积贡献主要注意力,其他点积对可以忽略。 那么,下一个问题怎么区分呢?
查询稀疏性评估
query sparsity的第一次评估定义如下:
第一个是所有keys上的log-sum-exp(LSE ),第二个是数组平均。
ProbSparse Self-attention
在其中与q同为size的稀疏矩阵,它在稀疏评价下只包含Top-u的queries,由采样因子控制。 这样,自注意只包含对各query-key lookup计算的内积,在存储器的使用中,但是,在我们计算时需要计算不正确的dot-product。 即,同时LSE会带来潜在的数值问题。 受此影响,本文提出了query sparsity评价的近似,即:
由此,可以降低时间和空间的复杂性
4方法编码器
+ Decoder
1. Encoder: Allowing for processing longer sequential inputs under the memory usage limitation
encoder被设计用来抽取鲁棒的长序列输入的long-range依赖,在第个序列输入被转为矩阵
Self-attention Distilling
作为ProbSparse Self-attention的自然结果,encoder的特征映射会带来值的冗余组合,利用distilling对具有支配特征的优势特征进行特权化,并在下一层生成focus self-attention特征映射。
它对输入的时间维度进行了锐利的修剪,如上图所示,n个头部权重矩阵(重叠的红色方块)。受扩展卷积的启发,我们的“distilling”过程从第j层往推进:
其中包含Multi-Head ProbSparse self-attention以及重要的attention block的操作。
为了增强distilling操作的鲁棒性,我们构建了halving replicas,并通过一次删除一层(如上图)来逐步减少自关注提取层的数量,从而使它们的输出维度对齐。因此,我们将所有堆栈的输出串联起来,并得到encoder的最终隐藏表示。
2. Decoder: Generating long sequential outputs through one forward procedure
此处使用标准的decoder结构,由2个一样的multihead attention层,但是,生成的inference被用来缓解速度瓶颈,我们使用下面的向量喂入decoder:
其中,是start tocken, ~~是一个placeholder,将Masked multi-head attention应用于ProbSparse self-attention,将mask的点积设置为。它可以防止每个位置都关注未来的位置,从而避免了自回归。一个完全连接的层获得最终的输出,它的超大小取决于我们是在执行单变量预测还是在执行多变量预测。
Generative Inference
我们从长序列中采样一个,这是在输出序列之前的slice。
以图中预测168个点为例(7天温度预测),我们将目标序列已知的前5天的值作为“start token”,并将
包含目标序列的时间戳,即目标周的上下文。注意,我们提出的decoder通过一个前向过程预测所有输出,并且不存在耗时的“dynamic decoding”。
Loss Function
此处选用MSE 损失函数作为最终的Loss。
5 实验
1. 实验效果
从上表中,我们发现:
所提出的模型Informer极大地提高了所有数据集的推理效果(最后一列的获胜计数),并且在不断增长的预测范围内,它们的预测误差平稳而缓慢地上升。
query sparsity假设在很多数据集上是成立的;
Informer在很多数据集上远好于LSTM和ERNN
2. 参数敏感性
从上图中,我们发现:
Input Length:当预测短序列(如48)时,最初增加编码器/解码器的输入长度会降低性能,但进一步增加会导致MSE下降,因为它会带来重复的短期模式。然而,在预测中,输入时间越长,平均误差越低:信息者的参数敏感性。长序列(如168)。因为较长的编码器输入可能包含更多的依赖项;
Sampling Factor:我们验证了冗余点积的查询稀疏性假设;实践中,我们把sample factor设置为5即可,即;
Number of Layer Stacking:Longer stack对输入更敏感,部分原因是接收到的长期信息较多
3. 解耦实验
从上表中我们发现,
ProbSparse self-attention机制的效果:ProbSparse self-attention的效果更好,而且可以节省很多内存消耗;
self-attention distilling:是值得使用的,尤其是对长序列进行预测的时候;
generative stype decoderL:它证明了decoder能够捕获任意输出之间的长依赖关系,避免了误差的积累;
4. 计算高效性
在训练阶段,在基于Transformer的方法中,Informer获得了最佳的训练效率。
在测试阶段,我们的方法比其他生成式decoder方法要快得多。
6 小结
本文研究了长序列时间序列预测问题,提出了长序列预测的Informer方法。具体地:
设计了ProbSparse self-attention和提取操作来处理vanilla Transformer中二次时间复杂度和二次内存使用的挑战。
generative decoder缓解了传统编解码结构的局限性。
通过对真实数据的实验,验证了Informer对提高预测能力的有效性
参考文献:
Informer: wzdlq Efficient Transformer for Long Sequence Time-Series Forecasting:https://arxiv.org/pdf/2012.07436.pdf
飞艇如何买前5后5含目标序列的时间戳,即目标周的上下文。注意,我们提出的decoder通过一个前向过程预测所有输出,并且不存在耗时的“dynamic decoding”。
Loss Function
此处选用MSE 损失函数作为最终的Loss。
5 实验
1. 实验效果
从上表中,我们发现:
所提出的模型Informer极大地提高了所有数据集的推理效果(最后一列的获胜计数),并且在不断增长的预测范围内,它们的预测误差平稳而缓慢地上升。
query sparsity假设在很多数据集上是成立的;
Informer在很多数据集上远好于LSTM和ERNN
2. 参数敏感性
从上图中,我们发现:
Input Length:当预测短序列(如48)时,最初增加编码器/解码器的输入长度会降低性能,但进一步增加会导致MSE下降,因为它会带来重复的短期模式。然而,在预测中,输入时间越长,平均误差越低:信息者的参数敏感性。长序列(如168)。因为较长的编码器输入可能包含更多的依赖项;
Sampling Factor:我们验证了冗余点积的查询稀疏性假设;实践中,我们把sample factor设置为5即可,即;
Number of Layer Stacking:Longer stack对输入更敏感,部分原因是接收到的长期信息较多
3. 解耦实验
从上表中我们发现,
ProbSparse self-attention机制的效果:ProbSparse self-attention的效果更好,而且可以节省很多内存消耗;
self-attention distilling:是值得使用的,尤其是对长序列进行预测的时候;
generative stype decoderL:它证明了decoder能够捕获任意输出之间的长依赖关系,避免了误差的积累;
4. 计算高效性
在训练阶段,在基于Transformer的方法中,Informer获得了最佳的训练效率。
在测试阶段,我们的方法比其他生成式decoder方法要快得多。
6 小结
本文研究了长序列时间序列预测问题,提出了长序列预测的Informer方法。具体地:
设计了ProbSparse self-attention和提取操作来处理vanilla Transformer中二次时间复杂度和二次内存使用的挑战。
generative decoder缓解了传统编解码结构的局限性。
通过对真实数据的实验,验证了Informer对提高预测能力的有效性
参考文献:
Informer: wzdlq Efficient Transformer for Long Sequence Time-Series Forecasting:https://arxiv.org/pdf/2012.07436.pdf