本文主要是介绍《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍了一个名为TimeFM的新型时间序列预测基础模型,该模型受启发于自然语言处理领域的大语言模型,通过再大规模真实世界和合成时间序列数据集上的预训练,能够在多种不同的公共数据集上实现接近最先进监督模型的零样本预测性能。
该模型使用真实世界和合成数据集构建的大型时间序列语料库进行预训练,并展示了在不同领域、预测范围和时间粒度的未见数据集上的准确零样本预测能力。
1、引言
时间序列在零售、金融、制造业、医疗保健和自然科学等各个领域无处不在。近年来,深度学习模型已成为预测丰富多元时间序列的流行方法。
深度学习模型:
1、David Salinas, V alentin Flunkert, Jan Gasthaus, and Tim Januschowski. Deepar: Probabilistic forecasting with autoregressive recurrent networks. International Journal of F orecasting, 36(3):1181–1191, 2020.
2、Boris N Oreshkin, Dmitri Carpov, Nicolas Chapados, and Y oshua Bengio. N-beats: Neural basis expansion analysis for interpretable time series forecasting. In International Conference on Learning Representations, 2019.
3、Rajat Sen, Hsiang-Fu Y u, and Inderjit S Dhillon. Think globally, act locally: A deep neural network approach to high-dimensional time series forecasting. Advances in neural information processing systems, 32, 2019.
4、Tian Zhou, Ziqing Ma, Qingsong Wen, Xue Wang, Liang Sun, and Rong Jin. Fedformer: Frequency enhanced decomposed transformer for long-term series forecasting. In International Conference on Machine Learning, pages 27268–27286. PMLR, 2022.
5、Si-An Chen, Chun-Liang Li, Nate Y oder, Sercan O Arik, and Tomas Pfister. Tsmixer: An all-mlp architecture for time series forecasting. arXiv preprint arXiv:2303.06053, 2023.
旨在设计一个通用的时间序列基础模型,以获得良好的开箱即用的零样本预测性能,在大量时间序列数据上训练的大型预训练模型学习时间模式,从而对以前未见过的数据集进行时间序列预测。
TimeFM是一个用于时间序列预测的单一基础模型,当用于不同领域的各种以前未见过的预测数据集时,可以获得接近最先进的零样本精度(与这些数据集单独训练的最佳监督模型相比),该模型可以很好的跨越不同的预测历史长度、预测长度和推断时间粒度。
基础模型的两个关键元素:①使用现实世界数据和合成数据构建的大规模时间序列语料库;②采用带有输入补丁的解码器风格注意力架构(输入补丁:将输入数据分割成小块或补丁,并将这些补丁作为模型的输入)
2、最近工作
预测模型可分为以下几类
1、局部单变量模型:分别针对数据集中的每个时间序列进行训练,以便预测相应的时间序列的未来。
2、全局单变量模型:在许多时间序列上进行全局训练,但在推理过程中,将时间序列的未来作为其自身过去和其他相关协变量的函数来预测。
3、全局多变量模型:采用数据集中所有时间序列的过去来预测所有时间序列的未来。
3、问题定义
建立一个通用的零样本预测器,接受时间序列的过去C个时间点作为上下文,并预测未来的H个时间点。定义预测的准性可以通过均方误差(MAE)等指标来衡量。
4、模型架构
本文提出:允许模型的预测输出patch的长度大于输入patch的长度,假设输入patch_len为32,输出patch_len为128
patch掩蔽:如果只使用patch,模型可能只学会预测上下文长度是输入patch长度的倍数。因此在训练中应小心使用掩蔽,patch的部分以及上下文窗口开始的整个补丁都可以在数据批处理中被屏蔽(随机屏蔽策略)。
输入层:将时间序列预处理成变换器层的输入token。首先,输入被分解成连续的非重叠的patches,然后,每个patch通过残差块(residual block)处理成模型维度大小的向量。同时,还提供了一个二进制填充掩码(padding mask),用于指示哪些输入应该被忽略,残差块本质上是一个多层感知器(MLP)块,带有一个隐藏层和跳跃连接。
堆叠变换器(stacked transformer):模型的大部分参数位于堆叠的变换器层中,每层都有标准的多头自注意力机制(multi-head self-attention, SA)后跟一个前馈网络(Feedforward Network,FFN)。使用因果注意力(causal attention),即每个输出token只能关注序列中它之前的输入token(包括相应的输入令牌),这种设计允许模型并行处理整个上下文窗口,并在看到不同数量的输入patches后自动预测未来的时间点。
输出层:任务是将输出token映射成预测。模型以解码器仅模型(decoder-only mode)训练,即每个输出token应该能够预测紧随其后输入patch的部分时间序列,与输入patch长度不同,输出patch长度可以更长,这意味着可以根据迄今为止看到的输入patch编号的信息预测更大的时间序列块。
损失函数:专注于点预测,因此使用了均方误差作为训练期间的损失函数。损失函数是在所有训练小批量上的预测误差的平均值。
训练:模型使用标准的微批量梯度下降进行解码器仅模式的训练,通过时间序列的所有窗口进行迭代。训练中唯一的非标准部分是训练期间掩码的采样方式。
对于批次中的每个时间序列,对0—p-1之间的随机数r进行采样,然后设置1—r为1,其余为0,由此屏蔽输入patch的一小部分。
推理:训练好的网络可以使用自回归解码(类似于大语言模型)为任何预测范围生成预测。给定输入时间序列,模型首先预测下一个时间步的未来,然后使用生成的输出作为输入来生成下一个输出patch的预测,依此类推。
5、预训练细节
预训练语料库包含大量代表各种领域、趋势和季节性模式以及时间粒度的时间数据,从三个主要来源获取用于训练模型的大量数据来解决这个问题。主要数据来源是:
1、Google trends:该数据集捕获了从2007年到2022年数百万查询的搜索兴趣,作者选择了约22000个主要查询,并下载了这些查询在小时、日、周和月粒度上的搜索兴趣数据。
2、wiki pageviews:该数据集捕获了从2012年1月到2023年11月所有wikimdedia页面的小时级浏览量。作者清晰并聚合了这些数据,并过滤掉包含多零值的页面浏览时间序列。
3、合成数据:创建了合成时间序列生成器,包括ARMA过程、季节性模式(不同频率的正弦波和余弦波混合)、趋势(线性、指数带有一些变化点)和阶跃函数。合成时间序列可以是一个或多个这些过程的加性组合。
4、其他真实世界数据源:添加其他公开的数据集,包括M4数据集的所有粒度、小时和15min的电力数据集、小时交通数据集,以及用于评估的10min粒度的气象数据集。
未完成,待续......
这篇关于《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!