深度学习在时间序列预测的总结和未来方向分析

news2024/12/23 5:22:00

2023年是大语言模型和稳定扩散的一年,时间序列领域虽然没有那么大的成就,但是却有缓慢而稳定的进展。Neurips、ICML和AAAI等会议都有transformer 结构(BasisFormer、Crossformer、Inverted transformer和Patch transformer)的改进,还出现了将数值时间序列数据与文本和图像合成的新体系结构(CrossVIVIT), 也出现了直接应用于时间序列的可能性的LLM,以及新形式的时间序列正则化/规范化技术(san)。

我们这篇文章就来总结下2023年深度学习在时间序列预测中的发展和2024年未来方向分析

Neurips 2023

在今年的NIPs上,有一些关于transformer 、归一化、平稳性和多模态学习的有趣的新论文。但是在时间序列领域没有任何重大突破,只有一些实际的,渐进的性能改进和有趣的概念证明。

1、Adaptive Normalization for Non-stationary Time Series

论文介绍了一种“模型不可知的归一化框架”来简化非平稳时间序列数据的预测。作者让SAN分两步操作:训练一个统计预测模型(通常是ARIMA),然后训练实际的深度时间序列基础模型(使用统计模型对TS数据进行切片、归一化和反归一化)。统计模型对输入时间序列进行切片,以便学习更健壮的时间序列表示并去除非平稳属性。作者指出:“通过对切片级特性进行建模,SAN能够消除局部区域的非平稳性。”SAN还显式地预测目标窗口的统计信息(标准差/平均值)。这使得它在处理非平稳数据时,与普通模型相比,能够更好地适应随时间的变化。

采用transformer 模型作为基本预测模型,对典型的时间序列预测基准(如电力、交换、交通等)进行指标验证。作者发现SAN在这些基准数据集上持续提高了基本模型的性能(尽管他们没有测试Inverted Transformer,因为这篇论文是在Inverted Transformer之前发布的)。

由于该模型结合了一个统计模型(通常是ARIMA)和一个普通的transformer ,我认为调优和调试(特别是在新的数据集上)可能会很棘手和麻烦。因为几乎所有的时间序列模型都将序列输入长度作为超参数。另外就是“切片”的切片与普通的序列窗口有何不同?作者还是没有说清楚。总的来说,我认为这仍然是一个相当强大的贡献,因为它的实验结果和即插即用属性。

2、BasisFormer

BasisFormer使用可学习和可解释的“basis”来改进一般的transformer 体系结构。这里的“basis”指的是创建一个类似于NBeats的神经“basis”(例如,为基于多项式的函数学习趋势、季节性等的系数)。该模型分为三个部分:基础模块、系数模块和预测模块。基模块试图以自监督的方式确定一组适用于历史和未来时间序列数据的数据基础趋势。basis模块通过对比学习和一个名为InfoNCE loss的特定损失函数(该函数试图学习未来和过去时间序列之间的联系)。coef模型试图“模拟时间序列和一组基础趋势之间的相似性”。对于coef模型,作者使用了一个交叉注意力模块,该模块将basis和时间序列作为输入。然后将输出输入到包含多个MLP的预测模块中。

作者在典型的时间序列预测数据集(ETH1, ETH, weather, exchange)上评估他们的论文。发现BasisFormer比其他模型(Fedformer、Informer等)的性能提高了11-15%。BasisFormer还没有被拿来和Inverted Transformer比较,因为它还没有发布。似乎Inverted Transformer和可能的Crossformer 可能会略优于BasisFormer。

还记的去年我们看到了“Are Transformers Effective for Time Series Forecasting?”这篇论文批评了许多Transformers 模型,并展示了一个简单的模型“D-Linear”如何超越它们。在2023年从BasisFromer开始,已经开始缓慢的解决这些问题,并超越上面提到的基准模型。

这篇论文模型的技术是可靠的,但这篇论文优点难理解。因为作者介绍了学习“basis”的概念,但并没有真正解释这种方法的新颖性以及它与其他模型的不同之处。

3、Improving day-ahead Solar Irradiance Time Series Forecasting by Leveraging Spatio-Temporal Context

论文提出了一种基于混合(视觉和时间序列)深度学习的架构,用于预测第二天的太阳能产量。太阳能的生产经常受到云层覆盖的影响,这在卫星图像数据中可以看到,但在数值数据中没有很好地体现出来。除了模型本身外,论文的另外贡献是研究人员构建并开源的多模态卫星图像数据集。作者描述了一个多级Transformers 架构,同时关注数值时间序列和图像数据。时间序列数据通过时间Transformers 图像通过视觉Transformers 。然后,交叉注意力模块将前两个模块的图像数据综合起来。最后数据进入一个输出预测的最终时态Transformers 。

