【论文笔记】Are Self-Attentions Effective for Time Series Forecasting? (NeurIPS 2024)
官方代码https://github.com/dongbeank/CATS
Abstract
时间序列预测在多领域极为关键,Transformer 虽推进了该领域发展,但有效性尚存争议,有研究表明简单线性模型有时表现更优。本文聚焦于自注意力机制在时间序列预测中的作用,提出仅用交叉注意力的 CATS 架构。它摒弃自注意力,利用交叉注意力并设置未来视野依赖参数为查询及增强参数共享,提升了长期预测精度,还减少了参数和内存使用。多数据集实验显示,CATS 模型均方误差最低且参数更少。https://github.com/dongbeank/CATS
Introduction
- Background:时间序列预测在金融、气象、交通等诸多领域中是关键任务,其结果对决策制定有重要影响。Transformer 架构在自然语言处理等方面取得巨大成功后,被广泛应用于时间序列预测,但实际效果参差不齐,引发了对其内部结构尤其是自注意力机制在该任务中适用性的思考。
- Motivation:越来越多的研究显示,在某些时间序列预测场景下,简单的线性模型能达到甚至超越复杂的基于 Transformer 的模型的性能。这促使作者深入探究自注意力机制在时间序列预测中的真实价值,试图寻找更高效的架构来提升预测准确性和效率。
- Challenges:
- 计算复杂度问题:在传统的 Transformer 架构应用于时间序列预测时,自注意力机制的计算复杂度随着序列长度的增加呈平方增长。当处理大规模时间序列数据时,这会导致训练时间大幅延长,对计算资源的需求也急剧增加,使得模型在实际应用中的可行性受到挑战。
- 过拟合风险:Transformer 模型通常包含大量的参数,在时间序列数据有限的情况下,容易出现过拟合现象。模型可能会过度学习训练数据中的噪声和局部特征,而无法很好地泛化到未知的未来数据,从而影响预测的准确性和可靠性。
- 自注意力机制对于时间序列预测是否有效?
- Contributions:
- 架构创新:提出了 Cross-Attention-only Time Series transformer (CATS) 架构,为时间序列预测提供了一种全新的思路。通过去除自注意力机制,采用交叉注意力机制并结合独特的参数设置,有效解决了传统 Transformer 在时间序列预测中面临的部分难题。
- 实验验证:在多个不同类型和领域的数据集上进行了广泛而深入的实验,全面验证了 CATS 模型的有效性。通过与现有的主流时间序列预测模型进行对比,证明了 CATS 模型在降低均方误差、减少参数数量和内存使用方面具有显著优势,为后续的研究和实际应用提供了有力的实证支持。
Method
在时间序列预测领域,传统Transformer架构中的自注意力机制存在诸多问题,如时间信息丢失、计算复杂度高等。为解决这些问题,作者提出了仅交叉注意力时间序列Transformer(CATS)架构,其主要由以下三个关键部分构成。
将未来作为查询的交叉注意力机制
在时间序列预测中,预测通常针对特定的未来时间范围。交叉注意力机制与自注意力机制相似,涉及键(key)、查询(query)和值(value)三个要素,但不同之处在于查询来自与键和值不同的来源。在我们的CATS架构中,核心在于将未来时间范围视为查询。
具体实现上,我们把与预测范围相关的参数设定为可学习的查询。以图4为例,我们先针对特定的预测范围创建相应参数。对每个这样的虚拟化参数,分配固定数量的参数来代表对应的预测范围,使其成为可学习的查询。例如, q i q_{i} qi 就是在 L + i L + i L+i 时刻与预测范围相关的一个查询。当进行分块操作时,这些查询会被独立处理。每个可学习查询 q ∈ R P q \in \mathbb{R}^{P} q∈RP 先被输入到嵌入层,之后将经过嵌入的输入时间序列分块作为键和值,输入到多头注意力层。通过这种方式,模型能够利用交叉注意力机制,从过去的时间序列数据(键和值)中,精准地提取与未来特定时间点(查询)相关的信息,有效避免了自注意力机制中因排列不变性和反序特性导致的时间信息丢失问题,更好地捕捉时间序列中的动态变化和依赖关系 。
跨预测范围的参数共享
在CATS架构中,参数共享策略是提升模型效率和性能的关键因素之一。传统的Transformer架构在处理不同预测范围时,往往为每个预测步骤单独设置大量参数,这不仅增加了模型的复杂度和训练成本,还容易引发过拟合问题。
与之不同,我们的CATS模型通过在不同预测范围之间共享关键参数,极大地减少了参数总量。例如,在多头注意力机制中,用于计算注意力权重的部分参数在不同的预测时间步中是共享的。这种参数共享方式,使得模型在学习过程中能够更高效地利用数据,提高参数的使用效率,降低模型的过拟合风险。同时,减少的参数数量降低了模型的计算复杂度,使得模型在训练和推理过程中所需的内存和计算资源显著减少,提升了模型的运行速度和实际应用的可行性。这一策略使得CATS模型在处理不同长度和复杂度的时间序列数据时,能够以更简洁的结构和更低的资源消耗,实现准确的预测。
查询自适应掩码
查询自适应掩码是CATS架构中的另一个创新点,它主要用于优化交叉注意力机制的计算过程,提升模型的预测准确性。在时间序列预测中,不同的时间步和预测范围对于信息的需求和依赖程度各不相同。查询自适应掩码能够根据每个查询(即未来的每个时间点)的特点,动态地调整模型在计算注意力权重时对输入数据(键和值)的关注程度。
具体而言,掩码会根据查询所代表的未来时间点与当前时间的距离、时间序列数据的局部和全局趋势等因素,对输入数据中的某些部分进行选择性的屏蔽或增强。例如,当预测较近的未来时间点时,模型可能更关注近期的时间序列数据,掩码会增强对这些数据的注意力权重;而当预测较远的未来时间点时,掩码会引导模型综合考虑更长期的历史数据和趋势信息。通过这种方式,查询自适应掩码帮助模型更加智能地聚焦于与每个预测目标最相关的信息,避免无效信息的干扰,从而提高预测的准确性和稳定性。同时,掩码的应用还可以减少不必要的计算,进一步提升模型的计算效率。
Results
长时预测
模型 CATS 在多个数据集的多元长期预测任务中展现出卓越性能。在交通(Traffic)数据集上,对于所有预测范围,CATS 始终能实现最低的均方误差(MSE)和平均绝对误差(MAE),超越了所有其他模型。对于天气(Weather)、电力(Electricity)和 ETT 数据集,CATS 表现出极具竞争力的性能,在大多数预测范围上取得了最佳结果。这表明 CATS 有效地捕捉了不同时间序列数据中的潜在模式,凸显了其处理复杂时间依赖关系的能力。
短时预测
交叉注意力vs自注意力
Conclusion
- 本研究通过理论分析和实验验证,表明在时间序列预测领域,传统 Transformer 模型中的自注意力机制并非是必不可少的。CATS 架构通过巧妙地运用交叉注意力机制和独特的参数设置,成功地在提升预测精度的同时降低了资源消耗。
- 未来的研究可以基于 CATS 架构进一步探索优化方向,如进一步改进交叉注意力机制的细节、探索更有效的参数共享策略、结合其他先进的机器学习技术等。同时,可以将 CATS 模型拓展到更多的应用领域,如工业生产过程中的质量控制、环境监测中的数据预测等,以推动时间序列预测技术的不断发展和创新。
Appendix
补充结果
学术会议
- 如有意愿参会或投稿,可以获取邀请码,享受参会、投稿优惠,优先审核
- 想要了解更多国内主办的覆盖学科最全最广的学术会议,请前往【所有会议官网】:
学术会议官网www.ais.cn
相关文章:

