赞
踩
论文: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.*
推荐阅读:
公众号:AI蜗牛车
保持谦逊、保持自律、保持进步
发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记
发送【AI四大名著】获取四本经典AI电子书
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。