今天给大家介绍一篇CIKM 2024中的时间序列预测工作,这篇文章针对高维多变量时序预测问题,提出了一种基于Transformer的建模方法。
论文标题:Scalable Transformer for High Dimensional Multivariate Time Series Forecasting
下载地址:https://arxiv.org/pdf/2408.04245v1
1
背景
现在的时间序列预测主要研究点都是如何扩长能够建模的历史长度和未来长度,也就是时间维度上的扩展。比较少的工作研究如何建模变量维度上的扩展。
在多变量时间序列建模中,现在的方法主要集中在channel-independ和channel-depend两种方式上。后者虽然能考虑到变量间的关系,理论上界更高,但是实际应用中效果往往会比channel-independ方法效果差。特别是当变量维度增大后,这种效果差异更加明显。
例如文中通过实验验证,Crossformer、iTransformer等channel-independ建模方法,相比PatchTST等channel-independ建模方法,在高维多变量时序预测中平均会差19%。
文中在一个数据集上验证了Crossformer、iTransformer等channel-depend建模方法中,选择变量的数量对效果的影响。选择的变量按照和目标序列的相关系数进行排序,先引入相关度最高的,后引入相关度低的。从图中可以看出,当选择50%的最高相关性变量建模时,效果达到最好,说明引入多变量间关系建模确实可以提升效果。但是当进一步引入更多变量时,效果开始下降。
文中认为,下降的原因主要是随着引入变量的相关性变差,引入了更多噪声,反而影响了模型的学习。比如下图中,先引入的相关变量都和目标序列趋势很像,但是后引入的变量和目标变量差异很大。
2
建模方法
针对上述分析,为了适应这种高维多变量建模问题,文中提出了一种稀疏关联矩阵的Transformer建模方法。核心是筛选出相关性比较高的变量作为目标变量的辅助序列,再基于Transformer构建时间-空间的二维attention,实现最大化相关序列有效信息的引入。
整体的建模方法如图所示。对于每个序列,根据皮尔逊相关系数,选择和其最相关的topK的其他序列,这些序列作为辅助序列,和目标序列一起输入到后续的模型中。
这种引入外部序列的方法,会导致一个batch内的样本数量大增。为了减轻内存和计算压力,文中采用了一种ReIndex方法重新组织数据。原本的建模方法每个batch数据的组织方法如下图灰色部分所示,随机采样多组target-辅助序列组合输入模型。ReIndex的引入如右图灰色所示,相当于每次只训练一个target序列,然后将其辅助序列的不同子序列训练采样多组。通过这种方式,省去了对多个target序列的采样,大大降低的计算和内存开销。
在具体的模型结构上,文中采用了一种2维Transformer。对于目标序列和辅助序列,都分成多个patch。对于每个patch,加上其对应的时间位置编码,以及其对应的channel位置编码。相比于Crossformer在时间和变量两个维度进行两阶段的attention,本文直接将所有时间、变量维度的patch放到一起进行attention,实现任意时刻、任意变量之间的attention计算。
3
实验效果
文中在高维数据集中验证了效果,相比之前的channel-depend和channel-independ方法都取得了显著的效果提升。
下图展示了引入最相关topK、最不相关topK作为辅助序列的效果以及不引入辅助序列的效果对比,可以看到,只有当引入最相关topK个序列时,效果才是最优的,表明辅助序列和目标序列的相关性,确实是channel-depend建模的关键。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。