【论文笔记】Are Self-Attentions Effective for Time Series Forecasting? (NeurIPS 2024)
官方代码https://github.com/dongbeank/CATS Abstract 时间序列预测在多领域极为关键,Transformer 虽推进了该领域发展,但有效性尚存争议,有研究表明简单线性模型有时表现更优。本文聚焦于自注意力机制在时间序列预测中的作用,提…...

游戏手柄Type-c方案,支持一边充电一边传输数据
乐得瑞推出LDR6023SS,专门针对USB-C接口手机手柄方案,支持手机快充,支持任天堂游戏机,PS4等设备~同时支持手机充电跟数据传输 1、概述 LDR6023SS SSOP16 是乐得瑞科技针对 USB Type-C 标准中的 Bridge 设备而开发的双 USB-C DRP …...
2. 4 模块化JDK:JDK模块结构与核心模块
第3章:模块化JDK:JDK模块结构与核心模块 JDK 9 将自身拆分为一系列模块,彻底告别传统的“单一JAR(如 rt.jar)”模式。本章深入解析 JDK 的模块化架构、核心模块功能及开发者如何高效利用这些模块。 3.1 JDK 模块化设计…...
每日一题——缺失的第一个正整数
缺失的第一个正整数 题目描述进阶:数据范围: 示例示例 1示例 2示例 3 题解思路代码实现代码解释复杂度分析总结 题目描述 给定一个无重复元素的整数数组 nums,请你找出其中没有出现的最小的正整数。 进阶: 时间复杂度ÿ…...

