AI论文速读 | TimeXer:让 Transformer能够利用外部变量进行时间序列预测

论文介绍了一种新型框架TimeXer,它利用Transformer结构处理时间序列预测时的外部变量,通过创新的嵌入层和注意力机制提升预测精度。实验证明TimeXer在多项任务中表现出色,特别是在结合内外部信息方面。
摘要由CSDN通过智能技术生成

题目: TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables

作者:Yuxuan Wang ; Haixu Wu(吴海旭) ; Jiaxiang Dong ; Yong Liu ; Yunzhong Qiu ; Haoran Zhang ; Jianmin Wang(王建民) ; Mingsheng Long(龙明盛)

机构:清华大学

网址https://arxiv.org/abs/2402.19072

Cool Paperhttps://papers.cool/arxiv/2402.19072

关键词:时间序列预测,外部(外部)变量,Transformer

标题和作者
🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅时空探索之旅QRCode

摘要

最近的研究已经展现了时间序列预测显着的性能。 然而,由于现实世界应用的部分观察性质,仅仅关注感兴趣的目标,即所谓的内部变量(endogenous variables),通常不足以保证准确的预测。 值得注意的是,一个系统通常被记录为多个变量,其中外部序列可以为内部变量提供有价值的外部信息。 因此,与之前成熟的多元或单变量预测不同,本文要么平等地对待所有变量,要么忽略外部信息,而本文重点关注一个实际场景,即**外部变量(exogenous variables)**的时间序列预测。 提出了一个新的框架——TimeXer,利用外部信息来增强内部变量的预测。 凭借巧妙设计的嵌入层,TimeXer 使规范的 Transformer 架构能够协调内源和外源信息,其中采用了 patch-wise self-attention 和 variate-wise cross-attention。 此外,采用全局内部变量tokens来有效地将外部序列桥接到内部时间补丁中。 在实验上,TimeXer 显着改进了外部变量的时间序列预测,并在12 个现实世界预测基准中实现了一致的最先进性能。

不同预测范式(单变量,多变量,外部辅助信息)

Q: 这篇论文试图解决什么问题?

A: 这篇论文试图解决的问题是如何有效地结合内部变量(endogenous variables)和外部变量(exogenous variables)来进行时间序列预测。在现实世界的应用中,时间序列数据往往受到多种因素的影响,其中外部变量可以提供有价值的外部信息来辅助内部变量的预测。然而,现有的时间序列预测方法要么平等对待所有变量,要么忽视外部信息,这在预测准确性和解释性方面存在局限性。为了解决这一问题,论文提出了一个名为TimeXer的新型框架,旨在利用外部变量的外部信息来增强内部变量的预测性能。

Q: 有哪些相关研究?

A: 相关研究包括以下几个方面:

  1. 时间序列预测模型:近年来,深度学习模型在时间序列分析领域取得了显著进展。这些模型可以分为基于RNN、CNN、MLP和Transformer的模型。例如,LSTNet、DeepAR等基于RNN的模型适用于处理序列时间数据,但受限于梯度消失和效率问题。TimesNet、SCINet等基于CNN的模型通过卷积核增强时间序列建模。N-BEATS、DLinear等基于MLP的模型在时间序列社区中也表现出竞争力。
  2. Transformer在时间序列预测中的应用:Transformer因其在自然语言处理和计算机视觉领域的成功而被引入到时间序列数据中。Transformer模型根据表示学习的粒度可以分为点级、块级和序列级。例如,Informer、Autoformer、Pyraformer等模型通过不同的注意力机制来捕获时间序列数据中的相关性。
  3. 外部变量在时间序列预测中的应用:在经典统计方法中,外部变量已被广泛讨论并纳入模型输入。例如,ARIMAX和SARIMAX模型结合了外部和内部变量的相关性。尽管深度学习模型在时间序列建模方面取得了进展,但大多数现有模型在处理外部变量时仍然面临挑战,如数据缺失、采样不一致等问题。
  4. 时间序列预测的变体:例如,Temporal Fusion Transformer (TFT)、NBEATSx和TiDE等模型尝试在预测内部变量时考虑外部变量的未来值。这些方法通常将外部特征与内部特征在每个时间点上连接起来,然后映射到潜在空间,这要求内部和外部序列在时间上对齐。
  5. 时间序列表示学习:研究者们探索了不同层次的表示学习,以捕获时间序列数据中的复杂依赖关系。例如,Crossformer通过两阶段注意力机制来捕获跨时间和跨变量的依赖性。iTransformer利用全局序列表示来捕获多变量相关性。

这些相关研究为TimeXer框架的提出提供了理论基础和技术支持,TimeXer通过结合这些研究成果,旨在更好地利用外部变量信息来提高时间序列预测的准确性和可靠性。

不同级别(粒度)的时间序列表示:点级别,patch级别,序列级别

Q: 论文如何解决这个问题?

