Transformer模型,即《Attention is All your Need》这一大作自从被提出以来,已经成为自然语言处理(NLP)和计算机视觉等领域的核心架构(详见 https://blog.csdn.net/burstone/article/details/143135395 )。然而,由于其对计算和存储的高要求,对于长序列的处理存在很大的性能开销。本文介绍另外一种加速方法:Informer,它是荣获AAAI 2020 Best Paper的论文《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》。该文章设计了一个高效的基于Transformer的LSTF模型,命名为Informer,该模型的主要贡献有如下三点:
- 加速1:提出的ProbSparse机制,时间复杂度O(LlogL),内存复杂度O(LlogL),其中L为序列长度。比典型的transformer中attention的O(L^2)的复杂度大大降低;并在序列依赖对齐方面具有相当的性能。
- 加速2:提出的Self-Attention Distilling,总间复杂度降低到O((2 - ε)L*log L),易于处理长序列。
- 加速3:提出生成式解码器(generative style decoder)来线上预测,而不是一步一步的预测,大大提高了长序列预测的推理速度。
具体地,该模型通过以下几种方式来加速长序列时间序列预测(LSTF):
- ProbSparse自注意力机制:
Informer模型提出了ProbSparse自注意力机制,这种机制通过概率方法选择最重要的一部分注意力权重进行计算,而忽略那些对结果影响较小的权重。这种方法能够显著降低计算复杂度,同时保持较高的模型性能。具体如下:
a. 计算Query和Key的点积:首先计算每个Query(Q)和所有Key(K)的点积,得到注意力得分。
b. 稀疏度衡量:通过概率方法选择最重要的一部分注意力权重进行计算,忽略那些对结果影响较小的权重。
c. Softmax函数:对筛选后的注意力得分应用Softmax函数,得到最终的注意力权重。
d. 加权求和:使用注意力权重对Value(V)进行加权求和,得到最终的输出。
下面,举例来解释Informer模型中的ProbSparse自注意机制如何加速长序列时间序列预测(LSTF):
假设有一个电力消耗数据集,需要预测未来168小时的电力消耗情况,给定过去72小时的电力消耗数据。若输入序列长度为96(例如,96小时的电力消耗数据):
- 随机选取25个关键时间点(k)。
- 计算每个时间点(q)与这25个关键时间点的内积,得到25个得分。
- 对每个时间点,选取得分最高的与均值的差异。
- 从96个时间点中选出差异前25大的时间点。
- 其他时间点使用值向量的平均值代替。
因而,通过这种方式,Informer模型能够有效地处理长序列时间序列数据,同时保持较高的预测性能和较低的计算复杂度。
-
自注意力蒸馏操作:
Informer模型在J-Stacking Layers中控制attention scores的Self-Attention Distilling操作权限,并将总空间复杂度降低到O((2 - ε)L*log L)。这种操作通过减半级联层输入来突出主导注意力,有效处理极长输入序列。 -
生成式解码器:
Informer模型提出了一个生成式解码器,与概念上简单的逐步解码(step-by-step)不同,生成式解码器可以在一个前向操作中预测长序列输出,而不是逐步预测。这种方法极大地提高了长序列预测的推理速度。 -
编码器-解码器架构的改进:
Informer模型通过改进传统的编码器-解码器架构,解决了原始Transformer在处理长序列时的固有限制,包括二次时间复杂度和高内存使用问题。 -
多组件嵌入定义:
Informer模型利用三组件方法定义其嵌入,包括从卷积网络获得的编码自回归特征、从谐波函数派生的窗口相对位置嵌入,以及从日历特征获得的绝对位置嵌入。
通过上述这些方法,Informer模型不仅提高了长序列时间序列预测的效率,还保持了模型的预测能力,使其在实际应用中,因其在处理长序列时间序列预测问题中的高效性能,被应用于很有众多的领域:(1)金融方面:预测股票价格和市场趋势。(2)气象方面:天气变化预测,如温度、降水量等。(3)交通流量:预测不同时间段的交通流量。
标签:Transformer,预测,简介,模型,注意力,复杂度,序列,InFormer,Informer From: https://blog.csdn.net/burstone/article/details/143496311