论文笔记-时序预测-Pyraformer

news2024/11/14 21:13:33

在这里插入图片描述
论文标题:
Pyraformer: Low-Complexity Pyramidal Attention for Long-Range Time Series Modeling and Forecasting
论文链接:
https://openreview.net/pdf?id=0EXmFzUn5I
源码链接:
https://github.com/alipay/Pyraformer

摘要

根据过去的时间序列数据对未来进行准确预测至关重要,因为它为提前进行决策和风险管理打开了大门。在实践中,面临的挑战是构建一个灵活但简约的模型,该模型可以捕获大范围的时间依赖关系。本文通过研究时间序列的多分辨率表示,提出了 Pyraformer 算法。具体来说,我们引入了金字塔注意模块(PAM) ,其中尺度间的树状结构概括了不同分辨率的特征,尺度内的相邻连接模型模拟了不同范围的时间依赖关系。在温和的条件下,Pyraformer 信号穿越路径的最大长度与序列长度 L 相比是一个常数(即 O (1)) ,而其时间和空间复杂度与 L 呈线性关系。广泛的实验结果显示,无论是在单步预测任务还是在长距离多步预测任务中,Pyraformer 都能以最少的时间和内存消耗达到最高的预测精度,特别是当序列较长时。

在这里插入图片描述
在这里插入图片描述
可以看出,优势很明显。

模型结构

在这里插入图片描述
主要贡献

1.提出了 Pyraformer,以多分辨率的方式同时捕捉不同范围的时间依赖关系。
2.理论上证明了通过适当选取参数,Pyraformer 可以同时实现O(1)的最大信息传播路径和O(L)的时空复杂度。
3.实验表明,不论是单步预测任务还是长程预测任务,Pyraformer 在多个真实数据集上都取得了比 Transformer 及其变体更好的效果,并且消耗的时间和显存更低。

方法

金字塔注意力模块(PAM)

金字塔形的图结构,以多分辨率的方式表征历史序列中的时间依赖关系。在金字塔图中,假设最底层的节点对应了我们观察到的时序。比如,观察到的时序是小时粒度,那每个节点对应了一个小时。
上层的节点,可以认为是总结了每天,每周,和每月的信息。为了进行精准的时序预测,需要做的就是找到过去和未来的关系,然后基于过去才能预测未来。这里,通过连接每一层节点,来建模过去与未来。比如每个小时之间的关系,在底层进行了建模,而每个月之间的关系在顶层进行了建模。
由于,月与月之前的关系在顶层进行了建模,到了周这一层,就不再需要考虑本周与上个月同一周之间的关系了,只需要考虑相邻的一两周之间的关系。因此,每一层里,只考虑相邻节点之间的关系。整个图通过attention机制构建,即把Transformer中的全连接图换成金字塔图。

粗粒度构造模块(CSCM)

CSCM的目的是初始化金字塔图上的粗尺度节点,以便后续的PAM在这些节点之间交换信息。这里通过带bottleneck的卷积网络实现。
在这里插入图片描述
在这里插入图片描述
预测模块

单步预测,直接一层全连接

多步预测,有两种方式。第一种和单步预测类似,但需要将所有尺度上的最后一个节点分批映射到所有 M 个未来时间步骤。第二种,是用两层全连接注意力层作为解码器。

实验

单步预测

在这里插入图片描述
长程预测
在这里插入图片描述
速度和显存占用
在这里插入图片描述

总结

在蚂蚁预测性扩缩容任务上工程化落地效果很好。

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

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

相关文章

(6)Pytorch常用函数

Pytorch用到的函数 文章目录Pytorch用到的函数1、tensor.eq()和tensor.lt()2、3、torch.pow()4、torch.clamp()5、item()和tolist()说明 1、发现了官方说明文档,使用这一套是最好的! 2、in-place操作说明,这是一个要被抛弃的方法,…

ArcGIS基础:获取栅格数据边界的线要素和独立格网面

本操作是为了提取栅格DEM数据的边界数据: 看一下原始数据:是一个非常普通的DEM栅格数据。 【方法:1】:使用【栅格范围】工具,通过搜索工具进行查找,如下所示: 该工具可以直接提取栅格外边界数…

将Bean交给Spring容器管理有几种方式?

将Bean交给Spring容器管理有几种方式? Spring核心 Spring核心是 IOC 和 AOP 。 所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。 至于更详细的说明,或者去深入理解Spring这两大核心&#x…

手写Spring4(Spring属性填充)

文章目录目标设计思路项目结构一、实现1、定义属性2、定义属性集合包装类3、类引用(bean类型)4、Bean定义补全5、Bean 属性填充二、测试1、准备2、测试案例3、测试结果目标 这一章节目的是接着前面的实例化策略实现后,进行属性填充&#xff…

