
时间序列Transformer模型中灵活引入不同类型外部特征的方法
今天给大家介绍一篇关于如何在深度模型中引入外部变量的时间序列预测工作,通过cross-attention灵活引入多种类型的外部变量补充信息,提升时序预测效果。
论文标题:CITRAS: Covariate-Informed Transformer for Time Series Forecasting
下载地址:https://arxiv.org/pdf/2503.24007
1.研究背景
现有的时间序列预测模型,大多数都是在优化待预测变量的关系建模方式上。例如一些transformer模型,核心都是通过不同的attention方式建模每个时间步和其他时间步目标序列的关系。这些方法忽略了外部变量的重要性。
外部变量,指的是那些非预测目标的变量序列,类似特征的概念。这其中又可以分为2种类型。一种是只知道历史每个时刻取值的变量,另一种是同时知道历史和未来每个时刻取值的变量。
本文针对这两种类型变量的灵活引入,提出了一种cross-attention结构,并通过attention score的平滑提升离散型变量的建模能力。在多个数据集上都取得了显著的效果提升。
2.建模方法
本文的核心模型结构如下图所示,整体基于Transformer结构,每次递归预测下一个时间步的值,对原始序列分patch处理后,先进行目标变量、各个外部变量独立的self-attention,再通过cross-attention将外部变量信息引入目标变量,并通过KV Shift让未来已知变量的信息引入到历史目标变量中。
Embedding部分:对目标变量、历史已知变量、历史未知变量都采用类似PatchTST的方法进行不重叠patch划分和MLP映射,生成embedding,输入到后续模型中。
Cross-Time Attention:这部分就是基础的self-attention,对待预测序列以及各个外部变量,都独立的分别做self-attention生成表征。
Cross-Variate Attention:这部分是本文的核心模块,用来进行外部变量信息引入待预测变量。其中目标变量表征为Query,目标变量、未来已知变量、未来位置变量拼接到一起作为Key和Value。由于未来已知变量涉及到未来时间步的值,没有对应的目标变量embedding,无法进行信息引入,因此文中引入了KV Shift的方法,将未来已知变量回移一个时间步,实现对齐拼接。在递归进行下一个时间步预测时再逐步引入未来时间步未来已知变量的表征。
Attention Score Smoothing:一些外部变量是离散型的,在一个patch内可能一直是同一个值,而时间序列在patch内可能出现比较大的波动,导致这种变量在attention时无法刻画全局信息。因此文中引入了attention平滑的方法,当前patch的attention值是历史patch的attention值的滑动平均。计算方式如下,每次使用上一个时刻的平滑attention值和当前时刻的attention值做加权求和。
3.实验效果
整体的实验效果如下表所示,文本提出的方法在多个数据集中取得了显著的效果提升。
本文转载自圆圆的算法笔记,作者:Fareise
