Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何将 Transformer 应用于时间序列模型

如何将 Transformer 应用于时间序列模型

作者头像
数据科学工厂
发布于 2023-09-24 11:28:24
发布于 2023-09-24 11:28:24
8110
举报

在机器学习的广阔前景中,transformers 就像建筑奇迹一样高高耸立,以其复杂的设计和捕获复杂关系的能力重塑了我们处理和理解大量数据的方式。

自 2017 年创建第一个 Transformer 以来,Transformer 类型呈爆炸式增长,其中包括 ChatGPT 和 DALL-E 等强大的生成式 AI 模型。虽然transformers 在文本到文本或文本到图像模型中非常有效,但将transformers 应用于时间序列时存在一些挑战。在 2023 年北美开源峰会 上,Ezequiel Lanza 分享了 transformers 模型的问题,并介绍了新的 transformers ,这些 transformers 开始在时间序列方面显示出有希望的结果。

这篇文章[1]不会深入探讨技术方面的内容,但如果您想阅读更多内容,我们将在全文中提供重要论文的链接。

Transformer 功能概述

让我们看看 Transformer 在 Stable Diffusion 中的作用,这是一种深度学习模型,可以将短语(例如“戴眼镜的狗”)转换为图像。转换器接收用户输入的文本并生成文本嵌入。文本嵌入是可以由卷积神经网络 (CNN)(在本例中为 U-NET)读取的文本表示。虽然稳定扩散模型使用嵌入来生成图像,但嵌入可用于生成对时间序列模型有用的附加输出。

Transformer 如何工作

为了理解如何将 Transformer 应用到时间序列模型中,我们需要关注 Transformer 架构的三个关键部分:

  • 嵌入和位置编码
  • 编码器:计算多头自注意力
  • 解码器:计算多头自注意力

作为一个例子,我们将解释普通Transformer 是如何工作的,这是一种将简单短语从一种语言翻译成另一种语言的Transformer 。

  • 嵌入和位置编码:如何表示输入数据

当您将短语“我爱狗”输入普通转换器时,一种名为 Word2Vec 的算法会将每个单词转换为数字列表(称为向量)。每个向量都包含有关单词含义以及它与其他单词如何相关的信息,例如同义词和反义词。

模型还必须理解短语中每个单词的位置。例如,“我爱狗”与“我爱狗”的含义不同。第二种算法称为位置向量,它使用复杂的数学方程来帮助您的模型理解句子顺序。将 Word2Vec 和位置向量算法提供的信息打包在一起,就是所谓的文本嵌入,或者以机器可以读取的方式表示的原始短语。

  • 编码器级别的多头自注意力

接下来,编码器接收文本嵌入并将其转换为新的向量,添加信息以帮助模型辨别短语中单词之间的关系。例如,在短语“孩子们在公园里玩耍”中,编码器会将最大权重分配给“孩子”、“玩耍”和“公园”。我们称这个过程为自注意力,因为它决定了模型应该最关注哪些单词。

为了计算自注意力,编码器为每个单词创建三个向量——查询向量、键向量和值向量。通过将短语乘以三个矩阵来创建向量。这是一个复杂的算法,但需要理解的重要部分是短语中的每个单词都会与短语中的每个其他单词相乘,并且可能需要大量时间来计算长短语的注意力。

为了更好地理解单词之间的关系,自注意力层可以同时运行多个头。这个过程称为多头注意力,它允许模型同时关注短语的不同部分,例如当存在短期和长期依赖性时。例如,在短语“动物没有过马路,因为它太累了”中,多头注意力告诉模型“动物”和“它”指的是同一个想法。

  • 解码器级别的多头自注意力

解码器的工作方式与编码器相同,只是它是使用不同的数据集进行训练的。例如,在普通 Transformer 中,如果编码器接受过英语数据训练,解码器接受过法语数据训练,则解码器将运行相同的多头自注意力算法,将原始短语翻译成法语。

使用时间序列转换器

为什么这种Transformer 架构不适用于时间序列?时间序列在某些方面就像一种语言,但它与传统语言不同。在语言中,您可以使用截然不同的单词或句子顺序来表达相同的想法。一旦基于语言的转换器(例如 vanilla)接受了某种语言的训练,它就可以理解单词之间的关系,因此当您用两个不同的输入表示一个想法时,转换器仍然会得出大致相同的含义。然而,时间序列需要严格的顺序——数据点的顺序更重要。这对使用时间序列转换器提出了挑战。

