当前位置:   article > 正文

【论文笔记 · PFM】Lag-Llama: Towards Foundation Models for Time Series Forecasting

lag-llama

Lag-Llama: Towards Foundation Models for Time Series Forecasting

摘要

本文提出Lag-Llama,在大量时间序列数据上训练的通用单变量概率时间序列预测模型。模型在分布外泛化能力上取得较好效果。模型使用平滑破坏幂律(smoothly broken power-laws)。

介绍

目前任务主要集中于在相同域的数据上训练模型。当前已有的大规模通用模型在大规模不同数据上进行训练,展现出了极强的泛化能力

本文训练了一个Transformer模型,使用大量时序数据进行训练并在未见过的数据集上进行测试。文章在Monash时序仓库上训练了Lag-Llama。

本文贡献:

  • 提出了Lag-Llama,一个单变量概率时序预测模型。
  • 在时序语料数据集上训练了LagLlama,并且Lag-Llama在未见过的数据集上进行零样本测试时,展现出了优于Baseline的效果。确定了一个“稳定”的制度。
  • 将零样本测试性能的经验缩放定律拟合为模型大小的函数,允许潜在推断和预测模型外的泛化。

相关工作

本文与Time-LLM等的不同点在于,Lag-Llama使用了滞后特征。

本文与TimeGPT-1的不同点在于,TimeGPT-1使用了在不确定量化时使用了共形预测,而本文直接进行概率预测。

扩展模型和数据集大小被证明可以带来显著的迁移学习能力和新任务上出色的小样本学习能力。

在量化训练基础模型所需资源时,神经缩放定律可以通过模型大小、训练集大小、计算资源等来尝试预测神经网络性能。而本文采用了平滑破坏幂律来推断网络的非线性缩放行为。

概率时序预测

假定有训练数据集 D t r a i n = { x 1 : T i i } i = 1 D \mathcal{D}_{train}=\{x^i_{1:T^i}\}^D_{i=1} Dtrain={x1:Tii}i=1D,其中拥有 D D D个时间序列,每个时间序列中包含 T i T^i Ti个时间步,模型尝试预测未来 P ≥ 1 P\ge1 P1个步的数据,因此需要未来的数据 D t e s t = { x T i + 1   T i + P i } \mathcal{D}_{test}=\{x^i_{T^i+1\:T^i+P}\} Dtest={xTi+1Ti+Pi}或者留出数据集(held-out)进行回测。数据中除了有序号 t t t外,还有一个时间日期;此外数据中还有一个与 x t i x_t^i xti相关的协方差 c t i c^i_t cti并进行向量化。

在单变量概率时序预测问题中,希望能够在给定可观测过去和协变量的一维序列情况下,建模 P P P个未来值的复杂联合分布。
p χ ( x t + 1 : t + P i ∣ x 1 : t i , c 1 : t + P i ) p_\chi(x^i_{t+1:t+P}|x^i_{1:t},c^i_{1:t+P}) pχ(xt+1:t+Pix1:ti,c1:t+Pi)
本文从完整的时间序列中选择大小为 C ≥ 1 C\ge 1 C1的固定上下文窗口进行子采样并且在给定协变量情况下学习未来 P P P步的未知分布:
p χ ( x C + 1 : C + P i ∣ x 1 : C i , c 1 : C − 1 + P i ) p_\chi(x^i_{C+1:C+P}|x^i_{1:C},c^i_{1:C-1+P}) pχ(xC+1:C+Pix1:Ci,c1:C1+Pi)

因此可以通过自回归模型建立一个概率的链式规则:
p χ ( x C + 1 : C + P i ∣ x 1 : C i , c 1 : C − 1 + P i ; θ ) = Π t = C + 1 C + P   p χ ( x t i ∣ x 1 : t − 1 i , c 1 : t − 1 i ; θ ) p_\chi(x^i_{C+1:C+P}|x^i_{1:C},c^i_{1:C-1+P};\theta)=\Pi^{C+P}_{t=C+1}\ p_\chi(x^i_{t}|x^i_{1:t-1},c^i_{1:t-1};\theta) pχ(xC+1:C+Pix1:Ci,c1:C1+Pi;θ)=Πt=C+1C+P pχ(xtix1:t1i,c1:t1i;θ)

Lag-Llama

本文设定下的主要挑战:

  • 本文模型仅限于单变量建模,因为对于时间序列分组而获得的多变量维度对每个数据集是不同的。
  • 本文需要从每个数据集中进行采样,以便从所有数据集中学习表示,而不会从任何一个数据集中不成比例的采样。

由于使用Transformer架构,需要向量化输入,但时间序列频率不同。因此需要对单变量数据以能够表示数据频率的方法进行向量化。本文提出了一种通用方法用于向量化给定特定频率的的时间序列。

滞后特征