A: 论文通过提出一个名为TimeXer的新型框架来解决时间序列预测中结合内部变量和外部变量的问题。TimeXer的设计和实现包括以下几个关键点:

  1. 嵌入层设计:TimeXer通过精心设计的嵌入层,使得Transformer能够处理外部变量。这包括为内部变量和外部变量分别设计不同的嵌入策略,以捕获它们在时间序列中的作用。
  2. 自注意力和交叉注意力:TimeXer采用自注意力机制来捕获内部变量的内在时序依赖性,同时使用交叉注意力机制来建模内部变量和外部变量之间的多变量相关性。
  3. 全局内部变量token:为了有效地将外部序列的信息桥接到内部时间序列,TimeXer引入了一个全局内部变量token,这有助于在预测过程中整合外部信息。
  4. 实验验证:论文通过在多个真实世界的时间序列预测基准上进行广泛的实验,证明了TimeXer在利用外部信息进行预测方面优于其他模型,并实现了一致的最先进性能。
  5. 模型效率和可解释性:TimeXer在保持预测性能的同时,还关注模型的效率和可解释性。通过可视化注意力图和分析表示学习,TimeXer提供了对模型预测行为的深入理解。
  6. 扩展到多变量预测:TimeXer的设计允许它扩展到多变量预测场景,其中每个变量都可以被视为内部变量,而其他所有变量作为外部变量来辅助预测。

通过这些方法,TimeXer能够有效地结合内部和外部变量的信息,提高了时间序列预测的准确性,并在多个预测任务中取得了优异的性能。

!TimeXer
(a) 内部序列嵌入:patch嵌入和变量嵌入都用于内部变量,分别获得多个时间tokens和一个变量token。

(b) 外部序列嵌入:每个外部变量通过变量嵌入作为变量token嵌入。

© 内部自注意力:将自注意力应用于内生时间token以捕获补丁式依赖关系。

(d) 内外交叉注意力了:采用交叉注意力来对内生和外生变量的序列级依赖性进行建模。

外部变量的融合核心:外部embedding与内部变量做交叉注意力(cross-attention)

Q: 论文做了哪些实验?

数据集(内部变量数为1,对应多个外部变量)

短时预测

长时预测

A: 论文进行了一系列实验来验证TimeXer模型的有效性和性能,主要包括以下几个方面:

  1. 数据集选择:实验涵盖了多个真实世界的时间序列数据集,包括短期和长期预测任务。这些数据集涉及电力市场、气候、交通等多个领域,以全面评估TimeXer在不同场景下的表现。
  2. 基线模型:与多个最先进的深度学习时间序列预测模型进行比较,包括Transformer基线模型(如iTransformer、PatchTST、Crossformer等)和其他类型的模型(如CNN基线的TimesNet、SCINet,以及基于线性模型的RLinear、DLinear、TiDE等)。
  3. 预测性能评估:通过计算不同的预测性能指标(如均方误差MSE和平均绝对误差MAE)来评估TimeXer在不同预测长度下的表现,并与基线模型进行比较。
  4. 消融研究:进行了一系列消融实验来分析模型的不同组成部分对预测性能的影响,例如改变嵌入层的设计、调整补丁长度、以及分析交叉注意力和自注意力的作用。
  5. 模型效率分析:评估TimeXer在训练速度和内存使用方面的效率,并与基线模型进行比较。
  6. 表示学习分析:使用中心核对齐(CKA)相似性分析来评估TimeXer学习到的表示的质量,并与基线模型进行比较。
  7. 可视化分析:可视化了学习到的注意力图,以展示模型如何区分与内部变量相关和不相关的外部变量,从而提供模型预测的可解释性。
  8. 多变量预测扩展:将TimeXer扩展到多变量预测任务,并在现有的多变量时间序列预测基准上进行评估。

通过这些实验,论文展示了TimeXer在处理包含外部变量的时间序列预测任务时的有效性,以及其在不同预测任务和数据集上的优越性能。

消融实验

外部变量不同缺失率比较

外部变量缺失率提高,效果变差——外部变量有用

时间token和变量token的有效性验证

TimeXer与SOTA在不同数据集的性能比较

Q: 有什么可以进一步探索的点?

A: 尽管TimeXer在时间序列预测方面取得了显著的成果,但仍有一些潜在的研究方向可以进一步探索:

  1. 模型泛化能力:研究TimeXer在不同领域和更大规模数据集上的泛化能力,以及如何调整模型以适应新的预测任务。
  2. 计算效率优化:尽管TimeXer在预测性能上表现出色,但Transformer模型通常计算成本较高。探索更高效的算法和技术,如稀疏注意力机制,以减少计算资源消耗。
  3. 不确定性量化:在预测结果中引入不确定性估计,为决策提供更全面的信息。研究如何量化模型预测的不确定性,并将其应用于实际问题。
  4. 多任务学习:考虑将时间序列预测与其他相关任务(如异常检测、模式识别等)结合起来,通过多任务学习提高模型的整体性能。
  5. 长期依赖性建模:研究如何更好地捕捉时间序列数据中的长期依赖性,特别是在面对非线性和季节性模式时。
  6. 可解释性和透明度:进一步提高模型的可解释性,通过可视化和其他方法帮助用户理解模型的预测决策过程。
  7. 数据不平衡和缺失处理:研究如何处理不平衡数据和缺失值问题,这些问题在现实世界的时间序列数据中很常见。
  8. 实时预测和在线学习:探索TimeXer在实时预测场景中的应用,以及如何实现在线学习和快速适应新数据。
  9. 跨领域知识迁移:研究如何利用跨领域的知识迁移来提高模型在新领域的预测性能,尤其是在数据量有限的情况下。
  10. 集成学习和模型融合:考虑将TimeXer与其他预测模型结合,通过集成学习和模型融合技术提高预测的准确性和鲁棒性。

