时间序列预测(8) — Informer模型原理

news2024/9/20 14:23:14

目录

0 摘要

1 引言

2 定义

3 方法

3.1 高效的自注意力机制

3.2 稀疏度度量

3.3 ProbSparse稀疏自注意力机制

3.4 Encoder编码器

3.5 Decoder解码


参考视频:Informer原理及代码解析_哔哩哔哩_bilibili

0 摘要

长序列时间序列预测(LSTF)需要模型具有很高的预测能力,即精确的捕捉输出和输入之间长时间依赖关系的能力。Transformer能很好的提高预测精度,然而Transformer存在几个严重问题,二次时间复杂度、高内存使用和编码器-解码器架构的固有限制。为了解决这些问题,Informer设计了一种高效基于Transformer的LSTF模型,具有三个独特特点:

  1. ProbSparse稀疏自注意机制,其时间复杂度和内存使用为,在序列依赖性对齐方面具有可比性能;
  2. 自注意力提取突出显示主导关注,通过减半级联层输入有效处理极长输入序列;
  3. 生成式解码器,概念上简单,可以一次性预测长时间序列,而不是逐步方式,大大提高了长序列预测的推断速度。

1 引言

在能源和智能电网管理、经济和金融、以及疾病传播分析等领域,可以利用大量的过去时间序列数据来进行长期预测。然而,现有方法大多设计用于短期问题设置,比如预测48个点或更少。随着序列越来越长,模型的预测精度随之下降。

当解决LSTF问题时,Transformer存在三个重要的局限性:

  1. 自注意力的二次计算复杂度问题:自注意力机制的原子操作(即点积),导致每层的时间复杂度和内存使用量为
  2. 高内存使用量问题:对长序列输入进行堆叠时,J个encoder--decoder层的堆叠使得总内存使用量为,这限制了模型在接收长序列输入时的可伸缩性。
  3. 预测长输出时速度骤降问题:原始Transformer的动态解码操作导致step by step inference(逐步推理)的速度如同基于RNN的模型一样慢。

逐步推理的含义:只有当前层处理完后才处理下一层,造成模型速度很慢。

Informer深入探讨了这三个问题。研究了自注意力机制中的稀疏性,改进了网络组件。Informer的贡献总结如下:

  • 提出了Informer,成功提高了LSTF问题的预测能力,验证了Transformer-like模型捕捉长序列时间序列输出和输入之间个体长程依赖性的潜在价值。 
  • 提出了ProbSparse稀疏自注意力机制,以有效地替代经典的自注意力。它在依赖对齐上实现了的时间复杂度和的内存使用。
  • 提出了自注意力蒸馏操作,以优先考虑J层堆叠中的主导注意力分数,并将总空间复杂度大幅降至,有助于接收长序列输入。
  • 提出了生成式解码器,只需进行一次前向步骤即可获得长序列输出,同时避免了推断阶段的累积误差扩散。

2 定义

我们首先提供LSTF问题的定义。在具有固定大小窗口的滚动预测设置下,我们在时间 t :

  • 输入:
  • 输出:

编码器-解码器架构:将输入表示“编码”为隐藏状态,并从“解码”出输出表示。流程涉及一个名为“动态解码”的逐步过程,其中解码器从上一步的状态和来自第 k 步的其他必要输出计算出一个新的隐藏状态,然后预测第(k+1)序列

3 方法

3.1 高效的自注意力机制

经典自注意力是基于元组输入(即查询向量、键向量和值向量)定义的,它执行缩放点积,如

其中即查询向量、键向量、值向量、d为输入维度。

为了进一步讨论自注意力机制,让分别表示中的第 i 行。按照公式,第 i 个查询的注意力被定义为概率形式的核平滑器:

自注意力结合了值并根据计算概率获取输出。计算复杂度和内存使用为,并非高效的计算方式。

研究表明,自注意力概率分布具有潜在的稀疏性,并且他们设计了“选择性”计算策略,对所有进行计数,而不会显著影响性能。

self-attention的权重构成了一个长尾分布(long tail distribution),也就是很少的权重贡献了主要的attention,而其他的可以被忽略,也就是单前点只与少数历史点相关。

3.2 稀疏度度量

从公式(1)中,第 i 个查询对所有键的注意力定义为概率,输出是它与值 v 的组合。我们希望该计算的概率分布远离均匀分布。如果接近均匀分布,则计算会产生很多冗余,也就是其他点对当前点的影响是一样的,并没有区分度。我们通过Kullback-Leibler散度来测量“相似性”:

省略常数,我们定义第 i 个查询的稀疏度量为:

其中第一项是在所有键上的Log-Sum-Exp(LSE),第二项是它们的算术平均值。如果第 i 个查询获得更大的,它的注意力概率 p 更“波动”,也就是更加远离均匀分布,是我们需要的。

3.3 ProbSparse稀疏自注意力机制

核心思想:不能为每个quey都计算下稀疏性得分吧?这样不但没有优化效率,还带来
了额外的计算量。作者利用点积结果服从长尾分布的假设,提出在计算每个quey稀疏
性得分时,只需要和采样出的部分key计算就可以了。就是找到这些重要的/稀疏的query,从而只计算这些queryl的attention值,来优化计算效率。

