首页> 中国专利> 一种多变量输入多变量输出时间序列预测方法及系统

一种多变量输入多变量输出时间序列预测方法及系统

摘要

本发明提供一种多变量输入多变量输出时间序列预测方法及系统,其中一种多变量输入多变量输出时间序列预测方法,其具体步骤如下:S1.准备多变量时序数据X;S2.使用卷积网络对多变量时序数据X进行逐个时序计算,获得时序趋势数据R;S3.构建基于自注意模型的长周期编解码模型,计算当前与历史时间趋势的相关性向量Corr、待预测时序变量间的协变关系CorrD;S4.利用相关性向量Corr、协相关性向量CorrD和历史数据的时序趋势数据R计算预测时序变量Y的估计值。

著录项

  • 公开/公告号CN112561704A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 银江股份有限公司;

    申请/专利号CN202011549410.3

  • 发明设计人 丁锴;李建元;陈涛;

    申请日2020-12-24

  • 分类号G06Q40/04(20120101);G06Q10/04(20120101);G06Q10/06(20120101);G06N3/04(20060101);

  • 代理机构33246 浙江千克知识产权代理有限公司;

  • 代理人赵芳;张瑜

  • 地址 310012 浙江省杭州市益乐路223号1幢1层

  • 入库时间 2023-06-19 10:24:22

说明书

技术领域

本发明属于时间序列预测领域,涉及一种多变量输入多变量输出时间序列预测方法及系统。

背景技术

时间序列预测可分为{单变量输入,单变量输出},{多变量输入,单变量输出}和{多变量输入,多变量输出}三种情况,第一种情况最简单,仅考虑历史值对未来值的影响,而不考虑其他影响因素,由于参考信息较少,所以预测精度较低;第二种情况考虑了多种影响因素,预测精度有一定程度的提升,但仅针对单变量输出情况,而实际应用场景存在多种待预测变量,故其应用场景范围较小;第三种情况在实际生活中普遍存在,例如根据商品销售情况,折扣,季节等预测未来时间段商品原材料价格,产量以及销售量等,又如根据当前股票价格,市场情绪,国家政策等情况预测未来多种关联股票股价等等。本发明方法主要针对多变量输入多变量输出时序预测问题,同时也可应用于多变量输出单变量输出问题。

针对时间序列预测问题,传统机器学习算法例如ARIMA,LGBM,STL(季节趋势项分解)等,使用特征工程较多,设计复杂,对专家知识,数据分析能力要求高。基于深度学习的方法在一定程度上降低了在特征工程上的工作量,例如LSTM,DeepAR,基于LSTM及Attention的TPA模型等方法,它们可以自动学习时间序列中的频率变量,例如年周期,季度周期,总体趋势等。但是,上述方法无法计算多变量之间的互相影响。为解决了此问题,研究者使用编解码的方式,例如基于LSTM的seq2seq模型,基于Transformers的seq2seq模型(TFT Temporal Fusion Transformers)等。但是,受限于梯度传递极限,以上方法无法同时兼顾长周期依赖性和关联因素协变性。

发明内容

针对上述背景技术介绍中存在的问题,本发明的目的在于提供了一种多变量输入多变量输出时间序列预测方法及系统,基于长周期编解码模型,并根据时间序列周期性进行了优化,从而兼顾长周期依赖性和关联因素协变性,采用卷积网络方法,并使用多核策略,以感知高阶时序梯度,提高编解码序列预测模型对时序趋势的感知能力,提高预测精度。

本发明采用的技术方案是:

一种多变量输入多变量输出时间序列预测方法,其具体步骤如下:

S1.准备多变量时序数据X;

S2.使用卷积网络对多变量时序数据X进行逐个时序计算,获得时序趋势数据R;

S3.构建基于自注意模型的长周期编解码模型,计算当前与历史时间趋势的相关性向量Corr、待预测时序变量间的协变关系Corr

S4.利用相关性向量Corr、协相关性向量Corr

进一步,步骤S1中的多变量时序数据X包括至少一个时间变量数据g

进一步,步骤S2的具体过程如下:

卷积网络包括L个卷积核,卷积核大小对应多变量时序数据X在时间上的变化程度,用于提取多变量时序数据X的时序趋势数据R;

