【时序】Informer:对长序列预测更高效的Transformer

2022-04-21 00:00:00 序列 复杂度 预测 分布 关注


论文:AAAI2021 | Informer: Beyond efficient transformer for long sequence time-series forecasting [1]

作者:Zhou H, Zhang S, Peng J, et al.

机构:北航、UC伯克利、Rutgers大学等

录播:https://www.bilibili.com/video/BV1RB4y1m714?spm_id_from=333.999.0.0

代码:https://github.com/zhouhaoyi/Informer2020

引用量:162

Informer是AAAI2021的佳论文,主要是针对长时序预测任务(Long sequence time-series forecasting,LSTF),改进了Transformer。


一、历史瓶颈

图1展示了电力转换站的小时级温度预测,其中短期预测是0.5天(12个点),而长期预测是20天,480个点,其中当预测长度大于48个点时,整体表现会有明显的差异,LSTM的MSE和推理速度都在往很坏的方向发展。

图1:LSTM在不同预测长度上性能和准确性的分析


为了满足LSTF的挑战,模型需要有:能够有效地捕捉长序列输入和输出的相互依赖性。近,Transformer在捕捉长期依赖性上,明显比RNN有着卓越的表现。但存在以下瓶颈:

1. 自关注机制的二次计算复杂度高:自关注机制的算子,即点积,导致时间复杂度和每层内存消耗量为  ;

2. 长序列输入下堆叠层的内存瓶颈:堆叠J层encoder/decoder层让内存使用率为  ,限制模型去接受更长的输入;

3. 预测长输出时推理速度慢:原始Transformer是动态解码,步进式推理很慢。


二、论文贡献

本文贡献如下:

1. 提出informer,能成功提高在LSTF问题上的预测能力,验证了Transformer模型的潜在价值,能捕获长序列时间序列输出和输入之间的个体长期相关性;

2. 提出ProbSparse自相关机制,使时间复杂度和内存使用率达到  ;

3. 提出自相关蒸馏操作,在J个堆叠层上突出关注分高的特征,并极大减少空间复杂度到  ,这帮助模型接收长序列输入;

4. 提出生成式decoder,直接一次性多步预测,避免了单步预测产生的误差累积。


三、网络结构

Informer的网络结构示意图如下:

图2:网络结构示意图


在图2中:

 左边:encoder接收大量长序列输入(绿色),Encoder里ProbSparse自关注替换了原自关注模块,蓝色梯形是自关注蒸馏操作,用于抽取主要关注,减少网络尺寸。堆叠层是用于增加鲁棒性。

 右边:decoder接收长序列输入,用0填充预测部分的序列。它衡量特征map上加权关注成分,然后生成式预测橙色部分的输出序列。


1. ProbSparse Self-attention

ProbSparse Self-attention是Informer的核心创新点,我们都知道Transformer里,自关注是有query, key和value组成:

  

   能帮助拥有更稳定的梯度,这也可以是其它可能值,但这个是默认的,Transformer作者是担心对于大的Key向量维度会导致点乘结果变得很大,将softmax函数推向得到极小梯度的方向,因此才将分数除以Key向量维度开方值。关于Transformer模型,可以阅读我的历史文章[2]。另外,  是非对称指数核函数  。


但Transformer中attention分数是很稀疏的,呈长尾分布,只有少数是对模型有帮助的。

图3:在ETTh1数据集上,4层原Transformer的自关注的softmax分数分布


作者在文中提到:如果存在核心attention的点积pairs,那query的关注概率分布便会远离均匀分布。意思是说:如果  接近于平均分布  ,说明该输入V没什么值得关注的地方,因此衡量  的分布p和分布q(即均匀分布  )之间的差异,能帮助我们判断query的重要性,而KL散度便是衡量分布是否一致的一种方式(论文省略了一些推导过程,但好在身边有同事帮忙推导出来了,tql):

公式(6)中项是Log-Sum-Exp(LSE),第二项是算术平均数,散度越大,概率分布越多样化,越可能存在关注重点。但上述公式会有两个问题:

 点积对的计算复杂度是  ;

 LSE计算存在数值不稳定的风险,因为形式下,可能会数据溢出报错。


为了解决这两个问题,作者分别采取以下手段:

 随机采样  个点积对计算  ;

 用  替换  (推导过程见论文附录);


2. Encoder

Informer Encoder结构如下:

图4:Encoder网络结构


Encoder的作用是Self-attention Distilling,由于ProbSparse自相关机制会带来冗余的V值组合,所以作者在设计Encoder时,采用蒸馏的操作不断抽取重点特征,从而得到值得重点关注的特征图。我们能从图4看到每个Attention Block内有n个头权重矩阵,整个Encoder可以由下面的公式所概况:   代表Attention Block,包括多头ProbSparse自相关,  是1D-CNN(kernel width=3),  是一种激活函数,外面套了max-pooling层(stride=2),每次会下采样一半。这便节省了内存占用率。


3. Decoder

Decoder如图2所示,由2层相同的多头关注层堆叠而成,Decoder的输入如下:   是开始token,  是用0填充预测序列。在使用ProbSparse自相关计算时,会把masked的点积对设为负无穷,这样阻止它们参与决策,避免自相关。后一层是全连接层,用于终的输出。


四、实验结果

在4个数据集上,单变量长序列时序预测结果:

图5:单变量长序列时序预测结果(4个数据集)


Informer在3种变量下,的参数敏感度:

图6:Informer的参数敏感度(3种变量)


ProbSparse自相关机制的消融实验:

图7:ProbSparse自相关机制的消融实验


每层的复杂度:

图8:各模型复杂度对比


自关注蒸馏的消融实验:

图9:自关注蒸馏的消融实验


生成式decoder的消融实验:

图10:生成式decoder的消融实验


训练和测试阶段的运行时间:

图11:训练和测试阶段的运行时间


五、总结

总的来说,Informer的亮点在于ProbSparse Self-attention和Encoder with Self-attention Distilling。前者采样点积对,减少Transformer的计算复杂度,让其能接受更长的输入。后者采用蒸馏的概念设计Encoder,让模型不断提取重点关注特征向量,同时减少内存占用。


据身边同事反馈,Informer的效果没有我们想象中那么好,也建议大家可以多试试。


参考资料

[1] Zhou, H., Zhang, S., Peng, J., Zhang, S., Li, J., Xiong, H., & Zhang, W. (2021, February). Informer: Beyond efficient transformer for long sequence time-series forecasting. In *Proceedings of AAAI.*

[2] 【务实基础】Transformer  - 宅码

相关文章