CEF132 编译指南 MacOS 篇 - 基础开发工具安装实战 (二)
1. 引言 在 macOS 平台上编译 CEF132 之前,首要任务是搭建一个完善的开发环境。与 Windows 和 Linux 环境不同,macOS 的开发环境主要以 Xcode 为核心。本篇将作为 CEF132 编译指南系列的第二篇,详细指导读者如何在 macOS 系统上安装和配置 X…...
vi 是 Unix 和 Linux 系统中常用的文本编辑器
vi是 Unix 和 Linux 系统中常用的文本编辑器,它有几种不同的模式,其中最常用的是命令模式和插入模式。光标控制主要在命令模式下进行,以下是一些常用的vi命令来控制光标位置: • h,j,k,l:分别用于将光标向左、向下、向…...

SwanLab x verl:可视化LLM强化学习后训练教程
文章目录 介绍Verl和SwanLab1. 环境安装2. 使用方法3. 查看训练日志 介绍Verl和SwanLab verl 是一个灵活、高效且可用于生产环境的强化学习(RL)训练框架,专为大型语言模型(LLMs)的后训练设计。它由字节跳动火山引擎团…...

职场到校园,初心未改:我的2024年
Hi,大家好,我是几何心凉。 其实早就想写一份复盘文章,正好借助2024年度博客之星的评选机会,来写下这篇总结。回望过去,感慨颇多。自从加入CSDN平台以来,已经见证了许多博主的来去匆匆,各类创作…...
C++基础知识学习记录—引用
1、引用的概念 概念:引用相当于给变量取个别名 对引用进行操作与直接操作变量相同,注意引用类型与变量类型一致 #include<iostream> using namespace std; int main(){int a10;int& cite_a a;//操作引用cite_a 与操作变量a完全一样cout &l…...
AWS Savings Plans 监控与分析工具使用指南
一、背景介绍 1.1 什么是 Savings Plans? AWS Savings Plans 是一种灵活的定价模式,通过承诺持续使用一定金额的 AWS 服务来获得折扣价格。它可以帮助用户降低 AWS 使用成本,适用于 EC2、Fargate 和 Lambda 等服务。 1.2 为什么需要监控? 优化成本支出跟踪使用情况评估投…...

【AI学习】关于 DeepSeek-R1的几个流程图
遇见关于DeepSeek-R1的几个流程图,清晰易懂形象直观,记录于此。 流程图一 来自文章《Understanding Reasoning LLMs》, 文章链接:https://magazine.sebastianraschka.com/p/understanding-reasoning-llms?continueFlagaf07b1a0…...

C++ ——从C到C++
1、C的学习方法 (1)C知识点概念内容比较多,需要反复复习 (2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深 (3)学好编程要多练习,简…...

【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案
建筑设计公司在项目执行过程中,会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求:为了方便内部管理和向客户交付完整的设计方案,公司需要将每个项目文件…...
前端学习之Flex布局
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Flex布局示例</title><style>.conta…...

游戏引擎学习第97天
回顾昨天并计划今天 在这期节目中,主要讲解了光照的概念,并进一步讨论了法线贴图光照的实现。节目的内容大致分为几个部分: 光照的基础概述:讨论了光的工作原理以及如何在编程图形时需要考虑光照问题。尽管这些概念并没有深入到…...
Mysql中存储引擎各种介绍以及应用场景、优缺点
概述 MySQL 提供了多种存储引擎,每种引擎有不同的特点和适用场景。以下是几种常见的 MySQL 存储引擎的详细介绍,包括它们的底层工作原理、优缺点,以及为什么 MySQL 默认选择某种引擎。 1. InnoDB 底层工作原理: 事务支持&#…...
PHP 运算符
PHP 运算符 概述 PHP 是一种广泛使用的开源服务器端脚本语言,它具有丰富的运算符集,这些运算符是编写 PHP 程序的基础。运算符用于执行各种数学、逻辑和比较操作。本篇文章将详细介绍 PHP 中常用的运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。 算术运…...
Vue全流程--Vue3.0与Vue2.0响应式原理对比
Vue2中数据的响应式 需要使用Vue.set这么一个api,修改数据 需要使用Vue.delete这么一个api,删除数据 数据代理这个当面的理解可以看看我前面文章Vue全流程--数据代理的理解以及在Vue中的应用-CSDN博客 Vue3中数据的响应式 Vue3使用proxy这个api实现…...

C语言学习笔记:子函数的调用实现各个位的累加和
在C语言程序学习之初,我们都会学习如何打印 hello world,在学习时我们知道了int main()是主函数,程序从main函数开始执行,这是流程控制的一部分内容。在主函数中我们想要实现一些功能,比如求各个…...

【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面
本地部署DeepSeek-R1:8b大模型 一、摘要及版本选择说明1.1 摘要1.2 版本选择 二、下载并安装Ollama三、运行DeepSeek-R1:8b大模型四、安装Open WebUI增强交互体验五、关闭Ollama开机自动启动六、DeepSeek大模型启停步骤 一、摘要及版本选择说明 1.1 摘要 作为一名对 AI 和生成…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...