OLinear: A Linear Model for Time Series Forecasting in Orthogonally Transformed Domain

OLinear: A Linear Model for Time Series Forecasting in Orthogonally Transformed Domain
线性:正交变换域时间序列预测的线性模型

Abstract

本文提出了一种基于线性的多元时间序列预测模型OLinear,该模型在正交变换域内运行。目前的预测模型通常采用时间预测(TF)范式,直接在时域对时间序列进行编码和解码。然而,序列数据中纠缠的逐步依赖关系会影响TF的性能。为了解决这个问题,一些预测者使用固定的、与数据集无关的基(例如,傅里叶变换中的正弦和余弦信号)在变换域中进行编码和解码。相比之下,我们使用了OrthoTrans,这是一种基于正交矩阵的数据自适应变换,它对角化了序列的时间Pearson相关矩阵。这种方法可以在去相关特征域实现更有效的编码和解码,并且可以作为插件模块来增强现有的预测器。为了增强多变量时间序列的表示学习,我们引入了一个自定义的线性层NormLin,它使用规范化的权重矩阵来捕获多变量依赖关系。根据经验,NormLin模块比多头自注意力机制显示出令人惊讶的性能优势,同时需要近一半的FLOPs。在24个基准和140个预测任务上进行的大量实验表明,线性方法始终如一地以高效率达到最先进的性能。值得注意的是,作为自注意力机制的插件替代品,NormLin模块始终增强了基于transformer的预测器。

1 Introduction

多元时间序列预测在天气、交通、能源和金融等领域至关重要。时间序列预测者通常采用时间预测(TF)范式,将时间序列编码为潜在表征并将其解码,所有这些都在时域内。然而,在存在纠缠的序列内依赖关系的情况下,该范式难以充分利用预测潜力。为了缓解这一问题,最近的研究使用傅里叶或小波变换来获得去相关的特征序列,并在变换域进行编码和解码。然而,这些方法依赖于与数据集无关的数据库,无法利用特定于数据集的时间相关信息。

在本文中,我们介绍了OrthoTrans,这是

在时间序列预测中,非平稳性是一个常见的挑战,表现为数据的统计特性(如均值、方差)随时间变化。传统的统计模型(如ARIMA)和机器学习方法通常假设时间序列是局部平稳的,但在实际应用中,这种假设往往难以成立。近年来,Transformer模型因其在建模长距离依赖关系上的优势而被广泛应用于时间序列预测任务,而**非平稳Transformer模型**则进一步增强了其在处理非平稳时间序列上的能力。 ### 非平稳Transformer模型的核心改进 标准的Transformer模型依赖于自注意力机制来捕捉序列中的全局依赖关系。然而,当面对非平稳时间序列时,其注意力机制可能难以有效捕捉动态变化的统计特性。为了解决这一问题,一些研究提出了专门针对非平稳特性的Transformer变体,主要改进包括: - **动态归一化机制**:为了应对时间序列的非平稳性,一些模型引入了动态归一化方法,如Moving Average Normalization(MAN)或Adaptive Layer Normalization(AdaNorm),以在输入序列中去除趋势和季节性成分[^1]。 - **位置编码的改进**:标准Transformer使用固定或学习的位置编码来表示时间顺序。在非平稳场景下,这些编码可能无法准确反映时间结构的变化。因此,有研究提出基于时间戳的动态位置编码方法,以更好地适应非平稳数据。 - **混合建模结构**:将Transformer与状态空间模型(State Space Models, SSMs)结合,利用SSM对非平稳成分进行建模,而Transformer负责捕捉长距离依赖关系。例如,Deep State Space Models(DSSMs)可以有效地建模时间序列的趋势和季节性变化[^2]。 ### 应用与优势 非平稳Transformer模型在多个时间序列预测任务中表现出色,特别是在具有复杂趋势和突变特征的数据集上。例如,在电力负荷预测、金融时间序列预测以及气象数据建模中,这些模型能够更准确地捕捉数据的动态变化趋势,从而提升预测精度。 - **长期依赖建模**:通过改进的注意力机制和归一化策略,非平稳Transformer能够更好地捕捉时间序列中的长期依赖关系。 - **鲁棒性增强**:相比传统模型,非平稳Transformer对数据中的噪声和突变具有更强的鲁棒性,适用于实际工业和金融场景。 ### 示例代码:非平稳Transformer的简化实现 以下是一个简化的非平稳Transformer模型的PyTorch实现,使用了自注意力机制和动态归一化: ```python import torch import torch.nn as nn class NonStationaryTransformer(nn.Module): def __init__(self, input_dim, model_dim, num_heads, num_layers, output_dim): super(NonStationaryTransformer, self).__init__() self.embedding = nn.Linear(input_dim, model_dim) self.positional_encoding = nn.Parameter(torch.randn(1, 1000, model_dim)) self.transformer = nn.Transformer( d_model=model_dim, nhead=num_heads, num_encoder_layers=num_layers, num_decoder_layers=num_layers ) self.fc = nn.Linear(model_dim, output_dim) def forward(self, src, tgt): src = self.embedding(src) + self.positional_encoding[:, :src.size(1)] tgt = self.embedding(tgt) + self.positional_encoding[:, :tgt.size(1)] output = self.transformer(src, tgt) return self.fc(output) # 示例输入 batch_size = 32 seq_len = 50 input_dim = 1 model_dim = 64 num_heads = 8 num_layers = 3 output_dim = 1 model = NonStationaryTransformer(input_dim, model_dim, num_heads, num_layers, output_dim) src = torch.randn(batch_size, seq_len, input_dim) tgt = torch.randn(batch_size, seq_len, input_dim) output = model(src, tgt) print(output.shape) # 输出形状: (32, 50, 1) ``` ### 挑战与未来方向 尽管非平稳Transformer在时间序列预测中展现出强大潜力,但仍面临一些挑战: - **计算复杂度**:Transformer的自注意力机制具有O(n²)的时间复杂度,限制了其在超长序列上的应用。 - **可解释性不足**:虽然Transformer模型在性能上表现出色,但其内部机制较为复杂,缺乏传统统计模型的可解释性。 - **领域泛化能力**:当前模型多在特定领域(如电力、金融)训练,如何提升其跨领域泛化能力仍是一个开放问题。 未来的研究方向可能包括: - **轻量化Transformer结构**:设计更高效的注意力机制或结合CNN与Transformer的优点,以降低计算开销。 - **可解释性增强**:引入可视化工具和解释性模块,帮助用户理解模型决策过程。 - **跨模态建模**:将时间序列与其他模态(如文本、图像)结合,构建多模态预测系统。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

所谓远行Misnearch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值