时间序列预训练模型 Chronos:学习时间序列的语言 Chronos: Learning the Language of Time Series-程序员宅基地

技术标签: 时间序列  时间序列模型  预训练模型  

Chronos:学习时间序列的语言

论文名称:Chronos: Learning the Language of Time Series

Github:https://github.com/amazon-science/chronos-forecasting

摘要

我们介绍了Chronos,这是一个简单而有效的预训练概率时间序列模型框架。Chronos使用缩放和量化将时间序列值标记为固定词汇,并通过交叉熵损失训练现有的基于Transformer的语言模型架构。我们在大量公开可用数据集上预训练了基于T5系列(参数范围从20M到710M)的Chronos模型,同时通过高斯过程生成了一个合成数据集,以提高泛化能力。在包含42个数据集的全面基准测试中,涵盖了传统的本地模型和深度学习方法,我们展示了Chronos模型:(a)在训练语料库中的数据集上明显优于其他方法;以及(b)在新数据集上具有可比甚至更优越的零样本性能,相对于专门针对它们进行训练的方法。我们的结果表明,Chronos模型可以利用来自不同领域的时间序列数据,提高对未见预测任务的零样本准确性,将预训练模型定位为极大简化预测流程的可行工具。

引言

时间序列预测是决策制定的重要组成部分,涵盖了零售、能源、金融、医疗保健、气候科学等各个领域。传统上,预测主要由统计模型如ARIMA和ETS主导。至少在最近转向深度学习技术之前,这些模型一直是可靠的工具(Hyndman & Athanasopoulos, 2018; Benidis等,2022)。这种转变可以归因于大量丰富的时间序列数据源的可用性,以及运营预测问题的出现(Kolassa & Januschowski, 2019),这些问题利用深度预测模型的优势,即从大量时间序列中提取模式。尽管深度预测模型表现出色,但仍在训练和预测相同数据集的标准范围内运作。尽管已经有研究致力于用于预测的迁移学习(Ye & Dai, 2018)和领域自适应(Jin等,2022),但该领域尚未就一个统一的通用预测模型达成共识,这仍然是时间序列研究人员的目标。

大型语言模型(LLMs)具有零样本学习能力,引发了开发时间序列“基础模型”的兴趣。在LLMs的背景下,这种兴趣通过两个主要途径进行了探索:直接在自然语言中提示预训练的LLMs(Gruver等,2023; Xue & Salim, 2023)和为时间序列任务微调LLMs(Zhou等,2023a; Jin等,2024)。然而,这些方法面临着重大限制,特别是对于每个新任务需要提示工程或微调的需求,或者依赖于需要大量计算资源和推理时间的大规模模型(GPT-3(Brown等,2020),Llama 2(Touvron等,2023)等)。最近的同时工作(Dooley等,2023; Das等,2023; Rasul等,2023; Woo等,2024)还探讨了在大量真实和(或)合成时间序列数据语料库上预训练基于Transformer的模型。

在这项工作中,我们退后一步,问:预测下一个标记的语言模型与预测下一个值的时间序列预测模型之间的基本区别是什么?尽管表面上有区别——有限字典中的标记与无界、通常连续域中的值——但这两种努力基本上都旨在对数据的顺序结构进行建模,以预测未来的模式。优秀的语言模型不应该“只是”在时间序列上起作用吗?这个天真的问题促使我们质疑时间序列特定修改的必要性,并回答这个问题导致我们开发了Chronos,一个最小程度适应于时间序列预测的语言建模框架。Chronos通过简单的缩放和量化将时间序列标记为离散区间。通过这种方式,我们可以在这种“时间序列语言”上训练现成的语言模型,而无需更改模型架构(请参见图1,对Chronos的高层描述)。值得注意的是,这种简单直接的方法被证明是有效和高效的,突显了语言模型架构在最小修改的情况下解决广泛时间序列问题的潜力。

图1:Chronos的高层描述。() 输入时间序列经过缩放和量化,得到一个标记序列。() 标记被馈送到语言模型中,该模型可以是编码器-解码器或仅解码器模型。模型使用交叉熵损失进行训练。() 在推断期间,我们从模型中自回归地采样标记,并将其映射回数值。多条轨迹被采样以获得预测分布。

对于开发一个有用的通用时间序列预测模型,公开可用时间序列数据集的稀缺性,无论是数量还是质量,都可能比建模框架更为关键。除了我们用来训练Chronos的全面公开数据集之外,我们方法的一个核心方面是集成数据增强策略,包括TSMix和KernelSynth。TSMix从不同训练数据集中随机抽样一组基础时间序列,并基于它们的凸组合生成新的时间序列;KernelSynth使用高斯过程通过随机组合核函数生成合成时间序列。这些技术解决了时间序列预测中训练数据集有限的固有限制,增强了模型的稳健性和泛化能力。

我们在42个数据集上的全面评估将Chronos确立为领域内和零样本预测的基准,超越了传统模型和任务特定的深度学习方法。值得注意的是,Chronos在开箱即用时实现了令人印象深刻的零样本预测性能,无需特定于任务的调整。其准确性,加上相对较小的模型规模,使其成为零样本预测应用中较大、计算要求更高的模型的可取替代方案。作为一个在固定词汇上运行的语言模型,Chronos可以与LLMs未来的进展无缝集成,使其成为进一步发展为通用时间序列模型的理想选择。

本文的其余部分组织如下。第2节介绍了时间序列预测和语言模型的背景,并讨论了相关工作。在第3节中,我们描述了Chronos,我们提出的用于时间序列的语言建模框架。第4节讨论了我们的数据增强技术和合成时间序列生成过程。在第5节中,我们呈现了我们的主要结果和对不同设计选择的严格分析。我们在第6节讨论未来方向,并在第7节中总结本文。附录中提供了额外材料。

背景和相关工作

时间序列预测涉及使用感兴趣的数量(通常是实值)的历史数据来预测其未来值。形式上,给定一个均匀间隔的时间序列x1:C = [x1*, . . . , xC*],我们感兴趣的是预测接下来H步的联合分布,pxC+1:C+H |x1:C. 在这项工作中,我们关注单变量预测,其中观测值是标量,即对于所有ixi ∈ R。

时间序列预测可以用各种不同方法来解决,可以广泛分类为传统预测方法和深度学习方法。传统预测方法如ETS、ARIMA(Hyndman等,2008)、Theta(Assimakopoulos & Nikolopoulos, 2000)为每个时间序列独立拟合一个单独的模型(因此称为本地模型)。相比之下,深度学习预测模型在给定数据集中跨时间序列学习(称为全局模型)。这些方法利用深度学习的进展,如DeepState(Rangapuram等,2018)、DeepAR(Salinas等,2020)、TimeGrad(Rasul等,2021)使用的RNN,以及TFT(Lim等,2021)和PatchTST(Nie等,2023)使用的transformer。除了架构的选择外,这些方法在对目标进行建模的方式上有所不同,有些模型密度函数,而其他模型直接预测一组分位数(Wen等,2017; Gasthaus等,2019)。然而,并非所有模型都产生概率预测:值得注意的是,像Informer(Zhou等,2021)和DLinear(Zeng等,2023)这样的模型只产生点预测。

大型语言模型(LLMs)在各种自然语言处理任务上展现出令人印象深刻的性能(Brown等,2020; Chung等,2022; Touvron等,2023)。给定一系列输入标记w1:k = w1*, . . . , wk*],语言模型旨在通过建模条件分布pwk+1*|w1:k)来预测下一个标记wk*+1。这些标记属于一个词汇表V,可以是字符、子词([Sennrich等,2015])或单词,具体取决于所使用的标记化方案。
大多数现代LLM(Brown等,2020;Chung等,2022;Touvron等,2023)基于变压器架构(Vaswani等,2017)。最初的变压器架构是一种为机器翻译设计的编码器-解码器模型。编码器将某种语言的输入句子映射到连续表示,解码器使用输入表示和先前解码的标记逐标记生成翻译。许多流行的语言模型,如BART(Lewis等,2019)和T5(Raffel等,2020;Chung等,2022),属于这一类别。LLM中另一种流行的架构是仅解码器,用于GPT-3(Brown等,2020)和Llama 2(Touvron等,2023),其中模型仅关注当前标记之前的标记。LLM通常在非常庞大的文本语料库上进行训练,其参数数量从数百万(Raffel等,2020)到数千亿(Chowdhery等,2023)不等。我们建议读者参阅Zhao等(2023)最近对这一研究领域的调查。

