用于时间序列预测的方法和装置与流程

文档序号:23223461发布日期:2020-12-08 15:06阅读:201来源:国知局
用于时间序列预测的方法和装置与流程

本申请涉及时间序列预测,特别涉及基于对象的历史数据预测对象的未来数据的方法、装置和计算机可读存储介质。



背景技术:

在例如零售和餐饮的行业中,需要根据产品的历史销售情况估计未来一段时间的销售数据以用于产品的储备、配送和更新。准确地预测未来时间的产品销售情况可以有效降低成本,及时发现商机,快速调整经营策略而提高竞争力。

基于过去一段时间的产品销售情况来预测未来时间的销售预期被称为产品的时间序列预测。时间序列预测目前的主流技术包括两大类:一类是以arima/prophet为代表的基于传统统计学的预测算法,另一类是以lstm神经网络为代表的基于深度学习的预测算法。

但是,基于传统统计学的时间序列预测算法是线性算法,难以捕捉时间序列中的非线性规律和长期规律。基于lstm神经网络的时间序列预测算法则在时间序列规模变大时容易出现梯度消失或梯度爆炸的情况导致预测结果失真,并且运行效率低下,数据和计算冗余。

因此,存在对时间序列预测方法进行改进的需求。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本申请提出用于时间序列预测的方法、装置和计算机可读存储介质,用于解决现有技术方案中存在的至少一个缺陷,从对象的历史数据中提取规律并结合未来的影响因素,以预测对象的未来数据。

根据本申请的一方面,提出一种用于时间序列预测的方法,包括:

获取与历史时间序列对应的对象的历史数据序列,所述历史数据序列中的历史数据包括与所述历史时间序列中的历史时间对应的所述对象的历史动态特征和历史值,其中所述历史动态特征与对应的历史时间相关联;

使用第一神经网络模型基于所述历史数据序列提取与未来时间序列对应的所述对象的规律数据序列;

基于所述规律数据序列、与所述未来时间序列对应的所述对象的未来动态特征序列、以及所述对象的未来静态特征生成预测特征数据序列,其中所述未来动态特征序列包括与所述未来时间序列中的未来时间对应的所述对象的未来动态特征,所述未来动态特征与对应的未来时间相关联;以及

使用第二神经网络模型基于所述预测特征数据序列预测与所述未来时间序列对应的所述对象的未来数据序列,所述未来数据序列中的未来数据包括与所述未来时间序列的未来时间对应的所预测的所述对象的未来值。

根据本申请的另一方面,提出一种用于时间序列预测的装置,包括:

历史数据获取单元,被配置为获取与历史时间序列对应的所述对象的历史数据序列,所述历史数据序列中的历史数据包括与所述历史时间序列中的历史时间对应的所述对象的历史动态特征和历史值,其中所述历史动态特征与对应的历史时间相关联;

规律提取单元,被配置为使用第一神经网络模型基于所述历史数据序列提取与未来时间序列对应的所述对象的规律数据序列;

预测特征生成单元,被配置为基于所述规律数据序列、与所述未来时间序列对应的所述对象的未来动态特征序列、以及所述对象的未来静态特征生成预测特征数据序列,其中所述未来动态特征序列包括与所述未来时间序列的未来时间对应的所述对象的未来动态特征,所述未来动态特征与所述对应未来时间相关联;以及

预测单元,被配置为使用第二神经网络模型基于所述预测特征数据序列预测与所述未来时间序列对应的所述对象的未来数据序列,所述未来数据序列中的未来数据包括与所述未来时间序列的未来时间对应的所预测的所述对象的未来值。

根据本申请的又一方面,提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被至少一个处理器执行时,实施如上所述的方法。

根据本申请的再一方面,提出一种电子设备,包括处理器和用于存储所述处理器的可执行指令的存储器,其中,所述处理器被配置为执行所述可执行指令以实施如上所述的方法。

根据本申请的实施例的时间序列预测方法和装置,能够满足高效计算的要求,准确地捕捉趋势因素、季节性因素、外部因素等对所预测的对象的非线性影响,同时做出短距离和长距离时间预测。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例性实施例,本申请的上述和其它特征及优点将变得更加明显。

图1为根据本申请的一个实施例的用于时间序列预测的seq2seq神经网络模型架构的示意图;

图2为根据本申请的一个实施例的用于时间序列预测的方法的示例性流程图;

图3为根据本申请的一个实施例的用于时间序列预测的装置的示意性框图;以及

图4为根据本申请的一个实施例的电子设备的示意性框图。

具体实施方式

现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本申请将全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能会夸大部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本申请的各方面。

本领域技术人员将理解的是,在下文中虽然根据实施例以具体的神经网络模型结构介绍用于基于对象的历史数据预测对象的未来数据的方法和装置,但是本申请的方案并不限于该示例性神经网络模型,而是可以扩展到其它能够实现本申请的时间序列预测的构思的神经网络结构,还可以扩展到其它基于深度学习的预测模型结构中。在本文的示例性实施例中,时间序列预测方法以餐饮业在销售地的销售产品作为对象进行介绍,但是本申请的方法可以应用于任何需要进行时间序列预测的对象和场景。在下文中,如果没有特别说明,神经网络通常指人工神经网络(ann)。神经网络可以采用常见的卷积神经网络(cnn),视情况还可以进一步采用全卷积神经网络。本文中没有对与本申请的时间序列预测方法不相关的神经网络的其它具体类型和结构进行过多描述以免造成混淆。

在主流的时间序列预测算法中,基于传统统计学的差分整合移动平均自回归(autoregressiveintegratedmovingaverage,简称为arima)模型预测算法和时间序列模型prophet预测算法都可以用于预测趋势、季节性等时间相关的规律。它们先将历史时间序列对应的历史数据拆解为趋势因素、季节性因素和外部影响因素的线性叠加,并分别预测上述因素对与未来时间对应的数据的影响,最后将这三种因素的影响后的预测结果进行叠加得到最终的预测结果。

但是传统统计学的时间序列预测算法的主要问题在于:线性算法很难捕捉时间序列中存在的规律;不同的时间序列被独立预测导致没有考虑不同时间序列之间的关系,因此每个时间序列预测不够准确而且其简单的限定叠加不能准确体现真实的过程变化趋势;当时间序列比较短而对应的历史数据量比较少时,线性算法无法捕捉到长期规律,并且无法从其它序列中借鉴规律。

在基于深度学习的预测算法中,通常采用lstm(long-short-termmemory,长短期记忆)网络结构。将与时间序列对应的变量的历史观测值、历史影响因素和变量的未来影响因素作为神经网络模型结构的输入,将变量的未来预测值作为神经网络模型结构的输出。

lstm网络是一种被专门设计为解决一般的rnn(循环神经网络)存在的长期依赖问题的时间循环神经网络,其适合处理和预测时间序列中间隔和延迟非常长的重要事件。lstm网络比时间递归神经网络和隐马尔科夫模型(hmm)性能更好。在lstm网络中的重要结构是门,其中遗忘门决定输入不传入区块,输入门决定接受输入以传入区块,输出门决定区块记忆中的信息是否传出。lstm网络通常使用梯度下降法进行训练。

基于lstm网络模型的时间序列预测算法存在若干缺陷。首先,信息在经由lstm网络模型的传递过程中会出现梯度消失或梯度爆炸的现象,所以在长距离时间序列预测时的预测结果可能失真。虽然lstm网络中的门在一定程度上可以缓解这种情况但是无法根除。其次,在lstm网络结构中,信息在lstm网络结构的卷积层中的每个节点上从前到后、从下到上逐个传递,这使得时间序列中的多个信息难以并行运算,导致网络模型的训练过程缓慢,效率低下。再次,为了将时间序列中所包含的影响因素中不随时间变化的部分信息输入到lstm网络结构中,需要将这些信息在每个节点上进行复制,造成数据和计算的冗余,进一步降低了lstm网络模型的处理速度。因此,虽然lstm网络模型能够克服arima/prophet算法的长期预测效果不佳的问题,但是仍然不能满足时间序列预测的诸多要求。

下面结合根据本申请的实施例的图1的seq2seq神经网络模型架构和图2的用于时间序列预测的方法流程来描述本申请的时间序列预测过程。

