基于查询选择器的长期序列预测——稀疏注意的高效模型

基于查询选择器的长期序列预测——稀疏注意的高效模型

图片

关注人工智能学术前沿 回复 :ts27

5秒免费获取论文pdf文档,及项目源码

摘要

最近对TRANSFORMER进行了各种修改,用于解决时间序列预测问题。我们提出了一种高效的、确定性的稀疏注意矩阵查询选择器算法。实验表明,该方法在ETT数据集上取得了较好的结果。

1.介绍

时间序列预测(TSF)是统计研究的一个古老而重要的领域,在解决现实生活问题方面有着广泛的实际应用。它已被应用于解决商业活动的许多领域所产生的问题,如金融、医疗保健、商业管理和其他。另一方面,它已被用于模拟自然现象,如地震,道路交通等。乍一看,这似乎是机器学习(ML)算法的一个非常有前景的应用领域,特别是那些称为深度学习(DL)方法。然而,这方面的情况还不清楚,甚至一些采用更传统的TSF方法的专家也表达了他们普遍的疑虑,即DL方法是否最适合TSF ([Elsayed等,2021])。我们认为情况并非如此,如果在这一领域中仍然存在的障碍被克服了,那么DL方法将会盛行——类似于在自然语言处理(NLP)领域中发生的情况。我们认为现存的主要障碍在于为TSF建立正确的DL模型,并找到能够处理与建模TSF相关的沉重计算负担的软件实现。

2.模型概述

如前所述,随着输入数据长度和预测范围的增加,时间序列预测的计算难度越来越大。因此,计算障碍是TSF研究领域的一个固有问题。为了解决这些问题,我们研究了用稀疏矩阵逼近全注意矩阵来降低这种复杂性的几种方法。我们发现,解决这个问题的以下方法最有趣的是LogSparse [Li等人,2020]、Reformer [Kitaev等人,2020]和Informer [Zhou等人,2021]。此外,由于Informer报告的结果优于其他提到的系统,所以我们的分析集中在这个算法上。Informer 方法的线索似乎包含在所谓的概率稀疏注意中。它依赖于索引的聪明选择,这些索引将用于计算一个矩阵,该矩阵近似于 vanilla Transformers中的注意力矩阵。

在对该方法进行分析和实验的过程中,我们得出一个结论,在长序列TSF的情况下,基于Transformer的系统可以使用各种各样的注意矩阵逼近指标的概率选择来收敛到最优。使用概率方法的主要缺点之一是很难比较不同的实验与变化的参数。因此,我们提出了一种简单而有效的、完全确定性的方法来计算注意力矩阵的稀疏逼近,在各种时间序列数据集上都有很好的结果。

Transformer体系结构的基本概念回顾,并设置必要的符号。给定输入表示X,注意矩阵可计算如下:首先,我们通过线性投影计算每个注意力头的查询、键和值矩阵,,其中Q、K、V分别表示查询、键和值矩阵,WQ、WK、WV为线性投影。然后,通过缩放点积运算计算注意矩阵

图片

查询选择器方法

图片

处理后的公式

图片

关注人工智能学术前沿 回复 :ts27

5秒免费获取论文pdf文档,及项目源码

3.实验概述

基线模型

Informer的作者论文当时选择了五种时间序列预测方法作为比较,包括ARIMA (Ariyo, Adewumi,和Ayo 2014), Prophet (Taylor和Letham 2018), LSTMa (Bahdanau, Cho,和Bengio 2015), LSTnet (Lai等,2018)和DeepAR (Flunkert, Salinas,和Gasthaus 2017)。

本文作者选用的数据集与lnformer模型相同。所以基线模型仅仅选择预测性能最佳的lnformer。

lnformer模型相关的介绍在上篇文章有做详细的介绍,需要了解请点击链接

数据集

在我们的实验中,我们使用了ETT(电力变压器温度)数据集。在该数据集中,每个数据点由8个变量组成,包括点的日期、油温等6个在中国变电站测量的参数。

更多细节和数据访问请访问https://github.com/zhouhaoyi/ETDataset。

实验结果

图片

图1:不同输入长度对查询选择器因子f的MSE的影响

图片

表2:单变量时间序列预测结果。

图片

表3多元时间序列预测结果。

### 关于C++实现时间序列模型 #### 时间序列模型概述 时间序列分析是一种用于处理随时间变化的数据的技术。这类数据通常具有特定的时间间隔,如每秒、每天或每年记录一次。为了有效建模这些数据,在C++中可以采用多种方法和技术。 #### 使用随机数生成器增强模拟效果 对于某些时间序列应用来说,引入随机因素是非常重要的。现代C++提供了强大的工具来支持这一点。例如,`<random>`库允许开发者轻松创建高质量伪随机数流,这对于仿真和预测非常有用[^1]。 ```cpp #include <iostream> #include <random> int main() { std::default_random_engine generator; std::normal_distribution<double> distribution(0.0, 1.0); // 均值为0方差为1的正态分布 double randomValue = distribution(generator); std::cout << "Generated Random Value: " << randomValue << "\n"; } ``` 此代码片段展示了如何利用C++标准库中的随机函数生成服从指定概率分布(这里是高斯分布)的数值,这有助于构建更真实的金融市场价格波动或其他自然现象的时间序列模型。 #### 数据预处理与特征提取 当涉及到实际世界的应用场景时,原始观测可能并不适合直接输入到模型里去训练。此时就需要先做一系列准备工作,比如去除异常值、填补缺失值以及转换变量尺度等操作。此外,还可以考虑加入额外特性以提高性能表现,像移动平均线这样的技术指标就是常见做法之一。 #### 应用领域特化的优化策略 不同类型的行业可能会有不同的需求重点。例如,在信号处理方面的工作往往需要特别关注频域变换等内容。Wave++是一个专注于此类任务的专业框架,它由多伦多瑞尔森理工学院计算信号分析小组开发维护,能够帮助研究人员快速搭建原型并验证想法[^2]。 #### 几何形状识别辅助下的模式发现 有时我们希望从复杂背景噪声中分离出有意义的趋势成分出来。这时可以通过几何学手段来进行初步筛选工作。一种典型的方式是以某个起始位置为中心向外扩展搜索范围直到找到足够数量符合条件的目标对象为止;接着再基于这些样本点估计局部属性参数——如方向角均值及其离散程度度量值,并据此决定下一步行动计划[^3]。 #### 插值算法提升精度 最后但同样重要的是插值技巧的选择也会影响最终结果的质量好坏。特别是在面对稀疏采样率较低的情况下尤为明显。通过适当调整内插方式可以在不显著增加运算成本的前提下获得更加平滑连续的结果曲线图象显示形式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值