**基于LLM的预测器。**受预训练LLM成功的启发,最近的研究表明LLM是一种通用模式识别器(Mirchandani等,2023),并且已经开发了几种将LLM调整到时间序列领域的方法。一系列工作将数值时间序列数据视为原始文本,并直接使用预训练的LLM进行预测,最少或无需微调即可预测未见时间序列。PromptCast(Xue & Salim,2023)通过将时间序列数据转换为基于文本的输入和输出对,并将预测问题重新构建为问答任务,利用预训练的LLM进行预测。然而,PromptCast需要特定于数据集的模板,用于将数值数据转换为文本提示。也许最直接的基于LLM的预测模型是LLMTime(Gruver等,2023),它清晰地证明了预训练的LLM在各种基准时间序列数据集上的零照射预测能力。

LLMTime提出了一种新的标记方案,将实值数据编码为数字字符串,经过固定数值精度和适当缩放。一旦编码为字符串,就可以从预训练的LLM(如GPT-3和Llama 2)中以零照射设置获取预测。然而,使用这种计算密集型模型会影响LLMTime的可扩展性和实用性。

Zhou等(2023a)提出了一个统一的通用模型(GPT4TS),用于不同的时间序列分析任务,该模型使用预训练的GPT-2模型作为骨干,仅微调每个单独任务的位置嵌入和层归一化参数。他们不使用标记化输入,而是直接使用补丁嵌入将模型馈送到模型中,类似于PatchTST(Nie等,2023)。最近的并行工作Time-LLM(Jin等,2024)通过将时间序列补丁的嵌入与文本原型对齐,提示(冻结的)LLM使用这些对齐的嵌入和描述任务的自然语言前缀。与Chronos不同,GPT4TS和Time-LLM都需要在域内进行训练或微调,即它们在每个数据集上都进行微调和测试。此外,前述方法都是基于提示或微调预训练LLM。相比之下,Chronos在大量时间序列的基础上从头开始训练语言模型,通过缩放和量化进行标记化。

**零照射预测。**零照射预测是模型生成未见数据集的时间序列预测的能力。一些早期的零照射预测工作考虑在单个时间序列数据集上进行训练,然后在不同数据集上进行测试。ForecastPFN(Dooley等,2023)通过纯粹在根据预定义趋势和季节性(每日、每月、每年)生成的合成数据上训练基于变压器的模型来解决零照射预测问题。然后,训练的变压器模型用于在零照射设置中预测真实世界的时间序列。在这项工作中,我们还提出了一种从高斯过程生成合成时间序列数据的方法(第4.2节);然而,我们将合成数据与真实数据结合使用来训练Chronos模型,从而提高整体零照射性能。此外,Chronos模型是概率的,而ForecastPFN只能生成点预测。

最近的并行工作(Rasul等,2023;Goswami等,2024;Das等,2023;Woo等,2024)也通过在大量时间序列数据上预训练基于变压器的架构来开发零照射预测模型。这些工作在时间序列的实际值上操作,并包括时间序列特定设计,如时间特征、滞后、补丁和实值分布头等。相比之下,Chronos采用一种极简主义方法,将时间序列值标记化为固定词汇,并在这些标记上训练现有的语言模型架构,而无需任何特定于时间序列的设计或特征。换句话说,Chronos使用分类分布来建模观察结果,通过分类进行回归。

**其他时间序列任务。**与Zhou等(2023a)类似,最近的研究已研究了适用于时间序列任务的通用模型,包括填补、预测、分类和异常检测。Wu等(2023)基于Inception模型(Szegedy等,2015)开发了一个基于任务的通用骨干。为了使用基于CNN的Inception模型,一维时间序列被转换为类似图像的二维表示,方法是根据周期性对时间序列进行分段并堆叠这些段。SimMTM(Dong等,2023)是一个用于时间序列的掩码预训练框架,该框架学习通用时间序列表示,然后通过微调用于预测和分类。尽管我们在这项工作中专注于单变量时间序列预测,但基于其在未见时间序列数据集上的出色表现,我们假设Chronos学习了通用表示,可能可用于超出预测任务的任务。

Chronos:用于时间序列的语言建模框架

在本节中,我们介绍Chronos,这是一个将现有语言模型架构和训练程序调整为概率时间序列预测的框架。虽然语言和时间序列在本质上都是序列化的,但它们在表示上有所不同——自然语言由有限词汇中的单词组成,而时间序列是实值的。这种区别需要对现有语言建模框架进行特定修改,特别是在标记化方面,以使其适用于时间序列数据。然而,由于现有的变压器模型在语言任务上表现出色,我们的设计理念涉及对模型架构和训练程序进行最小更改。

  1. 时间序列标记化

考虑一个时间序列 x 1 : C + H = [ x 1 , … , x C + H ] \boldsymbol{x}_{1: C+H}=\left[x_1, \ldots, x_{C+H}\right] x1:C+H=[x1,,xC+H],其中前 C C C个时间步构成历史上下文,剩下的 H H H个表示预测范围。语言模型操作来自有限词汇的标记,因此将它们用于时间序列数据需要将观测值 x i ∈ R x_i \in \mathbb{R} xiR映射到有限一组标记。为此,我们首先对观测值进行缩放,然后将其量化为固定数量的箱。

缩放。即使在单个数据集中,时间序列的规模也可能有显著差异。这对深度学习模型提出了优化挑战。因此,为了更好地优化,个体时间序列被标准化。在CHRONOS的情况下,标准化的目标是将时间序列值映射到适合量化的范围。常见的标准化技术包括应用仿射变换到时间序列,即 x ~ i = ( x i − m ) / s \tilde{x}_i=\left(x_i-m\right) / s x~i=(xim)/s。几种流行的标准化方案,如均值缩放、标准缩放和最小-最大缩放,可以通过适当选择 m m m s s s来获得。我们选择均值缩放,这是一种在实际时间序列应用中常用的深度学习模型中证明有效的方法(Salinas等,2020),但其他方法也是可行的,只需要进行最小更改。均值缩放通过时间序列历史上下文中绝对值的均值来标准化时间序列的各个条目。具体来说,这涉及设置 m = 0 m=0 m=0 s = 1 C ∑ i = 1 C ∣ x i ∣ s=\frac{1}{C} \sum_{i=1}^C\left|x_i\right| s=C1i=1Cxi

量化。经过缩放的时间序列 x ~ 1 : C + H = [ x ~ 1 , … , x ~ C , … , x ~ C + H ] \tilde{\boldsymbol{x}}_{1: C+H}=\left[\tilde{x}_1, \ldots, \tilde{x}_C, \ldots, \tilde{x}_{C+H}\right] x~1:C+H=[x~1,,x~C,,x~C+H]仍然是实值的,无法直接由语言模型处理。为了将这些实值转换为离散标记,我们使用量化。形式上,我们在实线上选择 B B B个箱中心 c 1 < … < c B c_1<\ldots<c_B c1<<cB,以及 B − 1 B-1 B1个边缘 b i b_i bi将它们分开, c i < b i < c i + 1 c_i<b_i<c_{i+1} ci<bi<ci+1,对于 i ∈ { 1 , … , B − 1 } i \in\{1, \ldots, B-1\} i{ 1,,B1}。量化函数 q : R → { 1 , 2 , … , B } q: \mathbb{R} \rightarrow\{1,2, \ldots, B\} q:R{ 1,2,,B},和反量化 d : { 1 , 2 , … , B } → R d:\{1,2, \ldots, B\} \rightarrow \mathbb{R} d:{ 1,2,,B}R,然后定义为

$$
q(x)=\left{\begin{array}{ll}

1 & \text { if }-\infty \leq x<b_1, \

2 & \text { if } b_1 \leq x<b_2, \

\vdots & \

B & \text { if } b_{B-1} \leq x<\infty,

\end{array} \text { and } \quad d(j)=c_j\right.
$$
分别。箱中心和边缘的定位可以是数据相关的,也可以是均匀的(Rabanser等,2020)。分位数分箱是一种数据相关的分箱类型,利用训练数据点的累积分布函数(CDF)构建箱,以便将大约相等数量的数据点分配给每个箱。相比之下,均匀分箱在某个区间l, r]内均匀选择箱中心。由于未来数据集的值分布可能与训练分布有显著差异,我们在实验中选择了均匀分箱,但也可以使用其他量化技术。我们建议读者参考[Rabanser等人(2020)关于时间序列量化方案的详细讨论。这种方法的一个潜在局限性是预测范围受限于c1*, cB*],,从理论上讲,这使得模拟具有强趋势的时间序列变得不可行。我们将在第[5.7]节中在实际环境中进一步探讨这一点。

