TimesFM: 预训练的时间序列基础模型

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区,可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果构建生成级别的AI架构则可以关注AI架构设计。技术宅麻烦死磕LLM背后的基础模型。当然最重要的是订阅跟随“鲁班模锤”

TimesFM是一种预测的基础模型,在包含1000亿个现实世界的大型时间序列语料库上进行了预训练,在来自不同领域和粒度的各种公共基准上显示了令人印象深刻的zero-shot的性能。

TimesFM

时间序列预测是一门艺术,尤其在金融和经济领域,当然在交通、健康、天气等其他领域应用也十分广泛。若能以高精度和高置信度的预测股票、基金、GDP、COVID-19病例就可以提前预判,然后进行更好的决策和优化资源调度。时间序列预测的分析涉及处理复杂且动态的模式,例如趋势、季节性、周期、异常值和噪音。同时时间序列模型需要大量数据和领域知识来针对特定任务和数据集的训练和模型微调。

统计和机器学习模型等传统方法通过分析时序的平稳性和ACF特征等,利用一些基本模型例如ARIMA,但是一般而言难以捕获时间序列数据中的长期依赖性和非线性关系。近期也有一些基于深度学习的方法,例如DeepAR、WaveNet等循环神经网络和卷积神经网络,可以提供更好的性能,计算成本也随之增加,同时还需要额外的大数据。

谷歌研究团队提出了一种设想,是否能够在任何时间序列数据集上实现准确的零样本预测,且不需要任何额外的领域知识。于是它们提出了TimesFM。

TimesFM是一种Decode-Only的基础模型,这个模型在大型且多样化的时间序列语料库上进行预训练,且可以为未见过的数据集生成可变长度的预测。它基于自注意力机制和传统的位置编码,提炼出数据中不同时间点之间的关系,以及捕获数据中的时间顺序的信息。最重要的是TimesFM 还具有可扩展性、可概括性和可解释性

训练与推理模式

训练场景:

TimesFM中允许生成时序数据块(下文成为patch)长于比输入时序数据块。例如,假设输入patch长度为32,生成patch的长度为128。预训练过程中,模型会被按照:

  1. 前32个时间点来预测接下来的128个时间点进行训练。

  2. 前64个时间点来预测接下来的128个时间步,预测接下来的65-192

  3. 前96个时间点来预测接下来的128个时间步,预测接下来的97-224

  4. ……以此类推 

推理场景:

在推理过程中,假设给模型一个长度为256的新时间序列,并负责预测未来的接下来 256 个时间步长。 因为输出的patch长度预设为128,所以:

  1. 利用256的新实践序列通过模型生成257-384(长度为128)的预测

  2. 利用256+第一次生成时序数据再次生成385-512(长度为128)的预测

若输出的patch的长度预设为32,那么对于刚才的任务需要执行8个自回归生成迭代,而不是之前的两步。patch size某种意义是个超参数,需要根据场景进行权衡。

架构概览

TimesFM是一种基于区块的decoder-only的模型,其灵感来自于 Vision Transformer (ViT) 和 Generative Pre-trained Transformer (GPT)。它由三个主要组件组成:输入编码器、解码器和输出解码器。

每个切分的时序数据块都由残差块(如模型定义中所定义)处理为Transformer层能够接收的向量,然后将向量添加到位置编码中并馈送到 nl个变压器层中。

SA指的是self-attention(这里使用的是多头因果注意力),FFN是transformer中的全连接层。 最后生成的Token通过残差块映射回输出

输入编码器负责将时间序列数据映射为Token,输入编码器首先将时间序列数据分割成相等长度的时序数据块,然后对每个时序数据块进行线性变化 进而得到Token。

TimesFM首先将输入切分成连续的不重叠的patch,每个patch的数据块会通过残差网络投影到长度为model_dim的向量。这个向量还有带有覆盖标识信息,例如mask1:L中的数值1代表着输入y1:L可以被忽略不给与处理

左图为残差块,输入为x,输出为F(x)+x。残差块很容易理解。在传统神经网络中,每一层都会馈送到下一层。要是具有残差块的网络中,每一层都会馈送到下一层,同时还会报送2-3跳之外的层进行相加。

那就意味着输入y1:L会被按照patch长度p切分成相应的块数。第j个patch 可以表示为˜yj = y[p(j−1)+1:pj]。对应的覆盖标识为˜mj = m[p(j−1)+1:pj]。那么残差网络的输入为˜yj ⊙(1-˜mj )。

解码器是模型的核心组件,其中应用了自注意力和位置编码机制。解码器由多层组成,每层都包含一个多头自注意力模块和一个前馈网络。自注意力模块允许模型学习序列中不同标记之间的依赖关系和关系,无论是在输入还是输出中。前馈网络允许模型学习标记的非线性变换。解码器还使用层归一化和残差连接来提高模型的稳定性和效率。

位置编码是一种将时间信息注入Token(令牌)序列的技术,因为自注意力模块没有任何固有的顺序或位置概念。在将令牌嵌入送入解码器之前,将位置编码添加到令牌嵌入中。位置编码可以是学习的,也可以是固定的,具体取决于模型的选择。在 TimesFM中,位置编码采用学习的模式,意味着模型可以适应数据中不同的时间粒度和频率。

输出解码器负责将输出Token映射到最终预测。输出解码器对每个输出Token应用线性投影以获得标量值,该标量值表示相应时间点的预测值。输出解码器还使用softmax函数对输出值进行归一化并确保它们在合理的范围内。

TimesFM的核心功能之一就是可以根据需求进行预测可变长度的输出。这意味着该模型可以预测任意数量的未来时间点,而不需要任何重新训练或微调。

过程回放

TimesFM在现实世界的海量时间序列语料库上进行了预训练,这些时间序列语料库源自维基百科和谷歌搜索趋势以及合成数据。

用于预训练的数据集多种多样且异构,涵盖不同的领域、时间粒度和噪声水平。其中一些领域包括金融、经济、健康、天气、体育、娱乐等。一些时间粒度包括每小时、每天、每周、每月和每年。一些噪音级别包括低、中和高。合成数据是通过使用具有不同参数和噪声水平的正弦函数、线性函数和随机函数的不同组合来生成的。合成数据用于增强现实世界数据并增加预训练语料库的多样性和复杂性。

训练使用80%的真实数据和20%的合成数据进行采样,每小时 + 每小时、每日、每周和每月数据集有相同的权重。只要时间序列的长度允许,就使用最大上下文长度512进行训练。对于每周粒度,因为没有足够长的时间序列,所以使用最大上下文长度256。在≥月粒度则使用最大上下文长度64。同时每个输入的时间序列采用第一个输入数据块的均值和标准差进行缩放。

性能

TimesFM 在大多数基准和指标上都优于其他最先进的方法,上图中的指标越低越好。下图为主流算法的可视化图拟合图。

TimesFM还有局限性的,TimesFM 可以处理大型和高维时间序列数据,得益于其可变长度输出解码器,然而TimesFM需要大量的计算资源和内存来训练和运行,特别是对于长而复杂的时间序列数据。

由于其学习的位置编码,它可以适应不同的时间粒度和频率。然而,TimesFM也可能会遇到一些域偏移和分布不匹配的问题,特别是对于与预训练数据有很大不同或信噪比非常低的数据集。

值得注意的是TimesFM依靠自注意力机制和输出解码器可以为其预测生成提供可解释性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax额

原生Ajax xml 已被json取代 http 请求方法urlhttp版本号 network 谷歌浏览器查看请求报文和响应报文 F12 network header里面有 请求头 响应头 点击view source 可以查看请求响应行 请求体在请求行头下面 get请求有url参数,请求体变为query String…

网络传输,请每次都开启 TCP_NODELAY

