时间序列预测领域一直以来都依赖于传统的ARIMA、ETS、指数平滑等方法,以及近年来兴起的DeepAR、N-BEATS等神经模型。然而,正如大模型技术(LLM)在自然语言处理(NLP)领域掀起革命一样,是否也能在时间序列预测领域引发类似的颠覆?本文将探讨谷歌研究院推出的TimesFM模型,分析其无需微调即可实现的出色预测能力,以及它是否具备成为时间序列预测领域“下一个LLM”的潜力。

TimesFM:时间序列预测领域的“大模型”

TimesFM是由谷歌研究院于2024年2月推出的一款专为时间序列预测设计的解码器-only Transformer模型。它基于超过1000亿个时间点的大规模数据集进行预训练,这些数据涵盖了Google Trends、维基百科页面浏览量以及合成季节性信号等多种来源。与传统的处理单个时间点的方式不同,TimesFM将时间序列分割成固定长度的“patches”(或称“tokens”),并使用因果自注意力机制预测未来的patches。

这种方法类似于NLP中LLM处理文本的方式,将长文本分解为更小的tokens进行处理。通过在大规模数据集上的预训练,TimesFM学习到了通用的时间序列模式和季节性效应,使其能够泛化到各种不同的预测任务中,而无需进行特定于数据集的微调。这正是TimesFM的核心优势之一。

零样本预测:无需微调的强大泛化能力

TimesFM最引人注目的特点之一是其零样本预测能力。这意味着它无需针对特定数据集进行任何微调,即可在新颖的、未见过的数据集上表现良好,实现开箱即用的预测效果。这种能力极大地简化了时间序列预测流程,降低了对专业知识和大量计算资源的需求。

想象一下,如果你需要预测一家零售企业的未来销售额,而你只有有限的历史销售数据。使用传统的ARIMA模型,你需要花费大量时间进行参数调整和模型优化,才能获得合理的预测结果。而使用TimesFM,你只需要将历史销售数据输入模型,即可获得一个较为准确的预测结果,大大节省了时间和精力。

这种零样本预测能力得益于TimesFM在大规模数据集上进行的预训练。通过学习各种时间序列模式,模型能够识别出隐藏在不同数据集中的相似性,并将其应用于新的预测任务中。这种泛化能力是传统时间序列模型所不具备的。

卓越的性能:超越传统方法和提示学习

TimesFM在主要的预测基准数据集(如Monash Archive、Darts和ETT datasets)上的表现也令人印象深刻。它始终名列前茅,通常优于传统的监督学习方法,如DeepAR、PatchTST,甚至基于提示学习的GPT-3.5基线。

这意味着,TimesFM不仅具备无需微调的优势,而且在预测精度方面也优于许多需要大量训练数据的传统方法。这使得它成为一种极具吸引力的选择,尤其是在数据有限或者计算资源受限的情况下。

例如,在电力需求预测任务中,TimesFM能够准确预测未来一段时间内的电力需求,帮助电力公司优化能源分配和管理。在金融市场预测中,TimesFM能够预测股票价格的波动趋势,帮助投资者做出更明智的投资决策。这些都证明了TimesFM在实际应用中的卓越性能。

高效与可扩展:长程预测的理想选择

与自回归模型相比,TimesFM以更少的步骤提供长程预测,同时保持高精度。这归功于其Transformer架构和patches处理方法。TimesFM通过一次性预测多个未来patches,显著提高了预测效率,并减少了长程预测中的误差累积。

对于需要进行长期预测的场景,例如供应链管理、资源规划等,TimesFM的优势尤为明显。它可以帮助企业预测未来几个月甚至几年的需求变化,从而做出更合理的决策,提高运营效率。

此外,TimesFM的模型规模相对较小,只有约2亿个参数,这使得它在计算资源方面具有优势,可以更容易地部署到各种不同的硬件平台上。

TimesFM的工作原理:深入理解Transformer架构

为了更好地理解TimesFM的优势,我们需要深入了解其工作原理。与传统的逐个时间点处理的方式不同,TimesFM将输入的时间序列分解为固定长度的patches(或“tokens”)。例如,一个patch可能包含10个连续的时间点。这种方法降低了序列长度,有助于模型学习这些块之间的有意义的模式,而不是孤立的点。

解码器使用因果自注意力机制,这意味着它只能关注过去的patches,而不能关注未来的patches——这反映了预测依赖于过去数据的方式。这种结构使模型能够一次性预测一系列未来的patches,而不是逐步预测。同时预测许多未来的patches可以提高效率,并减少长期的误差累积。