允许每个键只关注前个主要查询:

其中是与相同大小的稀疏矩阵,它只包含在稀疏度量下的前 个查询。受常数采样因子控制,我们设置,这使ProbSparse自注意力仅需要为每个查询-键查找计算个点积,并且内存使用量是。此注意力为每个头生成不同的稀疏查询-键对,从而避免了严重的信息损失。

然而,对所有查询点计算,时间复杂度是,受此启发,提出了最大均值测量

个的范围近似保持在边界放松中。 在长尾分布下,我们只需要随机采样个点积对来计算,即填充其他对为零。然后,我们从中选择稀疏的前 个作为中的最大运算符对零值不太敏感,且数值稳定。在实践中,查询和键的输入长度通常在自注意力计算中是相等的,即,因此ProbSparse自注意力的总时间复杂度和空间复杂度为

  • 公式(4)比公式(3)更加利于计算
  •  的作用是计算点的波动性,数值越大,证明波动性越大。

3.4 Encoder编码器

Encoder在内存使用限制下允许处理更长的顺序输入,编码器旨在提取长顺序输入的稳健长程依赖性。在输入表示之后,第 t 个序列输入已被塑造成一个矩阵

自注意力精炼:作为ProbSparse自注意力机制的自然结果,编码器的特征图具有冗余的值组合。我们使用精炼操作来优先考虑具有主导特征的优越组合,并在下一层中形成一个聚焦的自注意力特征图。它锐利地修剪输入的时间维度,观察图3中注意力块的n头权重矩阵(重叠的红色方块)。受到扩张卷积的启发,我们的“精炼”过程从第 j 层向(j + 1)层前进,如下所示:

这里的 代表注意力块。它包含了多头ProbSparse自注意力和基本操作,其中对时间维度进行1-D卷积滤波(核宽度为3),并使用激活函数。我们添加了一个步长为2的最大池化层,并在堆叠一层之后将降采样为其一半的片段,从而将整个内存使用减少为,其中是一个小数。为增强精炼操作的稳健性,我们建立了主堆栈的副本,并逐渐减少自注意力精炼层的数量,每次丢弃一层,就像图2中的金字塔一样,以使它们的输出维度对齐。因此,我们连接所有堆栈的输出,并得到编码器的最终隐藏表示。

3.5 Decoder解码器

提出了生成式的decoder机制,在预测序列(也包括inferencel阶段)时一步得到结果,而不是step-by-step,直接将预测时间复杂度降低。

Transformer是一个encoder-decoder的结构,在训练阶段,我们可以用teacher forcing的手段
让decoder-一步就得到预测结果,但是inferencel时,都是step-by-step,所以看到Informer中的“一步Decoder”,作者的做法也很简单直接,首先,不论训练还是预测,Decoder的输入序列分为两部分。

Informer使用的Decoder和传统的Decoder不同,生成式decoder一次性生成所有的预测输出,而传统的Transformer是将上一步的输出放入decoder在得到下一步的输出,这样每步只能输出一个time step的数据。这种形式的decoder的start token是从input中sample一个较短的序列(需要预测的序列的之前一个片断),decoder输入是encoder输入的后面部分的截取+与预测目标形状相同的0矩阵。

解码器生成长序列输出,通过一次前向过程我们在图(2)中使用了标准的解码器结构,它由两个相同的多头注意力层堆叠而成。然而,在长序列预测中,采用生成式推断来缓解速度下降。我们将以下向量作为解码器的输入:

这里是起始标记,是目标序列的占位符(标量设为0)。在ProbSparse自注意力计算中应用了掩码多头注意力,通过将掩码点积设为,防止每个位置关注到后续位置,避免自回归。最终输出由全连接层获取,其输出大小取决于我们是执行单变量预测还是多变量预测。

生成式推断:起始标记在NLP的“动态解码”中得到了高效应用,我们将其扩展为一种生成式方式。我们不是选择特定的标记作为令牌,而是在输入序列中随机抽样一个长度为的序列,比如在输出序列之前的一个较早的片段。以预测168个点为例(实验部分的7天温度预测),我们将取目标序列之前已知的5天作为“起始标记”,并将其与一起作为生成式推断解码器的输入,即。这里的包含目标序列的时间戳,即目标周的上下文。然后我们的提出的解码器通过一次前向过程而不是在传统的编码器-解码器架构中耗时的“动态解码”来预测输出。在计算效率部分给出了详细的性能比较。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1229824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法-二叉树-简单-二叉树的最大和最小深度

记录一下算法题的学习7 二叉树的最大深度 题目:给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 输入:root [3,9,20,null,null,15,7] 输出:3 示例分析&#xff…

计算机毕业设计选题推荐-家庭理财微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

如何进行手动脱壳

脱壳的目的就是找到被隐藏起来的OEP(入口点) 这里我一共总结了三种方法,都是些自己的理解希望对你们有用 单步跟踪法 一个程序加了壳后,我们需要找到真正的OEP入口点,先运行,找到假的OEP入口点后&#x…

Java零基础-Maven项目构建(最详细)