图1中的神经网络模型架构100的基本结构为一个seq2seq(sequencetosequence)网络模型。seq2seq神经网络模型可以被视为一种转换模型,基本思想是串联连接的两个神经网络模型中的前一神经网络模型作为编码器网络,后一个神经网络模型作为解码器网络。编码器网络将数据序列转化为向量或向量序列,解码器网络则根据该向量或向量序列生成另一个数据序列。seq2seq网络模型的一种使用场景为语音识别,其中编码器网络将英文语句转化或分割为英文或中文的语义数据或语义序列,解码器网络则可以将语义数据或语义序列转化为英文语句对应的中文语句。seq2seq网络模型的优化可以采用极大似然估计方法,使得解码器生成的数据序列概率最大以获得最优的转换效果。

根据本申请的实施例,seq2seq神经网络模型架构100包括作为编码器的第一神经网络模型110和作为解码器的第二神经网络模型120。

第一神经网络模型110用于提取历史数据中的信息,特别是体现历史数据中的规律的规律数据。根据一个实施例,第一神经网络模型110为wavenet神经网络。wavenet网络作为一种序列生成模型,被设计用于根据一个数据序列的前n-1个数据预测第n个数据的预测值。wavenet特别适用于输入为多维向量的一维数据序列的高通量输入,这种一维网络可以实现快速计算。标准的wavenet网络模型是一种卷积神经网络,其中每个卷积层都对前一层进行卷积。网络的卷积核越大,层数越多,在时域上的感知能力越强,感知范围越大。在wavenet网络的创建过程中,每生成一个节点,就把该节点放到输入层中的最后一个节点之后继续迭代生成即可。wavenet网络的激活函数例如可以使用门单元。该网络的输入层和输出层之间的隐含层之间采用递归和跳跃连接,即隐含层中每一卷积层的节点都会把原值和激活函数的输出值相加后传递给下一卷积层。可以通过1x1的卷积核来实现降通道数的操作。然后,每一个隐含层的激活函数输出的结果相加后最终通过输出层输出。

如图1所示,第一神经网络模型110具有输入层(即第一卷积层)112,隐含层113和输出层114。隐含层113的个数可以是0个,1个或多个。输入层112,隐含层113和输出层114中的每一个卷积层都具有多个节点111。输入层112的节点数应当至少与历史数据序列中的数据长度对应以保证神经网络能够接收到每个历史时间的信息。

当采用普通wavenet网络的第一神经网络模型110为一维因果卷积网络的情况下,由于需要使用所输入的数据序列的前n-1个数据预测第n个数据,因此所使用的节点数随着每个卷积层减少1。如果历史数据的长度很大,则需要为第一神经网络模型110增加很多层以满足n次传递或者需要很大的过滤器,使得梯度下降过程中选择的梯度过小时网络的训练复杂,拟合效果不好。

根据本申请的实施例,可以引入膨胀卷积神经网络(dilatedcnn)的概念。膨胀卷积神经网络是一种具有“空洞”的卷积网络。根据本申请的实施例,膨胀卷积神经网络的第一卷积层(即输入层)可以是膨胀系数为1的一维因果卷积网络。从神经网络的第二卷积层开始,每一卷积层的膨胀系数为前一卷积层的膨胀系数乘以膨胀指数(dilationindex),其中膨胀指数是一个不小于2且不大于卷积核大小的正整数。可以在第一神经网络模型110的隐含层和输出层都采用这种膨胀卷积神经网络配置。例如,当膨胀指数为2时,第二卷积层只会使用第n,n-2,n-4,…的节点进行卷积,而第三卷积层则只会使用n,n-4,n-8,…的节点,以下依次类推。

膨胀神经网络结构可以显著加快信息在神经网络中的传递过程,避免出现梯度消失或梯度爆炸的情况,提高第一神经网络模型110的处理速度和预测精度。例如,当卷积核大小为2并且膨胀系数为2时,信息从与第一个历史时间处对应的节点传递到与最后一个历史时间处对应的节点所经过的神经网络的卷积层数为log2n,其中n是历史数据序列中的数据长度。

根据本申请的实施例,作为解码器的第二神经网络模型120可以是多层感知(mlp)网络。mlp网络同样包括输入层,隐含层和输出层,其中每个神经元节点具有激活函数(例如sigmoid函数)并使用损失函数进行训练。mlp网络基于编码器网络提取的历史规律,未来的影响因素(包括动态因素和静态因素)预测出对象的未来值。

虽然上文中以wavenet网络作为seq2seq神经网络模型架构的编码器网络的示例,以mlp网络作为解码器网络的示例,但是本申请的时间序列方法可以采用能够进行序列数据的特征提取和预测任何其它神经网络结构,这些网络结构例如但不限于能够实现本申请的时间序列预测的功能的各种类型的循环神经网络rnn。例如,当使用seq2seq神经网络模型架构时,编码器网络可以采用lstm网络,而解码器网络采用mlp网络,虽然lstm网络存在缺陷,但是与mlp网络结合并且调整网络的输入输出数据序列仍然在一定程度上可以获得相比现有的方案更好的效果。还可以选择wavenet网络作为编码器网络,lstm网络或其它rnn网络作为解码器网络等。

在图2所述的流程图中,用于时间序列预测的方法200用于基于与包含n个历史时间的历史时间序列t1={t1,t2,t3,…,tn}对应的历史数据序列101来预测与包括m个未来时间的未来时间序列t2={tn+1,tn+2,tn+3,…,tn+m}对应的未来数据序列104。历史时间和/或未来时间的单位根据需求可以选择小时,日,月,年,周,季度等。例如,对于预测公交车站的乘客上下车人数,可以采用小时,甚至分钟,每刻钟的时间单位或间隔。对于快餐店,可以采用日,月,周等时间单位。依据快餐店的客流量,以周为单位测量和预测食物产品的销售量相对其它单位更能体现该行业的历史数据规律和未来趋势,在下文中以周为例进行阐述。根据本申请的实施例,历史时间和/或未来时间可以是时间点(例如第t1时刻,截至第1季度,早上10点等),也可以是连续的时间段(例如第t2段时间,第2周,第3个月,当年10月份等)。当历史时间和未来时间是时间点时,各个历史时间和/或未来时间之间的时间间隔可以是相同的,以表示在该连续的时间间隔作为周期来提取和预测历史数据和未来数据的周期性信息。当历史时间和未来时间是时间段时,该时间段的长度也可以是相同的,以作为周期来提取和预测上述历史数据和未来数据的周期性信息。

方法200首先在步骤s210中获取与历史时间序列t1对应的对象的历史数据序列101。

历史数据序列101的历史数据包括与历史时间序列t1中的历史时间ti对应的历史动态特征xi和历史值yi,其中i=1,2,…,n。历史值yi为在该历史时间ti处测量到的对象的测量值,例如产品的实际销量值。历史值是由对象的内部因素造成的,因此也可以被称为对象的内部因素或内部特征数据。历史动态特征xi为历史数据中影响对象的历史值yi的动态特征,例如包括是否是节假日,工作日的天数,距离节假日的天数或周数等中的一项或多项。历史动态特征与时间相关联,例如包括以一定周期循环地影响对象的周期性因素(也可以称为周期性历史动态特征)和非周期地影响对象的非周期性因素(也可以称为非周期性历史动态特征)。周期性因素的周期可以由历史时间序列中的各个历史时间点之间的相同的时间间隔的长度确定,或由作为相同长度的时间段的历史时间的长度来确定。非周期性因素影响对象的方式与特定的历史时间有关,或者可以说其具有随机性或者基于事件触发。在历史时间序列t1中的每个历史时间ti处,对应的非周期性因素可能不同。历史时间的数量n表示历史数据的数量或长度。

当对象包括多个部分或子对象(例如产品是包括多种产品的集合)时,历史值yi可以是多维变量或向量。同样,影响对象的历史值yi的历史动态特征xi包括多方面的因素时,该历史动态特征被认为是多种历史子动态特征的组合,历史动态特征xi也可以是多维变量或向量。历史动态特征xi和历史值yi可以组成二维向量(xi,yi)t(也可以被称为二元数据组,在下文中统一为二维向量),该二维向量中的每个子向量xi和yi都是上文中所述的多维向量。因此,历史数据序列101可以表示为二维向量的一维序列{(x1,y1)t,(x2,y2)t,…,(xn,yn)t}。