这些研究方向不仅可以推动时间序列预测技术的发展,还可以为实际应用提供更强大的工具和方法。

Q: 总结一下论文的主要内容

A: 这篇论文提出了一个名为TimeXer的新型框架,旨在增强Transformer模型在时间序列预测中对内部变量的预测能力,同时有效地利用外部变量提供的额外信息。以下是论文的主要内容总结:

  1. 问题定义:在现实世界的时间序列预测中,内部变量(目标变量)通常受到多种外部变量(外部因素)的影响。现有的预测方法要么平等对待所有变量,要么忽视外部信息,这限制了预测的准确性和可靠性。
  2. TimeXer框架:为了解决这一问题,论文提出了TimeXer,这是一个无需修改Transformer架构组件的新型框架。TimeXer通过设计嵌入层,使得Transformer能够处理外部变量,并通过自注意力和交叉注意力机制捕获内部和外部变量之间的依赖关系。
  3. 模型设计:TimeXer采用了变体的嵌入策略,包括序列级嵌入(variate embedding)和非重叠补丁级嵌入(patch embedding),以捕获时间序列数据的不同层次的表示。
  4. 实验验证:在多个真实世界的时间序列预测任务上,TimeXer在短期和长期预测中均取得了一致的最先进性能。实验结果表明,TimeXer能够更好地利用外部信息来提高预测准确性。
  5. 消融研究:通过消融实验,论文验证了TimeXer中不同组件的有效性,包括嵌入策略、注意力机制等。
  6. 模型效率和可解释性:TimeXer在保持预测性能的同时,还关注模型的效率和可解释性。通过可视化注意力图和分析表示学习,提供了对模型预测行为的深入理解。
  7. 多变量预测扩展:TimeXer的设计允许它扩展到多变量预测场景,展示了其在更广泛时间序列分析任务中的潜力。
  8. 结论:TimeXer通过巧妙地设计嵌入策略和注意力机制,成功地将外部变量的信息整合到时间序列预测中,提高了预测的准确性,并在多个预测任务中实现了最先进性能。此外,TimeXer在处理包含外部变量的复杂真实世界预测场景中展示了其潜力。

完整实验结果

完整数据集描述

利用外部变量的长时预测

多元长时预测

完整消融实验

8)]

[外链图片转存中…(img-gjiFeLyy-1709614603668)]

[外链图片转存中…(img-8uIVrNei-1709614603668)]

[外链图片转存中…(img-nAJrpP2k-1709614603669)]

性能比较(空间时间效率)

相关链接

AI论文速读 | TimeXer:让 Transformer能够利用外部变量进行时间序列预测
🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅时空探索之旅QRCode

  • 36
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现在Unity2D中点击某个物体后,物体改变速度,并在一段时间后恢复原始速度,可以按照以下步骤进行: 1. 创建物体:首先创建一个物体,可以使用Unity的模型编辑器或导入自定义模型。 2. 添加组件:给物体添加刚体组件和碰撞器组件,以便进行物理模拟。 3. 编写脚本:创建一个脚本来控制物体的速度变化和复原。在脚本中,可以使用协程来延迟一段时间后恢复原始速度。 ```csharp using UnityEngine; public class ObjectController : MonoBehaviour { public float originalSpeed = 5f; // 物体的原始速度 public float changedSpeed = 10f; // 物体改变后的速度 public float restoreDelay = 2f; // 物体恢复原始速度的延迟时间 private Rigidbody2D objectRigidbody; private float currentSpeed; void Start() { objectRigidbody = GetComponent<Rigidbody2D>(); currentSpeed = originalSpeed; } void Update() { // 点击鼠标左键时改变物体速度 if (Input.GetMouseButtonDown(0)) { Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D collider = Physics2D.OverlapPoint(mousePosition); if (collider != null && collider.gameObject == gameObject) { ChangeSpeed(changedSpeed); StartCoroutine(RestoreSpeed(restoreDelay)); } } // 应用物体速度 Vector2 velocity = transform.up * currentSpeed; objectRigidbody.velocity = velocity; } void ChangeSpeed(float newSpeed) { currentSpeed = newSpeed; } System.Collections.IEnumerator RestoreSpeed(float delay) { yield return new WaitForSeconds(delay); currentSpeed = originalSpeed; } } ``` 4. 在场景中放置物体实例:在场景中放置一个物体的实例,并将物体控制脚本(ObjectController)添加到物体的GameObject上。 通过以上步骤,当点击该物体时,物体的速度将改变为指定的速度,并在一段时间后恢复原始速度。你可以根据需要调整原始速度、改变后的速度和恢复延迟时间。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值