论文解读10——Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting


在这里插入图片描述

1、文章贡献

这篇是2021年AAAI的best paper,主要提出了Informer模型来解决Transformer中无法用于长时间序列预测的问题,提高了长时间序列预测问题的能力。

Transformer存在的问题:

  • self-attention的二次计算,即规范点积对,会导致每层的时间复杂度和内存使用量为O(L²)。
  • J层encoder-decoder堆叠层导致总内存使用量为O(J*L²),限制了接收长时间序列输入的可扩展性。
  • 解码器形式为steo-by-step,预测长序列输出的速度变慢。

Informer的改进:

  • 使用ProbSparse self-attention机制取代原始的self-attention机制,实现了O(LlogL)的时间复杂度和内存使用量。
  • 提出了self-attention distilling操作,优先支配J层堆叠层的注意力分数,将总空间复杂度降低为O((2-ε)LlogL),有助于接收长序列输入。
  • 提出了生成式解码器,只需一个前向步骤即可获得长序列输出。

2、有效的self-attention机制

  • 在2017年Transformer中的注意力机制采用缩放的点积对,其中Q、K、V分别代表query、key、value值
    在这里插入图片描述
  • 文中进一步讨论自注意力机制,让qi、ki、vi分别代表Q、K、V的第i行,第i个query的注意力被定义为概率形式的内核平滑器:
    在这里插入图片描述
  • 其中k(.)是计算两个向量相似度的核函数,这里选择的是非对称的指数函数,用条件概率p(kj | qi)对value进行加权求和。
    在这里插入图片描述
    在这里插入图片描述
  • self-attention的概率分布具有稀疏性,其注意力分数形成了一个长尾分布,即只有少数点积贡献了大部分注意力,将第i个query对所有key的注意力定义为p(kj | qi),主要的点积对促使query的注意力概率分布远离均匀分布,即序列中某个元素只会和少数几个元素具有较高的相关性。如果p(kj | qi)接近于均匀分布q(kj | qi),则与对应的query结合无实际意义。
    在这里插入图片描述
  • 于是文中用p(kj | qi)和q(kj | qi)分布之间的相似性来区分query的重要性程度,其中p(kj | qi)和q(kj | qi)分布之间的相似性用Kullback-Leibler散度来度量:
    在这里插入图片描述
    在这里插入图片描述
  • 去掉常数后,第i个query的稀疏性度量定义为:
    在这里插入图片描述
    其中第一项是qi在所有key上的Log-Sum-Exp,第二项是它们的算术平均数。如果第i个query获得了较大的M(qi,K),那么它注意力的概率p更有区别性,更有可能包含长尾self-attention分布头部区域的主要点积对。
  • 解决M(qi,K)的计算复杂度O(Lk*Lq)以及第一项LSE导致的数值不稳定,于是对M(qi,K)做经验近似,第i个query稀疏性M(qi,K)的上下界为:
    在这里插入图片描述
    M(qi,K)的经验近似:
    在这里插入图片描述
    在这里插入图片描述

3、ProbSparse self-attention机制

  • 在长尾分布下,只需随机采样U=Lq lnLk个点积对计算近似的M(qi,K),用零填充其他对。选择稀疏性得分最高的前u个query作为Q拔和key值做点积来获得ProbSparse Self-attention,使得总时间复杂度和空间复杂度为O(LlnL)。
    在这里插入图片描述
    其中Q拔是与q大小相同的稀疏矩阵,它只包含稀疏性度量M(qi,K)下的前u个query
  • 算法流程如下:
    先随机采样key值;
    将每一个query关于采样的key做点积;
    计算每一个query对应的点积的注意力和均匀分布的差异,即M拔;
    选取前u个差异最大的query作为Q拔计算注意力概率,其余的值用均值填充。
    在这里插入图片描述
    其中u=c*lnLQ,c为采样因子,故点积相乘的复杂度从 L² 降到了LlnL

4、self-attention distilling

为了解决长输入内存的问题,提出了自注意力蒸馏的方法

  • 利用自注意力蒸馏机制来提取具有主导特征的输入,减少输入的时间维度。
    其中[xj]表示第j层第t个时刻的attention堆叠层,使用1维k=3的卷积过滤器和步长为2的最大池化层将X下采样到半切片中,使内存使用量减少到O((2-ε)LlogL)。
    在这里插入图片描述
    构建输入减半的副堆叠层,输出维度对应,将所有堆叠连接得到encoder的最终隐藏表示。
    在这里插入图片描述

5、Generative style decoder

  • 为提高解码时的预测速度,将原先step-by-step解码改进成了生成式解码,解码器的输入是部分真实值和待预测值的拼接,直接一步输出预测结果。
    在这里插入图片描述

6、实验

  • 数据集:
    ETTh1、ETTh2: 2年的电力变压器温度数据,采样频率为每小时
    ETTm1: 2年的电力变压器温度数据,采样频率为每15分钟
    ECL:2年的用电负荷量,采样频率为每小时
    Weather:4年的气候数据,采样频率为每小时
  • 单变量
    count计数的是MSE、MAE最小的次数,其中Informer次数最多,其次是使用原始Transformer的self-attention
    在这里插入图片描述
  • 多变量
    在这里插入图片描述
  • 改变encoder-decoder输入长度
    当预测短序列时,输入长度越长会降低模型性能;当预测序列变长,输入长度增加有助于降低MSE,提高模型性能。
    在这里插入图片描述
  • 改变采样因子c
    当c取5的时候MSE随序列长度增加最稳定
    在这里插入图片描述
  • 改变encoder中堆叠层的联接
    L拼接L/4效果最佳
    在这里插入图片描述

消融实验

  • 消除ProbSparse self-attention
    在这里插入图片描述
  • 消除self-attention distilling
    在这里插入图片描述
  • 消除Generative style decoder
    在这里插入图片描述

ProbSparse self-attention、self-attention distilling降低了总复杂度,Generative style decoder加快了预测速度,有助于长时序预测。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DigiHealth Informer:远程帮助您协作,快速访问市场情报,管理知识等等。 数字医疗市场研究-数秒交付什么是DigiHealth Informer:Remote? DigiHealth Informer:远程是一个Chrome浏览器扩展程序,使您可以将网页保存到个人DigiHealth Informer内容库中,搜索DigiHealth Informer数据库,访问投资见解和其他信息,设置客户电子邮件研究摘要等。 付费的DigiHealth Informer订户可以使用此扩展程序的全部功能。什么是DigiHealth Informer? 创新周期,产品开发,竞争对手,盟友和客户的移动和发展比以往任何时候都快。 DigiHealth Informer通过提供自动生成的市场摘要和报告来帮助您在这个充满挑战的环境中取得成功。 使用这项研究来回答关键问题,并更快,更自信地制定关键决策。 DigiHealth Informer:Remote将平台的功能直接带到您的Web浏览器。 它简化了您的研究工作流程,提供了您的知识,并提高了您(以及您团队的)生产力。 通过以下方法最大化您的知识,简化您的日常工作,获取知识以及更多:-快速搜索数百万条社交帖子,文章,研究报告,以及更多关注数字医疗和新兴技术的信息。 -查看最新的全球数字健康和健康技术头条,并访问每周出版的手工制作的DigiHealth Informer Intelligence简报。 -通过私人小组与同事和同事进行协作,您可以在其中共享研究,交换想法等。 -通过将Web文章保存到您的个人可搜索内容库中来结束智力健忘症。 注意:需要DigiHealth Informer订阅。 DigiHealth Informer:Remote由创新咨询公司Enspektos,LLC(http://enspektos.com)提供支持。 支持语言:English (United States)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值