根据本申请的实施例,在历史数据101中并未加入与历史时间不相关的历史静态特征。作为编码器的第一神经网络模型110不处理历史静态数据可以减少数据和计算的冗余,提高网络模型的运算速度。

在步骤s220,使用第一神经网络模型110基于历史数据序列101完成提取与未来时间序列t2对应的对象的规律数据序列102的规律性提取功能。历史数据序列101作为第一神经网络模型110的输入,经过wavenet网络的各个卷积层的传递和计算,输出所提取的规律数据序列102。上文所述的膨胀卷积神经网络可以加速上述规律数据序列102的规律信息提取过程并改善信息的提取精度。

由于所输入的历史数据序列101中的历史动态特征xi中包括周期性动态特征和非周期性动态特征,因此在第一神经网络模型110所输出的规律数据序列102中表示的所提取的规律信息中,包括来自周期性历史动态特征的周期性规律特征ca以及来自非周期性历史动态特征的非周期性规律特征cn+j,其中j=1,2,…,m。周期性规律特征ca与周期性历史动态特征对应,以一定周期循环地影响对象的未来值yn+j,j=1,2,…,m,其例如包括以季节性、星期和/或月份等影响对象的历史值的周期性规律。由于将未来时间序列t2的未来时间ti之间的时间间隔(当未来时间为时间点时)和/或未来时间的长度(当未来时间为时间段时)设定为与历史时间序列t1中的历史时间tn+j的长度相同,因此周期性规律特征ca对于每个未来时间tn+j是相同的。与非周期性历史特征数据对应,非周期性规律特征cn+j基于特定的未来时间影响对象的未来值yn+j,因此非周期性规律特征cn+j对于未来时间序列t2中的每个对应的未来时间tn+j可能不同。m为未来时间序列t2中的未来时间的数量,表示待预测的未来数据的数量或长度。

由于历史动态特征xi中包括的周期性历史动态特征可能是多个子周期性因素的组合,因此周期性规律特征ca也包括多个子周期性规律特征,其可以表示为多维向量。根据本申请的实施例,周期性规律特征ca的维数可以与周期性历史动态特征中的子周期性历史动态特征的数量相同,或者比后者小以减小运算量。类似的,非周期性历史动态特征也可能具有多个子非周期性动态特征,因此非周期性规律特征cn+j也包括多个子非周期性规律特征,其可以表示为多维向量。非周期性规律特征cn+j的维数同样可以与非周期性历史动态特征中的子周期性历史动态特征的数量相同,或者比后者小以减小运算量。这样,规律数据序列102可以表示为由周期性规律特征ca和非周期性规律特征cn+j两个多维子向量组成其元素的二维向量的一维序列{(ca,cn+1)t,(ca,cn+2)t,…,(ca,cn+m)t}。

在预测对象的未来数据序列104中的未来值yn+j时,可能还需要考虑在未来时间影响对象的其它因素。

与历史动态特征xi类似,图1中的xn+j是与未来时间序列t2中的未来时间tn+j对应的影响对象的未来值yn+j的未来动态特征。未来动态特征xn+j例如可以是未来某个时间的促销活动,是否是节假日,工作日的天数,距离节假日的天数或周数等中的一项或多项。未来动态特征同样与时间相关联,并且可以是包括多个子未来动态特征的多维向量。未来动态特征xn+j组成多维向量的一维序列{xn+1,xn+2,…,xn+m}。

其它因素还可以包括影响对象的未来值yn+j但是与时间不相关的未来静态特征xs。未来静态特征xs可以包括对象的属性(其通常仅与对象本身有关而与未来时间无关)和与时间不相关的其它特征。例如,当对象为产品时,未来静态特征xs可以是产品的类别、产品的温度、产品的销售位置(例如以配销中心的位置表示)等,这些特征仅与对象相关联而不具有时变性。根据不相关的影响因素的数量,未来静态特征xs可以是由多个子特征组合的多维向量。