作者在论文中提到的另一个有用的想法被称为ROPE或旋转位置编码。这将在编码/位置嵌入中创建坐标对。这是用来描述从云层到太阳能站的距离。

作者对他们的新数据集进行评估和基准测试,比较了Informer、Reformer、Crossformer和其他深度时间序列模型的性能。作者还在整合图像数据方面区分了困难和容易的任务,他们的方法优于其他模型。

这篇论文提供了一个有趣的框架,ROPE的概念也很有趣,对于任何使用坐标形式的地理数据的人都有潜在的帮助。数据集本身对于多模态预测的持续工作非常有用,这是一项非常有益的贡献。

4、Large Language Models Are Zero-Shot Time Series Forecasters

这篇论文探讨了预训练的llm能否直接以整数形式输入时间序列数据,并以零样本的方式预测未来数据。作者描述了使用GPT-3和GPT-4和开源LLMs不进一步修改结构直接与时间序列值交互的情况。最后还描述了他们对模型零样本训练行为起源的思考。作者假设,这种行为是提取知识的预训练的普遍通用性的结果。

在上面提到的标准时间序列基准数据集评估他们的模型。虽然模型没有达到SOTA性能,但考虑到它完全是零样本并且没有额外的微调,所以表现还是很好的。

llm可以开箱即用地进行TS预测,因为它们都是在文本数据上训练的。这一领域可能值得未来进一步探索,这篇论文是一个很好的一步。但是该模型目前只能处理单变量时间序列

ICML 、ICLR 2023

除了Neurips之外,ICML和ICLR 2023还重点介绍了几篇关于时间序列预测/分析的深度学习的论文。以下是一些我觉得很有趣的,并且对未来一年仍有意义的建议:

1、Crossformer

该模型是专门为多元时间序列预测(MTS)开发的。该模型采用维度分段嵌入(DSW)机制。DSW嵌入与传统嵌入的不同之处在于它采用二维格式的数据。并且跨变量和时间维度显式地从MTS数据生成段。

该模型在标准MTS数据集(ETH, exchange等)上进行了评估:在发布时时优于大多数其他模型,例如Informer和DLinear。作者还对dSW进行了消融研究。

这篇来自ICLR的关于的论文在预测河流流量时表现不错,但是是在一次预测多个目标时,性能似乎会下降很多。也就是说,它的表现肯定比Informer和相关的Transformers 模型要好。

2、Learning Perturbations to Explain Time Series Predictions

大多数用于深度学习解释的扰动技术都是面向静态数据(图像和文本)的。但是对于时间序列特别是多元TS需要更大范围的扰动来学习随机影响。作者提出了一种基于深度学习的方法,可以学习数据的掩码和相关的扰动,更好地解释特征的重要性。然后将掩码和扰动的输入传递给模型,并将输出与未扰动数据的输出进行比较。据两个输出之间的差值计算损失。

越来越多的研究人员正在深入研究解释深度学习模型这是件好事。本文概述了现有的方法及其不足,并提出了一种改进的方法。我认为使用额外的神经网络来学习扰动的想法增加了不必要的复杂性,因为每当我们增加更多的层和额外的网络时,就会增加发生问题的概率,特别是在已经很大的网络上。别忘了奥卡姆剃刀定律如无必要,勿增实体

3、Learning Deep Time Index Models

本文通过光流和元学习来讨论预测,描述了学习如何预测非平稳时间序列。对于那些不熟悉的人来说,元学习通常被应用在计算机视觉数据集上,像MAML这样的论文可以对新的图像类进行少量的学习。MAML和其他模型都有一个内部循环和一个外部循环,其中外部循环教模型如何学习,内部循环对其进行微调以适应特定的任务。论文的作者采用了这一思想,并将其应用于几乎将每个非平稳性视为一个新的学习任务。新的“任务”是长时间序列序列的块。

作者在ETH,temperature和exchange 数据集上测试了他们的模型。尽管他们的模型没有达到SOTA的结果,但它与当前的SOTA体系结构具有竞争力。

这篇论文为时间序列预测提供了一个有趣的角度,相对于常规方法有了一个新的突破,我想就是他虽然没有超过SOTA但是还是被录用的原因之一吧。

4、Inverted Transformers are Effective for Time Series Forecasting

《Inverted Transformers》是2024年发表的一篇论文。这也是目前时间序列预测数据集上的SOTA。基本上,Inverted Transformers采用时间序列的Transformers架构并进行了翻转。整个时间序列序列用于创建令牌。然后,时间序列彼此独立进行嵌入表示。注意力对多个时间序列嵌入进行操作。它有点类似于Crossformer,但它的不同之处在于,它遵循标准Transformers架构。

