论文笔记:A Time Series is Worth 64 Words: Long-term Forecasting with Transformers

news2024/9/22 5:34:48

ICLR 2023

比较简单,就不分intro、model这些了

1 核心思想1:patching

  • 给定每个时间段的长度、划分的stride,将时间序列分成若干个时间段
    • 时间段之间可以有重叠,也可以没有
    • 每一个时间段视为一个token

1.1 使用patching的好处

  • 降低复杂度
    • Attention 的复杂度是和 token 数量成二次方关系。
    • 如果每一个 patch 代表一个 token,而不是每一个时间点代表一个 token,这显然降低了 token 的数量
  • 保持时间序列的局部性
    • 时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理
  • 方便之后的自监督表示学习
    • 即 Mask 随机 patch 后重建
  • 减少预测头的参数量
    • L是输入序列长度,M 是序列个数, T是预测序列长度,D是维度,N是patch数量
    • 论文中的说法是,不分patch的话,Linear Head的大小是LD×MT
      • 这里我觉得有点问题,不分patch的话,输入M*L,经过position embedding+project之后是M*LD,经过Transformer Encoder之后是M*LD,输出是M*T,那么Linear Head的大小应该是LD × T
    • 分patch的话LinearHead的大小是ND × T
      • 但不管我理解的对于否,分patch的话Linear Head的大小肯定是小

2 核心思想2:channel-independence

 

  • 很多基于Transformer的模型采用了 channel-mixing 的方式
    • 指的是,对于多元时间序列,直接将时间序列的所有维度形成的向量投影到嵌入空间以混合多个通道的信息。
  • Channel-independence 意味着每个输入 token 只包含来自单个通道的信息。
    • 这篇采用了的是Channel-independence 
      • 将多元时间序列(维度为 M)中每一维单独进行处理
        • 即将每一维分别输入到 Transformer Backbone 中
      • 将所得预测结果再沿维度方向拼接起来。
      • 这相当于将不同维度视为独立的,但 embedding 和 Transformer 的权重在各个维度是共享的。

3 自监督表示学习

  • 论文说明了分 patch 对 mask 重建来进行自监督学习的好处:mask 一个时间点的话,直接根据相邻点插值就可以重建,这就完全没必要学习了,而 mask 一个 patch 来重建的话则更有意义更有难度。

 4 实验

 

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

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

相关文章

Java常见启动命令 -jar、-server、-cp比较

文章目录Java程序常见启动方式java -jarjava -server与-client参数java -cpJava程序常见启动方式 当前java程序启动主要以 -jar、-server、-cp等几个命令启动 jar 程序,其中我们最常用的java -jar启动方式,通常我们需要将当前工程所依赖的所有包编译到一…

全网资料最全Java数据结构与算法(1)

一、数据结构和算法概述 1.1什么是数据结构? 官方解释: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。 大白话: 数据结构就是把数据元素按照一定的关系组织起来的集合&a…

leecode-C语言实现-28. 找出字符串中第一个匹配项的下标

一、题目给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。示例 1:输入:haystack …

flutter 微信聊天输入框

高仿微信聊天输入框,效果图如下(目前都是静态展示,服务还没开始开发): 大家如果观察仔细的话 应该会发现,他输入框下面的高度 刚好就是 软键盘的高度;所以在这里就需要监听软键盘的高度。还要配…

zigbee与WIFI同频干扰问题

zigbee与WIFI同频干扰 为了降低Wifi信道与Zigbee信道的同频干扰问题,Zigbee联盟在《Zigbee Home Automation Public Application Profile》中推荐使用11,14,15,19,20,24,25这七个信道。 为什么呢,我们看一下Wifi和Zigbee的信道分布。 WiFi带宽对干扰的…

社交媒体营销的5个好处

有些人认为,社交媒体营销不能直接与销售挂钩。这就是为什么在制定营销策略时,社交媒体营销会被部分人忽视的原因。然而,与其他广告渠道不同,社交媒体是双向渠道。忽视社交媒体营销将影响与客户的关系。最重要的是,它将…

兔c同学:python 如何写入文件(python 的文件和异常)

文章目录1. 写入文件1.1 写入空文件1.2 open() 函数 和 write() 函数说明open() 函数的参数说明write() 函数1.3 附加到文件1. 写入文件 保存数据的最简单方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含输出的终端窗口,这些输出也依然存在…

五年携手共话,FISCO BCOS为数实相生注入新动能