让我们看看我们目前如何解决这个问题以及为什么这些模型存在不足。

  • 目前的方法

自回归积分移动平均 (ARIMA) 模型适用于某些时间序列,但需要深入了解相关趋势、季节性变化和残差值,即使如此,它也仅适用于线性相关性。在许多具有多元问题特征的时间序列中,依赖关系之间的关系不是线性的,ARIMA 不起作用。

还有几种使用神经网络的方法。

  • 前馈神经网络 (FNN) 模型使用系列中任何前六个数据点来预测接下来的六个数据点。尽管 FNN 支持非线性依赖性,但它们要求您手工制作一个专注于非常具体的问题或数据子集的模型,这使得为大型数据集构建该模型过于耗时。
  • 循环神经网络 (RNN) 模型中,您可以向模型提供与时间序列相关的一小部分数据点,RNN 中的单元将记住哪些数据点很重要以及它们的权重是多少。然而,当您处理具有长期依赖性的数据集时,权重变得不那么相关,并且模型的准确性随着时间的推移而降低。
  • 长短期记忆 (LSTM) 模型与 RNN 类似,不同之处在于每个单元都有一个记忆,允许您在长序列期间更频繁地更新权重。这使得 LSTM 成为某些用例的良好解决方案。
  • Seq2seq 是一种提高 LSTM 性能的方法。您可以将数据输入编码器,而不是直接输入网络,编码器会生成输入的特征并输入解码器。
  • Transformer 如何改进时间序列?

使用 Transformer 启用的多头注意力可以帮助改进时间序列模型处理长期依赖性的方式,从而提供优于当前方法的优势。为了让您了解变压器对于长依赖关系的工作效果如何,请考虑 ChatGPT 可以在基于语言的模型中生成的长而详细的响应。通过允许一个头专注于长期依赖性,而另一个头专注于短期依赖性,将多头注意力应用于时间序列可以产生类似的好处。我们相信 Transformer 可以让时间序列模型预测未来多达 1,000 个数据点,甚至更多。

  • 二次复杂度问题

Transformer 计算多头自注意力的方式对于时间序列来说是有问题的。由于系列中的数据点必须乘以系列中的每个其他数据点,因此添加到输入中的每个数据点都会以指数方式增加计算注意力所需的时间。这称为二次复杂度,在处理长序列时会产生计算瓶颈。

改进时间序列的 Transformer 模型

今年早些时候发布的一项调查确定了在将 Transformer 应用于时间序列之前需要解决的两项重要网络修改:

  • 位置编码:我们如何表示输入数据
  • 注意力模块:降低时间复杂度的方法

下一部分将介绍主要要点,但您可以阅读调查以了解有关修改及其结果的更多详细信息。

  • 网络修改1:位置编码

2019 年,我们尝试在普通 Transformer 中应用 Word2Vec 编码过程,但该模型无法充分利用时间序列的重要特征。 Vanilla Transformer 擅长辨别单词之间的关系,但不擅长遵循数据序列中的严格顺序。阅读更多。

2021 年,我们创建了可学习的文本嵌入,使我们能够在输入中包含额外的位置编码信息。与普通 Transformer 中的固定编码相比,可学习的位置编码允许 Transformer 更加灵活并更好地利用顺序排序信息。这有助于 Transformer 了解有关时间序列的更重要的上下文,例如季节信息。

  • 网络修改2:注意力模块

为了降低注意力层的二次复杂度,新的 Transformer 引入了 ProbSparse Attention 的概念。通过使注意力层仅使用最重要的数据点而不是所有数据点来计算权重和概率,ProbSparse 有助于大大减少计算注意力所需的时间。

测试新 「Transformers」

虽然 LogTrans、Pyraformer 和 FEDformer 等许多新 Transformer 都纳入了这些网络修改,但这里我们重点关注 Informer 和 Spacetimeformer,因为它们是开源的。 GitHub 存储库提供参考文档和示例,让您可以轻松根据数据微调模型,而无需了解关注层的每个细节。

