Informer:最强最快的序列预测神器
01
简介
在很多实际应用问题中,我们需要对长序列时间序列进行预测,例如用电使用规划。长序列时间序列预测(LSTF)要求模型具有很高的预测能力,即能够有效地捕捉输出和输入之间精确的长程相关性耦合。最近的研究表明,Transformer具有提高预测能力的潜力。
然而,Transformer存在一些严重的问题,如:
为了解决这些问题,我们设计了一个有效的基于变换器的LSTF模型Informer,它具有三个显著的特点:
在四个大规模数据集上的大量实验表明,Informer的性能明显优于现有的方法,为LSTF问题提供了一种新的解决方案。
02
背景
原始Transformer的问题
本文的重大贡献
本文提出的方案同时解决了上面的三个问题,我们研究了在self-attention机制中的稀疏性问题,本文的贡献有如下几点:
问题定义
在固定size的窗口下的rolling预测中,我们在时刻 的输入为,我们需要预测对应的输出序列,LSTF问题鼓励输出一个更长的输出,特征维度不再依赖于univariate例子( ).
Encoder-decoder框架:许多流行的模型被设计对输入表示 进行编码,将 编码为一个隐藏状态表示 并且将输出的表示 解码.在推理的过程中设计到step-by-step的过程(dynamic decoding),decoder从前一个状态 计算一个新的隐藏状态 以及第 步的输出,然后对 个序列进行预测 ;
输入表示:为了增强时间序列输入的全局位置上下文和局部时间上下文,给出了统一的输入表示。
03
方法
现有时序方案预测可以被大致分为两类:
高效的Self-Attention机制
传统的self-attention主要由(query,key,value)组成,,其中;第 个attention被定义为核平滑的概率形式:
self-attention需要 的内存以及二次的点积计算代价,这是预测能力的主要缺点。
我们首先对典型自我注意的学习注意模式进行定性评估。“稀疏性” self-attention得分形成长尾分布,即少数点积对主要注意有贡献,其他点积对可以忽略。那么,下一个问题是如何区分它们?
Query Sparsity评估
我们定义第 个query sparsity第评估为:
第一项是 在所有keys的Log-Sum-Exp(LSE),第二项是arithmetic均值。
其中 是和q相同size的稀疏矩阵,它仅包含稀疏评估下 下Top-u的queries,由采样factor 所控制,我们令 , 这么做self-attention对于每个query-key lookup就只需要计算 的内积,内存的使用包含 ,但是我们计算 的时候需要计算没对的dot-product,即, ,同时LSE还会带来潜在的数值问题,受此影响,本文提出了query sparsity 评估的近似,即:
这么做可以将时间和空间复杂度控制到
04
方法Encoder + Decoder
encoder被设计用来抽取鲁棒的长序列输入的long-range依赖,在第 个序列输入 被转为矩阵
作为ProbSparse Self-attention的自然结果,encoder的特征映射会带来 值的冗余组合,利用distilling对具有支配特征的优势特征进行特权化,并在下一层生成focus self-attention特征映射。
它对输入的时间维度进行了锐利的修剪,如上图所示,n个头部权重矩阵(重叠的红色方块)。受扩展卷积的启发,我们的“distilling”过程从第j层往 推进:
其中 包含Multi-Head ProbSparse self-attention以及重要的attention block的操作。
为了增强distilling操作的鲁棒性,我们构建了halving replicas,并通过一次删除一层(如上图)来逐步减少自关注提取层的数量,从而使它们的输出维度对齐。因此,我们将所有堆栈的输出串联起来,并得到encoder的最终隐藏表示。
此处使用标准的decoder结构,由2个一样的multihead attention层,但是,生成的inference被用来缓解速度瓶颈,我们使用下面的向量喂入decoder:
其中,是start tocken, ~~是一个placeholder,将Masked multi-head attention应用于ProbSparse self-attention,将mask的点积设置为 。它可以防止每个位置都关注未来的位置,从而避免了自回归。一个完全连接的层获得最终的输出,它的超大小取决于我们是在执行单变量预测还是在执行多变量预测。
我们从长序列中采样一个 ,这是在输出序列之前的slice。
以图中预测168个点为例(7天温度预测),我们将目标序列已知的前5天的值作为“start token”,并将 输入生成式推理解码器。
包含目标序列的时间戳,即目标周的上下文。注意,我们提出的decoder通过一个前向过程预测所有输出,并且不存在耗时的“dynamic decoding”。
此处选用MSE 损失函数作为最终的Loss。
05
实验
从上表中,我们发现:
从上图中,我们发现:
从上表中我们发现,
06
小结
本文研究了长序列时间序列预测问题,提出了长序列预测的Informer方法。具体地:
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方"AINLP",进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
推荐阅读
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