↑↑↑关注后"星标"kaggle竞赛宝典
kaggle竞赛宝典 作者:Fareise 时序预测中的多类型模型组合建模方案。
时序预测中的多类型模型组合建模方案。
时间序列建模中很多种类型的结构可以选择,比如Transformer、CNN、RNN,以及最近被验证有效的MLP、Mamba等结构。然而,不同模型都有特定的潜在优势和劣势。因此,现在越来越多的时序预测模型优化工作,采用了多模型组合的建模方式。
今天这篇文章,就给大家介绍一下多模型组合建模的核心思路,以及几篇近期发表的多模型组合时序预测工作,在一个模型中同时使用不同类型的模型结构,实现各个结构之间的优势互补。
在Transformer应用到时间序列预测建模后,越来越多的模型组合方法被挖掘并应用。例如RNN+Transformer、CNN+Transformer等结构。这主要是因为Transformer和CNN、RNN等模型可以实现比较好的优势互补。Transformer的优势在于长周期的attention建模,但是由于其只通过位置编码获取时序关系,对时序建模的能力并不强。而RNN、CNN则比较擅长时序数据的处理,但是对于长周期的建模能力较弱。因此,RNN/CNN配合Transformer的建模方法逐渐走进研究者视野。
比如在Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting这篇文章中,在Transformer底层加一个CNN,利用CNN的序列建模能力让输入的时序样本点感知到上下文信息。Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting也是类似的思路,在Transformer底层加一个RNN,将RNN的序列建模能力和Transformer的长周期建模能力结合起来。
除了CNN和RNN外,现在很多工作将MLP和Transformer结合在一起。MLP的作用和CNN非常相似,也是将单个样本点的信息,通过临近点的整体编码,形成语义更强的时序表征,再输入到后续Transfomrer模型中。PatchA Time Series is Worth 64 Words: Long-term Forecasting with Transformers中提出的PatchTST就是这个建模思路。
接下来给大家介绍2篇近期的时间序列预测多模型组合工作。这两篇文章都融合了包括Transformer、CNN、RNN、Mamba、MLP等结构中的至少3个。
第一篇是Mamba or Transformer for Time Series Forecasting? Mixture of Universals (MoU) Is All You Need。这篇文章提出了一种多模型融合的建模方法,实现对时间序列长短期信息的综合利用。模型中引入了包括Mamba、Transformer、CNN等多种模型结构进行不同维度的时间序列信息抽取。
文中的核心优化点包括2个方面,一个是在底层时间序列的patch处理上进行了优化,另一个是模型结构上的多种结构融合思路。在patch处理上,将时间序列分成多个patch后,一般使用一个MLP进行映射,文中进一步使用MoA结构处理patch。MoA是一个多个子模块组成的patch信息处理器,每个子模块使用一个稀疏门控网络,对表征的部分元素进行激活。通过多组这种子模块的融合,每一组实现不同类型pattern的信息提取,最后加到一起,作为patch的表征。
在模型结构方面,整体是Mamba->FFN->CNN->Transformer的组织方式。Mamba用来提取时序相关的基础信息,FFN增加非线性,CNN扩大每个patch的视野,Transformer最终进行长周期的时间序列建模。
第二篇是PRformer: Pyramidal Recurrent Transformer for Multivariate Time Series Forecasting。这篇文章提出了一种融合Transformer、RNN、CNN的时间序列预测模型,其中RNN+CNN用来进行每个变量时间序列的时序维度编码,Transformer用来进行变量间关系的建模,类似iTransformer的形式。
文中的核心是RNN+CNN构建的层次时序编码网络。由于时间序列存在不同粒度的周期性,不同的粒度之间又存在关系着一定的关系。为了刻画这种多频率信息,文中采用了层次CNN的方式进行建模。对于每一层CNN,使用不同的kernel size和stride size,提取不同粒度的信息,并通过CNN起到了缩短序列长度的作用。
在进行每个层次的CNN编码后,每一层的CNN编码输入与上一层CNN编码融合后,输入到GRU中,利用GRU的时序建模能力编码每个粒度的序列。不同粒度的GRU编码结果最后通过加权融合的方式,生成每个变量时间序列的最终表征结果。
在得到单变量的时序表征后,Transformer进行变量间关系建模。将每个变量时间序列的表征看成是一个token,使用self-attention在变量维度计算相关性并进行融合,类似iTransformer中的方式。
组合模型是时间序列预测中的一个重要研究问题。没有一种模型结构可以完美解决时间序列预测面临的任何问题,通过各类模型结构的组合,让各个模型实现优势互补,可以很大程度上提升时间序列预测模型的性能。