2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

  • 1. 相关背景
  • 2. 主要问题
    • 2.1 ProbSparse Self-attention
    • 2.2 Self-attention Distilling
    • 2.3 Generative Inference
  • 3. 实验结果
    • 3.1 数据集
    • 3.2 单变量长序列时间序列预测实验结果
    • 3.3 多变量长序列时间序列预测实验结果
    • 3.4 实验结果可视化

1. 相关背景

2021 AAAI Best Paper Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting。第一作者为来自北航的Haoyi Zhou,由北航、UC伯克利、 罗格斯大学以及北京国网富达公司共同协作完成。本文设计了一种专为LSTF (长序列时间序列预测)设计的基于Transformer模型 Informer,来解决Transformer在应用于LSTF时存在一些严重的问题。比如二次时间复杂度、较高的内存使用量和编解码器结构的固有限制等。Informer具有三个显著特点:采用ProbSparse自关注机制、自注意力提炼、生成式解码器。
2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第1张图片
时间序列预测简单地说就是根据一段时间的历史序列数据,掌握其中的变化规律,进而去预测未来的数据变化趋势。
时间序列预测(Time-Series Forecasting)任务在工业界应用场景较多,比如银行的交易量预测、电力系统的用电量预测、云服务的访问量预测,如果能提前预测到未来一段时间内的访问量/用电量,就可以提前进行资源部署,防止访问量过大耗尽现有计算资源,拖垮服务。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第2张图片
时间序列预测按时间跨度可以分为两种,一种是对未来较近期的预测,如第一张图所示,第二种是粗粒度预测,能对未来一长段时间的趋势进行预测,但是其精度不足以进行较为精准的预测,为了能够同时在保持精度的前提下预测较长一段时间的变化趋势,这是这篇文章主要研究的问题,叫做长时间序列预测

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第3张图片
在Transformer出现之前,用于解决这类问题的方法一般都是RNN以及各种基于RNN的变种模型,但是效果在长序列上一直不理想,原因是RNN在长序列上容易出现梯度消失或梯度爆炸的问题。这里给出了一个用的比较多的RNN变种模型LSTM,可以看到随着序列长度的增加,模型的MSE也在快速增加,同时由于LSTM对内存的压力导致其Inference的速度也呈指数下降。可以看到右边的坐标轴是log形式的,所以均方误差增大的速度其实要比看上去快得多。

2. 主要问题

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第4张图片
由于Transformer在NLP中对于处理文本内容有着非常好的效果,且文本也是一种序列,因此一个自然的想法就是将其应用在长序列问题上。和其它方法相比,Transformer最突出的优点就是它的路径距离为O(1),路径可以简单理解为输出与输入之间要经历多少个计算的单元。一般来说路径越短,在反向传播中保留的信息越多,也就是说Transformer能够在时间轴上最大程度的保留序列的时间信息。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第5张图片
但是直接地将Transformer应用在长时间序列问题上并不可行,作者在文中总结了Transformer的三个主要问题。

  • 第一点就是Transformer中自注意力的计算复杂度为O(L^2),并且自注意力的计算为原子操作,是不能避免的。
  • 第二点是长序列输入容易导致内存不存的情况,所以限制了序列的最大输入长度。
  • 第三点是预测长序列的速度会迅速下降,因为原始的Transformer的预测是动态输出,也就是上一次的decoder的output作为下一个encoder的input,然后再去输出output,这就导致每个输出都需要等待上一个的输出结果。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第6张图片对于这三个问题,作者提出了基于Transformer的Informer模型来解决这三个问题。针对每个问题,对Transformer进行了一些改动。

2.1 ProbSparse Self-attention

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第7张图片
作者提出了ProbSparse Self-attention来对计算效率进行优化。在此之前已经有很多的研究工作来优化self-attention的O(L^2)问题,图中就有十几种优化Transformer的方法,但是Informer作者指出,虽然已经有很多优化self-attention的工作,但是他们:缺少理论分析,很多对Transformer的优化仅仅是实践效果上的优化,并没有理论支撑;对于multi-head self-attention,每个head都采取相同的优化策略,这就导致优化效果有限。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第8张图片
作者通过将self-attention中的点积结果进行可视化分析,发现服从长尾分布,也就是少数的几个query和key的点积计算结果主导了softmax后的分布,这种稀疏性分布是有现实含义的:序列中的某个元素一般只会和少数几个元素具有较高的相似性/关联性。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第9张图片
每个query和序列中所有key点积后,经过softmax得到的离散分布是不同的,如果一个query得到的分布类似均匀分布,可想而知,每个概率值都趋近于1/L,在长尾分布中属于尾部,这样的query不会提供什么价值,不是我们想要的。反之,如果一个query得到的分布和均匀分布差异很大,则必然有几个概率值很大,这些大概率值主导了概率分布,在self-attention中是非常重要的,所以这样的query才是我们想要的。
作者提出的ProbSparse self-attention的核心思想就是找到这些重要的/稀疏的query,从而只计算这些query的attention值,来优化计算效率。
接下来的问题是怎么找到这些重要、稀疏的query。很显然,这种query的分布显然和一般的、接近均匀分布的query有明显的区别,因此,作者定义了query稀疏性的准则,根据query的分布和均匀分布之间的KL散度来区分出代表性query,显然KL散度越大,query越具有代表性。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第10张图片
这里给query稀疏性的公式定义及推导。其中A(qi,k,v)是序列的第i个q的attention得分,p(kj,qi)是对于qi的第j个k的概率得分,联合p和f来看其实就是对qi的计算结果进行了一次softmax。
然后计算p和q分布的KL散度,经过一系列化简得到这个形式,其中lnL是常数项可以去掉,就得到了M,query的稀疏性得分。
但是,我们不可能为每个query都计算下稀疏性得分。这样不但没有优化效率,还带来了额外的计算量。
作者利用点积结果服从长尾分布的假设,提出在计算每个query稀疏性得分时,只需要和采样出的部分key计算就可以了。

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第11张图片
这里是在实际代码实现的计算过程。

2.2 Self-attention Distilling

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第12张图片
针对第二个内存占用量高的问题,作者提出了自注意力蒸馏,具体做法其实就是让输入序列进行一维卷积,然后再经过最大池化,来缩短序列的长度。这里能缩短序列的长度而不用担心信息的损失,是因为随着Encoder层数的加深,序列中每个位置的输出已经包含了序列中其他元素的信息(self-attention的本职工作),因此我们可以缩短输入序列的长度。

2.3 Generative Inference

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第13张图片
针对第三个问题,作者提出了生成式的输出。
作者将Decoder的输入分为两部分:待预测时间点前的一段已知序列,比如预测下一周的天气,则把这周的天气也作为Decoder输入一部分,以及待预测序列的placeholder序列。
其次,除了将时间序列值作为输入,以及位置向量,还增加了每个时间点的时间信息。
这样,经过Decoder后,每个placeholder(待预测位置)都有一个向量,然后输入到一个全连接层得到预测结果。

3. 实验结果

3.1 数据集

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第14张图片

3.2 单变量长序列时间序列预测实验结果

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第15张图片

3.3 多变量长序列时间序列预测实验结果

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第16张图片

3.4 实验结果可视化

2021.06.16组会汇报 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting_第17张图片

你可能感兴趣的:(时间序列预测,机器学习,深度学习,自然语言处理,算法,数据挖掘)