Chronos: 将时间序列作为一种语言进行学习

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: Chronos框架预训练时间序列模型,将序列值转为Transformer模型的tokens。通过缩放、量化处理,模型在合成及公共数据集上训练,参数量20M至710M不等。优于传统和深度学习模型,展示出色零样本预测性能。使用分类交叉熵损失,支持多模态输出分布学习。数据增强策略包括TSMix和KernelSynth。实验显示大型Chronos模型在概率和点预测上超越多种基线,且微调小型模型表现优异。虽然推理速度较慢,但其通用性简化了预测流程。论文探讨了优化潜力和未来研究方向。

这是一篇非常有意思的论文,它将时间序列分块并作为语言模型中的一个token来进行学习,并且得到了很好的效果。

Chronos是一个对时间序列数据的概率模型进行预训练的框架,它将这些值标记为与基于transformer的模型(如T5)一起使用。模型将序列的值缩放和量化到一个固定的词汇表,并在通过高斯过程创建的公共和合成数据集上进行训练。Chronos模型的参数范围从20M到710M不等,在已知数据集上优于传统和深度学习模型,在新数据集上表现出具有竞争力的零样本性能。

标记

为了使时间序列数据适应基于transformer的语言模型,使用了两个步骤:缩放和量化。缩放使用平均缩放将数据规范化到一个公共范围,其中每个点都通过历史上下文中绝对值的平均值进行调整。在缩放之后,量化通过将数据范围分成箱(每个箱由一个记号表示)将实值序列转换为离散标记。作者更喜欢统一的分位数分组,据说是要适应不同数据集的可变性,因为预测范围受到预定义的最小值和最大值的限制。另外就是还添加了用于填充和序列结束的特殊标记。

目标函数

Chronos是通过使用分类交叉熵损失函数将预测作为分类问题来训练时间序列数据。模型在表示量化时间序列数据的标记化词汇表上预测分布,并将该分布与真实分布之间的差异最小化。与距离感知度量不同,这种方法不直接考虑箱之间的接近程度,而是依赖于模型从数据中学习箱关系。这样就有两个优势:与现有语言模型体系结构和训练方法的无缝集成,可以学习任意的、潜在的多模态输出分布的能力,并且可以在不同领域之间通用,无需更改模型结构或训练目标。

Chronos模型通过对其预测的令牌分布进行自回归采样,对未来的时间步长进行概率预测。然后使用去量化函数和逆缩放将生成的令牌转换回实际值。

数据增广

TSMix通过组合两个以上的数据点,将Mixup数据增强概念(最初是为图像分类而开发的)扩展到时间序列数据。它从训练数据集中随机选择一些不同长度的时间序列,对它们进行缩放,并创建它们的凸组合。这种组合的权重是从对称狄利克雷分布中得出的。

KernelSynth则使用高斯过程合成数据生成。KernelSynth组装GP核来创建新的时间序列,利用一组基核来处理常见的时间序列模式,如趋势、平滑变化和季节性。通过随机选择这些核,并通过加法或乘法将其组合在一起,产生不同的时间序列数据。

实验结果

较大的Chronos-T5模型(基础和大型)超过基线模型,展示了优越的概率和点预测能力。这些模型不仅超越了AutoETS和AutoARIMA等传统统计模型,也超越了PatchTST和DeepAR等特定任务的深度学习模型。较小的Chronos变体和Chronos- gpt2也优于大多数基线,尽管PatchTST在某些情况下显示出更强的结果。季节性传统模型的竞争表现表明,这些数据集(主要来自能源和运输部门)具有很强的季节性趋势。

零样本预测概率预测方面,Chronos模型超过了局部统计模型和大多数特定任务模型,其中Chronos- t5 Large模型在点预测方面排名第三。它们的表现甚至超过了ForecastPFN和GPT4TS(微调GPT2),显示出作为通用时间序列预测器的显著前景。

微调小型模型也显示了显著的性能改进,使其在零样本设置和最佳任务特定模型中优于大型Chronos变体。

论文的一些研究

更大的型号更好;随机权重初始化比使用LLM权重更好,因为它们可能与时间预测无关;TSMix改善了零样本学习能力;使用大约10%的合成数据是最好的;

讨论

该研究证明了Chronos在各种数据集上的零样本能力,表明它有潜力通过微调技术(如LoRA或特定任务校准的保形方法)胜过特定任务模型。特定于任务的适配器或像LightGBM这样的模型的堆叠集成可以用来添加协变量并应用于多变量预测。

与特定任务的深度学习模型相比,大型Chronos模型的推理速度较慢。Chronos模型的优势在于其在不同数据集特征上的通用性,而不需要单独的特定任务训练,简化了预测流程。此外,通过优化的计算核、量化和更快的解码方法等技术也适用于Chronos,有可能提高推理速度和预测质量。处理长上下文数据的方法可以进一步提高Chronos在高频数据集上的性能,受nlp启发的方法,如温度调节和采样策略,可以提高预测的效率和准确性。

论文地址:

https://avoid.overfit.cn/post/3d2f93d490b5417d9e10ae3fad935c18

作者:Andrew Lukyanenko

目录
相关文章
|
3月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
136 0
|
3月前
|
机器学习/深度学习 Python
时间序列特征提取:从理论到Python代码实践
时间序列是一种特殊的存在。这意味着你对表格数据或图像进行的许多转换/操作/处理技术对于时间序列来说可能根本不起作用。
57 1
时间序列特征提取:从理论到Python代码实践
|
3月前
|
机器学习/深度学习 数据采集 监控
怎么用机器学习做时间序列
8月更文挑战第20天
62 9
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
不做数值运算、纯靠嘴炮也能机器学习?基于自然语言的全新ML范式来了
【6月更文挑战第30天】基于自然语言的VML简化了机器学习,让模型参数变为人类可读的文本,提高理解和应用性。借助大型语言模型的进展,VML能直接编码先验知识,自动选择模型类,并提供可解释的学习过程。然而,表达能力、训练优化及泛化能力的挑战仍需克服。[论文链接](https://arxiv.org/abs/2406.04344)
37 1
|
机器学习/深度学习 人工智能 数据库
Python 机器学习入门:数据集、数据类型和统计学
机器学习是通过研究数据和统计信息使计算机学习的过程。机器学习是迈向人工智能(AI)的一步。机器学习是一个分析数据并学会预测结果的程序。
235 2
Python 机器学习入门:数据集、数据类型和统计学
|
5月前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
29 0
|
6月前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
326 0
|
6月前
|
SQL 前端开发 JavaScript
编程语言的分类与特点
编程语言的分类与特点
|
6月前
|
数据可视化
时间序列交叉验证 R 语言实现
时间序列交叉验证 R 语言实现
315 0
|
机器学习/深度学习 自然语言处理 算法
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)2
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
170 0