除了时间序列标记*{ 1,* 2*, . . . , B},我们还将两个特殊标记,通常用于语言模型,包括在时间序列词汇Vts中:PAD和EOS。PAD标记用于填充不同长度的时间序列以构建批次,并替换缺失值。EOS标记附加到量化和填充的时间序列末尾,表示序列的结束。虽然在时间序列的情况下使用EOS标记并非严格必要,但它使得使用流行的语言建模库进行训练和推断变得更加方便。来自V*ts的标记序列可以被语言模型(编码器-解码器模型和仅解码器模型)轻松处理,以便像往常一样对其进行训练。在时间序列建模中的一种常见方法是通过特征(如星期几、一年中的周数等)来整合时间和频率信息。或许有些出乎意料的是,在Chronos中,我们忽略了时间和频率信息,将“时间序列”简单地视为一个序列。

我们主要关注编码器-解码器T5模型的变体(Raffel等,2020)。此外,我们还使用GPT-2模型(Radford等,2019)进行实验,以证明我们的方法可以直接扩展到仅解码器模型。除了调整用于量化的箱数并可能与原始语言模型的词汇大小不同之外,无需对语言模型架构进行任何修改。具体来说,调整词汇大小涉及截断(或扩展)语言模型的输入和输出嵌入层。

2. 目标函数

与语言模型一样,我们使用时间序列标记Vts上的元素的分类分布作为输出分布,p(zC+h+1*|z1:C+h),其中z*1:C+h是标记化的时间序列。Chronos被训练以最小化量化真实标签的分布与预测分布之间的交叉熵。形式上,对于单个标记化的时间序列(还考虑到EOS标记),损失函数如下,

ℓ ( θ ) = − ∑ h = 1 H + 1 ∑ i = 1 ∣ V t s ∣ 1 ( z C + h + 1 = i ) log ⁡ p θ ( z C + h + 1 = i ∣ z 1 : C + h ) \ell(\boldsymbol{\theta})=-\sum_{h=1}^{H+1} \sum_{i=1}^{\left|\mathcal{V}_{\mathrm{ts}}\right|} \mathbf{1}_{\left(z_{C+h+1}=i\right)} \log p_{\boldsymbol{\theta}}\left(z_{C+h+1}=i \mid \boldsymbol{z}_{1: C+h}\right) (θ)=h=1H+1i=1Vts1(zC+h+1=i)logpθ(zC+h+1=iz1:C+h)

其中 p θ ( z C + h + 1 = i ∣ z 1 : C + h ) p_{\boldsymbol{\theta}}\left(z_{C+h+1}=i \mid \boldsymbol{z}_{1: C+h}\right) pθ(zC+h+1=iz1:C+h)表示由模型参数化的分类分布。在实践中,损失在训练期间对一批时间序列进行平均。

值得注意的是,分类交叉熵损失(公式2)不是一个距离感知的目标函数,即它并不明确认识到箱i比箱i + 1更接近箱i + 2。相反,模型预期基于训练数据集中箱索引的分布将相邻的箱关联在一起。换句话说,Chronos通过分类执行回归(Torgo & Gama,1997)。这与典型的概率时间序列预测模型不同,后者要么使用参数连续分布(如高斯分布和学生-t分布)(Salinas等,2020),要么执行分位数回归(Wen等,2017;Lim等,2021)。

选择分类输出分布提供了两个关键优势。首先,它无需对语言模型架构或训练目标进行修改,可以使用流行的语言建模库及其提供的实用工具(Wolf等,2020)。其次,它不对输出分布的结构施加任何限制,使模型能够学习任意分布,包括多模态分布。这种灵活性对于预训练模型尤为有价值,因为来自不同领域的时间序列数据集可能遵循不同的输出分布模式。

3. 预测

Chronos模型从设计上是概率性的,可以通过从预测分布(zC+h+1*|z1:C+h)中自回归地采样来获得未来的多个实现,其中h ∈ { 1,* 2*, . . . , H}。这些样本路径以标记ID的形式呈现,需要将其映射回实际值,然后进行反缩放以获得实际预测。方程(1)中的反量化函数d将预测的标记映射到实际值:然后通过应用逆缩放转换来进行反缩放,对于均值缩放,这涉及将值乘以比例s*。

数据增强

与自然语言处理(NLP)领域拥有丰富高质量文本数据集(如WikiText-103(Merity等,2016)、C4(Raffel等,2020)和The Pile(Gao等,2020))相比,公共时间序列数据的质量和数量相形见绌。这给零-shot预测的模型训练带来挑战,这些模型依赖于具有多样模式的大规模时间序列数据。为了解决这个问题,我们提出通过从真实数据集生成混合增强和补充训练数据来增强训练数据的多样性。

  1. TSMix:时间序列混合

Mixup(Zhang等,2017)是在图像分类背景下提出的一种数据增强方案。它生成训练数据集中随机图像对及其标签的凸组合,从而缓解深度学习模型中的记忆和过拟合等问题。现有研究(Carmona等,2021;Zhou等,2023b)已将Mixup扩展到时间序列领域。在这些工作的基础上,我们提出了TSMix,将Mixup的思想推广到超过两个数据点。具体来说,TSMix从训练数据集中随机采样 k ∼ U { 1 , K } k \sim \mathcal{U}\{1, K\} kU{ 1,K}个特定长度的时间序列, l ∼ U { l min ⁡ , l max ⁡ } l \sim \mathcal{U}\left\{l_{\min }, l_{\max }\right\} lU{ lmin,lmax},对它们进行缩放,并取它们的凸组合,

x ~ 1 : l T S M i x = ∑ i = 1 k λ i x ~ 1 : l ( i ) , \tilde{\boldsymbol{x}}_{1: l}^{\mathrm{TSMix}}=\sum_{i=1}^k \lambda_i \tilde{\boldsymbol{x}}_{1: l}^{(i)}, x~1:lTSMix=i=1kλix~1:l(i),

其中 x ~ 1 : l ( i ) \tilde{\boldsymbol{x}}_{1: l}^{(i)} x~1:l(i)表示第 i i i个缩放时间序列。组合权重[λ 1, . . . , λ k],从对称狄利克雷分布 Dir ⁡ ( α ) \operatorname{Dir}(\alpha) Dir(α)中随机采样。TSMix的完整伪代码可在附录A的算法[1]中找到。直观地说,TSMix通过将不同时间序列的模式组合在一起来增强数据的多样性。图2显示了TSMix生成的示例增强,并说明了不同模式是如何混合的。

图2:TSMix增强示例,其中k = { 1, 2*,* 3*}*。TSMix改进了模式

  1. KernelSynth:使用高斯过程生成合成数据

虽然TSMix改善了模式多样性,但对于训练通用时间序列模型,特别是当真实数据有限时,这可能仍然不够。为了进一步补充训练数据集,我们提出了KernelSynth,一种使用高斯过程(GPs)生成合成时间序列的方法。KernelSynth受Automatic Statistician(Duvenaud等,2013)的启发,该方法在GP核空间上执行组合搜索,以解释时间序列的结构。我们使用这个过程的逆过程——随机组合GP核来生成新的时间序列。

高斯过程 (GPs) 是由均值函数 m(t) 和正定核函数 κ(t, t′) 定义的函数分布,其中 t ∈ R 是定义域。核函数指定了协方差函数,该函数定义了输入域中任意一对点 (t, t′) 处函数值的联合变化性。通过适当选择核函数,可以生成不同的模式。我们构建了一个基础核函数库 K,其中包括线性核用于趋势、RBF 核用于平滑局部变化,以及周期核用于典型时间序列频率中发现的季节性。最终核函数 κ˜(t, t′) 是通过从 K 中有放回地抽取 j ∼ {*1, J}* 个核函数,并通过随机的加法或乘法操作将这些核函数组合而成。通过从 GP 先验 GP(m(t) = 0*, κ*˜(t, t′)) 中抽取长度为 lsyn 的样本,可以生成一个合成时间序列;详情请参见附录 A 中的算法 2。图 3 描绘了 KernelSynth 中使用的生成过程,展示了如何通过简单基础核函数的组合产生具有复杂模式的时间序列。

实验

在这一部分,我们将展示在常用基准数据集上的实证结果。首先,我们概述数据集、训练策略、基线和评估指标(第5.1-5.4节)。表1提供了我们实验中使用的数据集和基线的高级摘要。然后,我们(a)评估Chronos模型在领域内和零-shot设置下与本地模型和任务特定深度学习模型的性能(第5.5节);(b)分析各种设计选择(如模型大小、初始化、合成数据比例、上下文长度和词汇量)对Chronos模型性能的影响(第5.6节);以及分析Chronos模型的定性性能并突出它们的局限性(第5.7节)。我们在本节讨论我们的主要发现,并将具体实验细节放到附录中。

图3: (a) KernelSynth的示意图,一种基于高斯过程(GP)的合成时间序列生成方法。从核库中采样核,然后使用二元运算符(×或+)随机组合。生成的核用于GP先验生成合成时间序列。每个步骤中从核中随机采样的样本以红色和蓝色显示。(b) KernelSynth生成的示例合成时间序列。