2月24日,作为深圳国际金融科技节系列活动之一,由深圳市地方金融监督管理局指导,微众银行、金链盟主办的“2022产业区块链年度峰会暨FISCO BCOS五周年生态大会”(下称“大会”)在深圳顺利召开。本次大会以“数实相生&am…

驱动程序开发:Buildroot根文件系统构建并加载驱动文件xxx.ko测试

目录一、buildroot根文件系统简介二、buildroot下载三、buildroot构建根文件系统1、配置 buildroot①配置 Target options②配置 Toolchain③配置 System configuration④配置 Filesystem images⑤禁止编译 Linux 内核和 uboot2、 buildroot 下的 busybox 配置①修改 Makefile&…

hive支持的数据类型

目录 一、hive数据类型 1.基础型 2.复杂型 二、类型转换 1.隐式转换 2.显示转换 一、hive数据类型 1.基础型 数据类型长度大小示例TINYINT1字节有符号整数,范围:-128~12710YSMALLINT2字节有符号整数,范围:-32768~3276710SI…

【解锁技能】学会Python条件语句的终极指南!

文章目录前言一. python条件语句的介绍1.1 什么是条件语句1.2 条件语句的语法1.3 关于内置函数bool()二. 分支语句之单分支三. 多分支语句3.1 二分支语句3.2 多分支语句3.3 嵌套循环总结前言 🏠个人主页:欢迎访问 沐风晓月的博客 🧑个人简介&…

Softing OPC Tunnel——绕过DCOM配置实现OPC Classic广域网通信

一 摘要 Softing OPC Tunnel是dataFEED OPC Suite的一个组件,可避免跨设备OPC Classic通信中出现的DCOM配置问题,同时可保证跨网络数据交换的高性能和可靠性。OPC Tunnel内部集成的存储转发功能,可在连接中断时缓存数据,并在重新…

html的常见标签使用

目录 1.vscode基础操作 2.html基础 语法 3.HTML文件的基本结构标签 4.注释标签 5.标题标签 6.段落标签:p 7.格式化标签 8.图片标签:img 绝对路径 相对路径 网络路径 alt属性 title属性 width/height属性 9.超链接标签:a 10.表格标签 11.列表标签 有序列表 无…

Hbase -- Compact工具梳理

1. 背景 当前,线上HBase集群的自动Major Compact是关闭的,我们选择在凌晨业务空闲的时候进行手动触发Major Compact,Compact工具就是在运维平台上对资源组、RS、表进行Major Compact。目前线上有2种版本的Compact程序:Compact_v1…

html 懒加载图片实现方法

懒加载逻辑 一般如果场景比较大,滚动条很长,图片比较多的情况下,不使用赖加载图片会一下子把资源都加载,导致性能很慢,甚至没有滚动到下面也加载了,很浪费资源现在通过滚动事件来处理图片加载,我们先吧要显…

Vue项目中components组件的使用笔记

目录 前言 一、components和component的区别? 二、components使用的步骤 1.创建组件vue文件 2.引入组件 3.注册组件 4.应用组件 总结 前言 本文章,只是初步了解记录components的使用步骤。 一、components和component的区别? compo…

【Python学习笔记】第二十一节 Python Lambda 函数

Python 提供了非常多的库和内置函数。有不同的方法可以执行相同的任务,而在 Python 中,有个万能之王函数:lambda 函数,它以不同的方式在任何地方使用。一、Lambda 函数简介在 Python 中,函数可以接受一个或多个位置参数…

火爆全网的ChatGPT 和AI 可以为项目经理做什么?

作为一款人工智能聊天机器人,ChatGPT因其逼真和人性化的特性而风靡全球,无疑是当今技术的新流行。人工智能 (AI) 有可能彻底改变许多行业,包括项目管理,及时了解最新技术以及它如何影响你的工作至关重要。于是,我们与C…

C++ string类(二)及深浅拷贝

一、string类方法使用举例1.迭代器迭代器本质:指针(理解)迭代器:正向迭代器: begin() | end() 反向迭代器: rbegin() | rend()2.find使用//找到s中某个字符 void TestString3() {string s("AAADEFNUIE…

分层测试(1)分层测试是什么?【必备】

1. 什么是分层测试? 分层测试是通过对质量问题分类、分层来保证整体系统质量的测试体系。 模块内通过接口测试保证模块质量,多模块之间通过集成测试保证通信路径和模块间交互质量,整体系统通过端到端用例对核心业务场景进行验证&#xff0c…