[AAAI 2023]论文笔记Are Transformers Effective for Time Forecasting? 时间序列模型DLinear / NLinear

论文地址:Are Transformers Effective for Time Series Forecasting?| Proceedings of the AAAI Conference on Artificial Intelligence

代码:https://github.com/cure-lab/LTSF-Linear

        

        主要提出了DLinear、NLinear,都是不太复杂的线性模型,但是效果却能在很多情况下比transformer好很多。

摘要

        Transformers可以说是提取长序列中元素之间语义相关性的最成功的解决方案。然而,在时间序列建模中,我们要提取一组有序连续点中的时间关系。虽然使用位置编码和使用Token在Transformer中嵌入子序列有助于保留一些排序信息,但置换无效的自我注意机制的性质不可避免地会导致时间信息丢失。

        为了验证我们的说法,我们引入了一组令人尴尬的简单单层线性模型,名为LTSF-Linear,用于比较。在九个真实数据集上的实验结果表明,LTSF-Linear在所有情况下都出乎意料地优于现有的基于Transformer的LTSF模型,而且通常有很大的优势。

Introduction

        在过去的几十年里,时间序列预测解决方案经历了从传统统计方法(如ARIMA(Ariyo,Adewumi和Ayo 2014)和机器学习技术(如GBRT(Friedman 2001))到基于深度学习的解决方案(Bai,Kolter和Koltun 2018;Liu等人2022)的发展。

        基于Transformer的时间序列分析解决方案也激增。最著名的模型侧重于探索较少且具有挑战性的长期时间序列预测(LTSF)问题,包括LogTrans(Li等人,2019年)(NeurIPS 2019年)、Informer(Zhou等人,2021年)(AAAI 2021最佳论文)、Autoformer(Xu等人,2021)(NeurIPS 2021年)、Pyraformer(Liu等人,2021a)(ICLR 2022 Oral)、Triformer(Cirstea等人,2022年)(IJCAI 2022年)和最近的FEDformer(Zhou等,2022)(ICML 2022年)。

        Transformers的主要工作动力来自其多头自注意机制,该机制具有提取长序列中元素(例如文本中的单词或图像中的2D补丁)之间语义相关性的显著能力。然而,自注意在某种程度上是排列不变的和“反序的”。虽然使用各种类型的位置编码技术可以保留一些排序信息,但在它们之上应用自注意后,仍然不可避免地会丢失时间信息。对于语义丰富的应用程序(如NLP)来说,这通常不是一个严重的问题,例如,即使我们对句子中的一些单词进行重新排序,句子的语义也会在很大程度上得到保留。然而,在分析时间序列数据时,数值数据本身通常缺乏语义,我们主要感兴趣的是对一组连续点之间的时间变化进行建模。也就是说,秩序本身起着最关键的作用。

        Transformer-based方法往往比较的baseline是自回归的预测方法,这种方法由于误差累积,长期预测能力通常较差。

        不是所有时间序列可以预测,更不用说长期预测,假设长期预测仅适用于那些具有相对清晰趋势和周期性的时间序列。由于线性模型已经可以提取这些信息,我们引入了一组名为LTSF-Linear的简单模型作为比较的新基线。LTSF-Linear使用单层线性模型对历史时间序列进行回归,直接预测未来时间序列。结果表明,LTSF-Linear在所有情况下都优于现有的复杂基于Transformer-based的模型,而且通常有很大的优势(20%~50%)。

        此外,与现有Transformer中的说法相反,它们中的大多数都无法从长序列中提取时间关系,即预测误差不会随着回顾窗口大小的增加而减少(有时甚至增加)。

论文贡献

To the best of our knowledge, this is the first work to challenge the effectiveness of the booming Transformers for the long-term time series forecasting task.

        第一项挑战蓬勃发展的Transformer在长期时间序列预测任务中的有效性的工作

To validate our claims, we introduce a set of embarrassingly simple one-layer linear models, named LTSFLinear, and compare them with existing Transformerbased LTSF solutions on nine benchmarks. LTSF-Linear can be a new baseline for the LTSF problem.

        引入了一组简单得令人尴尬的单层线性模型,名为LTSF-Llinear,并在九个基准测试中将其与现有的基于Transformer的LTSF解决方案进行了比较。LTSF线性可以作为LTSF问题的新baseline。

We conduct comprehensive empirical studies on various aspects of existing Transformer-based solutions, including the capability of modeling long inputs, the sensitivity to time series order, the impact of positional encoding and sub-series embedding, and efficiency comparisons. Our findings would benefit future research in this area.

        我们对现有基于Transformer的解决方案的各个方面进行了全面的实证研究,包括建模长输入的能力、对时间序列顺序的敏感性、位置编码和子序列嵌入的影响以及效率比较。我们的发现将有助于该领域的未来研究。

时序预测问题

        对于含有$C$个变量的时间序列,根据历史数据$\mathcal{X}=\{X_1^t,\ldots,X_C^t\}_{t=1}^L$预测未来数据 $\hat{\mathcal{X} } = \{ \hat{X} _1^t\ldots \hat{X} _C^t\} _{t= L+ 1}^{L+ T}$。 其 中  L 和 T 分 别 为 历 史 时 间 序 列 长 度 和 未 来 时 间 序 列 长 度 。$X_i^t$ 表 示 第 $t$个 时 间 步 第 i 个 变 量 的 值 。

        当T>1 时,可以通过迭代单步预测来获得多步预测,也可以直接优化多步预测目标,前者称为iterated multi-step (IMS) forecasting,后者称为direct multi-step (DMS) forecasting。IMS会受到误差累积的影响。

        当存在高度精确的单步预测器并且T相对较小时,IMS(iterated multi-step)预测是优选的。相比之下,当难以获得无偏的单步预测模型或T较大时,DMS(direct multistep)预测会产生更准确的预测。

Transformer-based 模型

        

时间序列分解

数据预处理:零均值归一化

Autoformer(Xu等人,2021)首先在每个神经块后面应用季节趋势分解,这是时间序列分析中的一种标准方法,可以使原始数据更具可预测性。他们在输入序列上使用移动平均核来提取时间序列的趋势周期分量。原始序列和趋势分量之间的差异被视为季节分量。

在Autoformer的分解方案之上,FEDformer(Zhou等人,2022)进一步提出了混合专家策略,将移动平均核提取的趋势分量与各种核大小混合在一起。

输入嵌入策略

自注意力层无法保留时间序列的位置信息。然而,本地位置信息,即时间序列的排序,很重要。而且,全局时间信息,如分层时间戳(周、月、年)和不可知时间戳(假期和事件),也是有信息量的。

为了增强时间序列输入的时间上下文,基于SOTA Transformer的方法中的一种实用设计是在输入序列中注入几个嵌入,如固定位置编码通道投影嵌入和可学习的时间嵌入。此外,引入了具有时间卷积层(Li等人,2019)或可学习时间戳(Xu等人,2021)的时间嵌入。

自注意力策略

最近的工作提出了两种提高效率的策略。

一方面,LogTrans和Pyraformer在自注意方案中明确引入了稀疏偏差。具体来说,LogTrans使用Logsparse掩码将计算复杂度降低到O(LlogL),而Pyraformer采用金字塔注意力,以O(L)的时间和内存复杂度捕获分层多尺度时间依赖关系。

另一方面,Informer和FEDformer利用自注意矩阵中的低秩特性。Informer提出了ProbSparse自注意机制和自注意提取操作,将复杂度降低到O(LlogL),FEDformer设计了一个傅里叶增强块和一个随机选择的小波增强块,以获得O(L)复杂度

最后,Autoformer设计了一个系列自相关机制来取代原有的自注意力层

解码器Decoder

vanilla Transformer解码器以自回归方式输出序列,导致推理速度慢和误差累积效应,特别是对于长期预测。Informer为DMS预测设计了一个生成式解码器。其他Transformer变体采用类似的DMS策略。例如,Pyraformer使用连接时空轴的全连接层作为解码器。Autoformer从趋势周期分量和季节分量的堆叠自相关机制中总结出两个精细的分解特征,以获得最终的预测。FEDformer还使用具有所提出的频率注意块的分解方案来解码最终结果。

Transformer模型的前提是成对元素之间的语义相关性,而自注意机制本身是置换不变的,其建模时间关系的能力在很大程度上取决于与输入标记相关的位置编码。考虑到时间序列中的原始数值数据(例如股票价格或电力价值),它们之间几乎没有任何逐点的语义相关性

在时间序列建模中,我们主要关注一组连续点之间的时间关系,这些元素的顺序而不是成对关系起着最关键的作用。

虽然采用位置编码和使用Token嵌入子序列有助于保留一些排序信息,但置换不变自注意机制的性质不可避免地导致时间信息丢失

LSTF-Linear

        基础的线性模型,LTSF-Linear的基本公式通过加权求和运算直接回归历史时间序列以进行未来预测,LTSF-Linear在不同变量之间共享权重,并且不模拟任何空间相关性。

        LTSF-Linear是一组线性模型。Vanilla Linear是一个单层线性模型。为了处理不同领域(如金融、交通和能源领域)的时间序列,我们进一步引入了两种具有两种预处理方法的变体,分别命名为DLlinear和NLlinear。

DLinear

具体来说,DLlinear是Autoformer和FEDformer中使用的分解方案与线性层的组合。它首先通过移动平均核和残差(季节性)分量将原始数据输入分解为趋势分量。然后,将两个单层线性层应用于每个组件,并将这两个特征相加以获得最终预测。DLlinear在数据中存在明显趋势时提高了vanilla linear的性能。

NLinear

为了在数据集中存在分布偏移时提高LTSF-Linear的性能,NLlinear首先将输入减去序列的最后一个值。然后,输入通过一个线性层,在做出最终预测之前,将减去的部分加回去。NLinear中的减法和加法是输入序列的简单归一化。

实验

咕咕咕……后面再补

反正当时算是sota了

# 有空再更新(

参考资料

长时间预测模型DLinear、NLinear模型(论文解读)-CSDN博客

https://zhuanlan.zhihu.com/p/544622984

https://zhuanlan.zhihu.com/p/569194246

<think>好的,用户想了解DLinear模型的相关信息,特别是模型介绍和使用方法。首先,我需要确认DLinear的基本背景。根据引用[2]中的内容,DLinear是一个时间序列预测模型,原文作者声称其效果可能超越了一些复杂的Transformer模型,比如Informer和Autoformer。这说明DLinear可能具有结构简单但性能优越的特点。 接下来,我需要整理DLinear的核心结构。根据资料,DLinear由三个主要组件构成:分解层、线性趋势预测和季节性残差预测。分解层可能使用移动平均来将时间序列分解为趋势和季节性成分。线性部分处理趋势,而季节性残差部分可能通过线性层来捕捉剩余的模式。这样的设计可能减少了模型的复杂性,同时保持了对时间序列关键特征的捕捉能力。 然后,关于DLinear的优势,用户可能想知道为什么选择它而不是其他复杂模型。根据引用[2],DLinear在计算效率、可解释性、训练速度和长序列预测方面表现突出。这些优势需要具体说明,比如分解结构带来的可解释性,线性层的低计算成本等。 使用方法方面,用户可能需要具体的步骤指导。引用[1]提到文档指导了训练和预测的流程,所以需要列出数据准备、模型构建、训练配置、训练和预测的步骤。同时,结合引用[2]中的代码解析,可能需要给出示例代码片段,比如使用PyTorch构建模型,并说明数据输入的格式要求,比如(batch_size, seq_length, feature_dim)。 此外,用户可能想知道DLinear的应用场景。根据时间序列预测的常见应用,比如电力负荷、销售预测等,可以举例说明。同时,需要比较DLinear与其他模型(如LSTM、Transformer)的适用场景,强调其在长序列和需要快速部署时的优势。 最后,生成相关问题时要覆盖模型结构、优势、使用方法、应用场景以及与其他模型的对比,确保用户能全面了解DLinear。需要检查是否所有数学公式都正确使用$...$或$$...$$格式,例如分解公式可能需要独立成段,使用双美元符号包裹。同时,确保回答结构清晰,分点说明,便于用户理解。</think>### DLinear 模型介绍 DLinear是一种基于分解结构的线性时间序列预测模型,通过**趋势-季节分解+双通道线性层**的极简设计,在多个基准数据集上超越Transformer等复杂模型[^2]。 #### 核心结构 1. **分解层**: 使用移动平均分解时间序列$X_t = T_t + S_t$ $$T_t = \frac{1}{m}\sum_{i=-k}^{k}X_{t+i},\quad S_t = X_t - T_t$$ ($m$为滑动窗口大小) 2. **双通道预测**: - 趋势通道:单层Linear处理低频趋势分量 - 季节性通道:单层Linear处理高频残差分项 3. **预测合成**: $$\hat{X}_{t+1:t+H} = \text{Linear}_{\text{trend}}(T_t) + \text{Linear}_{\text{seasonal}}(S_t)$$ #### 关键优势 1. **计算效率**:线性复杂度$O(L)$ vs Transformer的$O(L^2)$ 2. **可解释性**:显式的趋势/季节分解结构 3. **训练速度**:参数量仅为同类模型的1/100 4. **长序列预测**:在ETT、Weather等数据集上SOTA ### 使用方法(基于PyTorch) #### 数据准备 ```python # 输入格式:(batch_size, seq_len, feature_dim) train_loader = DataLoader(TimeSeriesDataset(train_data, input_len=96, pred_len=24)) ``` #### 模型构建 ```python import torch.nn as nn class DLinear(nn.Module): def __init__(self, input_len=96, pred_len=24): super().__init__() self.decompose = MovingAverage(window_size=25) # 移动平均分解 self.linear_trend = nn.Linear(input_len, pred_len) self.linear_seasonal = nn.Linear(input_len, pred_len) def forward(self, x): trend = self.decompose(x) seasonal = x - trend return self.linear_trend(trend) + self.linear_seasonal(seasonal) ``` #### 训练配置 ```python model = DLinear() criterion = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) ``` #### 预测流程 ```python # 输入:历史序列 (batch_size, 96, 1) # 输出:预测结果 (batch_size, 24, 1) pred = model(hist_data) ``` ### 典型应用场景 1. 电力负荷预测(ETT数据集) 2. 交通流量预测(PeMS数据集) 3. 销售趋势预测(M5数据集) 4. 气象数据预测(Weather数据集)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值