表1: 我们实验中使用的数据集和基线的高级摘要。

  1. 数据集

为了训练和评估Chronos模型,我们收集了各种公开可用数据集,涵盖能源、交通、医疗保健、零售、网络、天气、金融等各种应用领域,采样频率从5分钟到每年不等。数据集的完整列表,以及它们的来源和其他详细信息,详见附录B。总共,我们的数据集收集包括来自多个来源的55个数据集,包括Monash时间序列预测存储库(Godahewa等,2021年)、M-竞赛(Makridakis等,1979年;Makridakis和Hibon,2000年;Makridakis等,2020年;2022年)以及来自Kaggle的公共领域数据集。

我们将这个收集分为三个子集,根据我们如何将它们用于训练和评估Chronos模型:(a) 专门用于训练的数据集(13个数据集);(b) Benchmark I数据集,用于训练和评估,代表领域内评估(15个数据集);和 Benchmark II数据集,仅用于评估,构成零-shot评估(27个数据集)。通过这种方式对数据集进行分类,我们试图在保留尽可能多的数据集用于Chronos模型的零-shot评估中,同时在训练数据中保留足够多的领域和采样频率的多样性。总体上,我们使用28个数据集来训练Chronos模型,包括约890K个单变量时间序列,总共约84B个观测(标记)。对于领域内(I)和零-shot(II)基准数据集,我们使用每个时间序列的最后H ∈ N+个观测作为保留测试集:所有模型都根据它们在这样的保留集上的预测准确性进行评判,这些数据集对于训练目的没有访问权限。预测长度H是特定于任务的(见附录B的表2),我们将任务定义为数据集和预测长度的组合。在我们的评估中,这两个基准中的任务展现出不同的特性,包括数据集大小、频率、历史长度和预测长度,使它们成为反映真实场景的丰富基准。

  1. 训练语料库和协议

我们选择T5(Raffel等,2020年)作为我们实验中Chronos的主要架构,因为它有各种规模可用,从16M(微型)到11B(XXL)参数(Tay等,2021年)。我们还使用仅解码器的GPT-2模型进行实验,以展示Chronos框架对仅解码器模型的适用性。接下来,我们讨论了用于我们主要结果(第5.5节)的训练配置,并在第5.6节探讨了一些超参数的替代方案。

我们训练了4种规模的T5模型,即,Mini(20M)、Small(46M)、Base(200M)和Large(710M),以及GPT-2基础模型(90M),使用从28个训练数据集生成的10M TSMix增强(见第4.1节),在算法1中使用K=3,并使用高斯过程生成了1M个合成时间序列(见第4.2节)。请注意,通过这个设置,原始时间序列得到了充分的表示,因为它们以1*/3的概率包含在TSMix增强中。我们在训练过程中以9:1的比例从增强和合成数据中采样时间序列。每个模型使用256个序列的有效批量大小进行训练,使用分布式数据并行和梯度累积,必要时。这些序列是通过从时间序列中切片随机窗口,然后在区间l*= 15,r=15]内等大小的箱中进行缩放和量化构建的,如第3.1节所述。序列的上下文长度设置为512,这是T5模型的默认值,预测长度设置为64,这是大于我们在评估中考虑的所有任务的预测长度的值。

模型经过200K步的优化,使用AdamW优化器,权重衰减为0.01。学习率从初始值0.001线性退火到0。其他模型和训练超参数设置为transformers库中使用的默认值(Wolf等,2020年)。我们使用了一个具有8个A100(40GB)GPU的AWS EC2实例来训练所有Chronos模型,并采用了更快的浮点格式(TF32)和模型编译来加速训练。附录E的表5报告了不同规模的Chronos模型的训练时间和大致训练成本。

  1. 基线

我们对比了Chronos模型与各种时间序列预测基线的性能。

从统计预测文献(Hyndman和Athanasopoulos,2018年)中,我们包括了Naive、Seasonal Naive、AutoETS、AutoARIMA(Hyndman等,2008年)和AutoTheta(Assimakopoulos和Nikolopoulos,2000年)。此外,我们还与几种神经网络预测基线进行了比较,包括WaveNet(Oord等,2016年)、DeepAR(Salinas等,2020年)、N-BEATS(Oreshkin等,2020年)、TFT(Lim等,2021年)、DLinear(Zeng等,2023年)、PatchTST(Nie等,2023年)、N-HiTS(Challu等,2023年)和GPT4TS(Zhou等,2023a)。在Benchmark II(即Chronos模型的零-shot数据集)上,我们还评估了ForecastPFN(Dooley等,2023年),这是一个仅在合成时间序列数据上训练的预训练变压器模型。

我们将Chronos模型和基线分为三组:本地模型,为每个时间序列单独估计参数;任务特定模型,为每个任务单独训练或微调;以及预训练模型,不进行任务特定训练,而是在所有任务中使用单个模型。关于这些基线的实现和训练的更多细节可以在附录C中找到。

  1. 评估指标

在可能的情况下,我们评估模型的概率和点预测性能。我们使用加权分位数损失(WQL)来评估概率预测的质量:WQL与连续排名概率分数(CRPS,Gneiting和Raftery(2007))相关,并且通常用于评估概率预测(Gasthaus等,2019年;Shchur等,2023年)。WQL衡量了预测分布与实际观测在均匀间隔的分位水平网格上的兼容性;我们在9个均匀间隔的分位水平{ 0.10.2、……、0.9}上计算WQL。像TFT这样的分位预测器直接在这些分位水平上进行训练。对于需要采样的方法,我们使用20个样本预测路径估计分位数。我们使用均值绝对缩放误差(MASE,Hyndman和Koehler(2006))来评估点预测性能。MASE定义为预测误差按时间序列的历史季节性误差进行缩放,由于其在其他点预测指标上的有利特性,被选为评估点预测性能的指标(Hyndman和Koehler,2006年)。对于概率预测器,我们使用中位数预测(0.5-分位数)来计算MASE。有关评估指标的详细讨论,请参阅附录D。

由于评估指标的大小可能在不同数据集之间变化,我们采用了一种不同于简单平均的方法来汇总分数。对于每个数据集,我们将每个模型的相对分数计算为该模型的分数除以基线模型的分数(在这里是季节性 Naive)。这些相对分数使用几何平均值在所有数据集上进行汇总。选择几何平均值是经过深思熟虑的——Fleming & Wallace(1986)表明算术平均值在这种情况下可能导致误导性结论,而几何平均值被证明是汇总这种相对分数的唯一有意义的方式。此外,几何平均值对于基线的选择也不敏感,如果选择其他基线,模型排序仍然保持不变。我们选择了季节性 Naive,因为它简单且作为预测基线很受欢迎。对于在某些数据集上失败或无法在规定时间内完成评估的模型,我们在汇总结果时使用相对分数为1,即基线相对分数。在汇总过程中,我们对所有任务分配相等的权重,反映了现实世界中数据集可能具有不同数量的时间序列、频率、历史和预测长度。

5. 主要结果

在这一部分,我们展示了在42个数据集上的主要结果,其中包括基准 I(15个数据集)和基准 II(27个数据集)。Chronos 模型在领域内数据集(基准 I)上超越了传统统计基线和特定任务的深度学习模型(请参见第5.5.1节)。在零样本数据集(基准 II;第5.5.2节)上,Chronos 模型在明显优于统计基线的同时,与在这些任务上训练的最佳深度学习模型表现相当。通过进行廉价的微调,我们的 Chronos-T5(Small)模型在基准 II 上取得了最佳成绩,明显优于所有基线。

1. 基准 I:领域内结果

基准 I 包括15个数据集,这些数据集也是 Chronos 模型的训练数据的一部分,即该基准评估了 Chronos 模型的领域内性能。图4总结了所有模型在留出测试窗口上的概率和点预测表现,以其汇总的相对分数表示,计算方法见第5.4节。更大的 Chronos-T5 模型(Base 和 Large)明显优于基线模型,获得最佳的汇总相对分数和平均排名。这些模型不仅表现优于本地模型(例如 AutoETS 和 AutoARIMA),还优于为每个数据集训练或微调的特定任务的深度学习模型(例如 PatchTST 和 DeepAR)。

较小的 Chronos-T5 模型(Mini 和 Small)以及 Chronos-GPT2 也优于大多数基线,除了 PatchTST。为特定任务训练的深度学习模型,在特定任务的多个时间序列上训练,表现优于为每个时间序列拟合参数的本地统计模型。有趣的是,季节性 Naive 基线在这一基准上与其他本地模型竞争激烈,这表明这些基准中的数据集呈现出强烈的季节性模式。这并不奇怪,因为这些数据集中的大多数属于能源和交通等往往具有高度季节性的领域。图4中总结的各个数据集的原始 WQL 和 MASE 值可以在附录 E 的表6和表7中找到。

