时序必读论文09|ICLR24基于Transformer 自适应多尺度patch的时序预测模型

news/2024/9/18 6:29:29/ 标签: transformer, 深度学习, 人工智能, 时间序列

前言

这篇文章的思路就是:通过傅立叶变化,把时序数据自适应切分为最佳的、不同尺度的patch,然后设计patch内和patch间的注意力机制,进行下游任务。思路非常清晰简洁。

关于自适应尺度这样的学术词汇,我想通过举例子其实非常容易理解。以电影举例,有的电影情节冗长拖沓,我们就会快进,看电影的粒度和尺度就会更宽。而有的电影情节紧凑,我们会慢慢欣赏,看电影的粒度和尺度就很精细。自适应的意思就是根据电影情节密度自动帮你计算合适的快进步长。

图片

如上图就是一个例子,左图:时间序列被划分为具有不同尺度的patch,作为时间分辨率。蓝色、橙色和红色的间隔代表不同的patch大小。右图:通过不同的时间距离建模局部细节(黑色箭头)和全局相关性(彩色箭头)。

本文工作

论文提出Pathformer模型,它整合了时序的resolution和distance,能够根据输入时间序列中不同的时序,动态调整多尺度建模过程,自适应的用不同尺度的patch分解时间序列。并在patch内和patch间设计了注意力机制,以捕获全局和局部的依赖关系,用于时间序列预测。提高了预测准确性和泛化性。对九个真实世界数据集的实验结果表明,Pathformer优于现有模型,展现出更强的泛化能力。

图片

如上图左半部分所示,整个预测网络由:实例正则化(Instance Norm)、自适应多尺度块(Adaptive Multi-Scale block, AMS Blocks)的堆叠,以及预测器(Predictor)组成,核心是中间的自适应多尺度AMS block模块。

AMS block模块则包含多尺度Transformer block模块和Adaptive pathways模块 。其中:

一、Multi-Scale Transformer block

多尺度Transformer block在图右半部分,主要实现patch的分割和双注意力机制。

  • 多尺度分割。每个patch大小为S,原序列长度为H,则序列被分割为P(其中P = H/S)个patch,即(X1, X2, ..., XP)。patch的大小就是分割的尺度差异,为输入序列提供不同分辨率的时间视图。

    图片

  • 双注意力机制。基于每个尺度的patch划分,作者构建了双重注意力机制来建模patch的依赖关系。如图所示,构建了patch内部和patch之间的不同依赖关系。

、Adaptive Pathways

这里又引出了一个新的问题,即需要自动的匹配到最佳的序列分割长度。作者在adaptive pathways模块设计了两个部分,包括:多尺度路由器多尺度聚合器

  • 多尺度路由器。通过傅立叶变换选择最佳的patch划分尺寸,从而控制了多尺度建模的过程。路由器中引入了时间分解模块,它包括季节性和趋势分解,以提取周期性和趋势模式,选择top K个权重送至多尺度Transformer模块以执行多尺度建模。

  • 多尺度聚合器。对从多尺度Transformer模块获得的特征进行加权聚合。

结论

本文提出了一种用于时间序列预测的多尺度Transformer与自适应路径(Pathformer)。它通过引入具有多尺寸的patch划分和对划分的patch进行双重注意力建模,将多尺度序列分辨率和距离整合在一起,从而实现了对多尺度特征的全面建模。此外,自适应路径根据不同的时间动态路由选择和聚合尺度特定特征。这些创新机制共同使Pathformer能够在多个预测任务中取得出色的预测性能,并展现出强大的泛化能力。

个人感受:patch是一个趋势,后续的工作应该考虑先patch,然后设计各类改进。patch动态分割是很容易从图像领域借鉴过来的,只是没想到有人速度如此之快。此外,关于未来可做的点还想说一句:diffusion和patch的结合或许有搞头


欢迎大家关注我的公众号【科学最top】,专注于时序高水平论文解读,回复‘论文2024’可获取,2024年ICLR、ICML、KDD、WWW、IJCAI五个顶会的时间序列论文整理列表和原文。


http://www.ppmy.cn/news/1526062.html

相关文章

应急响应实战---是谁修改了我的密码?

前言:此次应急响应为真实案例,客户反馈无法通过密码登录服务器,疑似服务器被入侵 0x01 如何找回密码? 客户服务器为windows server2019,运维平台为PVE平台;实际上无论是windows系统或者是linux系统&#…

TCPIP网络编程(尹圣雨)UDP 轮流收发消息(windows)

端口号写的是 2345 客户端 #include <iostream> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib")using std::cout; using std::endl; using std::cin;int main() {WSADATA wsa;if (WSAStartup(MAKEWORD(2, 2), &wsa) ! 0){cout <<…

GitHub Star 数量前 13 的自托管项目清单

一个多月前&#xff0c;我们撰写并发布了这篇文章《终极自托管解决方案指南》。在那篇文章里我们深入探讨了云端服务与自托管方案的对比、自托管的潜在挑战、如何选择适合自托管解决方案&#xff0c;并深入介绍了五款涵盖不同场景的优秀自托管产品。 关于自托管的优势&#xf…

【Qt】解决设置QPlainTextEdit控件的Tab为4个空格

