时间序列预测可以使用经典预测方法和深度学习方法。经典预测方法如ETS、ARIMA等为每个时间序列独立地拟合模型,而深度学习方法在给定的数据集中学习时间序列。
如今,大型语言模型(LLM)在自然语言处理任务中表现出色,基于transformer架构,通常在文本语料库上进行训练,基于预训练LLM的预测模型包括将数值时间序列数据视为原始文本,利用预训练的LLM进行微调,或将数值数据编码为数字字符串,在预训练的LLM上进行零样本设置来获取预报。零样本学习。本文重点介绍下Chronos——一个结合预训练时间序列的大模型框架。
Chronos是一个预训练概率时间序列大模型框架,通过缩放和量化将时间序列值分词为固定词汇表,并使用交叉熵损失训练现有的基于变换器的语言模型架构来处理这些分词的时间序列。
Chronos基于T5家族预训练大模型,该模型在大量公开可用数据集上进行了预训练,并补充了通过高斯过程生成的合成数据集以提高泛化能力。在42个数据集组成的全面基准测试中,Chronos模型在训练语料库中的数据集上显著优于其他方法,与专门针对新数据集进行训练的方法相比,具有可比的甚至更好的零样本性能。结果表明,Chronos模型可以利用来自不同领域的时间序列数据提高未知预测任务的零样本精度,从而将预训练模型定位为简化预测管道的可行工具。
图1 Chronos的高层次描述。(左)输入时间序列被缩放和量化以获得一系列令牌。(中)令牌被馈送到语言模型中,该模型可以是编码器-解码器模型或解码器模型。使用交叉熵损失训练模型。(右)在推理期间,我们从模型自动采样的令牌并将其映射回数值值。从模型中采样多个轨迹以获得预测分布
Chronos使用分类模型对观测值进行分类分布建模,执行回归分类。该模型不需要针对时间序列进行特定设计或特征,而是将时间序列值标记化到固定词汇表上,并在这些标记上训练现有的语言模型架构。其他时间序列任务。最近的研究已经研究了适用于时间序列任务的一般性模型,包括填补、预测、分类和异常检测。这些模型基于CNN的Inception模型和掩码预训练框架,将一维时间序列转换为二维图像表示,并基于周期性对时间序列进行分段和堆叠。这些模型在未见过的时间序列数据上表现出色,可以应用于预测之外的任务,如分类和异常检测。
时间序列预测可以使用经典预测方法和深度学习方法,其中经典预测方法如ETS、ARIMA等为每个时间序列独立地拟合模型,而深度学习方法在给定的数据集中学习时间序列。这些方法在建模目标上有所不同,一些模型直接预测一组分位数,而其他模型则建模密度函数。并非所有模型都产生概率预测。
大型语言模型(LLM)在自然语言处理任务中表现出色,基于transformer架构,通常在文本语料库上进行训练,参数数量从数百万到数百亿不等。它们旨在通过建模条件分布来预测下一个标记。目前,BART和T5等模型在许多流行的语言模型中。建议读者参考Zhao等人(2023年)的最新研究。
基于预训练LLM的预测模型包括将数值时间序列数据视为原始文本,利用预训练的LLM进行微调,或将数值数据编码为数字字符串,在预训练的LLM上进行零样本设置来获取预报。其中,周等(2023a)提出了一种通用的“一刀切”模型,使用预训练的GPT-2模型作为骨干,仅对位置嵌入和层归一化的参数进行微调以适应每个任务。此外,还有重新利用LLM进行时间序列预报的方法,如将时间序列补丁嵌入与文本原型对齐,并将这些对齐嵌入和描述任务的自然语言前缀提示给冻结的LLM。而Chronos从头开始训练语言模型在一个大型时间序列集合上,通过缩放和量化进行标记化。
零样本学习。Chronos模型是一种概率性的时间序列预测方法,它使用分类模型对观测值进行分类分布建模,执行回归分类。该模型不需要针对时间序列进行特定设计或特征,而是将时间序列值标记化到固定词汇表上,并在这些标记上训练现有的语言模型架构。
其他时间序列任务。最近的研究已经研究了适用于时间序列任务的一般性模型,包括填补、预测、分类和异常检测。这些模型基于CNN的Inception模型和掩码预训练框架,将一维时间序列转换为二维图像表示,并基于周期性对时间序列进行分段和堆叠。这些模型在未见过的时间序列数据上表现出色,可以应用于预测之外的任务,如分类和异常检测。
Chronos是一个框架,用于调整现有语言模型架构和训练过程以进行概率时间序列预测。尽管语言和时间序列都是顺序的,但它们在表示上存在差异,自然语言由有限词汇量的单词组成,而时间序列是实值的。这种差异需要对现有语言建模框架进行特定修改,特别是与分词有关的修改,以便它们适用于时间序列数据。然而,由于现有的变换器模型在语言任务上表现出色,Chronos的设计理念是进行最小化的修改。
考虑时间序列x1:C+H,其中前C个步骤是历史上下文,后H个步骤是预测时域。由于语言模型处理有限令牌,我们需要将实值观察值xi∈R映射到令牌集合。这涉及缩放和量化。为优化深度学习模型,我们标准化时间序列,选择均值缩放,将每个条目按历史上下文的平均绝对值标准化。量化则是将实值转换为离散令牌,使用B个bin中心和边界。我们选择数据无关的一致binning,以避免未见数据集与训练分布的差异。时间序列词汇表Vts包括令牌{1, 2, ..., B}以及PAD和EOS特殊标记,用于填充缺失值、标识序列结束。虽然时间和频率信息常用于时间序列建模,但在Chronos中,我们只考虑序列本身。我们主要关注编码器-解码器T5模型的各种变体(Raffel等,2020),并额外使用GPT-2模型(Radford等,2019)进行实验,证明方法可扩展至仅解码器模型。为量化调整bin数量,需调整语言模型词汇量,涉及截断或扩展输入输出嵌入层。
Chronos模型使用分类交叉熵损失函数,将分词时间序列作为输入,预测下一个词的分类分布。Chronos模型的目标是最小化真实标签的分布和预测分布之间的交叉熵。损失函数为:ℓ(θ) = -H+1 X h=1 |Vts| X i=1 1(zC+h+1=i) log pθ(zC+h+1 = i|z1:C+h)。其中pθ(zC+h+1 = i|z1:C+h)表示由模型参数化θ预测的分类分布。分类交叉熵损失不是距离感知的目标函数,而是根据训练数据集中桶索引的分布将相邻桶关联在一起。Chronos通过分类进行回归,与典型的概率时间序列预测模型不同。选择分类输出分布有两个关键优势:不需要修改语言模型架构或训练目标,允许模型学习任意分布,包括多模态分布。
时序模型通过自回归采样,捕捉预测分布的未来多种可能性,并精确映射预测令牌到实际值。反标化阶段调整预测值,与原始数据尺度保持一致。在均值标定情境下,通过乘以适当的尺度因子s,确保预测结果既准确又实用。
公共时间序列数据在自然语言处理领域的相对匮乏,可以通过混合增强数据多样性和使用合成数据来补充训练来解决零样本预测模型面临的挑战。
混合时间序列数据增强方法(TSMix)是一种将Mixup思想扩展到超过两个数据点的时间序列领域的数据增强方案。它从训练数据集中随机采样特定长度的时间序列,对其进行缩放,并取其凸组合,生成示例增强。该方法通过混合来自不同时间序列的模式来增强数据的多样性,有助于缓解深度学习模型中的过度拟合和过拟合问题。该方法还展示了如何混合不同的模式,并生成示例增强。
图2 k={1,2,3}时的TSmix增强示例。TSmix通过从不同数据集随机抽样的时间序列中取加权的组合来提高模式多样性
4.2 KernelSynth:使用高斯过程生成合成数据
KernelSynth是一种使用高斯过程生成合成时间序列的方法,通过随机组合高斯过程的核函数来生成新的时间序列。核函数指定了协方差函数,可以生成各种模式。我们构建了一个基核函数的集合,包括用于趋势的线性核,用于平滑局部变化的RBF核,以及用于在典型时间序列频率中找到季节性的周期性核。合成时间序列是通过从GP先验中抽取样本来生成的。这种方法可以补充训练数据集。
图3 (a)KernelSynth的示意图,KernelSynth是一种基于高斯过程(GP)的合成时间序列生成方法。从核库中采样核函数,然后使用二进制操作(×或+)随机组合。生成的合成时间序列在高斯过程的前置中使用了组合后的核函数。图中展示了每个步骤中来自不同核函数的随机样本,颜色分别为红色和蓝色。(b)KernelSynth生成的合成时间序列示例
这一部分展示了常用基准数据集的实验结果。首先,概述了数据集、训练策略、基准和评估指标。接着,评估了Chronos模型在领域内和零样本设置下的性能,并与局部模型和特定任务深度学习模型进行了比较。然后,分析了各种设计选择对Chronos模型性能的影响。最后,分析了Chronos模型的定性性能,并强调了其局限性。实验细节已归入附录。
表1 我们实验所使用的数据集和基线的概要
为了训练和评估Chronos模型,我们收集了来自多个应用领域的大量公开可用数据集,包括能源、运输、医疗保健、零售、网络、天气、金融等。数据集总共有55个,来自多个来源,包括莫纳什时间序列预测存储库、M竞赛和Kaggle上的公共领域数据集。我们将数据集分类为三类:仅用于训练的数据集(13个),用于训练和评估的基准I数据集(15个),仅用于评估的基准II数据集(27个)。我们使用28个数据集来训练Chronos模型,包括约89万个一维时间序列,总共有约84亿个观察值。对于域内(I)和零样本(II)基准数据集,我们使用每个时间序列的最后H观察值作为留出测试集,所有模型的准确性都通过它们在留出集合上的预测来判断。预测长度H是任务特定的,我们将任务定义为数据集和预测长度的配对。两个基准的任务在数据集大小、频率、历史长度和预测长度方面表现出不同的属性,使其成为丰富的基准,反映了现实世界的场景。
我们选择了T5作为Chronos的主要架构,因为它有多种尺寸可供选择。我们训练了T5模型4种尺寸,分别为Mini(20M)、Small(46M)、Base(200M)和Large(710M),以及GPT-2基础模型(90M)。我们在由28个训练数据集生成的10M TSMix增强上训练了这些模型,并在训练过程中从增强数据和合成数据中采样时间序列的比例为9:1。每个模型使用实际批次大小为256个序列进行训练,使用分布式数据并行和梯度积累。我们使用AdamW优化器,使用权重衰减为0.01的Adam优化器对模型进行了为期200K步的训练。学习率在训练步骤中从初始值0.001线性降至0。我们使用具有8个A100(40GB)GPU的AWS EC2实例来训练所有Chronos模型。
我们评估了Chronos模型的性能,并将其与多种时间序列预测基准进行了比较。这些基准包括天真模型、季节性天真模型、自动ETS、自动ARIMA和AutoTheta等统计预测模型,以及WaveNet、DeepAR、N-BEATS、TFT、DLinear、PatchTST、N-HiTS和GPT4TS等神经预测模型。我们还评估了ForecastPFN,这是一个仅使用合成时间序列数据进行预训练的转换器模型。我们将Chronos模型和基准分为三组:本地模型、任务特定模型和预训练模型。更多详细信息请参阅附录C。
我们评估了模型的概率和点预报性能,使用加权分位数损失(WQL)评估概率预报,平均绝对比例误差(MASE)评估点预报。WQL衡量预测分布与地面真实观察的兼容性,针对9个分位数级别计算。分位数预报器直接在这些分位数级别上进行训练,对于需要采样的方法,使用20个样本预报路径来估计分位数。MASE定义为预报的绝对误差与时间序列的历史季节误差之比。对于概率预报器,我们使用中位数预报(0.5分位数)来计算MASE。我们采用几何平均值聚合分数,因为其对基准的选择不敏感,且模型排序保持不变。对于无法完成评估的模型,我们赋予其相对分数为1。我们在汇总过程中给所有任务赋予了相同的权重。
本节展示了42个数据集上的主要结果,包括Benchmark I(15个数据集)和Benchmark II(27个数据集)。Chronos模型在内部域数据集(Benchmark I)上超过了经典统计基线和特定任务的深度学习模型。在零样本数据集(Benchmark II)上,Chronos模型超过了统计基线,与最佳深度学习模型表现相当。通过微调方案,Chronos-T5(Small)模型在Benchmark II上取得了最佳成绩,显著超过所有基线。
基准I包含15个数据集,用于评估Chronos模型的领域内性能。所有模型在留出的测试窗口上的概率和点预测性能,以聚合相对分数和平均排名为指标。Chronos-T5模型(基础版和大模型)显著优于基准模型,获得了最佳的聚合相对分数和平均排名。Chronos-T5模型的小型版本(Mini和Small)以及Chronos-GPT2也优于大多数基准模型。这些结果表明,使用跨多个数据集仅进行一次训练的模型比为每个任务单独训练的任务特定模型更有优势。这种模型可以通过消除为每个任务训练单独模型的必要性,简化生产预测系统中的预报工作。
图4 在基准I上的不同模型性能,包括15个数据集,这些数据集也包含在Chronos模型的训练数据中。基准展示了Chronos模型相对于本地统计模型在域内性能,这些模型为每个时间序列单独拟合参数,以及针对每个任务专门训练的模型。使用季节性朴素贝叶斯基线的分数对概率(WQL)和点(MASE)预报指标进行归一化,并通过几何平均值聚合以获得聚合相对WQL和MASE。Chronos和任务特定模型(除GPT4TS外)的平均结果涵盖了3个随机种子。仅根据MASE对产生点预报的模型(GPT4TS)进行比较。
基准II由27个数据集组成,这些数据集在Chronos模型训练过程中未被使用过,用于评估模型的零样本性能。Chronos模型在基准II上的表现优于本地统计模型,在概率预报方面取得第二和第三名,点预测性能排名第三。Chronos模型还显著优于ForecastPFN和GPT4TS。微调后的Chronos-T5(小型)模型在基准II上总体排名第一,超过了更大的(零样本)Chronos模型和最佳特定任务模型。
图5 在基准II上的不同模型性能,包含在训练过程中没有看到Chronos模型的27个数据集。基准提供了对Chronos模型与本地统计模型、针对每个时间序列单独拟合参数的任务特定模型以及预训练ForecastPFN模型的零样本性能的见解。概率性(WQL)和点(MASE)预报度量值使用季节性朴素贝叶斯基线的分数进行归一化,并通过几何平均值聚合以获得聚合相对WQL和MASE,分别进行比较。Chronos和任务特定模型(除GPT4TS)的性能结果平均了3个随机种子。仅基于MASE对产生点预报的模型(GPT4TS和ForecastPFN)进行比较。
图6 在来自基准II的各个数据集上进行微调时,Chronos-T5(小型)相对于零样本性能显著提升,并且平均而言成为表现最佳的模型(见图5)。
我们研究了不同设计选择,如模型大小、初始化、训练步骤、合成数据比例、上下文长度和词汇表大小,对下游模型性能的影响。在每次实验中,我们只调整一个参数,保持其他因素不变,以评估其对Chronos-T5(小型)性能的单独影响。
模型大小:我们试验了从20M到710M参数的四种模型大小。发现随着模型容量的增加,训练损失逐渐降低,域内和零样本基准的性能也相应提升。这表明更大的模型可能进一步提高性能。但考虑到推理时间的限制,我们没有进一步探索更大的模型。
图7 模型大小。(a)不同大小的Chronos模型训练损失曲线。(b)Chronos模型随模型大小变化的域内和零样本性能。
初始化:我们研究了使用T5语言模型权重初始化Chronos模型的效果。结果显示,随机初始化的模型收敛到较低训练损失的趋势更为明显。对于大型模型,使用语言模型权重初始化的模型在初始阶段训练损失下降较快,但最终收敛到较高的损失。总体来说,在语言模型背景下,随机初始化可能更优。
图8 不同模型大小下,使用语言模型权重初始化(标记为星号)的模型和三个随机初始化的模型(标记为圆圈)的域内和零样本性能的比较。
图9 初始化。不同大小的随机初始化的Chronos模型与使用语言模型权重的初始化的Chronos模型之间的训练损失的比较。
TSMix增强:我们在TSMix增强的时间序列上训练了Chronos模型,并研究了其对下游性能的影响。结果显示,使用TSMix增强的模型在零样本性能上有所提升,这表明TSMix增强了训练数据多样性,提高了对未见数据集的性能。随着合成数据量的增加,零样本性能进一步提升。
图10 (a)使用TSMix增强训练的Chronos-T5(Small)模型在域内和零样本性能之间的比较,以及没有TSMix增强的模型。(b)Chronos-T5(Small)模型在训练语料库中KernelSynth数据不同比例下的域内和零样本性能。
合成数据比例:我们探索了KernelSynth对下游模型性能的影响。实验表明,在训练中加入合成数据可以提高域内和零样本指标的性能。最稳定的改进出现在大约10%的合成数据比例时,进一步提高比例通常会降低性能。尽管仅使用合成数据训练的模型表现略逊于同时使用真实数据的模型,但其绝对性能表现相当不错。
训练步骤:我们对Chronos-T5(小型,46M)进行了1百万步的训练,以研究更长的训练对模型性能的影响。结果显示,随着训练的进行,下游模型性能在域内和零样本基准上均有所提高。这表明,对于更大的模型,更长的训练可能有助于提高性能。
图11 Chronos-T5(小型)模型在训练步数、训练上下文长度和词汇量上的内域和零样本性能随时间的变化情况。
上下文长度:我们研究了上下文长度对下游性能的影响,通过训练Chronos-T5模型,观察到随着上下文长度的增加,性能有所改善。然而,由于大多数基准数据集频率较低且时间序列长度小于1000步,需要进一步评估更长上下文长度的效果。推测高频数据集可能会受益于更长的上下文,有助于捕捉长期季节性模式。
词汇量:我们通过不同词汇量的Chronos-T5模型训练,发现随着词汇量的增加,点预测指标MASE持续提高,而WQL在较大词汇量时开始改善后恶化。MASE与单个系列规模无关,与训练损失紧密相关,而WQL与规模相关,表现不太可预测。这些指标特性的讨论详见附录D。
在此部分,我们对Chronos模型生成的预测进行定性分析,并指出标记化技术的局限性。我们主要关注合成时间序列的生成,以进行不同类型时序模式的受控分析。如需了解实际数据集的预测,请参考附录E中的图22至图24。
独立同分布噪声:我们生成了由两种高斯观测值组成的时间序列,并用Chronos-T5(基础版)进行预测。结果显示,模型预测准确,80%的预测区间与真实区间相吻合。
图12 Chronos-T5(基础版)对合成模式生成的预测。(a) 噪声:Chronos对于高斯噪声生成了合理的预测,80%的预测区间与底层分布区间匹配(由水平虚线蓝色线表示)。(b) 趋势:Chronos正确地预测了线性趋势(顶部),但对于指数趋势(底部)则难以应对。(c) 季节性:Chronos能够准确建模不同复杂程度的季节性模式(顶部为单季节性,底部为三季节性)。(d) 组合模式:Chronos对通过添加(顶部)或乘法(底部)组合趋势和季节性模式生成的时间序列进行准确预测。
趋势和季节性:Chronos能够准确预测线性趋势,但对指数趋势的预测较为困难。当上下文不足时,模型在估计趋势方面可能过于保守。然而,随着上下文增长,模型能够准确识别模式和趋势。此外,模型在识别季节性模式方面表现优秀。
图13 当上下文不够长时,Chronos-T5(基础版)往往会低估趋势,如经典航空旅客数据(月度)和24个月预测时间跨度下的例子所示。上图:只有120个观测值作为上下文时,预测中位数与前一趋势相比趋于平缓。下图:有完整的上下文,即144个观测值时,预测更紧密地跟随趋势。
自回归过程:我们对不同阶数的平稳AR过程生成的时间序列进行了预测,并将Chronos-T5(基础版)的预测结果与真实AR模型、正确阶数的AR模型和AutoARIMA模型的预测结果进行了比较。结果显示,Chronos在所有四个AR过程中都生成了令人信服的预测。
图14 Chronos-T5(基础版)针对AR(1)和AR(4)过程生成的时序的预测结果,与真实世界AR模型、正确阶数的拟合AR模型和AutoARIMA模型生成的预测结果进行比较。Chronos-T5(基础版)在这两种情况下都能生成可信的预测和预测区间。所有AR模型都能正确拟合更简单的AR(1)过程,并且相对于Chronos-T5(基础版),具有更好的MSE;然而,在AR(4)过程中,其复杂性增加,Chronos-T5(基础版)在真实世界AR模型之后排名第二。
灵活的预测分布:使用分类分布为Chronos提供了生成不同形状预测分布的灵活性。模型输出的预测分布形状各异,包括多模态分布。
图15 来自Chronos模型对NN5(每日)、交通和医院数据集的序列的预测分布分布图。每个图都显示了五个预测步骤(h=1,…,5)的预测分布:密度是通过核密度估计从样本预测中获得的。尽管交叉熵不关心距离,但模型学会了估计邻近标记的分布,以及各种形状的分布,包括多模态分布。
溢出和精度损失:Chronos的一个限制是其分词方法(见第3.1节)。具体来说,标记代表的数据范围是[-15s, 15s],其中s为数据的尺度。若s过小,某些观察值会超出范围,如图16a的稀疏系列。而s过大则会导致精度损失,因为接近的值可能被映射到同一标记上,如图16b所示。尽管有这些限制,但第5.5节的结果表明,Chronos模型在现实数据上表现良好。未来的工作将关注如何改进分词方法以克服这些边缘情况。
图16 由于缩放和量化导致的精度损失。在(a)中,数据由每隔n=10、20、50个观察值(从上到下)的单位尖峰组成:这里的尺度是1/n,因此最大可表示值为15/n。当1>15/n时,模型不可能恰当地捕捉到尖峰(除了最高情况),因为它们的值没有被标记准确地代表。在(b)中,数据是一个正弦波,它向上移动了μ=1、10、50:这里的尺度是μ,随着信号的方差相对于μ变得越来越小,标记的精度就会下降。
Chronos作为实用预训练时间序列预测模型的先驱之一,在综合测试数据集上展示了显著的零样本性能,打开了多种研究途径。
我们在单变量时间序列预测上评估了Chronos的性能,并发现它在特定任务上表现优异。虽然可以通过微调提高性能,但预测任务通常需要考虑协变量。未来研究可探索将协变量融入预训练模型中,或结合其他轻量级模型以提高性能。此外,Chronos也可能有助于其他时间序列分析任务。
Chronos模型的推理速度可能较慢,但其优点在于可以部署在各种数据集上,简化了预测流程。为提高推理速度,可考虑使用优化的CUDA内核、量化、更快解码技术等。同时,长上下文语言模型的发展也可能提高Chronos在捕捉季节性模式方面的性能。其他文本语言模型技术也有望提高预报质量。
图17 不同模型对单个时间序列预测的推理时间,对每个数据集进行了平均,同时突出了模型所需的计算要求。
大模型在大规模时序数据集上训练可获得出色的性能,但公开时序数据有限。为解决此问题,时序社区需获取更大规模的数据集,或开发更好的合成时序生成方法。我们已在这方面取得进展,使用高斯过程生成的合成数据可改善模型性能。未来研究可进一步探索模型失败模式,并提出改进方案以缩小真实数据和合成数据之间的差距。