作者在标准时间序列数据集上评估模型目前优于所有其他模型,包括Informer, Reformer, Crossformer等。

这是一篇强大的论文,因为模型的表现优于现有的模型。但是在某些情况下,它优于模型的数值并不是那么显著。所以可以优先看看这篇论文并且进行测试。

TimeGPT

最后说说TimeGPT,它没有在任何主要会议上被接受,而且它的评估方法也优点可疑,由于它不幸地在互联网上获得了相当多的介绍,所以我们要再提一下:

1、作者没有将他们的结果与其他SOTA类型模型进行比较,只是引用“测试集包括来自多个领域的30多万个时间序列,包括金融、网络流量、物联网、天气、需求和电力。”并且没有提供测试集的链接,也没有在他们的论文中说明这些数据集是什么。

2、论文中架构图和模型体系结构的描述非常糟糕。这看起来就像是作者复制了其他论文的图表,强加上注意力的定义和LLM相关的流行词汇。

3、作者的Nixtla公司非常小,可能是一家小型初创公司,它是否有足够的计算资源来完全训练一个“成功的时间序列基础模型”。虽然这样说法优点歧视,但是如果我说我一个人用一周训练了一个LLM,那估计都没人相信,对吧。

OpenAI、谷歌、亚马逊、Meta等公司提供足够的计算资源来创建庞大的模型。如果TimeGPT真的是一个简单的Transformers 模型,并在大量的时间序列数据上训练它,为什么其他机构,甚至个人不能用它的大量gpu做到这一点呢?答案是,事情肯定没那么简单。

时间序列创建“基础模型”的能力目前还不够完善。多元时间序列预测的一个重要组成部分是学习协变量之间的依赖关系。MTS的维度在不同的数据集之间差异很大。对于具有文本数据的Transformers ,我们总是将一个单词映射到一个数字id,然后创建一个特定维度的嵌入。

对于MTS,不仅值可以更改,而且在一个数据集上可能有100个变量,而在另一个数据集上只有10个变量。这使得几乎不可能设计所有用途的映射层来将不同大小的MTS数据集映射到公共嵌入维度。所以还记得我们前几天发的Lag-Llama,也只是单变量的预测。

在其他时间序列(即使是那些具有相同数量变量的时间序列)上预训模型不会产生改进的结果(至少在当前架构下不会)。

总结及未来方向分析

在2023年,我们看到了Transformers 在时间序列预测中的一些持续改进,以及llm和多模态学习的新方法。随着2024年的进展,我们将继续看到在时间序列中使用Transformers 架构的进步和改进。可能会看到在多模态时间序列预测和分类领域的进一步发展。

https://avoid.overfit.cn/post/be97dafdc9e64c1ca7da873ab13c0923

作者:Isaac Godfried

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

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

相关文章

32.仿简道云公式函数实战-数学函数-MOD

1. MOD函数 返回两数相除的余数。 结果的符号与除数相同。 2. 函数用法 MOD(number, divisor) 3. 函数示例 返回两数相除的余数。 结果的符号与除数相同。 number: 必需。 要计算余数的被除数。 divisor: 必需。 除数。 4. 代码实战 首先我们在function包下创建math包…

书生·浦语大模型实战营-第一课笔记

首先了解了大模型的发展历程,从GPT1到GPT4的发展历程,大模型经历自OPENAI发布GPT3.5后进入了快速发展阶段,成为了技术界高度关注的热门技术。 大模型的出现改变了以往通用人工智能的困局,使得通用人工智能在通用领域的应用变得有可…

QT3作业

1 2. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数,将登录按钮使用t5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#…

模板初阶C++

