时间序列预测:舍弃LSTM使用Informer

论文信息:

题目:Informer: Beyond Effificient Transformer for Long Sequence Time-Series Forecasting

时间:2021 会议:The Thirty-Fifth AAAI Conference on Artificial Intelligence (AAAI-21) 最佳论文

知识回顾:

LSTM缺点

 

  • 在长序列预测过程中,如果序列越长,那么速度会越慢,同时,效果也会越差。
  • 更加难以收敛,无论是LSTM还是RNN,其使用的都是反向传播算法计算损失函数来进行优化,序列越长,那么求梯度也就会越困难,即越难收敛,从而会使效果变差。
  • 梯度消失(Vanishing)

  • 梯度爆炸(Exploding)

Transformer


 

 Transformer 模型的架构就是一个 seq2seq 架构,由多个 Encoder Decoder 堆叠而成

 

Transformer架构的优势与问题
1.万能模型,直接套用,代码实现简单,现成例子一大片
⒉并行的,比LSTM快,全局信息丰富,注意力机制效果好
3.长序列中attention需要每一个点跟其他点计算(如果序列太长,效率很低)
4.Decoder输出挺墨迹的,要基于上一个预测结果来推断当前的预测结果

Informer

要解决的三大问题

  1. Attention要算的更快
  2. Decoder要一次性输出所有预测
  3. 堆叠encoder也得要更快

论文的三大核心模块

用Transformer结构,有几个问题需要解决:

  • self-attention的时间和空间复杂度
  • encoder-decoder结构在解码时step-by-step,预测序列越长,预测时间也就越长

针对上面两个问题,Informer在Transformer基础上提出了三点改进:

  • 提出了ProbSparse self-attention机制
  • 提出了self-attention distilling来缩短每一层的输入序列长度,序列长度短了,计算量和存储量自然就下来了
  • 提出了生成式的decoder机制,在预测序列时一步得到结果,而不是step-by-step

ProbSparse self-attention

Attention计算
在长序列中,每一个位置的attention都很重要吗?
对于每一个Q来说,只有一小部分的K是其它有较强关系 (长尾分布)


群众里有坏人(有偷懒不干活的Q)

如何定义每一个Q是不是偷懒的?

  1. Lazy的Q感觉就像是均匀分布,没啥特点,你有我有全都有
  2. Active的Q明显在某些位置比较活跃,权重差异较大

对于每一个Q,计算其有均匀分布的差异,差异越大则表示其越活


得到的QK内积为:25,96,就是只选了25个Q
其它位置的Q : 没有计算其attention目前直接用V (96个,表示每一个位置的特征)的均值来替代,也就是选出来的25个会更新,其他剩余的都是均值向量

self-attention distilling

随着Encoder层数的加深,由于序列中每个位置的输出已经包含了序列中其他元素的信息(self-attention的本职工作),我们可以缩短输入序列的长度

Encoder改进后的效果

  1. 一方面就是速度快效率高了,论文中计算复杂度由L个2->LlogL
  2. 下采样之后,特征更明显,且跟之前的模式基本一致

Start标志位

要让Decoder输出预测结果,你得先告诉它从哪开始输出
先给一个引导,比如要输出20-30号的预测结果Decoder中需先给出前面一个序列的结果,例如10-20号的标签值

位置编码信息

位置信息比较丰富,不仅有绝对位置编码,还包括了跟时间相关的各种编码(Encoder与Decoder都加入了)

整体网络架构

主要改进就是编码和解码器的优化,速度更快,解决长序列问题

Decoder输入

源码中decoder输入长度为72,其中前48是真实值,后24是预测值

  1. 第一步还是做自身的ProbAttention,注意这回需要加上mask
  2. Mask的意思就是前面的不能看到后面的(不能透题)
  3. 自身计算完Attention,再算与encoder的Attention即可

 

 实验结果

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值