赞
踩
预训练的大模型在NLP领域已经成为主流方法,并且越来越多的应用到时间序列预测领域。诸如Lag-LLaMa、TimeGPT等工作,实现了时间序列领域的大模型构建。然而,这些模型一般都做的比较重,模型体积很大,使用的时候计算开销也比较大。
针对这个问题,IBM Research近期提出了一种Tiny Time Mixer预训练模型,在240万条时间序列样本上进行预训练,参数量小于100万,并且在zero-shot learning、few-shot learning等任务中取得了10%以上的效果提升。
论文标题:Tiny Time Mixers (TTMs): Fast Pretrained Models for Enhanced Zero/Few-Shot Forecasting of Multivariate Time Series
下载地址:https://arxiv.org/pdf/2401.03955v2.pdf
下面给大家介绍一下这篇工作,核心包括预训练阶段和finetune阶段。
1
预训练阶段
在预训练阶段,核心是训练数据的处理、模型结构、优化目标三个部分。
在训练数据处理上,文中使用的是多种类型的开源时间序列数据集。对于各类数据集,无论是单变量时间序列预测还是多变量时间序列,都统一转换成单变量,也就是在训练阶段不学习变量间的关系。由于不同的数据集具有不同粒度的周期性,有的周期性可能数据量比较少,因此文中提出了一种数据增强策略,对于高分辨率的数据,通过聚合生成低分辨率数据,提升数据集的丰富度。
在模型结构上,使用的是TSMixer结构。本文的核心是一种多分辨率建模的时序预测结构。输入时间序列处理成patch形式,每层的patch使用不同的分辨率,底层使用比较细的粒度,随着模型层数的加深,逐渐聚合patch形成更粗粒度。通过这种方式,让模型可以学习到不同粒度的信息,适配不同数据集的不同粒度周期性。
此外,文中也借鉴了prefix-tuning的思路,给每个分辨率的前面加一个patch embedding,作为当前分辨率的标识信息,指导当前分辨率的学习。
在优化目标上,本文使用的比较简单,就是一般的MSE损失函数。
2
Finetune阶段
对于zero-shot learning,文中直接使用预训练的模型进行预测。对于few-shot learning,文中使用训练集中的10%样本对模型进行finetune。Finetune的目标仍然是MSE,finetune方法会根据目标任务的差异进行适当调整。
对于需要考虑多变量关系的多元时间序列预测,会将模型中的channel-mixer模块开启,通过变量维度的MLP实现变量间的关系学习。
对于一些数据集,待预测窗口有一些特征是已知的。对于这类特征,会增加一个Exogenous Mixer Block,将时间序列用带重叠的patch进行划分后,开启channel mixing实现待预测变量和已知变量之间的信息交互。
3
实验效果
文中对比了zero-shot和few-shot任务上,本文提出的方法和各类SOTA方法之间的效果,本文的方法效果非常显著,由于CPT4TS、PatchTST等方法。
运算效率上,本文提出的方法相比GPT4TS也是显著提升。
推荐阅读:
公众号:AI蜗牛车
保持谦逊、保持自律、保持进步
发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记
发送【AI四大名著】获取四本经典AI电子书
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。