原文:Marc Brooker - 2024.05.09 (注:不必过于担心这个问题,大部分现代库,语言(如 Go),代理(如 Envoy),都默认设置了 TCP_NODELAY。如果遇到网络…

AIGC数字人视频创作平台,赋能企业常态化制作数字内容营销

随着数字人技术不断发展,AIGC、元宇宙等相关产业迅速发展,企业通过3D虚拟数字人定制,打造出专属的数字人作为企业与用户沟通的新桥梁。 作为3D、AI数字人技术服务商及方案提供商,广州虚拟动力一直致力于为各领域企业通过3D虚拟数字…

Franz Electron + React 源码启动运行填坑指南

环境要求 安装miniconda python 环境electron/rebuild用得着,miniconda 默认自带的 python 是 3.11 版本,比较新; 安装virsual studio 2019 要把C桌面相关的都安装了,大概需要20G,不要安装到 C 盘,都安装到…

【C++】认识C++(上)

目录 从C到C命名空间同名冲突命名空间的定义命名空间的使用 C的输入和输出缺省参数(默认参数) 从C到C C语言的出现是计算机科学和工程史上的一个重要里程碑,许多现代计算机语言都受C语言的影响。C语言是面向过程的,结构化和模块化…

力扣HOT100 - 279. 完全平方数

解题思路&#xff1a; 动态规划 class Solution {public int numSquares(int n) {int[] dp new int[n 1];// 初始化dp数组&#xff0c;默认最坏情况是每个数都是由1相加得到的for (int i 1; i < n; i) {dp[i] i;}for (int i 1; i < n; i) {for (int j 1; j * j &…

Python Twisted库:异步网络编程的利器

更多Python学习内容&#xff1a;ipengtao.com 在现代网络应用开发中&#xff0c;异步编程已经成为一种必备的技能。Python Twisted库是一款强大的异步网络编程框架&#xff0c;它提供了丰富的工具和功能&#xff0c;使得开发者可以轻松地构建高性能的网络应用。 基本概念 Twist…

在虚机VirtualBox7.0.8安装Androidx86_64系统详细步骤要点

最近需要用到安卓系统蓝牙功能做测试&#xff0c;就选择了Virtualboxandroidx86方案&#xff0c;先把系统安装好&#xff0c;后面看是否可以比较好的完成蓝牙功能测试。如果可以的话&#xff0c;我会再发文分享下的&#xff0c;敬请期待。 1.准备材料 &#xff08;1&#xff…

Python API和微服务的测试库之httpretty使用详解

概要 在现代软件开发中,API和微服务的测试是确保应用稳定性和功能正确性的关键环节。Python的HTTPretty库提供了一个强大的工具,允许开发者在不实际发起网络请求的情况下模拟HTTP请求和响应。本文将全面介绍HTTPretty的安装、特性、基本与高级功能,并结合实际应用场景,展示…

企业如何利用美国多IP服务器来提升网站的安全性?

企业如何利用美国多IP服务器来提升网站的安全性? 在当前网络环境下&#xff0c;网站安全性日益成为企业面临的重要挑战。为了有效应对各种潜在威胁&#xff0c;越来越多的企业选择利用美国多IP服务器来提升其网站的安全性。这种服务器配置能够通过一系列策略来增加网站的安全…

5G NR 吞吐量计算 and 4G LTE 吞吐量计算

5G NR Throughput References • 3GPP TS 38.306 V15.2.0 (2018-06) ➤J : number of aggregated component carriers in a band or band combination ➤Rmax : 948/1024 • For the j-th CC, Vlayers(j) is the maximum number of layers ➤Qm(j) : Maximum modulation orde…

视频推拉流/视频直播点播平台EasyDSS使用Mysql数据库接口报错502如何处理?

视频推拉流/视频直播点播EasyDSS互联网直播平台支持一站式的上传、转码、直播、回放、嵌入、分享功能&#xff0c;具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务&#xff0c;全面满足超低延迟、超高画质、超大并发访…

meshlab: pymeshlab合并多个物体模型并保存(flatten visible layers)

一、关于环境 请参考&#xff1a;pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客 二、关于代码 本文所给出代码仅为参考&#xff0c;禁止转载和引用&#xff0c;仅供个人学习。 本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的…

计算机视觉——OpenCV实现Lucas-Kanade 光流追踪

1.光流 光流法是计算机视觉中用于估计图像序列中物体运动的关键技术。它类似于观察夜空中的彗星&#xff0c;通过其在天空中的运动轨迹来追踪它的路径。在图像处理中&#xff0c;光流帮助我们理解像素点如何在连续的帧之间移动。 1.1 稀疏光流法 稀疏光流法关注于图像中的关…

tarjan学习

1.割点&#xff08;必须经过&#xff09;&#xff1a;当时&#xff0c;y是一个割点&#xff0c;x是y的一个子节点&#xff0c;当没有点x时&#xff0c;y无法访问其他点 2.割边&#xff08;必须经过&#xff09;&#xff1a;当时&#xff0c;y不经过这条边无法到达x&#xff0c…

默认成员函数:析构、深浅拷贝

析构函数 析构函数&#xff1a;与构造函数功能相反&#xff0c;析构函数不是完成对对象本身的销毁&#xff0c;局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数&#xff0c;完成对象中资源的清理工作。 特性 析构函数名时在类名前面加上字符~ class D…

Spring Bean的生命周期 五步 七步 十步 循序渐进

&#x1f468;‍&#x1f3eb; 参考视频地址 &#x1f496; 五步版 实例化 bean&#xff08;构造方法&#xff09;属性注入&#xff08;set() 方法&#xff09;初始化方法&#xff08;自定义&#xff09;使用bean销毁方法&#xff08;自定义&#xff09; &#x1f496; 七步版…

linux的 /usr/sbin/nologin /sbin/nologin /bin/false /etc/nologin 的作用与区别

/usr/sbin/nologin /sbin/nologin /bin/false /etc/nologin 的作用与区别 /usr/sbin/nologin /sbin/nologin /bin/false 这三者的作用几乎一样&#xff0c;都是禁止用户登录。 /usr/sbin/nologin /sbin/nologin 是同一个文件&#xff0c;通过软连接指向。 当把用户的bash设置…

生态系统类型分布数据、土地利用数据、植被类型分布、自然保护区分布数据

引言 全国自然保护区生态系统类型分布信息产品是指基于Landsat TM数字影像&#xff08;以地形图纠正&#xff09;&#xff0c;采用全数字化人机交互遥感快速提取方法&#xff0c;建立全国自然保护区生态系统结构数据集&#xff0c;同时做成多种尺度的栅格数据&#xff0c;其中包…

JVM面试题:85道JVM虚拟机面试题及答案

面试题 1 .简述Java堆的结构&#xff1f;什么是堆中的永久代(Perm Gen space)? JVM整体结构及内存模型 试题回答参考思路&#xff1a; 1、堆结构 JVM的堆是运行时数据区&#xff0c;所有类的实例和数组都是在堆上分配内存。它在JVM启动的时候被创建。对象所占的堆内存是由自…