这些结果表明,使用仅在多个数据集上训练一次的模型比为每个任务单独训练的特定任务模型更有益。这样的模型可以简化生产预测系统,其中需要不同时间序列任务的预测,从而避免为每个任务单独训练模型的需要。

图4:在基准 I 上不同模型的表现,包括15个也包含在 Chronos 模型训练数据中的数据集。该基准展示了 Chronos 模型在领域内的表现,与为每个时间序列单独拟合参数的本地统计模型以及为每个任务训练单独模型的特定任务模型进行对比。概率(WQL)和点(MASE)预测指标使用季节性 Naive 基线的分数进行归一化,并通过几何平均值进行汇总,得到相对 WQL 和 MASE。Chronos 和特定任务模型(除 GPT4TS 外)的结果已经在3个随机种子上进行了平均。只有生成点预测的模型(GPT4TS)是基于 MASE 进行比较的。

1. 基准 II:零样本结果

基准 II 包括27个在 Chronos 模型训练中未使用的数据集,即该基准评估了这些模型的零样本性能。这些数据集涵盖不同领域和频率,其中一些甚至不是训练数据的一部分,使得这对于 Chronos 来说是一个具有挑战性的基准。图5总结了基准 II 上的结果,以汇总的相对分数表示。相对于基准 I(图4),这个基准显然更具挑战性,因为最佳模型相对于基线的改进较小。

尽管在训练过程中从未见过这些数据集,Chronos 模型明显优于本地统计模型。在概率预测(相对 WQL)上,Chronos 模型获得第2和第3名,表现优于大多数在这些任务上训练过的特定任务模型。在点预测表现上,Chronos-T5(Large)排名第3,仅稍逊于 N-HiTS 的第2名。Chronos 模型还明显优于最近提出的零样本预测器 ForecastPFN,甚至优于在每个数据集上微调预训练的 GPT-2 模型的 GPT4TS。图5中总结的各个数据集的原始 WQL 和 MASE 值可以在附录 E 的表8和表9中找到。

这一基准的结果突显了 Chronos 作为通用时间序列预测器的潜力——它明显优于在零样本设置中常用的本地模型,并且与最佳特定任务的深度学习模型表现相当。

微调。 受 Chronos 模型显著的零样本表现启发,我们对在基准 II 数据集上对 Chronos 模型进行个别微调进行了初步调查。

图5:在基准 II 上不同模型的表现,包括27个 Chronos 模型训练中未见的数据集。这个基准提供了对 Chronos 模型在零样本情况下表现的见解,与为每个时间序列单独拟合参数的本地统计模型、为每个任务训练单独模型以及预训练的 ForecastPFN 模型进行了对比。概率(WQL)和点(MASE)预测指标使用季节性 Naive 基线的分数进行归一化,并通过几何平均值进行汇总,得到相对 WQL 和 MASE。Chronos 和特定任务模型(除 GPT4TS 外)的结果已经在3个随机种子上进行了平均。只有生成点预测的模型(GPT4TS 和 ForecastPFN)是基于 MASE 进行比较的。

我们选择了 Chronos-T5(Small)模型进行这个实验,因为它在零样本表现良好且训练成本相对较低。我们以数据集无关的方式对模型进行微调,初始学习率为0.001,线性退火至0,共1000步。图6显示,微调显著提高了模型在基准 II 上的整体性能。微调后的 Chronos-T5(Small)模型现在在基准 II 上取得了最佳成绩,超过了更大的(零样本)Chronos 模型和最佳特定任务模型。值得注意的是,Chronos-T5(Small)甚至不是零样本设置下基准 II 上最准确的 Chronos 变体,这表明通过微调更大的 Chronos-T5 变体可能会获得进一步的改进。

图6:当在基准 II 的各个数据集上进行微调时,Chronos-T5(Small)在零样本表现上显著提升,并成为平均表现最佳的模型(见图5)。

  1. 超参数分析

在这里,我们探讨了不同设计选择对下游模型性能的影响,首先是比较不同模型大小和初始化的效果。然后分析了训练步数、合成数据比例、上下文长度和词汇量大小对 Chronos-T5(Small)性能的影响。我们只改变感兴趣的参数,将其他所有内容保持固定为主要结果中使用的值。

模型大小。 我们尝试了四种参数范围从20M到710M的模型大小。不出所料,训练损失随着模型容量的增加而改善,如图7a所示。我们还观察到这种趋势在领域内和零样本基准的下游模型性能中也存在——随着模型大小的增加,性能得到提升,如图7b所示。这些趋势表明即使更大的模型可能进一步提高性能。然而,由于推理时间较慢,我们没有探索更大的模型,这将使其在实际应用中变得不切实际。

图7:模型大小。 (a) 不同大小的 Chronos 模型的训练损失曲线。 (b) Chronos 模型在领域内和零样本基准上随着模型大小变化的表现。

初始化。 我们研究了将 Chronos 模型初始化为 Tay 等人(2021)在 C4 数据集(Raffel 等人,2020)上预训练的相应 T5 语言模型是否会对训练动态或下游性能产生影响。图9显示了随机初始化的模型和使用语言模型权重初始化的模型的训练损失曲线对比。值得注意的是,与使用语言模型权重初始化的模型相比,随机初始化的模型往往会收敛到更低的训练损失。对于较大的模型(Base 和 Large),使用语言模型权重初始化的模型最初表现出训练损失下降更快,但最终会收敛到更高的最终损失。

总体而言,这些观察结果表明,在时间序列预测的背景下,语言模型权重在训练动态或性能方面并不特别显著,并且不比随机初始化带来任何改进。这些结论进一步得到了图8的支持,该图显示了使用语言模型权重初始化的模型与每种大小的三个随机初始化模型的下游性能对比。在所有模型大小上,使用语言模型权重初始化的模型的性能要么与随机初始化的模型重叠,要么略低于随机初始化的模型。这些结果表明,在时间序列预测的背景下,LLM 初始化在一定程度上并没有优势,相反,随机初始化可能是更可取的选择。

图8:使用语言模型权重初始化的模型(标记为星号)和三个随机初始化模型(标记为圆圈)在不同模型大小上的领域内和零样本性能对比。

TSMix 增强。 如第5.2节所述,我们在 TSMix 增强上训练 Chronos 模型,而不是直接在原始时间序列上进行训练。在这个实验中,我们研究了使用 TSMix 增强是否有利于下游性能。图10a比较了使用和不使用 TSMix 增强训练的 Chronos-T5(Small, 46M)模型的性能。在 TSMix 增强训练的模型在领域内性能上与不使用增强训练的模型相似。然而,在使用 TSMix 增强时,零样本性能有所提高。这表明 TSMix 增强了训练数据的多样性,从而提高了在未知数据集上的性能。图10a还显示,随着合成数据的加入,零样本性能得到额外提升。我们将在下一个实验中进一步研究这一点。

合成数据比例。 我们系统地探讨了 KernelSynth 对下游模型性能的影响。我们使用不同比例的合成数据(从0%到100%,即仅在 TSMix 增强上训练)训练了 Chronos-T5(Small, 46M)模型。

图10b显示了使用不同比例合成数据训练的模型的性能。随着合成数据在训练中的加入,领域内和零样本指标均有所提高。在约10%的合成数据比例附近观察到最一致的改进。进一步增加合成数据比例往往会降低性能。这并不奇怪,因为使用高斯过程生成的合成数据并不能代表所有真实世界的时间序列。

虽然仅在合成数据上训练的模型相对于其训练语料库中具有真实数据的模型表现较差,但就绝对性能而言,它表现得相当不错。附录E的图20显示,它的表现明显优于 ForecastPFN(Dooley等人,2023),这是另一个仅在合成数据上训练的模型(生成方式与 KernelSynth 不同)。令人惊讶的是,它还优于我们基准测试中的几个其他基线模型,尽管在训练过程中从未见过真实数据。这些结果证实了我们合成数据的质量,并为进一步缩小性能差距开辟了方向。

训练步骤。 我们对 Chronos-T5(Small, 46M)进行了100万个训练步骤的训练,以研究更长训练对模型性能的影响。图11a显示,随着训练的进行,领域内模型性能在训练过程中得到改善,包括领域内和零样本基准。这表明,通过更长时间的训练,较大模型(Base 和 Large)的性能可能会得到提升。

