iTransformer

iTransformer

先进的时间序列预测模型,打造SOTA性能

iTransformer是一种基于注意力机制的时间序列预测模型,由清华大学和蚂蚁集团研究人员开发。该模型采用倒置Transformer结构,支持多变量和多步长预测。iTransformer引入了可逆实例归一化等技术,旨在提高预测准确性和处理长序列数据的能力。这个开源项目为时间序列分析提供了新的研究方向。项目提供Python实现,支持使用PyTorch框架。用户可通过pip安装并轻松集成到现有的时间序列分析工作流程中。该项目还包括实验性功能,如二维注意力和傅里叶变换增强版本,为研究人员提供了探索和改进的空间。

iTransformer时间序列预测注意力网络深度学习人工智能Github开源项目

<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/cfcdb613-a4ae-4faf-8753-2184e08591b2.png" width="400px"></img>

iTransformer

实现<a href="https://arxiv.org/abs/2310.06625">iTransformer</a> - 来自清华/蚂蚁集团的使用注意力网络的最先进时间序列预测

现在只剩下表格数据(xgboost仍是冠军)了,然后就可以真正宣称"注意力是你所需要的全部"

在苹果公司让作者更改名称之前。

官方实现已在<a href="https://github.com/thuml/iTransformer">这里</a>发布!

致谢

  • 感谢<a href="https://stability.ai/">StabilityAI</a><a href="https://huggingface.co/">🤗 Huggingface</a>的慷慨赞助,以及我的其他赞助商,让我能够独立地开源当前的人工智能技术。

  • 感谢<a href="https://github.com/gdevos010">Greg DeVos</a>分享他在iTransformer上运行的<a href="https://github.com/lucidrains/iTransformer/issues/20">实验</a>以及一些即兴变体

安装

$ pip install iTransformer

使用方法

import torch from iTransformer import iTransformer # 使用太阳能设置 model = iTransformer( num_variates = 137, lookback_len = 96, # 或论文中的回溯长度 dim = 256, # 模型维度 depth = 6, # 深度 heads = 8, # 注意力头 dim_head = 64, # 头部维度 pred_length = (12, 24, 36, 48), # 可以是一个预测,或多个 num_tokens_per_variate = 1, # 实验性设置,将每个变量映射到多个token。这个想法是网络可以学会将时间划分为更精细的时间token,以便对时间进行更精细的注意力。多亏了快速注意力,你应该能够很好地适应长序列长度 use_reversible_instance_norm = True # 使用可逆实例归一化,在这里提出 https://openreview.net/forum?id=cGDAkQo1C0p 。考虑到iTransformer内部的层归一化(以及在第一个层归一化之前的第一层上注意力可能学到的任何其他东西),这可能是多余的。如果我有时间,我会收集所有变量的统计数据,投影它们,并进一步调节transformer。这样更有意义 ) time_series = torch.randn(2, 96, 137) # (批次, 回溯长度, 变量) preds = model(time_series) # preds -> Dict[int, Tensor[batch, pred_length, variate]] # -> (12: (2, 12, 137), 24: (2, 24, 137), 36: (2, 36, 137), 48: (2, 48, 137))

对于一个即兴版本,可以对时间token进行精细的注意力(以及原始的每个变量token),只需导入iTransformer2D并设置额外的num_time_tokens

更新:它成功了!感谢<a href="https://github.com/gdevos010">Greg DeVos</a><a href="https://github.com/lucidrains/iTransformer/issues/6#issuecomment-1794989685">这里</a>运行实验!

更新2:收到了一封邮件。是的,如果这个架构适合你的问题,你可以自由地写一篇关于它的论文。我对此没有任何利害关系

import torch from iTransformer import iTransformer2D # 使用太阳能设置 model = iTransformer2D( num_variates = 137, num_time_tokens = 16, # 时间token的数量(补丁大小将是(回溯长度 // num_time_tokens)) lookback_len = 96, # 论文中的回溯长度 dim = 256, # 模型维度 depth = 6, # 深度 heads = 8, # 注意力头 dim_head = 64, # 头部维度 pred_length = (12, 24, 36, 48), # 可以是一个预测,或多个 use_reversible_instance_norm = True # 使用可逆实例归一化 ) time_series = torch.randn(2, 96, 137) # (批次, 回溯长度, 变量) preds = model(time_series) # preds -> Dict[int, Tensor[batch, pred_length, variate]] # -> (12: (2, 12, 137), 24: (2, 24, 137), 36: (2, 36, 137), 48: (2, 48, 137))

实验性

带有傅里叶token的iTransformer

一个iTransformer,但也带有傅里叶token(时间序列的FFT被投影到它们自己的token中,并与变量token一起被关注,最后被拼接出来)