MybatisPlus概述及使用

文章目录MybatisPlus1、介绍1.1、概述1.2、特性1.3、 支持数据库1.4、框架结构2、起步依赖与核心接口2.1 起步依赖2.2 BaseMapper3、快速入门3.1、导入依赖3.2、SpringBoot配置文件3.3、实体类3.4、Mapper接口3.5、引导类增加MapperScan注解3.6 测试4、注解4.1 TableName4.2 Ta…

《从总账到总监》读书笔记

书本封面 内容简介 这是一本用小说体例写作的财务专业书籍。工作中如何将财物数据业务化,找到绩效管理的关键点?在人工智能都会写诗的时代,财务这门学科是否会毫无价值?以及在未来,财务人员应该具备哪些专项能力才能不…

Java#34(多线程)

目录 线程(thread): 是一个程序内部的一条执行路经(之前写的代码中,main方法的执行就是一条单独的执行路径) 单线程: 一个程序只有一条执行路线 多线程: 指从软硬件上实现多条执行流程的技术 一.创建多线程 1.继承Thread类 2.实现Runnable接口 3.利用Callable, FutureT…

8 标志寄存器

标志寄存器 CPU 内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3 种作用。 用来存储相关指令的某些执行结果;用来为CPU 执行相关指令提供行为依据:用来控制CPU 的相…

Pyinstaller打包exe程序

Pyinstaller和Nuitka是两大热门的python打包路径,学习Nuitka可以点击Nuitka入门学习。本文主要介绍Pyinstaller打包过程。 1.创建python虚拟环境 在conda中创建一个虚拟环境,用于程序打包,可以使打包程序占用空间最小 使用一下指令&#x…

一个超方便将现有博客生成vuepress2文档站的插件

闲来无事,研究了一下vuepress2和它的插件机制,写了一个可以一键通过已有博客生成vuepress2的文档站的vuepress2插件vuepress-plugin-blog-sync 效果 在vuepress2中简单引入即可达到将政采云掘金博客一键生成vuepress2页面,效果✨ 详见Demo …

38_SPI通信原理

SPI接口简介 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI,是一种高递的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,…

蔚来智驾功能大更新:与其叫NOP+,不如叫NAD-

HiEV消息(文/张祥威)赶在2022年最后一个月,蔚来的自动驾驶大招露出了冰山一角。 2020年10月,蔚来国内首家推送高速场景下的领航辅助NOP(Navigate on Pilot),当时只有特斯拉实现了类似功能&#…

English Learning - L1 站在高处建立灵魂 2022.12.5 周一

English Learning - L1 站在高处建立灵魂 2022.12.5 周一1.1 到底什么是语法1.2 为什么要学习语法口语分广义和狭义讲母语的人为啥不学语法?作为一名二语习得者口语中可不可以没有有语法?1.3 英语(听说读写)的核心金字塔理论关于词…

[附源码]计算机毕业设计基于web的羽毛球管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

数据结构作业——第十四周——AOE网+查找

1. 单选题 简单 5分 若一个有向图中的顶点不能排成一个拓扑序列,则可断定该有向图______。 A.是个有根有向图 B.是个强连通图 C.含有多个入度为0的顶点 D.含有顶点数目大于1的强连通分量 回答正确 解析 2 . 单选题 简单 5分 以下关于图拓扑排序的叙述中正确的…

自动驾驶之去光晕调研

中文版综述github 一、光晕类型 常见去光晕算法的光晕 去光晕算法的光晕之二(汇总) 样式包括有: halos(色圈), streaks(条纹), bright lines(亮线), saturated blobs(深污点), color bleeding(色渗), haze(烟雾), and many others。 二、光晕成因 一个理想的相机&#x…

JSP SSH校园兼职信息发布平台myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP SSH校园兼职信息发布平台是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 用B/S模式开发。开发环境为TOMCA…

Docker Images Explore

Docker Images Explore scratch an explicitly empty image, especially for building images “FROM scratch” You can use Docker’s reserved, minimal image, scratch, as a starting point for building containers. Using the scratch “image” signals to the build …

自定义键盘快捷键调节电脑音量

外接的键盘没有Fn。。。也没有调音量的键😅于是想自己弄一个 方法一:修改注册表键盘映射 新建记事本文件打开,粘贴如下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Key…

Idea 调试自定义 AbstractProcessor 程序

我们常使用的 Lombok 可以自动生成 gettr 和 setter 方法,使用起来非常方便;有时候我们也要去实现自己的注解处理器,实现一些在编译阶段需要执行的逻辑,例如我之前写的 spring cloud 自动生成 openfeign 的Fallback 降级方法;自动生成 openfeign 的Fallback 但是自定义注…