设定使用L个卷积核进行时序趋势计算C={c

式中,s表示时间序列长度,m为变量维度,i为变量序号标记,j为卷积核标记。

进一步,长周期编解码模型包括1个长周期编码器、1个长周期解码器,其中长周期编码器为一个自注意层,长周期解码器包括一个自注意层和一个自注意解码层;通过在长周期编码器的自注意层输入时序序列{(g

进一步,所述长周期编码器包括1个向量创建层、h个注意力函数单元、1 个拼接函数单元、1个线性层,这里输入组合为t+1日的时间变量g

注意力函数:

head

式中,τ表示滑动间隔,随着它的变大,注意力模型对长周期的感知力变强;Attention为自注意力函数:

式中,d

将多个头拼接的拼接函数为:

MultiHead(Q,K,V)=Concat(head

式中,h为头个数,Concat(head

线性层,使其维度为{(t-s)*τ}∪{t-s},以计算当前与历史时间趋势的相关性向量Corr,

Corr=W

式中,W

进一步,所述长周期解码器按顺序预测未知变量,并将已预测对象为作为已知,剩余待预测对象为未知,从而感知待预测变量之间的协变关系;长周期解码器有两层多头自注意模型,第一层多头自注意模型与长周期编码器的自注意模型相似,以y

进一步,预测时结合长周期编码器输出的相关性向量Corr以及时序趋势数据R,预测下一时刻的y

顺序预测y

式中,f’为映射函数,对应长周期解码器的多头自注意模型中的注意力head函数,R为卷积时序趋势,Corr为长周期相关性向量,m表示待预测变量的序号,它从1开始,迭代增1。

进一步,还包括步骤S5根据预测时序变量Y的估计值和真实值进行比较,基于比较结果设置长周期编解码模型中模型权值训练的梯度;

由长周期编解码模型可以预测未知变量y

对长周期编解码模型的权值训练所需梯度,通过下面的误差惩罚函数获得:

式中,abs()表示取绝对值,

实现上述方法的多变量输入多变量输出时间序列预测系统,其特征在于:包括

卷积网络,用于提取多变量时序数据X的时序趋势数据R;

长周期编解码模块,包括1个长周期编码器、1个长周期解码器,其中长周期编码器为一个自注意层,长周期解码器包括一个自注意层和一个自注意解码层,用对时序趋势数据R进行相关性计算,获得时序趋势相关性向量Corr及变量协相关性向量Corr

回归预测模块,用于相关性向量Corr、历史数据的时序趋势数据R及协相关性向量Corr

进一步,还包括模型权值训练模块,用于根据系统输出值与真实值进行比较,基于比较结果设置长周期编解码模块中模型权值训练的梯度。

本发明与现有技术相比,其显著优点包括:设计编解码模型,并根据时间序列周期性进行了优化,从而兼顾长周期依赖性和关联因素协变性。采用卷积网络方法,并使用多核策略,以感知高阶时序梯度,提高编解码序列预测模型对时序趋势的感知能力,提高预测精度。

附图说明

图1是本发明的总体流程图。

图2是本发明的系统结构示意图。

图3是本发明的长周期编解码模型的结构示意图。

图4是本发明的回归预测模型的结构示意图。

具体实施方式

下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。

实施例一

参见图1,本实施例提供了一种多变量输入多变量输出时间序列预测方法, 其具体步骤如下:

S1.准备多变量时序数据X;多变量时序数据X包括至少一个时间变量数据g

多变量时序数据举例:多种商品销售量、产品生产量、地区人口量、交通流量、疾病发生率、财务经费等等。

S2.使用卷积网络对多变量时序数据X进行逐个时序计算,获得时序趋势数据R;

卷积网络包括L个卷积核,卷积核大小对应多变量时序数据X在时间上的变化程度,用于提取多变量时序数据X的时序趋势数据R;

设定使用L个卷积核进行时序趋势计算C={c1,c2,...,cl},每个卷积核cl大小为{2,3,4},共3*L个卷积核,以近似对应局部时序趋势曲线的一阶,二阶和三阶梯度;对t时刻单个变量y

式中,s表示时间序列长度,m为变量维度,i为变量序号标记,j为卷积核标记。

一个实施例,多变量时序数据X

S3.构建基于自注意模型的长周期编解码模型,计算当前与历史时间趋势的相关性向量Corr、待预测时序变量间的协变关系Corr

长周期编解码模块是为了从时序趋势数据R中找到相关数据进行预测,同时还会考虑各个变量之间的协变特性,从而使预测更为准确。长周期编解码模型包括1个长周期编码器、1个长周期解码器,其中长周期编码器为一个自注意层,长周期解码器包括一个自注意层和一个自注意解码层,见图3;通过在长周期编码器的自注意层输入时序序列{(g

长周期编码器的自注意层输入时序序列{(g

长周期编码器包括1个向量创建层、h个注意力函数单元、1个拼接函数单元、1个线性层,这里输入组合为t+1日的时间变量g

注意力函数:

head

式中,τ表示滑动间隔,随着它的变大,注意力模型对长周期的感知力变强;Attention为自注意力函数:

式中,d

将多个头拼接的拼接函数为:

MultiHead(Q,K,V)=Concat(head

式中,h为头个数,Concat(head

线性层,使其维度为{(t-s)*τ}∪{t-s},以计算当前与历史时间趋势的相关性向量 Corr,如下式所示

Corr=W

式中,W

长周期解码器按顺序预测未知变量,并将已预测对象为作为已知,剩余待预测对象为未知,从而感知待预测变量之间的协变关系;长周期解码器有两层多头自注意模型,第一层多头自注意模型构建了Q

一个实施例:对周期性数据而言,按周,月,年等天然周期性因素选择间隔效果比较好。在heads中选择三分之一,即4个heads训练间隔数据的相关性,这样可在不增加计算量的条件下,感知周期为若干年的历史数据。全局自注意是根据特定场景选择自注意锚点的方法,这里选择当前时间点作为全局锚点。因此,全局间隔时间自注意力表达式为:

head

式中,4个head的τ属于设定时间间隔分别为{7,30,90,365}。其余8个head的τ取1,head

接着,基于全局间隔自注意,计算待预测序列时间趋势与历史时间趋势的相关性Corr值,见公式5)。此外,还需计算待预测变量多维度之间的相关性Corr

S4.利用相关性向量Corr、协相关性向量Corr

预测时结合长周期编码器输出的Corr以及时序趋势数据R,预测下一时刻的y

顺序预测y

式中,f’为映射函数,对应长周期解码器的Corr

一个实施例:顺序预测y

式中,假定待预测序列前m-1个值已计算出,Corr

长周期编解码模块中采用的自注意模型学习离散数据的相似性能力较强,对时序变化趋势相似性的感知力弱。这里使用卷积网络提取时序趋势数据,大大增强其对时序变化趋势的感知强度。

S5.根据预测时序变量Y的估计值和真实值进行比较,基于比较结果设置长周期编解码模型中模型权值训练的梯度;

由长周期编解码模型可以预测未知变量y

式中,abs()表示取绝对值,

一种具体的应用如下:

本应用以商品销售量及产量预测为例对算法进一步说明。整个过程分为数据准备,模型训练和模型验证三个部分。

1.数据准备

使用Kaggle比赛Stallion啤酒销量预测数据库,原数据包括啤酒种类,啤酒库存,产量,商店名,商店位置等异构数据。其中,需将数据分为动静态变量和类实变量。动态变量随时间变化,例如日期,销量等,静态变量在一年内视为不变,例如总人口,年平均温度等。类变量以整型数据表示,实变量以浮点数值表示。非数值变量通过类赋值的方式转为类变量。例如啤酒单品类别以文字整型混合表示,{sku_01,sku_02,...sku_60},转换后表示为{1,2,...,60}。日期也被转换为整型数据。数据经转换后,分为训练和测试集两部分,测试集为最后一个月数据,其他数据为训练集。

2.模型训练

首先,将训练集数据分批次导入模型,其中类变量和静态变量不需要进行时序趋势卷积。待预测变量为某日{单品单店销量,单品单店库存量,单品跨店总销量,单店多品总销量,单品产量}共5个,已知值为这些变量的历史数据。假定时序趋势周期为7天,卷积核大小为{2,3,4},训练批大小64,卷积输出为 64*5*3*7维度,合并为64*5*21维。类变量与静态变量包括商品名称,店名称等,总维度为10,合并上面的卷积结果,作为长周期编码器的输入。此外,总时长周期设为384,因此,输入维度为64*384*15*21。编码器中的4个间隔滑动自注意头,总长度也设为384,则时长覆盖周期为384*滑动间隔,即分别约为{6.5年,26年,78年,384年},如果实际数据量较少,可将间隔滑动统一设为7天,即时长覆盖周期为6.5年。编码器经线性层输出为64*384维,解码器第一层输入为64*5维,输出为64*5*128维,这里128为嵌入维度,第二层自注意解码输入结合了长周期编码器Corr和第一层的输出,总计为64*(384+640) 维,经预测序列公式计算,输出预测销售值维度为64*5。最后,计算回归误差惩罚值,从而迭代优化模型权值。为弱化长周期编解码器首值误差,计算5次预测的总预测误差作为误差惩罚值。

3.模型验证

此部分对训练所得模型进行验证,测试模型是否过拟合,并验证模型的可用性。数据准备阶段的以最后一个月数据为测试集,其他历史数据为训练集,保证了两数据集的相对独立性。在预测阶段,设定的预测次数为5,通过5次预测值与对应真实值的最小均方差评估预测效果。当训练集的预测值与对应真实值的最小均方差小,而测试集此最小均方差较大,则模型可能过拟合,可以通过调节学习率和dropout参数重训模型。当测试集的此最小均方差也比较大,则说明模型未正常收敛,需增加训练次数改进。

实施例二

参见图2,实现实施例一所述的多变量输入多变量输出时间序列预测系统,包括

卷积网络,用于提取多变量时序数据X的时序趋势数据R;

长周期编解码模块,包括1个长周期编码器、1个长周期解码器,其中长周期编码器为一个自注意层,长周期解码器包括一个自注意层和一个自注意解码层,用对时序趋势数据R进行相关性计算,获得时序趋势相关性向量Corr及变量协相关性向量Corr

回归预测模块,用于相关性向量Corr、历史数据的时序趋势数据R及协相关性向量Corr

模型权值训练模块,用于根据系统输出值与真实值进行比较,基于比较结果设置长周期编解码模块中模型权值训练的梯度。

长周期编解码模块中采用的自注意模型学习离散数据的相似性能力较强,对时序变化趋势相似性的感知力弱。这里使用卷积网络提取时序趋势数据,大大增强其对时序变化趋势的感知强度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号