【Maven】 1.当前开发中存在的问题 1.1. 一个项目就是一个工程 如果项目非常庞大,就不适合继续使用package划分模块.最好是每一个模块对应一个项目,利于分工协作,也利于项目针对性能化的部署. 1.2. 项目中需要的jar包必须拷贝 项目中的jar包需要手动"复制" "粘…

定时关机软件哪个好?定时关机软件大盘点

在生活和工作中,我们可以使用定时关机软件来定时关闭电脑,以实现对电脑的控制。那么,定时关机软件哪个好呢?下面我们就来了解一下。 定时关机软件的作用 定时关机软件可以帮助用户在预设的时间自动关闭电脑。这对于那些需要在特…

基于Docker的安装和配置Canal

基本介绍 Canal介绍:Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件(数据库同步需要阿里的 Otter 中间件,基于 Canal)。 Canal背景:阿里巴巴 B2B 公司,因为…

buildadmin+tp8表格操作(7.1)表格的事件监听(el-table中的事件)

因为buildAdmin是封装的 el-table的组件,所以el-table中的事件, 也是可以使用的, 两者有几个事件是有共同的(比如 双击事件), 这时可以根据自己的需要自行选择 以下代码是 buildadmin 使用 el-table中的事…

光伏拉晶厂RFID智能化生产工序管理

一、项目背景 随着全球能源短缺和气候变暖的挑战日益突显,清洁能源已成为国内能源发展的主要目标之一,作为清洁能源的重要组成部分,光伏行业在过去几十年中取得了巨大的发展,成为我国的战略性新兴产业之一。在智能制造的大环境下…

mybatis使用foreach标签实现union集合操作

最近遇到一个场景就是Java开发中,需要循环多个表名,然后用同样的查询操作分别查表,最终得到N个表中查询的结果集合。在查询内容不一致时Java中跨表查询常用的是遍历表名集合循环查库,比较耗费资源,效率较低。在查询内容…

cadence layout lvs时出现error

Error:Schematic export failed or was cancelled.Please consult the transcript in the viewer window. 解决办法同下: cadence layout lvs时出现error-CSDN博客

BetterDisplay Pro for Mac(显示器校准软件)

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 以下是BetterDisplay Pro的主要特点: - 显示器校准:可以根据不同的需求和环境…

requests解决HAR支持问题:引入第三方库提升开发效率

关于HAR支持的问题已关闭。HAR(HTTP Archive)是一种用于存储HTTP请求和响应的标准格式,广泛应用于网络调试和性能优化中。然而,HAR支持的缺失可能会给开发者带来不便,影响其工作效率。 解决方案 为了解决这个问题&…

【2023云栖】大模型驱动DataWorks数据开发治理平台智能化升级

随着大模型掀起AI技术革新浪潮,大数据也进入了与AI深度结合的创新时期。2023年云栖大会上,阿里云DataWorks产品负责人田奇铣发布了DataWorks Copilot、DataWorks AI增强分析、DataWorks湖仓融合数据管理等众多新产品能力,让DataWorks这款已经…

GaussDB SQL基础语法示例-GOTO语句

目录 一、前言 二、在GaussDB数据库中的概念及语法 1、基本概念 2、语法 三、在GaussDB数据库中的基础示例和限制场景说明 1、基础示例 2、限制场景说明 四、小结 一、前言 SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、…

2023年第十三届中国国际储能大会(CIES2023)-核心PPT资料下载

一、峰会简介 本届大会以“推动新型能源体系建设,促进储能产业高质量发展”为主题,为进一步积极探索储能领域新技术、新业态、新模式,推进储能产业上下游供应链深度合作,推动新型储能与新型电力系统协同创新,搭建储能…

(六)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (文档分割 Splitting)

在上一章中,我们刚刚讨论了如何将文档加载到标准格式中,现在我们要谈论如何将它们分割成较小的块。这听起来可能很简单,但其中有很多微妙之处会对后续工作产生重要影响。 文章目录 1、为什么要做文档分割?2、文档分割方式3、基于…

【OpenCV】仿射变换中cv2.estimateAffine2D 的原理

目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 (1)水平错切 (2)垂直错切 一、介绍 cv2.estimateAffi…

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势&未来发展方向 写在最前面一、开源与闭源:定义与历史背景开源和闭源的定义开源大模型:社区驱动的创新 二、开源和闭源的优劣势比较开源大模型(瓶颈)数据&…

windows中运行项目中.sh和kaggle安装与配置

在git bash中运行 命令如下: bash download_data.sh 或者 ./download_data.sh如果使用kaggle的数据集,会要求输入用户名和API。 API在这个文件里面,复制过来即可。 安装kaggle pip install kaggle去kaggle官网,点击这里&…

MES集成 | 集成标准不统一?看得帆云iPaaS怎么应对

得帆信息结合自身丰富实施经验及众多实践案例,编写了《得帆云 AIGC低代码PaaS平台系列白皮书——MES集成应用》,希望能为正在使用MES产品的企业数字化转型领导者和IT人员带来一些帮助。 MES是众多大型生产制造型企业在做生产执行管理时会实施的一套系统。…