赞
踩
原文地址:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting, AAAI2021
源码地址:https://github.com/zhouhaoyi/Informer2020
长序列时间序列预测(LSTF)要求该模型具有较高的预测能力,即能够有效地捕获输出和输入之间精确的长距离依赖耦合的能力。时间序列预测 (Time-Series Forecasting) 任务在工业界应用场景还是挺多的,比如银行的交易量预测、电力系统的用电量预测、云服务的访问量预测,如果能提前预测到未来一段时间内的访问量/用电量,就可以提前进行资源部署,防止访问量过大耗尽现有计算资源,拖垮服务。当然大家最喜闻乐见的估计还是股票预测。
预测明天一天的访问量并不难,我们可以假设局部平滑,利用今天和前几天的数据就能保证一定的准确性,但是如果要预测未来一个月的访问量,任务的难度就大大不同了。也就是随着预测序列长度增加,预测难度越来越高,本文就是针对长序列预测的,也就是Long sequence time-series forecasting,以下简称LSTF。
LSTF由于预测序列很长,所以模型需要具有较强的解决长距离依赖(long-range dependency)问题的能力,作者想到了最近几年在NLP领域大杀特杀的Transformer模型,在Informer之前,已经有很多工作将Transformer应用到时间序列任务了。然而,Transformer存在一些严重的问题。
自我注意的二次计算(The quadratic computation of self-attention)。自注意机制的原子操作,即标准的点积,导致每层的时间复杂度和内存使用量为 O ( L 2 ) O\left ( L^{2} \right ) O(L2)。
长输入堆叠层的内存瓶颈(The memory bottleneck in stacking layers for long inputs)。编码器/解码器层的堆栈使总内存使用量为 O ( J ∗ L 2 ) O\left ( J\ast L^{2} \right ) O(J∗L2),这限制了模型在接收长序列输入时的可伸缩性。
在预测长期输出时的速度下降(The speed plunge in predicting long outputs)。普通transformer的动态解码使得一步一步的推理与基于RNN的模型一样慢。
Informer 创新点介绍:
现有很多研究是针对self-attention的O(L2)二次复杂度问题,详细可以看这一篇综述。包含了十几种优化self-attention计算效率的结构。
Efficient Transformers: A Survey
而在Informer中的ProbSparse self-attention,作者提到,虽然已经有很多优化self-attention的工作,但是他们:
作者的insight是,如果将self-attention中的点积结果进行可视化分析,会发现服从长尾分布,在Appendix C The long tail distribution in self-attention feature map中:
上图描述:在ETTh1数据集上训练的4层标准的self-attention Transformer的Softmax自我得分。
也就是少数的几个query和key的点积计算结果主导了softmax后的分布,这种稀疏性分布是有现实含义的:序列中的某个元素一般只会和少数几个元素具有较高的相似性/关联性。ProbSparse self-attention的核心思想就是找到这些重要的/稀疏的query,从而只计算这些query的attention值,来优化计算效率。
流程可以表述为:(整体的时间复杂度为 O(L*lnL))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。