根据本申请的实施例,可以对未来静态特征xs进行进一步处理。未来静态特征xs分为不同类型,每种类型之间的相关性不同。嵌入(embedding)操作可以将稀疏的离散变量转化为连续变量。对未来静态特征按照所属的类型进行嵌入操作,例如按照地点相关特征和产品属性相关特征分为两组未来静态特征xs1和xs2,使得不同组未来静态特征之间不相关,即保持正交性,从而避免将每个具体的静态影响因素作为一个变量或向量的一个维度考虑从而降低了未来静态特征xs的整体维度,减少模型的运算量。在图1中,未来静态特征组xs1中包括多维的未来静态特征e1,可以在每个未来时间tn+j影响对象,而未来静态特征组xs2中包括多维的未来静态特征e2,同样可以在每个未来时间tn+j影响对象。根据具体情况,未来静态特征或未来静态特征组的数量可以是0个,1个或更多个。每个未来静态特征中包括的具体特征的数量决定其维数可以是1个或更多个。

未来静态特征xs组成0维、一维或多维向量作为元素的长度为m的一维序列{xs,xs,…,xs}。以图1中的实施例为例,该一维序列可以表示为{(e1,e2)t,(e1,e2)t,…,(e1,e2)t}。

上文描述了具有四个部分的可以影响对象的未来数据yn+j的影响因素。在方法200的步骤s230中,可以基于规律数据序列102、与未来时间序列对应的对象的未来动态特征序列、以及对象的未来静态特征生成预测特征数据序列103。该生成过程可以通过将四种影响因素的一维序列拼接完成,形成以多维(例如4维)向量(或者可以称为四元数据组)为元素的一维的预测特征数据序列103。以图1中所示,该一维序列103可以表示为{(ca,cn+1,e1,e2,xn+1)t,(ca,cn+2,e1,e2,xn+2)t,…,(ca,cn+m,e1,e2,xn+m)t}。

在接下来的步骤s240中,预测特征数据序列103被输入到第二神经网络模型120中,通过诸如多层感知器mlp网络的解码器的传递和运算,完成预测与未来时间序列t2对应的未来数据序列104,即{yn+1,yn+2,…,yn+m}的预测功能。未来数据序列104中的每个所预测的对象的未来值yn+j是与历史值yi具有相同维度的多维向量。

根据本申请的实施例的方法200还可选地包括在使用分别作为编码器和解码器网络的第一和第二神经网络模型110和120中的至少一个之前,使用训练数据集对神经网络模型进行训练以确定模型的最优参数的步骤s250。神经网络模型的参数在训练完成后的使用期间可以是不变的,也可以在使用一段时间后或者以预定的周期基于新的数据集更新或调整,还可以采用在线监督的方式实时更新模型参数。

图3示出根据本申请的实施例的用于时间序列预测的装置300的示例性结构。装置300包括历史数据获取单元310,规律提取单元320,预测特征生成单元330和预测单元340。

历史数据获取单元310用于获取与历史时间序列t1对应的对象的历史数据序列101。历史数据序列101中的历史数据包括与历史时间序列t1中的历史时间ti对应的与时间相关联的历史动态特征xi,以及对象的历史值yi。

规律提取单元320中包括例如作为seq2seq神经网络模型中的编码器网络以提取历史数据规律性的第一神经网络模型110。该单元用于使用该神经网络模型从历史数据获取单元310提供的历史数据序列101中提取与未来时间序列t2对应的对象的规律数据序列102。规律数据序列102中包括与未来时间序列t2的未来时间tn+j对应的对象的周期性规律特征ca和与对应的未来时间相关联的非周期性规律特征cn+j。在seq2seq神经网络模型结构中,编码器网络可以选择诸如wavenet网络的序列数据网络模型,并可以进一步采用诸如膨胀卷积网络的结构加快信息传递和计算。