在大规模数据集上的预训练使得TimesFM能够学习到适用于许多不同预测任务的通用时间模式和季节性效应。与需要为每个新数据集进行微调的传统预测模型不同,TimesFM可以开箱即用地进行泛化。其预先训练的知识使其能够在未经训练的数据集上提供合理的预测,类似于大型语言模型如何执行零样本文本生成。

如何使用TimesFM:简单易用的Python库

谷歌研究院已经开源了TimesFM,并在GitHub上提供了一个官方的Python库。该库提供了预训练模型和工具,可以使用PyTorch轻松地将TimesFM应用于您自己的时间序列预测任务。该库以开源许可证发布,使其可用于研究和实际应用。

以下是一个加载预训练TimesFM模型并使用它从输入时间序列预测未来值的最简示例:

import timesfm
import numpy as np

forecast_input = [
    np.sin(np.linspace(0, 20, 100)),
    np.sin(np.linspace(0, 20, 200)),
    np.sin(np.linspace(0, 20, 400)),
]
frequency_input = [0, 1, 2]

tfm = timesfm.TimesFm(
    hparams=timesfm.TimesFmHparams(
        backend="gpu",
        per_core_batch_size=32,
        horizon_len=128,
        num_layers=50,
        use_positional_embedding=False,
        context_len=2048,
    ),
    checkpoint=timesfm.TimesFmCheckpoint(
        huggingface_repo_id="google/timesfm-2.0-500m-pytorch"),
)

point_forecast, experimental_quantile_forecast = tfm.forecast(
    forecast_input,
    freq=frequency_input,
)

关于频率,TimesFM期望以下之一:

  • 0 (默认): 高频率、长程时间序列。他们建议用于时间序列直到每日粒度。
  • 1: 中等频率时间序列。他们建议用于每周和每月数据。
  • 2: 低频率、短程时间序列。他们建议用于每月以上的数据,例如季度或年度。

实验结果:伦敦自行车共享数据集的验证

为了评估TimesFM相对于传统和流行的预测方法的性能,作者在Kaggle上的伦敦自行车共享数据集上进行了实验。该数据集跟踪伦敦每小时的自行车租赁数量,使其成为中期和长期预测的合适选择。

| 模型 | 训练点数 | 预测范围 | 关键参数 |
| ——- | ——– | ——– | ————————————————————— |
| ARIMA | 168 | 168 | m=24, start_p=4, start_q=2 |
| Prophet | 1680 | 168 | |
| TimesFM | 1680 | 168 | window_size=128, num_layers=50, context_len=2048, freq=0 |

时间步长粒度:1 小时

预测范围:7 天(168 个时间步长)

注意:超参数未经过详尽的调整,因此结果可能会进一步提高。

作者跟踪了预测范围内的累积误差指标,以观察中期至长期预测的性能趋势:

  • MAE (平均绝对误差)
  • MAPE (平均绝对百分比误差)
  • MSE (均方误差)
  • RMSE (均方根误差)

累积指标有助于突出显示当我们进一步进入未来时误差如何演变。

实验结果表明,TimesFM优于ARIMA和Prophet,尤其是在3天之后,由于其零样本能力和长上下文窗口,保持了稳定的准确性。ARIMA的准确性在第一天后迅速下降,而Prophet总体上落后于TimesFM

总的来说,该实验证实了TimesFM作为通用型、开箱即用的预测模型的强大潜力,尤其是在需要准确的中长期预测时。

结论:时间序列预测的新标准?

TimesFM凭借其Transformer架构、大规模预训练和零样本预测能力,为时间序列预测领域带来了新的可能性。它不仅简化了预测流程,降低了对专业知识和计算资源的需求,而且在预测精度方面也优于许多传统的预测方法。

虽然TimesFM还处于发展初期,但其所展现出的潜力已经足以引起人们的关注。如果TimesFM能够进一步发展和完善,它很有可能成为时间序列预测领域的新标准,就像大模型技术改变自然语言处理领域一样。

未来,我们可以期待看到TimesFM在更多领域得到应用,例如金融市场预测、能源需求预测、供应链管理、医疗健康等。随着TimesFM的不断发展,它将为各行各业带来更准确、更高效的时间序列预测能力,从而推动经济和社会的发展。

总而言之,TimesFM的出现,预示着时间序列预测领域将迎来一场新的变革。我们有理由相信,在大模型技术的推动下,时间序列预测将变得更加智能化、自动化和高效化。TimesFM是否能像LLM一样彻底改变时间序列领域?让我们拭目以待。