当前位置: 首页 > news >正文

时序必读论文15|TimeXer:通过外部变量增强Transformer在时间序列预测中的能力

图片

论文标题:TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables

论文链接:https://arxiv.org/abs/2402.19072

前言

仅仅关注内生变量,通常不足以保证准确的预测,外部序列可以为内生变量提供有价值的外部信息。先前的多变量或单变量预测方法要么将所有变量平等对待,要么忽视外部信息,本文提出TimeXer框架,利用外部信息来增强内生变量的预测。TimeXer相较于Transformer架构,具备调节内生和外生信息的能力,特别是设计了patch自注意力和variate交叉注意力机制。此外,TimeXer还采用了一个全局内生变量token来将外部序列桥接到内生时间patch中。实验结果表明,TimeXer在带有外部变量的时间序列预测方面显著提升了性能,并在十二个真实世界预测基准测试中取得了领先的性能。

这里首先给出内生和外生变量的概念定义:内生时间序列代表需要预测的值,而外部变量是影响内生序列的额外因素。这些外部变量可能包含与内生序列相关的各种信息,如季节性因素、经济指标、政策变化等,它们可以对内生序列的走势产生重要影响。

本文工作

01、背景介绍

图片

如图1所示,现有的预测范式可以大致归纳为三个不同的类别。与单变量和多变量预测相比,带有外部变量的预测引入了辅助信息以促进内生变量的预测。外部变量在实际应用中普遍存在且不可或缺,因为时间序列数据的变化常常受到外部因素的影响,如经济指标、人口变化和社会事件。例如,电价高度依赖于市场的供需情况,仅基于历史数据来预测未来价格几乎是不可能的。结合外部因素可以更全面地理解各变量之间的相互关系和因果关系,从而提高预测的性能、可靠性和可解释性。

带有外部变量的预测面临着独特的挑战。首先,时间序列往往受到多种因素的影响,这要求模型能够调和内生变量与外部变量之间的差异和依赖关系。将外部变量与内生变量同等对待不仅会导致显著的时间和内存复杂度,还会涉及从内生序列到外部信息的不必要交互。其次,外部因素对内生序列的影响可能是连续的和具有时滞性的。现实世界场景中的时间序列往往是不规则的,外部变量可能会遇到数据缺失、长度不一致和采样时间不一致等问题。

这里引出:基于Transformer的预测器最初并不是为带有外部变量的预测而设计的。以PatchTST为代表的现有变量独立模型仅能够捕捉时间依赖关系,但无法捕捉多元相关性。

02、TimeXer

图片

如图所示,TimeXer在不修改任何组件的情况下重新利用了标准的Transformer架构,其中引入了变量嵌入和patch嵌入来处理外部变量和内生变量之间的差异。TimeXer采用了标准的自注意力和交叉注意力机制来分别捕捉时间依赖性和变量依赖性。

Variate Embedding。TimeXer采用了一种变量嵌入方法,将每个序列嵌入为一个变量token,可以总结如下:

  • 内生变量嵌入:对于内生时间序列x_1:L,将其视为一个整体,并应用一个嵌入层(如线性层或嵌入查找表)将其嵌入为一个固定大小的向量e_x,该向量表示整个内生序列的全局特征。

  • 外部变量嵌入:对于每个外部变量序列z_1:L'^{(i)}(其中i从1到C),、应用相同的嵌入层将其嵌入为一个固定大小的向量e_z^{(i)}。这样,就为每个外部变量序列都获得了一个全局表示。

  • 嵌入融合:在获得内生变量和外部变量的嵌入之后,通过将所有嵌入向量拼接(concatenation),或者使用注意力机制将它们融合,以捕捉它们之间的相互作用。

通过这种方法,TimeXer能够利用序列的全局表示来建模内生变量和外部变量之间的相互作用,同时避免了由于使用过于细粒度的表示而引入的噪声和计算复杂度。

Patch Embedding。内生序列被分割成非重叠的patch,并且每个patch都被映射为一个时间token。内生变量的patch嵌入可以表示为:

图片

PatchEmbed()函数通过一个可训练的线性投影和位置嵌入将每个长度为P的patch映射到D维空间。

Patch-wise Self-Attention。TimeXer对所有内生token应用注意力机制,以捕获patch间的依赖关系。具体来说,内生变量的嵌入向量包含多个patch token(P)和变量token(V),其中变量token 是全局token,提供了全局视图以及与外生变量的交互。这个过程可以形式化为:

图片

Variate-wise Cross-Attention。在TimeXer中,采用交叉注意力来对内生和外生变量的序列级依赖性进行建模。交叉注意力层将内生变量作为查询(query),将外生变量作为键(key)和值(value),以建立两种类型变量之间的联系,。这个过程可以形式化为:

图片

实验和结论

图片

图片

整体读下来,这篇和Itransformer是一样的风格,故事讲的好,模型并不复杂,相比讲故事好重要~

按照作者的说法,考虑到外生变量在现实世界预测场景中的普遍性,TimeXer赋予了经典的Transformer架构无需结构性修改就能整合内生和外生信息的能力,能够捕捉内生时间依赖性以及内生和外生变量之间的多元相关性。实验结果表明,TimeXer在包含外生变量的短期和长期预测任务中都实现了最先进的性能。



大家一定要关注我的公众号【科学最top】,第一时间follow时序高水平论文解读!!!

相关文章:

  • 【hot100-java】【单词搜索】
  • Qt界面优化——绘图API
  • 知识图谱入门——1:基本概念、为什么要用?核心步骤、常用工具与技术、应用场景
  • Spring 概述与环境搭建
  • 【AI知识点】度量学习(Metric Learning)
  • CommandLineRunner 和 ApplicationRunner
  • OceanBase技术解析: 执行器中的自适应技术
  • 您的计算机已被Lockbit3.0勒索病毒感染?恢复您的数据的方法在这里!
  • Android常用C++特性之std::abs
  • STM32 map 文件浅析
  • 互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?
  • 二叉树进阶oj题【二叉树相关10道oj题的解析和c++代码实现】
  • 2024.09.19 校招 实习 内推 面经
  • 简单vue指令实现 el-table 可拖拽表格功能
  • Java 图片合成
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Linux gpio口使用方法
  • Python3爬取英雄联盟英雄皮肤大图
  • React的组件模式
  • SpringBoot 实战 (三) | 配置文件详解
  • storm drpc实例
  • tab.js分享及浏览器兼容性问题汇总
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 从setTimeout-setInterval看JS线程
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 由插件封装引出的一丢丢思考
  • 鱼骨图 - 如何绘制?
  • 怎么将电脑中的声音录制成WAV格式
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • $L^p$ 调和函数恒为零
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (定时器/计数器)中断系统(详解与使用)
  • ***原理与防范
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .考试倒计时43天!来提分啦!
  • @angular/cli项目构建--Dynamic.Form
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [CISCN2019 华东北赛区]Web2
  • [cocos2d-x]关于CC_CALLBACK
  • [CSS]盒子模型
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件
  • [ffmpeg] av_opt_set 解析