时序论文23|ICML24谷歌开源零样本时序大模型TimesFM

ops/2024/11/23 20:10:42/

图片

论文标题:A DECODER - ONLY FOUNDATION MODEL FOR TIME - SERIES FORECASTING

论文链接:https://arxiv.org/abs/2310.10688

论文链接:https://github.com/google-research/timesfm

前言

谷歌这篇时间序列大模型很早之前就在关注,今天搜索了一下,对应的文章入选了ICML24,其开源的代码github已经有3.5K star。据论文中的描述,TimesFM模型在各种公共数据集上的即插即用零样本性能接近于每个单独数据集的最先进监督预测模型的准确性。TimesFM在参数数量(2亿)和预训练数据规模(约100B个时间点)上更为紧凑。

此外,模型基于预训练的解码器(Decoder Only),使用输入patch,利用包括真实世界和合成数据集在内的大型时间序列数据进行训练。TimesFM能够适应不同的预测历史长度、预测长度和时间粒度。模型的核心包括:1)一个大规模时间序列语料库,结合了真实数据和合成数据;2)解码器风格注意力架构。

本文模型

基本模型设计:

分块(Patching)。选择在训练期间将时间序列切分为patch。因为patch已被证明可以提高性能和推理速度。

仅解码器模型(Decoder-only model)。谷歌的架构与PatchTST的一个关键区别在于,谷歌的模型是仅解码器模式训练的。换句话说,给定一系列输入patch,模型被优化为根据所有过去的分块预测下一个分块。类似于大型语言模型(LLMs),这可以在整个上下文窗口上并行完成,并且自动使模型能够在看到不同数量的输入分块后预测未来。

更长的输出分块(Longer output patches)。有两种预测未来序列点的方式,一种是以自回归方式逐个token生成,另一种则是直接预测未来的token,而且直接预测往往比多步自回归解码更准确。但如果预测范围长度事先未知,那就没法直接预测了(也就是零样本预测的面临一个问题)。这里作者采用了一种折衷方法:直接预测和多步预测结合。

图片

如图:TimesFM输入层负责将时间序列预处理成transformer的输入token。首先将输入分解为连续不重叠的patch,每个patch通过一个残差块(本质上是一个具有跳跃连接的多层感知器)处理成大小为model_dim的向量,加上位置编码,并输入到n_l层堆叠的transformer层中。其中,SA代表自注意力(注意谷歌使用的是多头因果注意力),FFN是变换器中的全连接层。输出token随后通过一个残差块映射到大小为output_patch_len的输出,这是模型迄今为止看到的最后一个输入分块之后的预测时间窗口的预测。

其实这里还涉及到数据混合和预训练的一些技巧,限于篇幅感兴趣的可以阅读原文。

论文实验和结论

图片

图片

文中进行了对比实验和消融实验,结论是本文模型TimesFM模型在各种公共数据集上的即插即用零样本性能接近于每个单独数据集的最先进监督预测模型的准确性。

未来工作

Prompt Tuning:在大型语言模型中,提示调整技术如思维链能显著提升模型性能。然而,对于时间序列模型,这些技术的应用尚不明确。

微调研究(finetuning studies):尤其是在协变量存在的情况下,将是未来工作的重点。

其他架构(Other architectures):未来可以尝试不同的架构,如MLP结构或高效的线性状态空间模型,这样的高效线性状态空间模型也会很有趣。

可解释性(Interpretability):通过特征重要性归因方法来提高模型的可解释性,并考虑开源模型以促进透明度和进一步研究。


 大家可以关注我【科学最top】,第一时间follow时序高水平论文解读!!!


http://www.ppmy.cn/ops/136127.html

相关文章

【解决】Unity TMPro字体中文显示错误/不全问题

问题描述:字体变成方块 原因:字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源(蓝色的大F) 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…

失落的Apache JDBM(Java Database Management)

简介 Apache JDBM(Java Database Management)是一个轻量级的、基于 Java 的嵌入式数据库管理系统。它主要用于在 Java 应用程序中存储和管理数据。这个项目已经过时了,只是发表一下以示纪念,现在已经大多数被SQLite和Derby代替。…

如何在MATLAB中实现图像自动分割

图像自动分割是指针对给定的图像,将其自动分离成多个有意义的部分。这个过程可以对图像分析、图像识别、图像处理等方面提供帮助,让人们更好地理解、处理和利用图像信息。本文将介绍在MATLAB平台上如何实现图像自动分割。 1.图像读取和显示 在进行图像…

GitLab使用操作v1.0

1.前置条件 Gitlab 项目地址:http://******/req Gitlab账户信息:例如 001/******自己的分支名称:例如 001-master(注:master只有项目创建者有权限更新,我们只能更新自己分支,然后创建合并请求&…

webrtc音频模块介绍(一) ADM

不同操作系统管理音频设备及提供的音频接口方式各不同,ADM用于屏蔽音频设备管理及接口的差异,抽象统一接口。它的全称是Adio Device Module。 设备管理模块(ADM) 类结构图 首先它肯定是个接口类,不同平台的实现都继承于它,实现…

LeetCode 每日一题 2024/11/18-2024/11/24

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/18 661. 图片平滑器11/19 3243. 新增道路查询后的最短距离 I11/20 3244. 新增道路查询后的最短距离 II11/21 3248. 矩阵中的蛇11/22 3233. 统计不是特殊数字的数字数量1…

开源宝藏:Smart-Admin 重复提交防护的 AOP 切面实现详解

首先,说下重复提交问题,基本上解决方案,核心都是根据URL、参数、token等,有一个唯一值检验是否重复提交。 而下面这个是根据用户id,唯一值进行判定,使用两种缓存方式,redis和caffeine&#xff…

工厂方法模式

工厂方法模式详解 定义 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,定义一个创建对象的接口,但让子类决定要实例化的具体类。通过这种方式,工厂方法模式将对象的实例化推迟到子类。 特点 解耦性&a…