长周期时序预测核心问题
长周期时间序列预测,指的是预测窗口较长一类时间序列预测问题。一般来说,预测长度在50个点以上,就可以认为是长周期时间序列预测问题。同时,预测长度的增加,会使得模型需要引入更长的历史序列,才能实现更好的预测。相比短周期时序预测,长周期时序预测主要面临的挑战有以下几个方面。
长周期历史信息提取 :相比短序列,长序列由于其样本点更多,对历史信息的提取也更加困难,模型容易随着输入历史序列长度的增长而过拟合。并且,长周期预测也更难捕捉对每个时间步有用的历史信息。
长周期预测 :时间序列预测模型一般情况下预测的准度会随着预测的长度增加而变差,这导致在长周期预测中会出现很多不稳定的因素,甚至超过一个时间步长度的预测结果完全不可用。
运行效率 :随着序列的增长,模型需要处理更长周期的数据,导致模型在训练和推断中效率变低。
针对上述问题,业内有一系列针对长周期时间序列预测的研究工作。这篇文章就汇总了长周期时间序列预测代表性工作,带大家梳理长周期时序预测的解决方法。
长周期解码方式优化
长序列的一个挑战是如何在解码过程中,能够更完善的和历史序列进行交互,进而实现解码的每个步骤都能获取到历史长周期序列中最有用的时间步信息。
PETformer: Long-term Time Series Forecasting via Placeholder-enhanced Transformer 提出了一种不区分Encoder-Decoder的解码方式,采用了placeholder-enhanced的方式。在Decoder部分使用几个可学习的向量作为输入,不再区分Encoder和Decoder,而是拼接到历史序列的token上,一起输入到统一Transformer,让待预测部分可以更自然的获取历史序列信息。
Informer: Beyond efficient transformer for long sequence timeseries forecasting(AAAI 2021) 中也做了类似的操作。Informer仍然区分Encoder和Decoder,但是在Decoder的前面会拼接一段历史序列,并且将剩余待预测的时间步用0填充,类似placeholder-enhanced的方式。这里将Encoder的一部分序列拼接到Decoder前面,主要为了在长周期的历史序列中,更加凸显近期序列的重要性。
长周期信息补充
在长周期中,有一些例如以长跨度为主的特征,包括自相关系数等,是一般的深度学习模型很难通过单纯的数据学到的。为了刻画这部分特征,一些工作会通过人工抽取特征,或者辅助任务的方式,讲这些信息引入进来。例如在Web Traffic竞赛中,第一名的方案手动提取季度、年等长周期的自相关系数,直接作为额外的特征输入到模型中。
在 SELF-SUPERVISED CONTRASTIVE FORECASTING(ICLR 2024) 这篇论文中,通过在时间序列预测中引入对比学习,实现对Encoder建模窗口以外全周期时间序列信息的应用。长周期预测一般需要更长的历史序列作为输入,但是受限于历史序列窗口,很难完整刻画全部历史序列。这篇文章提出了一种基于自相关系数的对比学习loss。在一个batch内,时间序列是来自同一个完整时间序列的多个窗口(也可能来自多个,本文主要以一个完整序列进行研究),并且这些窗口大概率具有比较大的时间间隔,因为是随机采样的。首先标记出每两个时间序列之间的时间间隔T,然后计算两两时间序列间隔为T的自相关系数,这个自相关系数刻画了这两个时间序列的相关关系。以这个自相关系数为label,构建对比学习的正样对,并以对比学习为目标优化序列表征。通过这种方式,实现了利用完整时间序列信息的目的,在表示空间中拉近在完整时间序列中T自相关性系数高的时间序列片段表征。
长周期简化模型
很多研究都发现,一些基于Transformer等复杂模型结构的时间序列预测模型,在历史序列输入长度增加时,会出现过拟合的现象。由于历史输入的增加,解空间变大,时间序列往往还存在比较大的噪声,导致Transformer等模型容易出现过拟合问题。因此,一些工作在长周期预测中简化了模型结构,用线性等更基础的网络结构构建了鲁棒性更强的长周期时序预测模型。
Client: Cross-variable Linear Integrated Enhanced Transformer for Multivariate Long-Term Time Series Forecasting 这篇文章中,构建了一个Linear和Transfomrer相结合的长周期时序预测模型。其中Transformer建模变量间关系,而Linear模型主要复杂对序列趋势项的建模,用线性模型对长周期的趋势项关键信息进行捕捉。
SparseTSF: Modeling Long-term Time Series Forecasting with 1k Parameters 也是一个主要用线性网络进行长周期时序预测的工作。对于长周期时间序列,根据某个周期,将其分割成多个子片段,如图中所示,每个周期内的相同位置点采样出来拼接成一个序列。这样做相当于把季节项拆解出来,每个序列只保留趋势项。每个子片段使用一个线性模型进行独立的预测,再各个片段聚合到一起。为了缓解采样带来的信息损失以及异常点影响,文中先使用一个一维卷积,对邻居节点信息进行聚合,得到更为平滑的序列。
频域提取长周期全局信息
之前我们介绍过频域建模。在长周期预测中,频域信息的应用的重要性更加凸显。因为频域代表了序列的全局信息,而这种信息当序列比较长时,在时域中是很难提取的。
例如, TFDNet: Time-Frequency Enhanced Decomposed Network for Long-term Time Series Forecasting(2023) 利用短时傅里叶变换,将原始时间序列分成多个窗口,并假设每个窗口内的时间序列是平稳的,对每个窗口内的时间序列分别进行傅里叶变换,最终得到一个时域-频域矩阵。这个矩阵描述了原始时间序列的时域频域关系。在进行了趋势项、季节项分解之后,使用短时傅里叶变换分别对两个部分进行处理,得到两个相应的矩阵。通过这种方式,将频域信息引入进来,实现对全局信息更直接的刻画。
长周期性能优化
当输入序列较长时,就需要进行模型性能的优化。不仅在时间序列,在NLP、CV等领域,性能优化也是一个核心研究点。在NLP中,有很多针对Transformer长序列输入的性能优化,都可以直接应用到时间序列领域。这里介绍2个时间序列领域的模型性能优化。
Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting(2020) 为了提升attention的计算效率,提出将完全attention改成局部attention,让attention计算变得更稀疏,提升模型的运算效率。具体包括使用log的方式每隔2、4、8等计算一次attention,以及对于近期的时间步计算attention,或者两种结合的方式。
Informer: Beyond efficient transformer for long sequence timeseries forecasting(AAAI 2021) 针对长周期Transformer,设计了一种提升运算效率的attention方法。attention score具有非常明显的长尾性,少数的score比较大,大多数score很小,因此只要重点建模那些重要的关系即可。如果一个query和其他key的attention score接近均匀分布,那么这个query就是简单的把其他value加和求平均,意义不大。因此Informer中提出计算每个query的attention score打分分布和均匀分布的KL散度,对于重要性不大的query,key就不和这些query计算attention,形成了sparse attention的结构,带来计算效率的大幅提升。
本文转载自,作者: