如何将转换器应用于时序模型

一、说明
在机器学习的广阔环境中,变压器作为建筑奇迹屹立不倒,以其复杂的设计和捕获复杂关系的能力重塑了我们处理和理解大量数据的方式。
自 2017 年创建第一台变压器以来,变压器类型呈爆炸式增长,包括强大的生成 AI 模型,如 ChatGPT* 和 DALL-E*。虽然转换器在文本到文本或文本到图像模型中有效,但在将转换器应用于时间序列时存在一些挑战。在 2023 年北美开源峰会* 上,Ezequiel Lanza 分享了电流互感器模型的问题,并介绍了新的变压器,这些变压器开始在时间序列方面显示出有希望的结果。
这篇文章不会深入到技术方面,但如果你想内容,我们将包括指向重要论文的链接。
自从第一台变压器香草变压器问世以来,已经创造了许多新的变压器。
二、变压器功能概述
让我们看看变压器在稳定扩散*中的作用,稳定扩散是一种深度学习模型,可以将短语(例如“戴眼镜的狗”)转换为图像。转换器接收用户输入的文本并生成文本嵌入。文本嵌入是可以由卷积神经网络 (CNN) 读取的文本表示形式,在本例中为 U-NET。虽然稳定扩散模型使用嵌入来生成图像,但嵌入可用于生成对时间序列模型有用的其他输出。
三、变压器的工作原理
要了解如何将转换器应用于时序模型,我们需要关注转换器体系结构的三个关键部分:
- 嵌入和位置编码
- 编码器:计算多头自注意力
- 解码器:计算多头自我注意
例如,我们将解释香草变压器的工作原理,这是一种将简单短语从一种语言翻译成另一种语言的转换器。
3.1 嵌入和位置编码:如何表示输入数据
当您在香草转换器中输入短语“我爱狗”时,称为 Word2Vec 的算法会将每个单词转换为数字列表,称为向量。每个向量都包含有关单词的含义以及它与其他单词(如同义词和反义词)的关系的信息。
模型还必须了解短语中每个单词的位置。例如,“我爱的狗”与“我爱狗”的含义不同。第二种称为位置向量的算法使用复杂的数学方程来帮助模型理解句子顺序。Word2Vec 和位置向量算法提供的信息打包在一起,就是所谓的文本嵌入,或者以机器可以读取的方式表示您的原始短语。
3.2 编码器级别的多头自我注意
接下来,编码器接收文本嵌入并将其转换为新向量,添加信息以帮助模型识别短语中单词之间的关系。例如,在短语“在公园玩耍的儿童”中,编码器将为“儿童”、“玩耍”和“公园”分配最大的权重。我们称这个过程为自我注意,因为它决定了模型应该最关注哪些词。
为了计算自我注意,编码器为每个单词创建三个向量——查询向量、键向量和值向量。向量是通过将短语与三个矩阵相乘来创建的。这是一个复杂的算法,但要理解的重要部分是短语中的每个单词都会乘以短语中的每个其他单词,并且计算长短语的注意力可能需要大量时间。
为了更好地理解单词之间的关系,自我注意层可以同时运行多个头部。这个过程称为多头注意力,它允许模型同时关注短语的不同部分,例如当存在短期和长期依赖关系时。例如,在短语“动物因为太累而没有过马路”中,多头注意力告诉模型“动物”和“它”指的是同一个想法。
- 阅读本文,深入了解自我注意和多头注意力算法
- 阅读“注意力是你所需要的一切”,这篇论文最初介绍了多头注意力

计算注意力所需的时间随着您添加到序列中的每个新数据点而二次增加。
3.3 解码器级别的多头自注意力
解码器的工作方式与编码器相同,只是它使用不同的数据集进行了训练。例如,在香草变压器中,如果编码器在英语数据上进行了训练,解码器在法语数据上进行了训练,则解码器将运行相同的多头自注意力算法,将原始短语翻译成法语。
四、对时序使用转换器
为什么此转换器体系结构不适用于时序?时间序列在某些方面类似于一种语言,但它与传统语言不同。在语言中,您可以使用截然不同的单词或句子顺序来表达相同的想法。一旦基于语言的转换器(如vanilla)在语言上进行了训练,它就可以理解单词之间的关系,因此当您在两个不同的输入中表示一个想法时,转换器仍然会得出大致相同的含义。然而,时间序列需要严格的序列——数据点的顺序更重要。这给使用转换器进行时间序列带来了挑战。
让我们看看我们目前如何解决这个问题,以及为什么这些模型不足。
4.1 当前的方法
自回归积分移动平均线 (ARIMA) 模型适用于某些时间序列,但需要深入了解相关趋势、季节性变化和残值——即便如此,它也仅适用于线性依赖关系。在许多具有多变量问题的时间序列中,依赖关系之间的关系不是线性的,ARIMA 将不起作用。
还有几种使用神经网络的方法。
- 前馈神经网络 (FNN) 模型使用序列中的任何前六个数据点来预测接下来的六个数据点。尽管 FNN 支持非线性依赖关系,但它们需要您手动制作一个专注于非常具体的问题或数据子集的模型,这使得该模型对于大型数据集的构造过于耗时。
- 在递归神经网络 (RNN) 模型中,您可以向模型提供与时间序列相关的一小部分数据点,RNN 中的单元格将记住哪些数据点很重要以及它们的权重是多少。但是,当您处理具有长期依赖关系的数据集时,权重变得不那么相关,并且模型的准确性会随着时间的推移而降低。
- 长短期记忆(LSTM)模型类似于RNN,不同之处在于每个细胞都有一个记忆,允许您在长序列期间更频繁地更新权重。这使得 LSTM 成为某些用例的良好解决方案。
- Seq2seq 是提高 LSTM 性能的一种方法。您可以将数据馈送到编码器中,而不是直接馈送网络,编码器会生成输入的特征,这些特征被馈送到解码器中。
4.2 变压器如何改进时间序列?
使用变压器支持的多头注意力可以帮助改进时间序列模型处理长期依赖关系的方式,比当前方法更具优势。为了让您了解转换器在长依赖项方面的工作情况,请考虑 ChatGPT 可以在基于语言的模型中生成的长而详细的响应。将多头注意力应用于时间序列可以产生类似的好处,允许一个头专注于长期依赖关系,而另一个头专注于短期依赖关系。我们相信,变压器可以使时间序列模型预测多达1个数据点,如果不是更多的话。
4.3 二次复杂性问题
变压器计算多头自我注意力的方式对于时间序列来说是有问题的。由于序列中的数据点必须乘以序列中的所有其他数据点,因此添加到输入中的每个数据点都会成倍增加计算注意力所需的时间。这称为二次复杂度,它在处理长序列时会产生计算瓶颈。
计算注意力所需的时间随着您添加到序列中的每个新数据点而二次增加。
五、改进时间序列的转换器模型
今年年初发布的一项调查确定了在将变压器应用于时间序列之前需要解决的两个基本网络修改:
- 位置编码:我们如何表示输入数据
- 注意力模块:降低时间复杂度的方法
下一节将介绍高级要点,但您可以阅读调查以获取有关修改及其结果的更多详细信息。
5.1 网络修改No1:位置编码
2019 年,我们尝试在原版变压器中应用 Word2Vec 编码过程,但该模型无法充分利用时间序列的重要特征。香草转换器擅长辨别单词之间的关系,但不擅长遵循数据序列中的严格顺序。。
2021 年,我们创建了可学习的文本嵌入,使我们能够在输入中包含额外的位置编码信息。与普通变压器中的固定编码相比,可学习的位置编码使变压器更加灵活,更好地利用顺序排序信息。这有助于转换器了解有关时间序列的更重要上下文,例如季节性信息。
5.2 网络修改No2:注意力模块
为了降低注意力层的二次复杂度,新的转换器引入了概率稀疏注意力的概念。通过使注意力层仅使用最重要的数据点而不是所有数据点来计算权重和概率,ProbSparse 有助于大大减少计算注意力所需的时间。

Informer* 等新模型中使用的 ProbS稀疏注意力通过仅基于序列中最重要的数据点计算概率来减少时间。
六、对新变压器进行测试
虽然许多新的转换器,如LogTrans*,Pyraformer*和FEDformer*都包含了这些网络修改,但在这里我们专注于Informer和Spacetimeformer*,因为它们是开源的。 GitHub* 存储库提供参考文档和示例,以便根据数据轻松微调模型,而无需了解注意力层的每个细节。
让我们看看Informer和Spacetimeformer 如何利用这些网络修改,看看它们会产生什么样的结果。
6.1 告密者架构
通过告密者转换器,您可以向他们提供有关季节性、每月或节假日趋势的重要信息,以帮助模型了解数据在一年中行为方式的细微差异。例如,您的数据集在夏季的行为可能与在冬季的行为不同。通过位置编码,您可以告诉模型在一年中的不同时间使用不同的权重,从而更好地控制输入的质量。
通过结合ProbSparse注意力模型和位置编码,Informer提供了优于LSTM等传统变压器的性能优势。当预测未来的 24 个数据点时,Informer 产生的均方误差 (MSE) 为 0.577,略好于 LSTM 的 MSE 0.650。当预测 720 个数据点时,性能差异越来越大,Informer 的 MSE 为 1.215,而 LSTM 为 1.960。我们可以在这里得出结论,Informer在长序列中提供了稍微好一点的结果,但LSTM在某些短期用例中仍可能产生良好的结果。
- 访问告密者 GitHub 存储库以查看更多结果

Informer产生的结果比LSTM模型略好,特别是对于长数据系列。
七、时空建筑
Spacetimeformer 提出了一种表示输入的新方法。像Informer这样的时间注意力模型在单个输入令牌中表示每个时间步长的多个变量的值,这没有考虑特征之间的空间关系。图形注意力模型允许您手动表示特征之间的关系,但依赖于无法随时间变化的硬编码图形。时空前者结合了时间和空间注意力方法,创建一个输入令牌来表示给定时间单个要素的值。这有助于模型更多地了解空间、时间和价值信息之间的关系。

时空形成者使用并行的空间和时间特征计算权重,由右下角的蓝线表示。
与Informer一样,Spacetimeformer 提供的结果比LSTM略好。在预测未来40小时时,Spacetimeformer的MSE为12.49,略好于LSTM的MSE为14.29。虽然对于更长的序列,这个裕度会扩大,但对于每个用例,Spacetimeformer 还没有提供明显优于 LSTM 的结果。
- 访问时空前 GitHub 存储库
- 了解有关时空模型如何工作的更多信息

与Informer类似,Spacetimeformer 产生的结果比 LSTM 略好,特别是对于更长的时间序列。
八、用例:微服务架构上的延迟
让我们将时间序列模型应用于在线精品店。该商店有 11 个微服务,包括允许用户添加和删除项目的购物车服务和允许用户搜索单个产品的目录服务。

将 Informer 时间序列预测应用于具有 11 个微服务的在线精品店。
为了演示对最终用户的影响,我们将预测用户必须等待每个微服务处理请求的时间。基于每个服务的先前 360 个数据点的模型,我们对未来运行了 36 个数据点的简短预测,对未来运行了 120 个数据点的长期预测。
在预测接下来的36个数据点时,Informer产生的MSE为0.6,略好于LSTM。但是,告密者需要更多时间来处理。长模型的结果也是如此:Informer的预测更准确,但需要更长的处理时间。

Informer在短数据系列和长数据系列中都产生了更好的结果,但处理时间略多。
九、参与并开始测试
时序的复杂性各不相同,因此测试模型以找到最适合您的用例非常重要。虽然LSTM等传统模型是某些短期时间序列的有力选择,但Informer和Spacetimeformer可以为长期序列提供更准确的预测。随着我们继续对注意力层和输入数据的表示方式进行优化,我们预计性能会有所提高。此外,作为开源框架,Informer和Spacetimeformer 使安装模型并开始用您的数据进行测试变得更加容易。
请为 GitHub 存储库做出贡献,以帮助推进这些项目。我们还提供深度学习工具和框架库,以充分利用我们的开源模型。
- 转到告密者 GitHub 存储库
- 访问时空前 GitHub 存储库
- 查看时序 GitHub 存储库,了解时序和序列的最新深度学习
有关英特尔的更多开源内容,请查看 open.intel
相关文章:

如何将转换器应用于时序模型
一、说明 在机器学习的广阔环境中,变压器作为建筑奇迹屹立不倒,以其复杂的设计和捕获复杂关系的能力重塑了我们处理和理解大量数据的方式。 自 2017 年创建第一台变压器以来,变压器类型呈爆炸式增长,包括强大的生成 AI 模型&#…...
数据结构:队列
文章目录 队列一,概述二,添加数据三,删除数据 队列 一,概述 队列是一种特殊的数据结构,它遵循先进先出(FIFO)的原则。在队列中,元素被添加到末尾,并从头部移除。队列只…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于AUTOSAR架构的AT控制系统研究与实现
目录 前言 国内外研究现状 国外研究现状 国内研究现状 2 AUTOSAR规范及开发流程...

计网第五章(运输层)(四)(TCP的流量控制)
一、基本概念 流量控制就是指让发送方的发送速率不要太快,使得接收方来得及接收。可以使用滑动窗口机制在TCP连接上实现对发送方的流量控制。 注意:之前在讨论可靠传输时,讨论过选择重传协议和回退N帧协议都是基于滑动窗口的机制上进行实现…...
【华为OD机试python】查找众数及中位数【2023 B卷|100分】
【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 众数是指一组数据中出现次数最多的那个数,众数可以是多个。 中位数是指把一组数据从小到大排序后,如果这组数据的总数是奇数, 那最中间的那个数就是中位数; 如果这组数据总数是偶数,那…...

阿里云无影云电脑详细介绍:价格、使用和功能优势说明
什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、…...

【实践篇】MySQL执行计划详解
文章目录 本文知识大纲速览1. 前言2. 基本介绍1. 什么是执行计划2. 如何查看执行计划3. 执行计划的组成部分 3. 执行计划的关键元素1. id2. select_type3. table:4. type:5. possible_keys:6. key:7. key_len8. ref:9. rows:10. Extra 4. 底层原理5. 执行计划示例解读本文知识图…...

