《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结

2024-06-21 08:20

本文主要是介绍《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍了一个名为TimeFM的新型时间序列预测基础模型,该模型受启发于自然语言处理领域的大语言模型,通过再大规模真实世界和合成时间序列数据集上的预训练,能够在多种不同的公共数据集上实现接近最先进监督模型的零样本预测性能。

该模型使用真实世界和合成数据集构建的大型时间序列语料库进行预训练,并展示了在不同领域、预测范围和时间粒度的未见数据集上的准确零样本预测能力。

1、引言

时间序列在零售、金融、制造业、医疗保健和自然科学等各个领域无处不在。近年来,深度学习模型已成为预测丰富多元时间序列的流行方法。

深度学习模型: 

1、David Salinas, V alentin Flunkert, Jan Gasthaus, and Tim Januschowski. Deepar: Probabilistic forecasting with autoregressive recurrent networks. International Journal of F orecasting, 36(3):1181–1191, 2020.

2、Boris N Oreshkin, Dmitri Carpov, Nicolas Chapados, and Y oshua Bengio. N-beats: Neural basis expansion analysis for interpretable time series forecasting. In International Conference on Learning Representations, 2019.

3、Rajat Sen, Hsiang-Fu Y u, and Inderjit S Dhillon. Think globally, act locally: A deep neural network approach to high-dimensional time series forecasting. Advances in neural information processing systems, 32, 2019.

4、Tian Zhou, Ziqing Ma, Qingsong Wen, Xue Wang, Liang Sun, and Rong Jin. Fedformer: Frequency enhanced decomposed transformer for long-term series forecasting. In International Conference on Machine Learning, pages 27268–27286. PMLR, 2022.

5、Si-An Chen, Chun-Liang Li, Nate Y oder, Sercan O Arik, and Tomas Pfister. Tsmixer: An all-mlp architecture for time series forecasting. arXiv preprint arXiv:2303.06053, 2023.

旨在设计一个通用的时间序列基础模型,以获得良好的开箱即用的零样本预测性能,在大量时间序列数据上训练的大型预训练模型学习时间模式,从而对以前未见过的数据集进行时间序列预测。

TimeFM是一个用于时间序列预测的单一基础模型,当用于不同领域的各种以前未见过的预测数据集时,可以获得接近最先进的零样本精度(与这些数据集单独训练的最佳监督模型相比),该模型可以很好的跨越不同的预测历史长度、预测长度和推断时间粒度。

基础模型的两个关键元素:①使用现实世界数据和合成数据构建的大规模时间序列语料库;②采用带有输入补丁的解码器风格注意力架构(输入补丁:将输入数据分割成小块或补丁,并将这些补丁作为模型的输入)

2、最近工作

预测模型可分为以下几类

1、局部单变量模型:分别针对数据集中的每个时间序列进行训练,以便预测相应的时间序列的未来。

2、全局单变量模型:在许多时间序列上进行全局训练,但在推理过程中,将时间序列的未来作为其自身过去和其他相关协变量的函数来预测。

3、全局多变量模型:采用数据集中所有时间序列的过去来预测所有时间序列的未来。

3、问题定义

建立一个通用的零样本预测器,接受时间序列的过去C个时间点作为上下文,并预测未来的H个时间点。定义预测的准性可以通过均方误差(MAE)等指标来衡量。

4、模型架构

本文提出:允许模型的预测输出patch的长度大于输入patch的长度,假设输入patch_len为32,输出patch_len为128

patch掩蔽:如果只使用patch,模型可能只学会预测上下文长度是输入patch长度的倍数。因此在训练中应小心使用掩蔽,patch的部分以及上下文窗口开始的整个补丁都可以在数据批处理中被屏蔽(随机屏蔽策略)。

输入层:将时间序列预处理成变换器层的输入token。首先,输入被分解成连续的非重叠的patches,然后,每个patch通过残差块(residual block)处理成模型维度大小的向量。同时,还提供了一个二进制填充掩码(padding mask),用于指示哪些输入应该被忽略,残差块本质上是一个多层感知器(MLP)块,带有一个隐藏层和跳跃连接。

堆叠变换器(stacked transformer):模型的大部分参数位于堆叠的变换器层中,每层都有标准的多头自注意力机制(multi-head self-attention, SA)后跟一个前馈网络(Feedforward Network,FFN)。使用因果注意力(causal attention),即每个输出token只能关注序列中它之前的输入token(包括相应的输入令牌),这种设计允许模型并行处理整个上下文窗口,并在看到不同数量的输入patches后自动预测未来的时间点。

输出层:任务是将输出token映射成预测。模型以解码器仅模型(decoder-only mode)训练,即每个输出token应该能够预测紧随其后输入patch的部分时间序列,与输入patch长度不同,输出patch长度可以更长,这意味着可以根据迄今为止看到的输入patch编号的信息预测更大的时间序列块。

损失函数:专注于点预测,因此使用了均方误差作为训练期间的损失函数。损失函数是在所有训练小批量上的预测误差的平均值。

训练:模型使用标准的微批量梯度下降进行解码器仅模式的训练,通过时间序列的所有窗口进行迭代。训练中唯一的非标准部分是训练期间掩码的采样方式。

        对于批次中的每个时间序列,对0—p-1之间的随机数r进行采样,然后设置1—r为1,其余为0,由此屏蔽输入patch的一小部分。

推理:训练好的网络可以使用自回归解码(类似于大语言模型)为任何预测范围生成预测。给定输入时间序列,模型首先预测下一个时间步的未来,然后使用生成的输出作为输入来生成下一个输出patch的预测,依此类推。

5、预训练细节

预训练语料库包含大量代表各种领域、趋势和季节性模式以及时间粒度的时间数据,从三个主要来源获取用于训练模型的大量数据来解决这个问题。主要数据来源是:

1、Google trends:该数据集捕获了从2007年到2022年数百万查询的搜索兴趣,作者选择了约22000个主要查询,并下载了这些查询在小时、日、周和月粒度上的搜索兴趣数据。

2、wiki pageviews:该数据集捕获了从2012年1月到2023年11月所有wikimdedia页面的小时级浏览量。作者清晰并聚合了这些数据,并过滤掉包含多零值的页面浏览时间序列。

3、合成数据:创建了合成时间序列生成器,包括ARMA过程、季节性模式(不同频率的正弦波和余弦波混合)、趋势(线性、指数带有一些变化点)和阶跃函数。合成时间序列可以是一个或多个这些过程的加性组合。

4、其他真实世界数据源:添加其他公开的数据集,包括M4数据集的所有粒度、小时和15min的电力数据集、小时交通数据集,以及用于评估的10min粒度的气象数据集。

未完成,待续......

这篇关于《A DECODER-ONLY FOUNDATION MODEL FOR TIME-SERIES FORECASTING》阅读总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080694

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果