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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 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月前
|
机器学习/深度学习 数据采集 算法
R语言中的机器学习库:caret与mlr的深度解析
【9月更文挑战第2天】Caret和mlr是R语言中两个非常重要的机器学习库,它们在数据预处理、模型构建、调优和评估等方面提供了丰富的功能。Caret以其易用性和集成性著称,适合初学者和快速原型开发;而mlr则以其全面性和可扩展性见长,适合处理复杂的机器学习项目。在实际应用中,用户可以根据具体需求和项目特点选择合适的库进行开发。无论是学术研究、商业智能还是教育场景,这两个库都能为数据科学家和机器学习爱好者提供强大的支持。
|
4月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
167 0
|
4月前
|
机器学习/深度学习 Python
时间序列特征提取:从理论到Python代码实践
时间序列是一种特殊的存在。这意味着你对表格数据或图像进行的许多转换/操作/处理技术对于时间序列来说可能根本不起作用。
70 1
时间序列特征提取:从理论到Python代码实践
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
机器学习/深度学习 数据采集 监控
怎么用机器学习做时间序列
8月更文挑战第20天
79 9
|
6月前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
36 0
|
7月前
|
运维 算法 C++
R语言时间序列分解和异常检测方法应用案例
R语言时间序列分解和异常检测方法应用案例
|
7月前
|
机器学习/深度学习
R语言计量经济学与有时间序列模式的机器学习预测
R语言计量经济学与有时间序列模式的机器学习预测
|
机器学习/深度学习
总结机器学习中7种离散特征编码方式优缺点
整理总结对比了7种机器学习离散特征编码方式的优缺点
241 0
|
7月前
|
机器学习/深度学习 算法 Python
LightGBM高级教程:时间序列建模
LightGBM高级教程:时间序列建模【2月更文挑战第7天】
406 0