上下文长度。 我们通过使用四种不同上下文长度训练 Chronos-T5(Small, 46M)模型来研究上下文长度对下游性能的影响。图11b显示了随着上下文长度增加,性能如何变化。我们观察到,随着上下文长度的增加,领域内和零样本指标均有所提高,表明更长的上下文有助于模型更好地进行预测。然而,由于我们的零样本评估设置,基准数据集中大多数数据集的频率较低,时间序列长度短于1000步,因此这种分析可能存在局限性。因此,需要进一步评估以确定更长上下文长度的影响。我们推测,高频数据集可能受益于更长的上下文,这可能是正确捕捉长期季节模式所必需的。

图11:Chronos-T5(Small)模型在(a)训练步数、(b)训练上下文长度和(c)词汇量大小变化时的领域内和零样本性能。

词汇量大小。 词汇量大小决定了模型处理缩放时间序列的精度。为了探索其对性能的影响,我们使用不同词汇量大小训练了 Chronos-T5(Small, 46M)模型。图11c显示,随着词汇量大小的增加,点预测指标(MASE)持续改善。相反,WQL 最初会有所改善,但对于较大的词汇量大小会恶化。我们推测这种行为是所选指标的产物。MASE 对于单个系列的规模是不变的,与我们的训练损失密切相关,而训练损失也与规模无关。因此,MASE随着精度的提高而改善,正如我们对训练损失的期望一样。相反,WQL 是一个依赖于规模的指标,与训练损失的相关性不那么密切,随着精度的提高表现不那么可预测。请参阅附录D,了解这些指标的特性讨论。

定性分析和局限性

在本节中,我们定性分析了 Chronos 模型生成的预测,并突出了我们的标记化技术的一些局限性。我们主要关注对不同类型时间序列模式进行受控分析的合成时间序列。有关来自真实数据集的预测,请参见附录E中的图22至24。

独立同分布噪声。 我们生成了完全由高斯观测值 N (0, 1) 和 N (100, 10) 组成的时间序列,并使用 Chronos-T5(Base)对其进行预测。图12a显示,Chronos 为这种时间序列生成了合理的预测,并且预测的80%区间与虚线蓝线所示的真实80%区间相吻合。

趋势和季节性。 我们生成了遵循线性和指数趋势的时间序列:Chronos-T5(Base)准确预测线性趋势,但在指数趋势方面表现不佳,如图12b所示。这可能是由于训练数据中对指数趋势的有限表示。为了为具有指数趋势的时间序列生成更好的预测,一个潜在的解决方案是在将时间序列输入 Chronos 模型之前进行对数缩放。我们还观察到,当上下文长度不够长时,Chronos 模型往往会低估趋势。图13展示了这种现象,模型在提供短上下文时正确预测模式但低估趋势。然而,当上下文更长时,模型能够正确捕捉模式和趋势。

图12:Chronos-T5(Base)对合成模式生成的预测。 (a) 噪声:Chronos 为高斯噪声生成了合理的预测,80%预测区间与基础分布的区间相匹配(水平虚线蓝线显示)。 (b) 趋势:Chronos 准确预测线性趋势(顶部),但在指数趋势方面表现不佳(底部)。 季节性:Chronos 准确建模不同复杂度的季节模式(顶部为单一季节性,底部为三个季节性)。 (d) 组合模式:Chronos 准确预测由趋势和季节模式的加法(顶部)或乘法(底部)组合生成的时间序列。

在我们的分析中,我们观察到Chronos模型特别擅长识别时间序列中的季节模式。我们使用不同频率的正弦波生成了纯季节性时间序列。如图12c所示,Chronos-T5(基础版)精确地预测了这两个时间序列。当基本模式如趋势和季节性被组合,无论是加法还是乘法,Chronos都能准确预测它们。这在图12d中通过线性函数与正弦波相加和相乘生成的时间序列中得到了证明。

图13:当上下文不够长时,Chronos-T5(基础版)往往会低估趋势,如本例中经典的“航空乘客”数据(月度)和24个预测步长。上图:只有120个观测作为上下文时,中位数预测与先前趋势持平。下图:使用完整的144个观测作为上下文时,预测更接近趋势。

自回归过程。 自回归(AR)阶数为 p p p的过程定义如下:

X t = ∑ i = 1 p φ i X t − i + ε t , X_t=\sum_{i=1}^p \varphi_i X_{t-i}+\varepsilon_t, Xt=i=1pφiXti+εt,

其中 ε t ∼ N ( 0 , 1 ) \varepsilon_t \sim \mathcal{N}(0,1) εtN(0,1) φ 1 , … , φ p \varphi_1, \ldots, \varphi_p φ1,,φp是模型的参数。我们从不同阶数(1至4)的平稳AR过程中生成时间序列,并将Chronos-T5(基础版)生成的预测与三个模型进行比较:(a)用于生成时间序列的真实AR模型;(b)对时间序列拟合正确阶数(p)的AR模型;(c)拟合时间序列的AutoARIMA模型。图14展示了AR(1)和AR(4)过程的结果,附录E的图21展示了AR(2)和AR(3)的结果。我们观察到,Chronos-T5(基础版)在所有四个AR过程中生成了合理的预测。简单的AR(1)和AR(2)过程更容易被正确指定的AR模型和AutoARIMA模型拟合,导致比Chronos-T5(基础版)更好的均方误差(MSE)。然而,随着AR(3)和AR(4)过程复杂度的增加,Chronos-T5(基础版)不仅胜过AutoARIMA模型(与真实模型同属一家族),而且比拟合正确阶数的AR模型表现略好。这些结果突显了Chronos模型能够识别时间序列数据中存在的基本模式。

图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模型中采样的标记ID的核密度估计(KDE)图,用于预测时间范围内的前五个时间步,跨越三个数据集。尽管交叉熵不是距离感知的,Chronos能够输出连续一组标记上的预测分布,包括多模态形状。

溢出和精度损失。 Chronos的一个局限性来自提出的标记化方法(见第3.1节)。具体来说,我们选择的标记代表数据范围为15s, 15s]的值,其中s是数据的规模(绝对值的平均值)。如果s与系列中值的范围相比非常小,则一些观测值将超出可表示的范围。这种行为的一个例子是稀疏系列,如图16a所示。另一方面,如果s相对于方差非常大,则会导致精度损失:在原始空间中,标记相距30s/(B − 1),其中B是箱数(我们在实验中使用了B = 4094);比这更接近的值可能被映射到相同的标记,导致明显的精度损失。这种行为的一个例子如图16b所示。改进标记化以克服这些边缘情况是未来工作的课题,但第5.5节的结果表明,尽管存在局限性,Chronos模型在真实数据上表现良好。

图15:来自Chronos模型的NN5(每日)、交通和医院数据集的预测分布。每个图显示了五个预测步骤(h = 1*, . . . ,* 5)的预测分布:通过核密度估计从样本预测中获得密度。尽管交叉熵不是距离感知的,模型学会估计相邻标记上的分布,包括多样的形状,包括多峰形状。

图16:由于缩放和量化而导致的精度损失。在(a)中,数据包括每n = 10*,* 20*,* 50个观测的单位脉冲(从上到下):这里的比例是1*/n*,因此最大可表示值为15*/n*。当1 > 15*/n时,模型无法恰当地捕捉脉冲(除了最顶部的情况),因为它们的值不能被标记准确表示。在(b)中,数据是通过µ* = 1*,* 10*,* 50向上移动的正弦波:这里的比例是µ,随着信号的方差相对于µ变得越来越小,标记的精度也会降低。

讨论

Chronos代表了实际预训练时间序列预测模型的首次尝试之一,在广泛的测试数据集上展现了显著的零-shot性能。这项工作开辟了各种研究途径,我们将在下面讨论其中一些。

  1. 超越零-shot单变量预测

在我们的实验中,我们以零-shot方式评估了Chronos在大多数数据集上的表现。这种设置突显了零-shot Chronos模型与特定任务基线模型的竞争力。我们期望通过微调进一步提高领域内和零-shot结果,我们在第5.5.2节简要探讨了这一途径。可以使用任何基于低秩适配器(LoRA)的参数高效微调方法来实现这一点(Hu等,2021;Zhang等,2023)。另外,Chronos可以通过符合方法(Romano等,2019;Stankeviciute等,2021;Xu & Xie,2021)为特定任务进行校准。在符合预测的情况下,Chronos尤其具有吸引力,因为它不需要训练集,因此所有可用数据都可以用于校准。