预测特征生成单元330用于将规律提取单元320输出的规律数据序列102、与未来时间序列t2中的未来时间tn+j对应的未来动态特征xn+j组成的未来动态特征序列、以及未来静态特征xs组合以生成预测特征数据序列103。未来动态特征xn+j与未来时间tn+j相关联。在生成预测特征数据序列103的过程中,预测特征生成单元330还可以进一步对静态特征xs分组以使各组静态特征之间正交化,从而降低预测特征数据序列的每个数据元素的向量维度。

预测单元340包括例如作为seq2seq神经网络模型中的解码器网络以预测对象的未来值的第二神经网络模型120。该单元340用于使用该第二神经网络模型120从来自预测特征生成单元330的预测特征数据序列103预测与未来时间序列t2对应的对象的未来数据序列104。第二神经网络模型120可以使用诸如多层感知mlp网络的卷积神经网络。

装置300还可选地包括模型训练单元350,用于在使用上述提取单元320和预测单元340中的神经网络模型之前对相应的神经网络模型进行训练以确定模型的最优参数,并且可以监督或更新模型的参数。

对于各个单元所完成功能的具体细节中与上述用于时间序列预测的方法200中相同或相似的部分不再详述。

对于根据本申请的实施例的时间序列预测方法和装置,进行了如下实验以与已有的时间序列预测方案比较性能。

该实验在餐饮行业中的产品预测场景下进行,测试任务要求预测在未来1-4周的每个产品(对象)在每个配销中心的销售量。测试数据集针对大约20个配销中心,平均每个配销中心包括约200个产品。在产品销售量的历史数据中,最长是128周,最短是1周。测试任务涉及在预测中考虑23个动态影响因素(例如是否是节假日、工作日的天数、距离春节的周数等)和7个静态影响因素(例如产品的归类、温度、配销中心的位置等)。

表1示出采用不同时间序列预测方法的模型的训练时间、预测时间和预测误差。其中使用seq2seq神经网络模型的深度学习方法需要大量的浮点运算,比传统统计学算法prophet多使用一个图形处理单元gpu加速计算。

表1

从结果可知,采用根据本申请的实施例的wavenet-mlpseq2seq2(wavenet网络作为编码器,mlp网络作为解码器)的方案的预测精度(误差)优于传统统计学算法,也优于采用seq2seq神经网络模型结构但是编码器和解码器网络都采用lstm网络模型的方案。在预测时间上来看,使用神经网络模型的方案比传统的统计学算法速度更快;而在同为神经网络模型的方案之间,本申请的wavenet-mlpseq2seq神经网络模型结构的训练时间显著降低。

由此,根据本申请的实施例的时间序列预测方法和装置的优点在于以下的诸多方面:分别使用诸如wavenet网络和mlp网络的两个神经网络模型作为编码器和解码器网络,可以使历史数据序列、未来数据序列在对应的历史时间序列的不同历史时间处和未来时间序列的不同未来时间处的计算并行进行,从而提高模型训练和使用的速度;使用诸如wavenet网络的神经网络模型作为编码器,特别是膨胀卷积网络结构,减少了对象的历史数据序列中的信息从第一个历史时间到最后一个历史时间处的传递路径,避免在神经网络的训练过程中的梯度消失和梯度爆炸,从而可以进行长距离的时间序列预测;仅将不随时间变化的影响因素在作为解码器部分的第二神经网络模型的输入处引入,避免在编码器网络的每个时间点处复制和计算从而减少数据和计算的冗余;对于不随时间变化的诸如静态特征的影响因素进行嵌入分组,使得降低输入数据维度的同时保持了影响因素之间的正交性。

应当注意,尽管在上文详细描述中提及了用于时间序列预测的装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

在本申请的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述用于时间序列预测的方法的步骤。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书用于时间序列预测的方法中描述的根据本申请各种示例性实施例的步骤。

根据本申请的实施例的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

在本申请的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中的用于时间序列预测的方法的步骤。

所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图4来描述根据本申请的这种实施方式的电子设备400。图4显示的电子设备400仅仅是一个示例,不应对本申请的实施例的功能和使用范围带来任何限制。

如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书用于自动时间序列预测的方法中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图2中所示的步骤。

所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(rom)4203。

所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请的实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请的实施方式的用于时间序列预测的方法。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1