前言 PyQt5 是一个用于创建跨平台桌面应用程序的 Python 绑定集合&#xff0c;它提供了对 Qt 应用程序框架的访问。用于开发具有图形用户界面&#xff08;GUI&#xff09;的应用程序&#xff0c;以及非GUI程序。PyQt5 使得 Python 开发者可以使用 Qt 的丰富功能来构建应用程序。…

QT 绘制简易时钟

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QTime> #include <QTimerEvent> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public Q…

【leetcode-python】最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&#xff1a;2…

Lua闭包

前提概念 词法定界&#xff1a;当一个函数内嵌套另一个函数的时&#xff0c;内嵌函数可以访问外部函数的局部变量&#xff0c;这种特征叫做词法定界。 第一类值&#xff1a;在Lua中&#xff0c;函数是一个值&#xff0c;它可以存在于变量中、可以作为函数参数&#xff0c;也可…

Mini-Omni:语言模型可以在流中听、说和思考

读论文《Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming》 目前比较火的一篇论文&#xff0c;分享给大家 论文地址&#xff1a;2408.16725v2 (arxiv.org) 项目地址&#xff1a;https://github.com/gpt-omni/mini-omni 1. 引言 近年来&#xff0c…

人工智能与机器学习原理精解【19】

文章目录 马尔科夫链概述定义与性质分类应用领域收敛性马尔科夫链蒙特卡洛方法 马尔科夫链原理详解一、定义二、特性三、数学描述四、类型五、应用六、示例定义性质转移概率矩阵应用举例结论 马尔科夫链在语音识别和语音合成中的应用一、马尔科夫链在语音识别中的应用1. 基本概…

vue3-print打印eletable某一行的数据

主页面的表格 <template><el-table :data"list"><el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"handleType(scope.row)"…

【GO开发】MacOS上搭建GO的基础环境-Hello World

文章目录 一、引言二、安装Go语言三、配置环境变量&#xff08;可跳过&#xff09;四、Hello World五、总结 一、引言 Go语言&#xff08;Golang&#xff09;因其简洁、高效、并发性强等特点&#xff0c;受到了越来越多开发者的喜爱。本文将带你一步步在Mac操作系统上搭建Go语…

uni-app获取设备唯一值、静态IP以及公网IP的方法

最近开发uniapp的时候&#xff0c;想要获取设备的唯一值作为绑定设备的序列号&#xff0c;还有手动设置的IP以及联网后的公网ip&#xff0c;在插件市场找到一个插件&#xff0c;非常适合&#xff0c;链接如下&#xff1a;lrw-getip-getid&#xff0c;特意在此记录一下&#xff…

Golang | Leetcode Golang题解之第397题整数替换

题目&#xff1a; 题解&#xff1a; func integerReplacement(n int) (ans int) {for n ! 1 {switch {case n%2 0:ansn / 2case n%4 1:ans 2n / 2case n 3:ans 2n 1default:ans 2n n/2 1}}return }

操作系统的心脏:进程调度的基本过程

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 进程调度是操作系统中至关重要的组成部分&#xff0c;它负责决定哪个进程应该在何时使用CPU。了解计算机进行进程调度的过程和原理,对我们了解计算机以及进行多线程编程大有帮助! 在操作系统中,进程…

SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡

介绍 Consul 是一套开源的分布式服务发现和配置管理系统&#xff0c;由 HashiCorp 公司用 Go 语言开发。 提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构建全方位的服务网格&#xff0c;…

Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键&#xff0c;以确保内存的有效使用和数据的及时清理。 具体来说&#xff0c;Redis 有三种主要的过期策略&#xff1a;定期删除&#xff08;Scheduled Deletion&#xff09;、惰性删除&#xff08;Lazy Deletion&#…

在Excel里制作简单游戏界面

生成随机激活码 找工具箱 插入按钮 建宏 方法一&#xff1a;新建按钮的时候创建宏 方法二&#xff1a;右键->指定宏 VBA VBA代码界面 调整字体 VBA代码 Public str As String 存储激活码显示的字符 Public st As String 中间变量&#xff0c;用来替代随机数 Public ot…

连锁管理系统如何兼批发和零售 连锁收银系统如何配合做好财务

在现代零售环境中&#xff0c;信息化管理系统对连锁企业的运营至关重要。连锁管理系统通过先进的信息技术解决了批发和零售中的众多挑战&#xff0c;同时为财务管理提供了有力支持。商淘云分享如何提高连锁企业的运营效率和财务管理水平&#xff0c;大家点赞收藏。 1、统筹批发…

python-游戏自动化(二)(OpenCV图像运用基础)

OpenCV OpenCV简介 首先我们来了解一下&#xff0c;OpenCV是什么&#xff1f; OpenCV 是计算机视觉中经典的专用库&#xff0c;其支持多语言、跨平台&#xff0c;功能强大。 OpenCV现在支持与计算 机视觉和机器学习有关的多种算法&#xff0c;并且正在日益扩展…

限流,流量整形算法

写在前面 源码 。 本文看下流量整形相关算法。 目前流量整形算法主要有三种&#xff0c;计数器&#xff0c;漏桶&#xff0c;令牌桶。分别看下咯&#xff01; 1&#xff1a;计数器 1.1&#xff1a;描述 单位时间内只允许指定数量的请求&#xff0c;如果是时间区间内超过指…