二维凸包(Graham) 模板 + 详解
(闲话) 上了大学后没怎么搞oi,从土木跑路到通信了(提桶开润大成功!),但是一年上两年的课(补的),保研也寄掉了( 说起来自从博客被大学同学发现并…...

ElasticSearch(ES)简单介绍
ES简介 Elasticsearch(通常简称为ES)是一个开源的分布式搜索和分析引擎,旨在处理各种类型的数据,包括结构化、半结构化和非结构化数据。它最初是为全文搜索而设计的,但随着时间的推移,它已经演变成一个功能…...

OpenCV(三十五):凸包检测
1.凸包检测介绍 凸包检测是计算凸包的一种技术,凸包就是:给定二维平面上的点集,将最外层的点连接起来构成的凸边形,它是包含点集中所有的点。 2.凸包检测函数convexHull() void cv::convexHull ( InputArray points, OutputArra…...

PS 透视裁剪工具
上文 PS 裁剪工具及工具栏配置讲解 我们讲完了裁剪工具 然后 我们继续来研究 透视裁剪工具 切换到 透视裁剪工具 后 我们先点击左上方的清除 先不要这些多的配置 然后 我们可以先用鼠标在图像上 画出一个局域 然后 我们去拖他四个角中的其中一个 就能拖出一些不同的形状 然…...
每日一个C库函数-#1-memset()
每日一个C库函数-#1-memset() 来源 C 标准库 - <string.h> 声明 void *memset(void *str, int c, size_t n);str:要填充的内存块;c:要被设置的值(以何值填充)。该值以 int 形式传递,填充内存块时…...

GraphQL基础知识与Spring for GraphQL使用教程
文章目录 1、数据类型1.1、标量类型1.2. 高级数据类型 基本操作2、Spring for GraphQL实例2.1、项目目录2.2、数据库表2.3、GraphQL的schema.graphql2.4、Java代码 3、运行效果3.1、添加用户3.2、添加日志3.3、查询所有日志3.4、查询指定用户日志3.5、数据订阅 4、总结 GraphQL…...

【SA8295P 源码分析】97 - QNX AIS Camera 框架介绍 及 Camera 工作流程分析
【SA8295P 源码分析】97 - QNX AIS Camera 框架介绍 及 Camera 工作流程分析 一、QNX AIS Server 框架分析二、QNX Hypervisor / Android GVM 方案介绍三、Camera APP 调用流程分析四、QCarCam 状态转换过程介绍五、Camera 加串-解串 硬件链路分析六、摄像头初始化检测过程介绍…...

威胁的数量、复杂程度和扩散程度不断上升
Integrity360 宣布了针对所面临的网络安全威胁、数量以及事件响应挑战的独立研究结果。 数据盗窃、网络钓鱼、勒索软件和 APT 是最令人担忧的问题 这项调查于 2023 年 8 月 9 日至 14 日期间对 205 名 IT 安全决策者进行了调查,强调了他们的主要网络安全威胁和担忧…...

NSSCTF web 刷题记录2
文章目录 前言题目[广东强网杯 2021 团队组]love_Pokemon[NCTF 2018]Easy_Audit[安洵杯 2019]easy_web[NCTF 2018]全球最大交友网站prize_p2[羊城杯 2020]easyser[FBCTF 2019]rceservice方法一方法二 前言 今天是2023年9月13号,刷题记录2正式开始。时间来到九月十七…...

Linux驱动之INPUT子系统框架
目录 一、input 子系统简介 二、input 驱动编写流程 1、注册 input_dev 2、上报输入事件 三、input_event 结构体 按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设…...

Long类型雪花算法ID返回前端后三位精度缺失问题解决
目录 一、问题描述二、问题复现1.Maven依赖2.application.yml 配置3.DemoController.java4.snowflakePage.html 页面5.DemoControllerAdvice.java 监听6.问题复现 三、原因分析四、问题解决方案一方案二 一、问题描述 Java 后端使用雪花算法生成 Long 类型的主键 ID࿰…...

6.8-SpringIoC之循环依赖底层源码解析
解决靠,三级缓存 创建Map,存不完整的Bean 存在问题:属性存在但没有值...

Springboot 实践(18)Nacos配置中心参数自动刷新测试
前文讲解了Nacos 2.2.3配置中心的服务端的下载安装,和springboot整合nacos的客户端。Springboot整合nacos关键在于使用的jar版本要匹配,文中使用版本如下: ☆ springboot版本: 2.1.5.RELEASE ☆ spring cloud版本 Greenwich.RELEASE ☆ sp…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...