【论文笔记】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} qRP 先被输入到嵌入层,之后将经过嵌入的输入时间序列分块作为键和值,输入到多头注意力层。通过这种方式,模型能够利用交叉注意力机制,从过去的时间序列数据(键和值)中,精准地提取与未来特定时间点(查询)相关的信息,有效避免了自注意力机制中因排列不变性和反序特性导致的时间信息丢失问题,更好地捕捉时间序列中的动态变化和依赖关系 。

跨预测范围的参数共享

在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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MQ】Spring3 中 RabbitMQ 的使用与常见场景

一、初识 MQ 传统的单体架构,分布式架构的同步调用里,无论是方法调用,还是 OpenFeign 难免会有以下问题: 扩展性差(高耦合,需要依赖对应的服务,同样的事件,不断有新需求&#xff0…

LabVIEW与USB设备开发

开发一台USB设备并使用LabVIEW进行上位机开发,涉及底层驱动的编写、USB通信协议的实现以及LabVIEW与设备的接口设计。本文将详细介绍如何开发USB设备驱动、实现LabVIEW与USB设备的通信以及优化数据传输,帮助用户顺利完成项目开发。下面是一个详细的说明&…

kali连接xshell

1.先保证宿主机:以太网适配器 VMware Network Adapter VMnet8 和kali(net 模式)在同一个网段 windows VMnet8开启 查看是否是自动获取ip ipv4 和ipv6一样的 查看 windows VMnet8的IPv4的地址 查看 kali 的IP地址 window ping的结果&#xf…

557. 反转字符串中的单词 III 简单

557. 反转字符串中的单词 IIIhttps://leetcode.cn/problems/reverse-words-in-a-string-iii/ 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入:s "Lets take LeetC…

多语言订货系统的语言适配与本地化开发策略

在全球化浪潮的席卷下,商业世界的边界日益模糊,企业纷纷踏上国际化征程,与世界各地的客户展开紧密合作。在这一背景下,多语言订货系统成为企业开拓全球市场的关键基础设施,其语言适配能力与本地化开发策略,…

OpenWRT中常说的LuCI是什么——LuCI介绍(一)

我相信每个玩openwrt的小伙伴都或多或少看到过luci这个东西,但luci到底是什么东西,可能还不够清楚,今天就趁机来介绍下,openwrt中的luci,到底是个什么东西。 什么是LuCI? 首先,LuCI是OpenWRT中…

第39周:猫狗识别 2(Tensorflow实战第九周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…

vue3 描边加载动画

效果&#xff1a; 组件代码&#xff1a; <template><divclass"loading-wrap"ref"loadingWrap":style"[{ borderRadius: styles.borderRadius || 4px },{ borderColor: styles.borderColor || #409eff },{ border: loading ? 1px solid #40…

20240911 光迅科技 笔试

文章目录 1、选择题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.152、编程题2.1岗位:嵌入式软件工程师 题型:15 道选择题,1 道编程题 注意:本文章暂无解析,谨慎分辨答案对错 1、选择题 1.1 若某图有 100 个顶点、90 条边,则该图一定是 (C) 有向图连通图非连…

C++软件开发常见面试题(二)

struct和class的区别 指针和引用的区别&#xff1f;c为什么提供了引用这个东西&#xff1f; 说const 指针和指针 const的区别&#xff1f;例如const A*是什么意思&#xff1f;了解const 函数吗&#xff1f;具体是不修改哪些数据成员呢&#xff1f; 多态。追问&#xff1a;动态…

[生信云问题分析] 为什么医院/单位/校园网络,无法通过ssh协议访问服务器

使用生信云,生信分析更省心轻松&#xff1b;欢迎访问生信圆桌 www.tebteb.cc了解 背景 许多科研人员在日常工作中需要使用单位的网络&#xff0c;但有时会遇到一个奇怪的现象&#xff1a;虽然网页可以正常打开&#xff0c;却无法通过SSH协议访问科研服务器。SSH&#xff08;Se…

java项目之基于推荐算法的图书购物网站源码(ssm+mybatis+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的基于推荐算法的图书购物网站项目。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于推荐算法的…

鸿蒙HarmonyOS NEXT开发:优化复杂UI页面的性能——自定义组件冻结(freezeWhenInactive属性)

文章目录 一、自定义组件冻结1、freezeWhenInactive 二、当前支持的场景1、页面路由2、TabContent3、Navigation4、组件复用 三、限制条件 一、自定义组件冻结 自定义组件冻结功能专为优化复杂UI页面的性能而设计&#xff0c;尤其适用于包含多个页面栈、长列表或宫格布局的场景…

java练习(19)

ps:练习来自力扣 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 // 定义二叉树节点类 class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode…

如何在华为harmonyOS上调试软件

1、设置-》关于手机-》HarmonyOS 版本连按多下&#xff0c;输入锁屏密码。显示开发者模式已打开。 2、设置-》搜索“开发人员选项”-》开启“开发人员选项”选项。 3、在 开发者选项 中找到 “USB 调试” 并开启。 4、开启 “仅充电时允许 ADB 调试”。 5、设置中开启 &quo…

Leetcode 算法题 14. 最长公共前缀

起因&#xff0c; 目的: 计划: 近期先做10个简单的题目&#xff0c;找找感觉&#xff0c; 然后开始做中等的。 题目来源&#xff1a; 14. 最长公共前缀 参考题解&#xff0c; 第二个写法&#xff0c;纵向扫描 代码 1 def solu(strs):# 方法二&#xff1a;纵向扫描# strs…

称呼计算器:智能科技,简化您的计算生活

一款手机应用程序&#xff0c;安卓设备上使用。这款计算器应用以其简洁的界面、实用的功能和良好的用户体验而受到用户的喜爱。 计算器的主要特点包括&#xff1a; 基本计算功能&#xff1a;支持加、减、乘、除等基本运算。 科学计算器模式&#xff1a;提供更高级的数学运算功…

SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界

文章目录 前言一、集成SkyWalking二、SkyWalking使用三、SkyWalking性能剖析四、SkyWalking 告警推送4.1 配置告警规则4.2 配置告警通知地址4.3 下发告警信息4.4 测试告警4.5 慢SQL查询 总结 前言 在传统监控系统中&#xff0c;我们通过进程监控和日志分析来发现系统问题&…

Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】

文章目录 DockerJenkins部署SpringBoot项目一.准备工作1.1安装jdk111.2安装Maven 二.Docker安装Jenkins2.1安装Docker2.2 安装Jenkins2.3进入jenkins 三.Jenkins设置3.1安装jenkins插件3.2全局工具配置全局配置jdk全局配置maven全局配置git 3.3 系统配置安装 Publish Over SSH …

有哪些免费的SEO软件优化工具

随着2025年互联网的不断发展&#xff0c;越来越多的企业意识到在数字营销中&#xff0c;网站的曝光度和排名至关重要。无论是想要提高品牌知名度&#xff0c;还是想要通过在线销售增加收益&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;都是一项不可忽视的关键策略。而要…