如何改良基于Basis的期间序列预测模型
当天引见一篇NIPS 2023中上海交大和蚂蚁团体联结宣布的期间序列预测文章,基于basis的期间序列建模。目前代码曾经开源,论文的详细消息如下。
论文题目 :BasisFormer: Attention-based Time Series Forecasting with Learnable and Interpretable Basis
下载地址 :
机构 :上海交大
开源代码 :
基于Basis的时序预测
在时序预测中,basis指的是从期间序列数据集中,抽取出数量较少的、整个数据集期间序列都遵照的一些子序列,数据集中每个期间序列,都可以经过这些basis的加权恢复进去。这种方法,最早出如今基于矩阵合成的期间序列建模中,将期间序列合成成basis和权重乘积的方式。比如原来的期间序列维度是M*T,那么会合成成M*a、a*T两个矩阵。第一个矩阵代表每个期间序列在每个basis上的权重,第二个矩阵代表各个basis序列。后续的Nbeats等方式也是基于这类方法。
但是,之前这类基于basis的方法存在的疑问是,关于basis的学习过滤便捷,或许基本就不学习basis,而是间接生成相应的basis系数。这造成basis或许不可反映数据集中所有期间序列的特性消息。为了处置这个疑问,上海交大的这篇文章提出一种基于对比学习预训练的basis生成方法。
外围结构
本文提出的BasisFormer模型的外围蕴含以下3个组件:
Coef Module :关于每个序列生成各个basis权重
Basis Module :生成basis
Forecast Module :生成预测结果
上方区分引见一下这些模块的成功逻辑。
Coef Module :这局部是计算期间序列和basis之间的相关性系数,用来对basis启动融合。全体驳回的是基于multi-head attention的计算方法,关于每个期间序列,计算其和各个basis之间的attention,获取attention score。每个head会计算不同的attention score,这个attention score代表期间序列和各个basis之间的相相关数,用来对basis启动加权融合。
Forecast Module :将各个head的权重系数和basis启动加权求和,获取每个head的初始预测结果。将这些结果拼接到一同后,输入一个多层MLP网络,获取最终的预测结果。
Basis Module :这个模块是本文的外围,如何学习一组良好的basis向量。这里的一个外围假定是,宿愿每个期间序列的basis融合权重,是随着期间固定不变的,历史的权重和未来待预测区间的权重是分歧的,这样能力成功基于basis的预测。为了达成这个指标,文中驳回对比学习的方式启动basis的学习。详细方法为,关于一个期间序列,将其历史已知局部和未来待预测局部,区分输入到Coef Module中,获取每个序列的basis权重,而后经过对比学习让同一个期间序列的历史序列权重和未来序列权重相近,随机负采样的权重拉远。在这个环节中,同步训练basis,让basis尽或许满足能够发生历史和未来相分歧的权重向量。
这种basis的解放,在之前的上班中是没有引入的,但是其十分关键,选择了basis的有效性。之前看basis的上班,其实就有过相似的不懂,齐全没有解放的状况下,历史的权重能否能泛华到未来的权重。这篇文章比拟好的处置了这个疑问。
试验成果
本文的成成成果如下表所示,对比了多元期间序列6个数据集、单变量期间序列6个数据集中,不同预测长度的成果差异,Basisformer在多个数据集上取得了成果优化。
本文转载自,作者: