论文地址:https://arxiv.org/pdf/2410.24087
代码地址:https://github.com/uctb/TSFM
为了更好地理解时间序列模型的理论与实现,推荐参考UP “ThePPP时间序列” 的教学视频。该系列内容系统介绍了时间序列相关知识,并提供配套的论文资料与代码示例,有助于理论与实践相结合。
摘要
本研究提出了一种时间序列基础模型的上下文微调方法。本研究设计了一个预训练的基础模型,可以在推理时使用多个时间序列示例作为提示,以便预测目标时间序列的未来值。本研究的基础模型经过专门训练,可以利用上下文窗口中来自多个相关时间序列的示例(以及目标时间序列的历史记录)来帮助其在推理时适应目标领域的特定分布。本研究表明,这种在推理时使用上下文示例的基础模型,在流行的预测基准测试中,与监督深度学习方法、统计模型以及其他时间序列基础模型相比,可以获得更好的性能。有趣的是,本研究的上下文微调方法甚至可以与在目标领域上明确微调的基础模型的性能相媲美。
引言
本研究关注时间序列预测领域,特别是时间序列基础模型的上下文微调方法。时间序列数据在零售、金融、制造、医疗和自然科学等领域无处不在,时间序列预测在这些领域中至关重要,例如零售预测、气候和天气预测以及交通预测等应用。深度学习方法在预测领域已变得流行,其性能通常优于ARIMA等统计方法。然而,直到最近,用于预测的深度学习方法仍遵循传统的监督机器学习框架,即必须先在特定任务的训练数据上训练预测模型,然后才能对该任务执行预测。另一方面,在自然语言处理(NLP)领域,大型语言模型(LLM)展现了基础模型的潜力:单个预训练模型可以在推理时以零样本或少样本方式很好地执行并适应翻译、代码生成、文本摘要等任务。
受NLP领域成功的启发,近年来时间序列基础模型预测领域的研究工作显著增加,范围涵盖直接将LLM重新用于预测,在时间序列数据上微调预训练的LLM,以及从头开始预训练时间序列基础模型。其中,从头预训练的方法已被证明可以获得强大的零样本精度,甚至可以与专门针对目标数据集训练的最佳监督模型相媲美。一些研究表明,通过在目标数据集上微调预训练模型可以进一步提高精度。然而,这种方法打破了零样本范式,而零样本范式正是这些时间序列基础模型吸引那些不想构建训练流程的实践者的原因。这就提出了一个自然而然的问题:能否通过在推理时提供来自目标数据集的示例来恢复微调时间序列基础模型的优势?
同时,这些基础模型的早期版本缺乏LLM在上下文学习方面的一些理想特性:LLM的零样本性能可以通过在推理时使用其上下文窗口进行诸如少样本、思维链或指令微调等提示技术来极大地提高。这些研究已经证明了LLM涌现的上下文学习能力。特别是,如果用相关的示例、演示和指令提示它们,然后提出一个专门的问题,模型能够对当前的问题进行类似的推理。
本研究探索了一种方法,使时间序列基础模型能够具备类似的上下文能力,即能够使用来自目标领域的时序数据示例对模型进行提示,并恢复特定领域微调的优势。本研究将此称为上下文微调。本研究训练了一个基础模型,该模型不仅可以在其上下文窗口中提供时间序列的历史值,还可以提供来自其他相关时间序列的示例,以帮助模型在推理时适应目标时间序列的分布。例如,考虑一个高速公路交通预测系统,该系统存储过去一周的每小时数据,以便预测特定高速公路未来的每小时交通流量。假设一个时间序列基础模型在预训练中没有见过能够捕捉此交通数据中时间模式的数据。那么,仅用该高速公路前一周的交通时间序列提示模型可能不足以获得准确的零样本性能。然而,在提示中添加来自其他高速公路和几周的历史交通数据,可能有助于模型更好地适应交通数据分布,并显著提高目标精度。
本研究的主要贡献如下:(1)引入了时间序列基础模型的上下文微调研究,并提出了使用提示的方法,该提示不仅包括用于预测的目标时间序列的通常历史记录,还包括上下文中的相关时间序列示例。(2)预训练了一个能够有效利用上述上下文时间序列示例的时间序列基础模型。本研究的训练是仅解码器的,可以适应任何上下文、预测范围对(不超过某个最大上下文),以及任何数量的补充时间序列示例(同样不超过某个最大示例数)。经过适当训练的模型可以学习借鉴这些相关示例中的模式,从而在原始预测任务上做得更好。(3)使用本研究的基础模型,通过在流行的预测基准上进行评估,经验证明了上下文微调的优势。结果表明,与监督深度学习方法、统计模型以及其他基础模型相比,上下文微调可以显著提高流行预测基准上的零样本性能。特别是,它比最先进的时间序列基础模型以及其他监督深度学习和统计基线获得了高达 25% 的性能提升。令人惊讶的是,它甚至略微优于专门针对目标数据集进行微调的时间序列基础模型。
论文创新点
本研究提出了时间序列基础模型的上下文微调方法论。该方法论的核心在于,在推理阶段,通过在模型的上下文窗口中提供多个相关的历史时间序列样本来提示预训练基础模型,以预测目标时间序列的未来值。
-
✨ 引入上下文微调概念: ✨
- 与传统的微调方法需要在目标数据集上进行显式训练不同,本研究提出的方法允许模型在推理时利用上下文中的示例进行自适应。
- 这避免了额外的训练过程,并保留了零样本预测的优势。
-
🌠 设计专用训练基础模型: 🌠
- 该模型能够有效地利用上下文窗口中的多个相关时间序列示例。
- 除了目标时间序列的历史数据外,模型还能利用上下文中的其他示例来学习目标领域的特定分布,从而提高预测的准确性。
-
🔧 改进模型架构设计: 🔧
- 使其能够更好地处理上下文示例中的分隔符、跨示例注意力和位置编码。
- 采用了改进的TimesFM模型架构,并引入了可学习的分隔符标记来区分不同的上下文示例,同时允许Transformer模型对所有先前的标记(包括分隔符标记)进行因果注意。
- 此外,本研究采用了无位置编码(NoPE)的设计,以提高模型的长度泛化能力,并避免在继续预训练阶段出现位置编码含义不一致的问题。
-
🧩 独特的预训练数据生成策略: 🧩
- 包括上下文生成和数据集混合。
- 在上下文生成阶段,本研究采用了两种分组方式:时间序列级别分组和数据集级别分组,以确保分组的示例具有相似的模式,以便模型从中学习。
- 在数据集混合阶段,本研究使用了除Wiki数据集之外的所有预训练数据集来生成上下文示例,并为时间序列级别和数据集级别的示例赋予相同的权重。
-
🏆 验证有效性: 🏆
- 通过在Monash和ETT等流行的预测基准数据集上进行评估,验证了上下文微调方法的有效性。
- 实验结果表明,与监督深度学习方法、统计模型以及其他时间序列基础模型相比,上下文微调可以显著提高零样本预测的性能。
- 尤其值得一提的是,本研究的上下文微调方法甚至略微优于在目标数据集上进行显式微调的基础模型,这突显了该方法在实际应用中的巨大潜力。
论文实验