模型中所需的滞后协变量是通过目标值的的滞后特征,包括季度、月、周、天、小时和二级频率构建的。给定排序的滞后系数集合 L = { 1 , … , L } \mathcal{L}=\{1,\dots,L\} L={1,,L},可以特定时刻的滞后运算 x t → c t ∈ R [ L ] x_t\rightarrow c_t\in\mathbb{R}^{[\mathcal{L}]} xtctR[L],其中 c t c_t ct中的每一条都由 c t [ j ] = x t − L [ j ] c_t[j]=x_{t-\mathcal{L}[j]} ct[j]=xtL[j]给出。因此,要为一定时间窗口 x 1 : C x_{1:C} x1:C创建滞后特征,需要对 L L L个历史点 x − L + 1 : C x_{-L+1:C} xL+1:C进行采样。

一种向量化单变量序列的方法是使用潜在的重叠部分或具有一定大小和步长的片段,但是这种方法会导致向量中因果混合。

image-20231108210125515

滞后系数直接对应于数据各种可能的季节性,并且能够保留日期时间指数因果结构。通过依赖滞后特征,可以在训练期间使用掩码解码器,在推理时使用自回归采样。但一个缺点是在推理时需要一个 L L L或更大的上下文窗口。

Lag-Llama结构

image-20231108212059894

Lag-Llama基于Llama结构,并且通过RMS归一化整合了预归一化并且在每个Attention层的Q和K增加了旋转位置编码。以上是 M M M个Decoder层的模型结构。

一个长度为 x − L + 1 : C i x^i_{-L+1:C} xL+1:Ci的单变量序列以及其协变量通过滞后算子被向量化为一个长度为 C C C的向量 x 1 : C i \text{x}^i_{1:C} x1:Ci。然后序列被输入到一个MLP中映射到隐藏维度,从Transformer层输出后,模型使用Distribution Head来预测所选分布的参数。最后利用对数值进行求loss。

在推断时,给定长度为 L L L的时间序列,可以构建一个特征向量并输入模型获得下一个时间步的分布。通过这样的操作,能够获得预测分布,通过拼接来初始化序列从而获得更远的滞后向量。

分布头的选择

分布头用于映射模型特征到参数的概率分布上。用不同表示能力的分布头来输出参数的概率分布。

值缩放

该模型中最大的挑战是如何处理不同数量级的数据。

通过计算平均值 μ i = ∑ t = − L C x t i / ( C + L ) \mu^i=\sum^C_{t=-L}x^i_t/(C+L) μi=t=LCxti/(C+L)和方差 σ i \sigma^i σi,从而来计算归一化后的值。同时,将 s i g n ( μ i ) l o g ( 1 + ∣ μ i ∣ ) sign(\mu^i)log(1+|\mu^i|) sign(μi)log(1+μi) l o g ( σ i ) log(\sigma^i) log(σi)作为时间独立的协变量。

数据增强

为了防止过拟合,使用了时间序列增强技术Freq-Mix和Freq-Mask,概率为0.5,增强率为0.1。为避免样本过多/过少,采用分层抽样并采用总时间步进行加权。

实验

数据集

使用Monash Time Series Repository及来自不同领域的数据进行训练,使用M4 Weekly和Traffic数据集进行测试。其中测试数据集在训练时是不可见的并用来测试OOD性能。

image-20231115170740642

模型训练

Batch_size 100,学习率 1e-3,50轮早停,每个epoch由100个窗口组成。早停由留出数据集的平均loss决定。

评估

使用CRPS(连续分级概率分数)按照分布进行评估:
C R P S ( F , x ) = ∫ R ( F ( y ) − I { x ≤ y } ) 2 d y CRPS(F,x)=\int_\mathbb{R}(F(y)-\mathbf{I}\{x\le y\})^2dy CRPS(F,x)=R(F(y)I{xy})2dy

实验结果

零样本性能

image-20231115185545494

所有Baseline都是独立进行监督学习,然后再对应的测试集上进行测试。Lag-Llama和Lag-Transformer是在时序语料上进行训练,然后再两个测试数据集上进行测试。

窗口大小设置

image-20231115185520056

随着窗口大小增加,Lag-Llama在两个数据集上实现了更好的零样本性能。

模型参数量

image-20231115185500220

测试了在不同模型参数量下Lag-Llama的性能,可以发现在 1 0 6 10^6 106个参数以后结果基本稳定。

缩放定律

image-20231115185447512

拟合缩放定律可能可以实现进一步的外推。

Broken Neural Scaling Law:
y = a + ( b x − c 0 ) Π i = 1 n ( 1 + ( x d i ) 1 / f i ) − c i ∗ f i y=a+(bx^{-c_0})\Pi^n_{i=1}(1+(\frac{x}{d_i})^{1/f_i})^{-c_i*f_i} y=a+(bxc0)Πi=1n(1+(dix)1/fi)cifi
其中, x x x是性能相关数(模型参数量、计算量、训练数据集大小、模型输入大小等), y y y是评价指标。其他参数都是拟合的。

同时本文没有选择break数量,而是使用n阶最小二乘法来拟合85%的数据,然后选择使随后5%数据的RMSE最小化的n

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/131340
推荐阅读
相关标签
  

闽ICP备14008679号