import torch from iTransformer import iTransformerFFT # 使用太阳能设置 model = iTransformerFFT( num_variates = 137, lookback_len = 96, # 或论文中的回溯长度 dim = 256, # 模型维度 depth = 6, # 深度 heads = 8, # 注意力头 dim_head = 64, # 头部维度 pred_length = (12, 24, 36, 48), # 可以是一个预测,或多个 num_tokens_per_variate = 1, # 实验性设置,将每个变量映射到多个token。这个想法是网络可以学会将时间划分为更精细的时间token,以便对时间进行更精细的注意力。多亏了快速注意力,你应该能够很好地适应长序列长度 use_reversible_instance_norm = True # 使用可逆实例归一化,在这里提出 https://openreview.net/forum?id=cGDAkQo1C0p 。考虑到iTransformer内部的层归一化(以及在第一个层归一化之前的第一层上注意力可能学到的任何其他东西),这可能是多余的。如果我有时间,我会收集所有变量的统计数据,投影它们,并进一步调节transformer。这样更有意义 ) time_series = torch.randn(2, 96, 137) # (批次, 回溯长度, 变量) preds = model(time_series) # preds -> Dict[int, Tensor[batch, pred_length, variate]] # -> (12: (2, 12, 137), 24: (2, 24, 137), 36: (2, 36, 137), 48: (2, 48, 137))

待办事项

  • 用最新发现加强transformer
  • 在变量和时间上即兴创作2D版本
  • 即兴创作包含fft token的版本
  • 即兴创作使用基于所有变量统计数据的自适应归一化的变体

引用

@misc{liu2023itransformer, title = {iTransformer: Inverted Transformers Are Effective for Time Series Forecasting}, author = {Yong Liu and Tengge Hu and Haoran Zhang and Haixu Wu and Shiyu Wang and Lintao Ma and Mingsheng Long}, year = {2023}, eprint = {2310.06625}, archivePrefix = {arXiv}, primaryClass = {cs.LG} }
@misc{shazeer2020glu, 标题 = {GLU变体改进Transformer}, 作者 = {Noam Shazeer}, 年份 = {2020}, 网址 = {https://arxiv.org/abs/2002.05202} }
@misc{burtsev2020memory, 标题 = {记忆Transformer}, 作者 = {Mikhail S. Burtsev 和 Grigory V. Sapunov}, 年份 = {2020}, 预印本 = {2006.11527}, 预印本库 = {arXiv}, 主要类别 = {cs.CL} }
@inproceedings{Darcet2023VisionTN, 标题 = {视觉Transformer需要寄存器}, 作者 = {Timoth'ee Darcet 和 Maxime Oquab 和 Julien Mairal 和 Piotr Bojanowski}, 年份 = {2023}, 网址 = {https://api.semanticscholar.org/CorpusID:263134283} }
@inproceedings{dao2022flashattention, 标题 = {Flash{A}ttention:具有{IO}感知的快速高效精确注意力机制}, 作者 = {Dao, Tri 和 Fu, Daniel Y. 和 Ermon, Stefano 和 Rudra, Atri 和 R{\'e}, Christopher}, 会议名称 = {神经信息处理系统进展}, 年份 = {2022} }
@Article{AlphaFold2021, 作者 = {Jumper, John 和 Evans, Richard 和 Pritzel, Alexander 和 Green, Tim 和 Figurnov, Michael 和 Ronneberger, Olaf 和 Tunyasuvunakool, Kathryn 和 Bates, Russ 和 {\v{Z}}{\'\i}dek, Augustin 和 Potapenko, Anna 和 Bridgland, Alex 和 Meyer, Clemens 和 Kohl, Simon A A 和 Ballard, Andrew J 和 Cowie, Andrew 和 Romera-Paredes, Bernardino 和 Nikolov, Stanislav 和 Jain, Rishub 和 Adler, Jonas 和 Back, Trevor 和 Petersen, Stig 和 Reiman, David 和 Clancy, Ellen 和 Zielinski, Michal 和 Steinegger, Martin 和 Pacholska, Michalina 和 Berghammer, Tamas 和 Bodenstein, Sebastian 和 Silver, David 和 Vinyals, Oriol 和 Senior, Andrew W 和 Kavukcuoglu, Koray 和 Kohli, Pushmeet 和 Hassabis, Demis}, 期刊 = {Nature}, 标题 = {高度精确的蛋白质结构预测{AlphaFold}}, 年份 = {2021}, doi = {10.1038/s41586-021-03819-2}, 注释 = {(加速文章预览)}, }
@inproceedings{kim2022reversible, 标题 = {可逆实例归一化:用于应对分布偏移的准确时间序列预测}, 作者 = {Taesung Kim 和 Jinhee Kim 和 Yunwon Tae 和 Cheonbok Park 和 Jang-Ho Choi 和 Jaegul Choo}, 会议名称 = {国际学习表示会议}, 年份 = {2022}, 网址 = {https://openreview.net/forum?id=cGDAkQo1C0p} }
@inproceedings{Katsch2023GateLoopFD, 标题 = {GateLoop:用于序列建模的完全数据控制线性递归}, 作者 = {Tobias Katsch}, 年份 = {2023}, 网址 = {https://api.semanticscholar.org/CorpusID:265018962} }

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多