让我们看看 Informer 和 Spacetimeformer 如何利用这些网络修改,看看它们会生成什么样的结果。

  • 「Informer」 架构

Informer Transformer 使您能够向它们提供有关季节性、每月或假期趋势的重要信息,以帮助模型了解一年中数据行为方式的细微差异。例如,您的数据集在夏季的表现可能与冬季不同。通过位置编码,您可以告诉模型在一年中的不同时间使用不同的权重,从而使您可以更好地控制输入的质量。

通过结合 ProbSparse 注意力模型和位置编码,Informer 比 LSTM 等传统 Transformer 具有性能优势。当预测未来 24 个数据点时,Informer 产生的均方误差 (MSE) 为 0.577,比 LSTM 的 MSE 0.650 稍好一些。当预测 720 个数据点时,性能差异更大,Informer 的 MSE 为 1.215,而 LSTM 的 MSE 为 1.960。我们可以得出的结论是,Informer 在长序列中提供了稍微更好的结果,但 LSTM 对于某些短期用例仍然可能产生良好的结果。

「Spacetimeformer」 架构

Spacetimeformer 提出了一种表示输入的新方法。像 Informer 这样的时间注意力模型表示单个输入标记中每个时间步长的多个变量的值,它没有考虑特征之间的空间关系。图注意力模型允许您手动表示特征之间的关系,但依赖于不能随时间变化的硬编码图。

Spacetimeformer 结合了时间和空间注意力方法,创建一个输入标记来表示给定时间单个特征的值。这有助于模型更多地了解空间、时间和价值信息之间的关系。

与 Informer 一样,Spacetimeformer 提供的结果比 LSTM 稍好一些。在预测未来 40 小时时,Spacetimeformer 的 MSE 为 12.49,略好于 LSTM 的 MSE 14.29。虽然对于较长的序列,这一裕度会变大,但 Spacetimeformer 尚未为每个用例提供比 LSTM 更好的结果。

用例:微服务架构上的延迟

让我们将时间序列模型应用于在线精品店。该商店有 11 个微服务,包括允许用户添加和删除商品的购物车服务以及允许用户搜索单个产品的目录服务。

为了演示对最终用户的影响,我们将预测用户必须等待每个微服务处理请求的时间。基于每个服务之前 360 个数据点的模型,我们对未来的 36 个数据点进行了短期预测,并对未来的 120 个数据点进行了长期预测。

在预测接下来的 36 个数据点时,Informer 产生的 MSE 为 0.6,略优于 LSTM。然而,Informer 需要更多时间来处理。长模型的结果也是如此:Informer 的预测更准确,但处理时间更长。

image-20230917230120011

测试