1、泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp = left;left = right;right = temp; }void Swap(double& left, double& right) {double temp = left;left = right;right = temp; }void Swap(char& left, char&…

五种多目标优化算法(MOJS、MOGWO、NSWOA、MOPSO、NSGA2)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOJS 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff0…

LeetCode.105. 从前序与中序遍历序列构造二叉树

题目 105. 从前序与中序遍历序列构造二叉树 分析 这道题是告诉我们一颗二叉树的前序和中序,让我们根据前序和中序构造出整颗二叉树。 拿到这道题,我们首先要知道前序的中序又怎样的性质: 前序:【根 左 右】中序:…

VMWare ubuntu共享宿主机window11文件夹

宿主机window的设置 找到需要共享的文件夹,比如我需要share文件夹共享到虚拟机中 点击“共享”文件夹属性,如果找不到“共享”选项卡,需要在下面的“选项”中 注意勾选“使用共享向导(推荐)”,如果已经勾…

QT中的多线程有什么作用?

概述 在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上…

嵌入式Linux学习day22

时间接口&#xff1a; 头文件&#xff1a;#include<time> 1.time&#xff08;&a&#xff09; 用time_t 定义a 功能&#xff1a;返回1970-1-1到现在的秒数 参数&#xff1a;存放秒数空间的首地址 2.localtime(&a) 功能&#xff1a;将秒数转化为本地时间 参…

[C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强

【算法介绍】 提升夜间雾霾图像可见度的技术研究&#xff1a;引导APSF与梯度自适应卷积的应用 随着城市化的快速发展&#xff0c;雾霾现象日益严重&#xff0c;尤其是在夜间&#xff0c;雾霾对图像的可见度造成了极大的影响。因此&#xff0c;提升夜间雾霾图像的可见度成为了…

C#,洗牌问题(Card Shuffle Problem)的算法与源代码

1 洗牌问题&#xff08;Card Shuffle Problem&#xff09; 洗牌问题&#xff08;Card Shuffle Problem&#xff09;的基本描述 你有 100 张牌&#xff0c;从 1 到 100。 你把它们分成 k 堆&#xff0c;然后按顺序收集回来。 例如&#xff0c;如果您将它们分成 4 堆&#xff0…

Android T 远程动画显示流程其二——动画的添加流程(更新中)

前言 接着上篇文章分析 Android T 远程动画显示流程其一 切入点——处理应用的显示过渡 下面&#xff0c;我们以从桌面点击一个应用启动的场景来分析远程动画的流程&#xff0c;窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTran…

Latent Diffusion Models / Stable Diffusion(LDM)

High-Resolution Image Synthesis with Latent Diffusion Models&#xff08;CVPR 2022&#xff09;https://arxiv.org/abs/2112.10752latent-diffusionstable-diffusion cross-attention&#xff08;用于多模态任务&#xff09; Cross-attention vs Self-attention&#xff…

外汇天眼:交易讲究时机,不要在这几个时间交易

每个交易者都想知道&#xff0c;什么时候是入场买卖的最好时机。 到底是1.1800入场呢&#xff1f; 还是等到1.1900&#xff1f; 但是&#xff0c;交易中不仅仅是关于从哪里入场&#xff0c;同样的&#xff0c;知道什么时候不去交易也是非常重要的。 这听起来像是一回事&#x…

python coding with ChatGPT 打卡第21天| 二叉树:最近公共祖先

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

网络原理 - HTTP/HTTPS(4)

HTTP响应详解 认识"状态码"(status code) 状态码表示访问一个页面的结果.(是访问成功,还是失败,还是其它的一些情况...).(响应结果如何) 学习状态码 -> 为了调试问题. 写服务器时,按照状态码的含义正确使用. 200 OK 这是最常见的状态码,表示访问成功. 抓包抓…

超详细!三款内衣洗衣机PK评测,希亦、觉飞、由利谁更胜一筹?

内衣裤作为我们日常必备的贴身衣物&#xff0c;所以对卫生方面的要求也比较高&#xff0c;但对许多人们而言&#xff0c;对内衣裤进行清洗是一项相当繁琐的事情&#xff0c;主要是因为并不能直接把内衣裤放入大型洗衣机里和其它衣服混合洗&#xff0c;所以大多数用户都会自己动…

不止于框架:全面深入Spring MVC,成就开发高手

介绍&#xff1a;Spring MVC是一个基于Java的轻量级Web框架&#xff0c;它实现了MVC&#xff08;Model-View-Controller&#xff09;设计模式。以下是对Spring MVC的详细介绍&#xff1a; MVC架构模式&#xff1a;Spring MVC遵循MVC架构模式的思想&#xff0c;将应用程序分为模…

几个常见的C/C++语言冷知识

当涉及到C/C语言时&#xff0c;有一些冷知识可能并不为人所熟知&#xff0c;但却可以让你更深入地理解这门古老而强大的编程语言。以下是一些有趣的C/C语言冷知识。 1. 数组的下标可以是负数 在我们日常的C语言编程中&#xff0c;数组是一个非常常见的数据结构。我们习惯性地使…

CSS 函数详解url、min、rgb、blur、scale、rotate、translate等

随着技术的不断进步&#xff0c;CSS 已经从简单的样式表发展成为拥有众多内置函数的强大工具。这些函数不仅增强了开发者的设计能力&#xff0c;还使得样式应用更加动态、灵活和响应式。本文将深入探讨 CSS 常见的 66 个函数&#xff0c;逐一剖析它们的功能和用法&#xff0c;一…