在这项工作中,我们专注于单变量时间序列预测,因为它构成了真实世界时间序列用例中最常见的情况。然而,实际的预测任务通常涉及必须考虑的额外信息。一个例子涉及协变量,可以是时间独立的(例如产品的颜色)或时间变化的(例如产品何时打折)。另一个密切相关的问题是多变量预测,其中一个时间序列的历史值(例如利率)可以影响另一个时间序列(例如房价)的预测。协变量或多变量维度的数量在任务之间可能差异很大,这使得训练一个能够处理所有可能组合的单一模型变得具有挑战性。一个可能的解决方案可能涉及训练特定任务适配器,将协变量注入预训练的预测模型(Rahman等,2020)。另一种选择是构建Chronos和其他擅长处理协变量的轻量级模型(如LightGBM(Ke等,2017))的堆叠集成模型(Ting & Witten,1997)。

到目前为止,我们的探索集中在时间序列预测问题上。然而,其他几个时间序列分析任务,如分类、聚类和异常检测(Dau等,2018;Wu & Keogh,2021;Ismail Fawaz等,2019;Goswami等,2024),可能会受益于像Chronos这样的预训练模型。我们假设Chronos-T5模型的编码器学到的表示是通用的,并可以用于这些任务。对Chronos-T5表示在各种下游任务上的探索将构成有趣的未来工作。

  1. 推理

与特定任务的深度学习模型相比,更大的Chronos模型的推理速度可能存在潜在限制。图17展示了为单个时间序列生成预测的推理时间,平均计算了各个数据集。与一些统计局部模型相比,较大的Chronos模型的推理速度是可比的。此外,虽然Chronos模型比特定任务的模型慢,但它们并不太大以至于速度过慢。此外,特定任务的模型需要针对每个任务单独进行训练,这需要额外的时间和计算资源。相比之下,Chronos模型可以部署到具有不同历史长度、频率、预测范围和上下文长度的数据集上。这使得模型部署变得更加容易,极大简化了预测流程,避免了对特定任务的训练的需要。

图17:不同模型在预测单个时间序列时的推断时间,跨数据集平均。已突出各个模型的计算需求。

通过利用语言建模框架进行时间序列研究,我们使NLP社区的进展能够立即转化为Chronos模型。例如,可以通过使用针对现代Ampere GPU优化的CUDA内核、量化(Dettmers等,2022)以及更快的解码技术(包括推测性(Leviathan等,2023)和前瞻性(Fu等,2023)解码)来提高推断速度。长上下文语言模型的发展(Sun等,2022;Dao,2023)可能有助于改进Chronos模型对需要更长上下文以捕捉季节模式的高频数据集的适用性。其他在文本语言模型中广泛使用的技术,如温度调节、束搜索(Freitag&Al-Onaizan,2017)、Top-K抽样(Fan等,2018)、核心抽样(Holtzman等,2019),可以提高预测的质量。这些技术在改进目前需要对多个样本进行聚合的点预测的速度和质量方面尤为有用。

  1. 数据

我们的研究结果强调,在大规模时间序列数据语料库上训练更大的模型可以产生出色的领域内和零-shot性能。然而,与NLP相比,高质量的公共时间序列数据仍然有限。当在大量不同数据集上训练模型时,这会带来一个困境——选择更多数据集进行训练会减少用于零-shot评估的数据集。时间序列社区将极大受益于更大规模的时间序列数据集的可用性,这些数据集可用于开发和改进预训练模型,如Chronos。近期已经有一些努力构建大规模时间序列数据集(Emami等,2023;Liu等,2023)用于特定领域,但仍需要进一步投资。

另一种解决有限数据问题的方法是开发更好的合成时间序列生成方法。我们的工作在这方面取得了重大进展,清楚地展示了使用高斯过程生成的合成数据的实用性,当将其纳入训练数据时,可以提高模型性能。即使仅在合成数据上训练的模型也表现出合理的预测性能。未来的研究可以探讨这些模型的失败模式,提出增强措施来弥合真实数据和合成数据之间的差距。

结论

在这项工作中,我们从极简主义者的角度探讨了开发通用预训练预测模型的问题。我们调整现有的语言模型架构和训练程序用于时间序列预测,挑战了时间序列特定特征或架构对于预测的必要性的观念。这导致了Chronos,一个针对时间序列的语言建模框架,与时间无关。Chronos的定义特征是其与任何语言模型架构的兼容性,只需要进行最小修改——通过缩放和量化进行标记化。我们的预训练模型在领域内性能方面明显优于现有的本地模型和任务特定的深度学习基线。更为重要的是,Chronos模型在未见数据集上取得了出色的结果(零-shot性能),与在这些数据集上训练的最佳深度学习基线竞争,并显示出通过微调进一步改进的有希望的迹象。

我们的贡献在两个关键方面具有重要意义。首先,我们展示了现有的语言模型架构能够在不需要时间序列特定定制的情况下进行预测。这为通过利用LLMs领域的发展和更好的数据策略加速进展铺平了道路。其次,在实际层面上,Chronos模型的强大性能表明,大规模(按预测标准)的预训练语言模型可以极大简化预测流程,而不会牺牲准确性,为传统方法提供了仅涉及在个别任务上训练和调整模型的推断替代方案。

算法

算法1和算法2分别展示了TSMix和KernelSynth的伪代码。

算法1 TSMix:时间序列混合

输入: 时间序列数据集 { X 1 , … , X N d } \left\{\mathcal{X}_1, \ldots, \mathcal{X}_{N_d}\right\} { X1,,XNd},最大混合时间序列 K = 3 K=3 K=3,狄利克雷浓度参数 α = 1.5 \alpha=1.5 α=1.5,以及增广时间序列的(最小、最大)长度 ( l min ⁡ = 128 , l max ⁡ = 2048 ) \left(l_{\min}=128, l_{\max}=2048\right) (lmin=128,lmax=2048)

输出: 一个增广时间序列。

\quad k ∼ U { 1 , K } ▹ k \sim \mathcal{U}\{1, K\} \quad \triangleright kU{ 1,K} 时间序列混合数量

\quad l ∼ U { l min ⁡ , l max ⁡ } ▹ l \sim \mathcal{U}\left\{l_{\min}, l_{\max}\right\} \quad \triangleright lU{ lmin,lmax} 增广时间序列的长度

\quad 对于 i ← 1 , k i \leftarrow 1, k i1,k执行

\quad \quad n ∼ U { 1 , N d } ▹ n \sim \mathcal{U}\left\{1, N_d\right\} \quad \triangleright nU{ 1,Nd} 采样数据集索引

\quad \quad x 1 : l ( i ) ∼ X n ▹ \boldsymbol{x}_{1: l}^{(i)} \sim \mathcal{X}_n \quad \triangleright x1:l(i)Xn 从数据集 n n n中采样长度为 l l l的时间序列

\quad \quad x ~ 1 : l ( i ) ← x 1 : l ( i ) 1 l ∑ j = 1 l ∣ x i ( i ) ∣ ▹ \tilde{\boldsymbol{x}}_{1: l}^{(i)} \leftarrow \frac{\boldsymbol{x}_{1: l}^{(i)}}{\frac{1}{l} \sum_{j=1}^l\left|x_i^{(i)}\right|} \quad \triangleright x~1:l(i)l1j=1l xi(i) x1:l(i) 对时间序列应用均值缩放

\quad 结束

\quad [ λ 1 , … , λ k ] ∼ Dir ⁡ ( α ) ▹ \left[\lambda_1, \ldots, \lambda_k\right] \sim \operatorname{Dir}(\alpha) \quad \triangleright [λ1,,λk]Dir(α) 采样混合权重

\quad 返回 ∑ i = 1 k λ i x ~ 1 : l ( i ) ▹ \sum_{i=1}^k \lambda_i \tilde{\boldsymbol{x}}_{1: l}^{(i)} \quad \triangleright i=1kλix~1:l(i)​​ 取时间序列的加权组合

算法2 KernelSynth:使用高斯过程生成合成数据

输入: 核库 K \mathcal{K} K,每个时间序列的最大核数 J = 5 J=5 J=5,时间序列长度 l syn = 1024 l_{\text {syn}}=1024 lsyn=1024

输出: 一个合成时间序列 x 1 : l s y n \boldsymbol{x}_{1: l_{\mathrm{syn}}} x1:lsyn

\quad j ∼ U { 1 , J } ▹ j \sim \mathcal{U}\{1, J\} \quad \triangleright jU{ 1,J} 采样核数

\quad { κ 1 ( t , t ′ ) , … , κ j ( t , t ′ ) } ∼  i.i.d  K ▹ \left\{\kappa_1\left(t, t^{\prime}\right), \ldots, \kappa_j\left(t, t^{\prime}\right)\right\} \stackrel{\text { i.i.d }}{\sim} \mathcal{K} \quad \triangleright { κ1(t,t),,κj(t,t)} i.i.d K K \mathcal{K} K中采样 j j j个核

\quad κ ∗ ( t , t ′ ) ← κ 1 ( t , t ′ ) \kappa^*\left(t, t^{\prime}\right) \leftarrow \kappa_1\left(t, t^{\prime}\right) κ(t,t)κ1(t,t)