时间序列的复杂性各不相同,因此测试模型以找到最适合您的用例的模型非常重要。虽然 LSTM 等传统模型是某些短期时间序列的有力选择,但 Informer 和 Spacetimeformer 可以为长期序列提供更准确的预测。随着我们继续对注意力层以及输入数据的表示方式进行优化,我们预计性能将会提高。此外,作为开源框架,Informer 和 Spacetimeformer 使安装模型并开始使用数据进行测试变得更加容易。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-22 08:30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冷冻工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Informer:用于长序列时间序列预测的新型transformer 模型
transformer 彻底改变了自然语言处理,并在神经机器翻译,分类和命名实体识别等领域进行了重大改进。最初,transformer 在时间序列领域很难应用。但是在过去的一年半中,出现了一些用于时间序列分类和预测的transformer 变体。我们已经看到了诸如时间融合,卷积,双阶段注意力模型以及更多尝试进入时间序列的模型。最新的Informer模型建立在这一趋势的基础上,并合并了几个新的组件。
deephub
2021/04/16
3.2K0
深度时间序列预测和基础模型的研究进展
本文综述了深度学习在时间序列预测中的应用,特别是在流行病预测领域。尽管深度学习在时间序列预测中表现出显著优势,但仍面临挑战,如时间序列不够长、无法利用积累的科学知识以及模型的解释性。
算法进阶
2024/07/10
3170
深度时间序列预测和基础模型的研究进展
一文读懂 Transformer 神经网络模型
自从最新的大型语言模型(LLaM)的发布,例如 OpenAI 的 GPT 系列、开源模型 Bloom 以及谷歌发布的 LaMDA 等,Transformer 模型已经展现出了其巨大的潜力,并成为深度学习领域的前沿架构楷模。
Luga Lee
2023/09/22
41.1K1
一文读懂 Transformer 神经网络模型
Transformer时间序列预测!
【导读】大家好,我是泳鱼。一个乐于探索和分享AI知识的码农!今天带来的这篇文章,提出了一种基于Transformer的用于长期时间序列预测的新方法PatchTST,取得了非常显著的效果。希望这篇文章能对你有所帮助,让你在学习和应用AI技术的道路上更进一步!
算法进阶
2023/08/28
1.8K1
Transformer时间序列预测!
时间序列表示学习的综述
本文综述了时间序列数据中的通用表示学习方法,提出了一种新颖的分类方法,并讨论了其对提高学习表示质量的影响。文章全面回顾了各种神经网络架构、学习目标和数据相关技术,并总结了常用的实验设置和数据集。
算法进阶
2024/07/22
5160
时间序列表示学习的综述
时序预测的深度学习算法介绍
深度学习方法是一种利用神经网络模型进行高级模式识别和自动特征提取的机器学习方法,近年来在时序预测领域取得了很好的成果。常用的深度学习模型包括循环神经网络(RNN)、长短时记忆网络(LSTM)、门控循环单元(GRU)、卷积神经网络(CNN)、注意力机制(Attention)和混合模型(Mix )等,与机器学习需要经过复杂的特征工程相比,这些模型通常只需要经数据预处理、网络结构设计和超参数调整等,即可端到端输出时序预测结果。深度学习算法能够自动学习时间序列数据中的模式和趋势,神经网络涉及隐藏层数、神经元数、学习率和激活函数等重要参数,对于复杂的非线性模式,深度学习模型有很好的表达能力。在应用深度学习方法进行时序预测时,需要考虑数据的平稳性和周期性,选择合适的模型和参数,进行训练和测试,并进行模型的调优和验证。来源:轮回路上打碟的小年轻(侵删)
数据STUDIO
2023/09/04
1.8K0
时序预测的深度学习算法介绍
LSTM还没「死」!
选自towardsdatascience 作者:Nikos Kafritsas 机器之心编译 编辑:杜伟、陈萍 如果说「LSTM」已死,它为何依然能够在Kaggle竞赛中成为赢家呢? 长短期记忆(Long Short-Term Memory,LSTM)是一种时间循环神经网络(RNN),论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。 在过去几十年里,LSTM发展如何了? 密切关注机器学习的研究者,最近几年他们见证了科学领域前所未有的革命
机器之心
2022/03/28
6120
时间序列+Transformer!
Transformer在自然语言处理和计算机视觉领域表现优秀,但在时间序列预测方面不如线性模型。
算法进阶
2024/02/29
1.5K0
时间序列+Transformer!
Transformer:隐藏的机器翻译高手,效果赶超经典 LSTM!
AI 科技评论按:在自然语言处理任务中,循环神经网络是一种常见的方法,但近来,一种只依赖于注意力机制的特定神经网络模型已被证明它对于常见的自然语言处理任务的效果甚至优于循环神经网络模型,这个模型被称为变换器(Transformer)。同时,数据科学家 Maxime Allard 发表了相应的文章对变换器的原理机制作了介绍与讲解,并用相应的实验帮助大家更好的理解这种神经网络模型,AI 科技评论将其编译如下。
AI科技评论
2019/07/30
9160
Transformer:隐藏的机器翻译高手,效果赶超经典 LSTM!
神经网络结构——CNN、RNN、LSTM、Transformer !!
本文将从什么是CNN?什么是RNN?什么是LSTM?什么是Transformer?四个问题,简单介绍神经网络结构。
JOYCE_Leo16
2024/03/19
29.3K0
神经网络结构——CNN、RNN、LSTM、Transformer !!
Transformer图解
Transformer正在席卷自然语言处理领域。 这些令人难以置信的模型正在打破多项 NLP 记录并推动最先进的技术发展。 它们被用于许多应用程序,如机器语言翻译、会话聊天机器人,甚至为更好的搜索引擎提供动力。
xiangzhihong
2023/12/27
3330
Transformer图解
Block Recurrent Transformer:结合了LSTM和Transformer优点的强大模型
在以前的文章中,我们讨论过Transformer并不适合时间序列预测任务。为了解决这个问题Google创建了Hybrid Transformer-LSTM模型,该模型可以实现SOTA导致时间序列预测任务。
deephub
2022/11/11
1.3K0
Block Recurrent Transformer:结合了LSTM和Transformer优点的强大模型
全面!深度学习时间序列分类的综述!
时间序列分析中的时间序列分类(TSC)是关键任务之一,具有广泛的应用,如人体活动识别和系统监测等。近年来,深度学习在TSC领域逐渐受到关注,具有自动从原始时间序列数据中学习并抽取有意义特征的能力。
算法进阶
2024/05/02
3.1K0
全面!深度学习时间序列分类的综述!
LSTM 已死,事实真是这样吗?
就像 20 世纪初,爱因斯坦的 Annus mirabilis 论文成为了量子力学的基础。只是这一次,是 AlexNet 论文 [1],这是一种挑战计算机视觉的架构,并重新唤起了人们对机器学习(后来转变为深度学习)的兴趣。在过去的十年里,人们见证了机器学习领域革命性的进步,这是无可否认的。
deephub
2022/04/14
8880
LSTM 已死,事实真是这样吗?
Transformer介绍
随着人工智能技术的加速演进,AI大模型已成为全球科技竞争的新高地。Transformer作为大模型的核心技术之一,正在推动整个AI产业的发展。
@小森
2024/06/13
2860
Transformer介绍
深度学习时间序列异常检测方法
本文全面概述了深度学习用于时间序列异常检测的最新架构,提供了基于策略和模型的方法,并讨论了各种技术的优点和局限性。此外,还举例说明了近年来深度学习在时间序列异常检测中各领域的应用。
算法进阶
2024/07/11
1.1K0
深度学习时间序列异常检测方法
长时间预测模型DLinear、NLinear模型
今年发布8月份发布的一篇有关长时间序列预测(SOTA)的文章,DLinear、NLinear在常用9大数据集(包括ETTh1、ETTh2、ETTm1、ETTm2、Traffic等)上MSE最低,模型单变量、多变量实验数据:
机器学习AI算法工程
2023/09/04
1.3K0
长时间预测模型DLinear、NLinear模型
如何搭建适合时间序列预测的Transformer模型?
今天又是一篇Transformer梳理文章,这次应用场景是时间序列预测。Transformer的序列建模能力,让其天然就比较适合时间序列这种也是序列类型的数据结构。但是,时间序列相比文本序列也有很多特点,例如时间序列具有自相关性或周期性、时间序列的预测经常涉及到周期非常长的序列预测任务等。这些都给Transformer在时间序列预测场景中的应用带来了新的挑战,也使业内出现了一批针对时间序列任务的Transformer改造。下面就给大家介绍7篇Transformer在时间序列预测中的应用。
圆圆的算法笔记
2022/09/22
3.2K0
如何搭建适合时间序列预测的Transformer模型?
谷歌、DeepMind和OpenAI都在用的Transformer是如何工作的?| 干货
不论是各处霸榜的谷歌BERT、OpenAI最近的强大NLP模型GPT-2,还是DeepMind击败星际2顶尖职业玩家的AlphaStar,背后都有 Transformer的身影。
量子位
2019/04/23
5970
谷歌、DeepMind和OpenAI都在用的Transformer是如何工作的?| 干货
十分钟了解Transformers的基本概念
多年来,我们一直在使用RNN,LSTM和GRU解决顺序问题,您突然希望我们将其全部丢弃吗?嗯,是!!所有这三种架构的最大问题是它们进行顺序处理。而且它们也不擅长处理长期依赖关系(即使使用LSTM和GRU的网络)。Transformers 提供了一种可并行处理顺序数据的方式,因此,它不仅比以前的体系结构快得多,而且在处理长期依赖性方面也非常出色。
deephub
2020/11/02
1.2K0
十分钟了解Transformers的基本概念
相关推荐
Informer:用于长序列时间序列预测的新型transformer 模型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档