文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

本文是对《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》一文的浅显翻译与理解,如有侵权即刻删除。

更多相关文章,请移步:
文献阅读总结:图神经网络

文章目录

Title

《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》

——AAAI2021

Author: 周号益

总结

作者演讲视频:https://www.bilibili.com/video/BV1Ky4y1b7KS

文章认为当前在长序列预测问题上,以transformer为例,存在着以下的三个不足:

(1)注意力机制的时间复杂度过高;(2)输入过长无法多层堆叠;(3)输出过长无法快速预测。

针对这三个问题,文章提出了Informer算法,分别给出了三个解决方法:

(1)将注意力Q和K的计算转变为概率问题,通过实际权重与均值权重的KL散度,来只取top-K个位置的数据进行计算;(2)使用注意力蒸馏方法,每层对整个输入矩阵进行折叠减半,堆叠多层后输入规模变小;(3)文章在进行输入时,就将需要预测的数据位置预先保留,与用来预测的数据拼接成一个长向量,这样在输出之后,对应位置直接就是用来预测的向量,而不需要再次计算。

1 问题定义

对于长序列预测问题,事实上是给出前一时段的历史数据,用来预测未来时段的可能结果,输入为:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
输出形式为:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
在具体实现过程中,文章使用了编码解码器结构,将输入通过多层编码为隐藏向量,再进行解码得到输出。

2 概率化注意力机制

对原始的注意力机制而言,是通过计算Q和K得到权重,但往往有时间复杂度较高的问题。在此,文章将注意力机制视为一个概率问题,只取top-K个位置上的结果:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

因而,对其中的每个概率p,代表的即为某个位置上的权重值。理论情况下,各个位置上的权重应当是相同的,即为均值概率:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

当一个位置上的实际概率与均值概率相差越远,说明该位置在整个序列中越突出,越有可能是对注意力权重贡献较大的位置。文章使用KL散度来计算这种差距,具体地:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

在舍弃常数值后,可简化为:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

通过这种方法,能够得到每个位置对应的KL散度,该值越大,说明该位置越突出。文章认为,往往只有小部分位置贡献出了大部分的注意力权重,其实际分布如下:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

因此,为减少时间复杂度,文章只取top-K个位置的实际数据来进行学习。然而,在这种情况下,对于KL散度的计算仍然较为复杂,因此,文章给出定理和证明,限定了KL散度的上下界,从而将其优化:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

与上式的KL散度计算方法相比,两公式的前一部分是不同的,在此只需要计算最大qk结果与均值概率的差距,从而减小了计算复杂度。

3 注意力蒸馏编码

对于当前序列预测数据输入过长,无法实现多层堆叠的问题,文章采用注意力蒸馏的方法来解决。具体地,针对输入的矩阵,文章在每一层对其进行折叠减半,从而减少输入的规模大小:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

具体公式如下:

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

这样通过多层蒸馏,对于最终得到的特征映射规模就大大降低。

4 生成式解码

文章使用了Transformer中经典的动态解码器,但这种解码方式想要得到预测结果,需要每一位通过前一位置进行计算,对于长序列预测并不容易。因此,文章在进行解码前,就为需要预测的序列长度留下位置。

文献阅读(45)AAAI2021-Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

X_token是用来预测的历史数据,X_0是对未来的预测结果,在喂入解码器之前,文章就将两个向量进行拼接,预先流出了预测结果的序列位置并置0。这样在解码完成后,其对应位置直接就是需要的预测结果,而不用再进行其他计算。

上一篇:信息熵、交叉熵、KL散度等等


下一篇:神经网络中的KL散度,以及对于StackGAN++中的CA的理解