\quad 对于 i ← 2 , j i \leftarrow 2, j i2,j执行

\quad \quad ⋆ ∼ { + , × } ▹ \star \sim\{+, \times\} \quad \triangleright { +,×} 采样随机二元运算符

\quad \quad κ ∗ ( t , t ′ ) ← κ ∗ ( t , t ′ ) ⋆ κ i ( t , t ′ ) ▹ \kappa^*\left(t, t^{\prime}\right) \leftarrow \kappa^*\left(t, t^{\prime}\right) \star \kappa_i\left(t, t^{\prime}\right) \quad \triangleright κ(t,t)κ(t,t)κi(t,t) 合成核

\quad 结束

\quad x 1 : l syn ∼ G P ( 0 , κ ∗ ( t , t ′ ) ) ▹ \boldsymbol{x}_{1: l_{\text {syn}}} \sim \mathcal{G} \mathcal{P}\left(0, \kappa^*\left(t, t^{\prime}\right)\right) \quad \triangleright x1:lsynGP(0,κ(t,t)) 从GP先验中采样

\quad 返回 x 1 : l syn x_{1: l_{\text {syn}}} x1:lsyn

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjjc1017/article/details/137676762

智能推荐

【新手科研指南5】深度学习代码怎么读-小白阶段性思路(以手写数字识别应用为例)_深度学习程序怎么读-程序员宅基地

文章浏览阅读6.2k次,点赞6次,收藏26次。我是一个深度学习代码小白,请你用中文写上注释,能让我能轻松理解下面这段代码。注意包含所有函数、调用和参数的注释。以同样的python代码块样式返回你写的代码给我。代码看累了,就看《动手学深度学习》文档:基于PyTorch框架,从底层函数实现基础功能,再到框架的高级功能。努力上路的小白一枚,麻烦路过的大佬指导一二,同时希望能和大家交流学习~争取更新学习这个文档的专栏,记录学习过程。量身定做了一套话术hhh,亲身测试还不错。这个感觉更浅一点儿,之后复习看吧。20天吃掉那只Pytorch。_深度学习程序怎么读

Java学习路线图,看这一篇就够了!-程序员宅基地

文章浏览阅读2.7w次,点赞126次,收藏1.2k次。耗废1024根秀发,Java学习路线图来了,整合了自己所学的所有技术整理出来的2022最新版Java学习路线图,适合于初、中级别的Java程序员。_java学习路线

PCL_Tutorial2-1.7-点云保存PNG_pcl::io:savepng-程序员宅基地

文章浏览阅读4.4k次。1.7-savingPNG介绍代码详情函数详解savePNGFile()源码savePNGFile()源码提示savePNGFile()推荐用法处理结果代码链接介绍PCL提供了将点云的值保存到PNG图像文件的可能性。这只能用有有序的云来完成,因为结果图像的行和列将与云中的行和列完全对应。例如,如果您从类似Kinect或Xtion的传感器中获取了点云,则可以使用它来检索与该云匹配的640x480 RGB图像。代码详情#include <pcl / io / pcd_io.h>#incl_pcl::io:savepng

知乎问答:程序员在咖啡店编程,喝什么咖啡容易吸引妹纸?-程序员宅基地

文章浏览阅读936次。吸引妹子的关键点不在于喝什么咖啡,主要在于竖立哪种男性人设。能把人设在几分钟内快速固定下来,也就不愁吸引对口的妹子了。我有几个备选方案,仅供参考。1. 运动型男生左手单手俯卧撑,右手在键盘上敲代码。你雄壮的腰腹肌肉群活灵活现,简直就是移动的春药。2.幽默男生花 20 块找一个托(最好是老同学 or 同事)坐你对面。每当你侃侃而谈,他便满面涨红、放声大笑、不能自已。他笑的越弱_咖啡厅写代码

【笔试面试】腾讯WXG 面委会面复盘总结 --一次深刻的教训_腾讯面委会面试是什么-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏5次。今天 (应该是昨天了,昨晚太晚了没发出去)下午参加了腾讯WXG的面委会面试。前面在牛客上搜索了面委会相关的面经普遍反映面委会较难,因为都是微信的核心大佬,问的问题也会比较深。昨晚还蛮紧张的,晚上都没睡好。面试使用的是腾讯会议,时间到了面试官准时进入会议。照例是简单的自我介绍,然后是几个常见的基础问题:例如数据库索引,什么时候索引会失效、设计模式等。这部分比较普通,问的也不是很多,不再赘述。现在回想下,大部分还是简历上写的技能点。接下来面试官让打开项目的代码,对着代码讲解思路。我笔记本上没有这部分代码,所_腾讯面委会面试是什么

AI绘画自动生成器:艺术创作的新浪潮-程序员宅基地

文章浏览阅读382次,点赞3次,收藏4次。AI绘画自动生成器是一种利用人工智能技术,特别是深度学习算法,来自动创建视觉艺术作品的软件工具。这些工具通常基于神经网络模型,如生成对抗网络(GANs),通过学习大量的图像数据来生成新的图像。AI绘画自动生成器作为艺术与科技结合的产物,正在开启艺术创作的新篇章。它们不仅为艺术家和设计师提供了新的工具,也为普通用户提供了探索艺术的机会。随着技术的不断进步,我们可以预见,AI绘画自动生成器将在未来的创意产业中发挥越来越重要的作用。

随便推点

Flutter ListView ListView.build ListView.separated_flutter listview.separated和listview.builder-程序员宅基地

文章浏览阅读1.7k次。理解为ListView 的三种形式吧ListView 默认构造但是这种方式创建的列表存在一个问题:对于那些长列表或者需要较昂贵渲染开销的子组件,即使还没有出现在屏幕中但仍然会被ListView所创建,这将是一项较大的开销,使用不当可能引起性能问题甚至卡顿直接返回的是每一行的Widget,相当于ios的row。行高按Widget(cell)高设置ListView.build 就和io..._flutter listview.separated和listview.builder

2021 最新前端面试题及答案-程序员宅基地

文章浏览阅读1.4k次,点赞4次,收藏14次。废话不多说直接上干货1.js运行机制JavaScript单线程,任务需要排队执行同步任务进入主线程排队,异步任务进入事件队列排队等待被推入主线程执行定时器的延迟时间为0并不是立刻执行,只是代表相比于其他定时器更早的被执行以宏任务和微任务进一步理解js执行机制整段代码作为宏任务开始执行,执行过程中宏任务和微任务进入相应的队列中整段代码执行结束,看微任务队列中是否有任务等待执行,如果有则执行所有的微任务,直到微任务队列中的任务执行完毕,如果没有则继续执行新的宏任务执行新的宏任务,凡是在..._前端面试

linux基本概述-程序员宅基地

文章浏览阅读1k次。(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。_linux

JavaScript学习手册十三:HTML DOM——文档元素的操作(一)_javascript学习手册十三:html dom——文档元素的操作(一)-程序员宅基地

文章浏览阅读7.9k次,点赞26次,收藏66次。HTML DOM——文档元素的操作1、通过id获取文档元素任务描述相关知识什么是DOM文档元素节点树通过id获取文档元素代码文件2、通过类名获取文档元素任务描述相关知识通过类名获取文档元素代码文件3、通过标签名获取文档元素任务描述相关知识通过标签名获取文档元素获取标签内部的子元素代码文件4、html5中获取元素的方法一任务描述相关知识css选择器querySelector的用法代码文件5、html5中获取元素的方法二任务描述相关知识querySelectorAll的用法代码文件6、节点树上的操作任务描述相关_javascript学习手册十三:html dom——文档元素的操作(一)

《LeetCode刷题》172. 阶乘后的零(java篇)_java 给定一个整数n,返回n!结果尾数中零的数量-程序员宅基地

文章浏览阅读132次。《LeetCode学习》172. 阶乘后的零(java篇)_java 给定一个整数n,返回n!结果尾数中零的数量

php 公众号消息提醒,如何开启公众号消息提醒功能-程序员宅基地

文章浏览阅读426次。请注意,本文将要给大家分享的并不是开启公众号的安全操作风险提醒,而是当公众号粉丝给公众号发消息的时候,公众号的管理员和运营者如何能在手机上立即收到消息通知,以及在手机上回复粉丝消息。第一步:授权1、在微信中点击右上角+,然后选择“添加朋友”,然后选择“公众号”,然后输入“微小助”并关注该公众号。2、进入微小助公众号,然后点击底部菜单【新增授权】,如下图所示:3、然后会打开一个温馨提示页面。请一定要..._php微信公众号服务提示

推荐文章

热门文章

相关标签