一种预测模型的训练方法、装置、电子设备及存储介质与流程

文档序号:31721183发布日期:2022-10-04 23:19阅读:65来源:国知局
一种预测模型的训练方法、装置、电子设备及存储介质与流程

1.本技术属于互联网技术领域,尤其涉及一种预测模型的训练方法、装置、电子设备及存储介质。


背景技术:

2.随着信息技术的发展,在智能运维领域,分析历史指标数据,解析其内在时序模式,并对未来走向做出预测至关重要。这类时序数据通常有一列时间戳和其对应的多元向量数值组成。时间序列预测在智能运维中的应用场景,可以包括网络吞吐率,磁盘占用率和业务量预测等。
3.目前,对于时序数据的预测方法主要分为传统的统计分析方法,以及深度学习类序列建模方法。然而,现有的时间序列预测方法往往基于大量数据分布的假设,并且仅对时序数据的线性关系进行分析和捕捉,数据预测的准确率低。


技术实现要素:

4.本技术实施例提供一种预测模型的训练方法、装置、电子设备及存储介质,能够解决目前数据预测的准确率低的问题。
5.第一方面,本技术实施例提供一种预测模型的训练方法,该方法包括:
6.获取原始时序数据;
7.对原始时序数据进行预处理,得到外生变量,外生变量用于表征将原始时序数据对应的周期性数据延伸第一预设时间段;
8.将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据;
9.根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。
10.第二方面,本技术实施例提供一种预测模型的训练装置,预测模型的训练装置包括:
11.获取模块,用于获取原始时序数据;
12.预处理模块,用于对原始时序数据进行预处理,得到外生变量,外生变量用于表征将原始时序数据对应的周期性数据延伸第一预设时间段;
13.输入模块,用于将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据;
14.训练模块,用于根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。
15.第三方面,本技术实施例提供了一种电子设备,该设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时,实现如第一方面或者第一方面的任一可能实现方式中的方法。
16.第四方面,本技术实施例提供了一种可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面或者第一方面的任一可能实现方式中的方法。
17.本技术实施例中,通过对原始时序数据进行预处理,得到用于表征将原始时序数据对应的周期性数据延伸第一预设时间段的外生变量,这里,能够将原始时序数据对应的周期性数据融入至外生变量中,便于在后续的预测过程中,融入实际使用场景下的领域特征信息。然后,将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据,由于外生变量为从原始时序数据中提取的信息,在模型的推理过程中无需再进行自回归式的推理,能够实现多水平的并行的推理过程,能够加速推理速度。最后,根据预测时序数据和预设时序数据训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。由此,训练好的预测模型能够快速准确地预测原始时序数据对应的预测时序数据。
附图说明
18.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的一种预测模型的训练方法的流程图;
20.图2是本技术实施例提供的一种预处理过程的示意图;
21.图3是本技术实施例提供的一种预测模型的结构示意图;
22.图4是本技术实施例提供的一种生成对抗网络的结构示意图;
23.图5是本技术实施例提供的一种预测模型的训练装置的结构示意图;
24.图6是本技术实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
25.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本技术,并不被配置为限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
26.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
27.下面对本技术涉及到的技术术语进行简要介绍。
28.吞吐率原指一个业务系统在单位时间内提供的产量,或服务量。在计算机或数据通信系统,指的是单位时间内通过某通信信道或某个节点成功交付数据的平均速率,通常以每秒比特数(bits per second,bps)为单位。
29.cpu使用率其实就是运行的程序占用的中央处理器(central processing unit,cpu)资源,表示机器在某个时间点的运行程序的情况。使用率越高,说明机器在这个时间上运行了很多程序,反之较少。使用率的高低与cpu强弱有直接关系。
30.长短期记忆网络(long short-term memory,lstm)是一种时间循环神经网络,是为了解决一般的循环神经网络存在的长期依赖问题而专门设计出来的,所有的循环神经网络都具有一种重复神经网络模块的链式形式。
31.transformer,使用全注意力机制的结构代替了lstm,抛弃了之前传统的encoder-decoder模型必须结合卷积神经网络(convolutional neural networks,cnn)或者循环神经网络(recurrent neural network,rnn)的固有模式。在减少计算量和提高并行效率的同时还取得了更好的结果。transformer模型摒弃了序列化建模的思想,将自注意力机制作为深度模型的内核,从而使并行化训练成为可能,并有效缓解了回归式神经网络在训练阶段的错误累积效应。
32.其中,自注意力机制是transformer中关键的一个概念。自注意力机制,顾名思义,指的是数据的内部元素之间发生的attention机制。显然,self-attention更容易长距离的相互依赖的特征,因为如果是rnn或lstm需要根据时间序列计算目标(target),对于远距离的相互依赖的特征,要经过若干时间步的信息累积才能将两者联系起来,而距离越远,有效信息也就越难提取。但是,self-attention在计算过程中直接将任意两个target之间的联系通过一个计算结果直接表示,远距离依赖特征之间的距离被极大缩短,有利于有效地利用这些特征。
33.prophet,是一种基于加性模型预测时间序列数据的方法,其中非线性趋势与年、周、日的季节性变化以及假日效应相吻合。它适合具有强烈季节性影响和多个季节历史数据的时间序列。
34.外生变量,它是只对系统产生影响而不受系统的影响。在经济计量模型中,外生变量是与模型的随机扰动项不相关的变量。通常,描述影响经济系统运行的,技术、政治、制度、自然条件等外部因素的变量都是外生变量。
35.本技术实施例提供的预测模型的训练方法至少可以应用于下述应用场景中,下面进行说明。
36.随着信息技术的发展,保障数字化系统的稳定性成为了企业的刚需。在智能运维领域,分析历史指标数据,解析其内在时序模式,并对未来走向做出预测至关重要。
37.这类数据通常有一列时间戳和其对应的多元向量数值组成。时间序列预测在智能运维中的应用场景,可以包括网络吞吐率,磁盘占用率,cpu使用率预测,业务量预测,虚拟系统容量预测等。时间序列预测技术是作为智能运维技术领域中一部分基石的存在。
38.成熟的时间预测技术可以作为其他智能运维技术,如异常检测,根因分析等中间件,从而提升其对应的性能。其中,根因分析是一项结构化的问题处理法,用以逐步找出问题的根本原因并加以解决,而不是仅仅关注问题的表征。
39.现有的时间序列预测方法主要分为传统的统计分析方法,以及近年来兴起的深度
学习类序列建模方法如循环神经网络。然而,传统的统计分析方法,往往基于大量数据分布的假设,并且仅对时序数据的线性关系进行分析和捕捉,缺乏泛用性和延展性。现有的深度学习类序列建模方法虽然能够捕捉复杂的高阶规律,但是存在如下问题:
40.首先,模型在推理阶段依赖自回归,使得长序列预测变的不可行。其次,模型的时间复杂度过高,难以在工业上大规模部署。接着,模型的不稳定性高,尤其是对序列回归式的建模,如rnn类模型,此类问题尤为显著。最后,深度模型难以编码使用者的领域知识,使得模型缺少实际经验的约束从而易于过拟合。
41.现有的深度学习类序列建模方法,依旧存在难以并行化训练和错误累积的问题,从而使大规模工业部署成为工业技术领域的痛点。
42.transformer有效的提升了序列模型的性能,在神经语言程序学(neuro-linguistic programming,nlp)领域和图像领域有了广泛的研究热度,但是对于时间序列类数据,由于序列往往远长于nlp任务的序列,transformer仍然有在长时间序列上计算效率过低的问题,以及其在推理阶段依旧属于自回归式的计算,在推理阶段依旧有错误累积效应,从而给其工业上的落地带来了极大的挑战。
43.图1是本技术实施例提供的一种预测模型的训练方法的流程图。
44.如图1所示,该预测模型的训练方法可以包括步骤110-步骤140,该方法应用于预测模型的训练装置,具体如下所示:
45.步骤110,获取原始时序数据。
46.步骤120,对原始时序数据进行预处理,得到外生变量,外生变量用于表征将原始时序数据对应的周期性数据延伸第一预设时间段。
47.步骤130,将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据。
48.步骤140,根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型,预测时序数据的时序信息与预设时序数据的时序信息相匹配。
49.本技术实施例中,通过对原始时序数据进行预处理,得到用于表征将原始时序数据对应的周期性数据延伸第一预设时间段的外生变量,这里,能够将原始时序数据对应的周期性数据融入至外生变量中,便于在后续的预测过程中,融入实际使用场景下的领域特征信息。然后,将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据,由于外生变量为从原始时序数据中提取的信息,在模型的推理过程中无需再进行自回归式的推理,能够实现多水平的并行的推理过程,能够加速推理速度。最后,根据预测时序数据和预设时序数据训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。由此,训练好的预测模型能够快速准确地预测原始时序数据对应的预测时序数据。
50.下面,对步骤110-步骤140的内容分别进行描述:
51.涉及步骤110。
52.获取原始时序数据。
53.其中,原始时序数据是与时间序列相关的数据,比如:与时间序列对应的网络吞吐率,与时间序列对应的磁盘占用率和与时间序列对应的cpu使用率等。
54.涉及步骤120。
55.对原始时序数据进行预处理,得到外生变量,外生变量用于表征将原始时序数据对应的周期性数据延伸第一预设时间段。
56.其中,原始时序数据对应原始时间段,第一预设时间段在原始时间段之后。
57.利用prophet模型的泛用性,可以实现简单易用的数据预处理,得到外生变量,外生变量是根据原始时序数据中的周期性信息确定的,所以外生变量中携带一些节假日信息,使得使用者可以轻松的将其了解的周期性,节假日信息融入数据的预处理过程中。
58.本技术将prophet算法提取出的周期项延伸到预测长度作为外生时间序列的技术,无需考虑masking机制,并且由于外生变量为从原始时序数据中提取的信息,在推理阶段无需再自回归式的推理,能够达到多水平并行的同时推理,极大的加速了推理速度,并且由于模型摒弃了自回归式的推理,模型不再受错误累积问题的困扰。
59.在一种可能的实施例中,步骤120,具体可以包括以下步骤:
60.确定原始时序数据的关联信息,关联信息包括:原始时序数据中的变点标注信息和节假日信息;
61.根据原始时序数据和关联信息,确定第一时序数据;
62.将第一时序数据输入至时序分解器,得到外生变量。
63.其中,变点标注信息为对原始时序数据进行自动标注得到的标记点信息,用于标注原始时序数据中的跳变和突变。
64.为了解决目前存在的,难以将领域内知识,编码于深度模型的问题,采用基于通过时间序列分解的算法prophet,通过整合从业人员对数据本身的知识来提取时序数据的周期性信息,并将周期性信息作为外生变量,输入后续的预设模型,使得深度学习模型学习到更准确的周期性信息。
65.首先,采集原始时序数据,并在原始时序数据中选择原始时序数据的关联信息,关联信息包括原始时序数据相关的变点标注和节假日相关信息。
66.其中,时序分解器,用于输入已知的时间序列的时间戳和相应的值,输入需要预测的时间序列的长度;输出未来的时间序列走势。时序分解器的输出结果可以提供必要的统计指标,包括拟合曲线,上界和下界等。
67.其中,上述涉及到的将第一时序数据输入至时序分解器,得到外生变量的步骤中,具体可以包括以下步骤:
68.将第一时序数据,输入至时序分解器,提取关联信息对应的n阶傅立叶级数对应的参数,n为正整数;
69.对参数进行数值模拟,得到外生变量。
70.将第一时序数据,输入至时序分解器,通过prophet时序分解算法得到数据的周期性信息的傅立叶级数表达,即其n阶傅立叶级数所对应的参数。
71.通过prophet时序分解算法所解析出的傅立叶级数的参数进行数值模拟,从而将原始时序数据所对应的周期性数据延伸到要预测的水平,即原始时序数据所对应的外生变量。
72.具体地,如图2所示,prophet时序分解器的输入是标注了关联信息的原始时序数据,即第一时序数据,y[1:t0],时序分解器的输出是外生变量,即x[t1:t1+tau]。
[0073]
其中,令原始时序数据长度为t0,维度为d的时间序列。
[0074]
prophet算法将d维时间序列的每一个维度看作一维分别处理,通过一个对时间上的回归得到对时间序列的分解:y(t)=g(t)+s(t)+h(t)+∈
t

[0075]
其中,g(t),s(t),h(t)分别为趋势项,周期项,节假日项,∈
t
被假设为一个参数化高斯。通过对g(t),s(t),h(t)共同的回归后,周期项s(t)的参数为本方法提取出的季节性信息。
[0076]
这里,具体可以根据周期项s(t),确定外生变量。
[0077]
其中,g(t)表示趋势项,它表示时间序列在非周期上面的变化趋势;
[0078]
s(t)表示周期项,或者称为季节项,一般来说是以周或者年为单位;
[0079]
h(t)表示节假日项,表示时间序列中那些潜在的具有非固定周期的节假日对预测值造成的影响;
[0080]
即误差项或者称为剩余项,表示模型未预测到的波动,服从高斯分布;
[0081]
prophet算法就是通过拟合这几项,然后最后把它们累加起来就得到了时间序列的预测值。
[0082]
具体的,g(t)=(k+a(t)
t
δ)t+(m+a(t)
t
γ)。其中k是线性趋势的生长率,a(t)是一个反应趋势变点信息的向量函数,δ向量反应了每个变点所对应的速率调整,m是一个偏距参数,γj被设置为-sjδj,这里sj代表第j个变点所对应的时间,这样的设置使得g(t)成为一个连续函数。
[0083]
可以基于对数据和prophet的理解手动设置断点sj,也可以通过给定一系列潜在断点交给算法自动选择,从而可以融合专业知识。
[0084]
让算法自动选择断点可以通过令δj服从拉普拉斯先验分布laplace(0,v。超参数v被用于控制模型在学习变点速率上的灵活性。在实现上需要注意的是,prophet仅作为预处理的周期型信息提取器,无需考虑预测情j>t的情况。具体的,本技术中的prophet仅用来拟合与提供外生变量。
[0085]
对于周期信息
[0086]
其中,p为实践者所提供的周期型信息,比如当时间序列存在周周期时,p=30,n作为一个超参数控制傅立叶级数的阶数。an和bn是预设系数。
[0087]
β=[a1,b1,...,an,bn]为傅立叶级数所对应的参数,通过prophet的拟合可以学习到,从而得到对时间的周期型函数s(t),从而得到外生变量:x=[s(1),s(t0+1),...,s(t0+τ)],作为对本技术解码器的输入。
[0088]
在实现上,β服从高斯先验分布normal(0,σ2)。其中σ2作为一个控制β平滑程度的超参数,可以起到l2正则化的效果。
[0089]
对于节假日信息的建模,对每一个节假日i,令di为节假日i所影响的时间集合,令z(t)=[i(t∈d1),...,i(t∈d
l
)],其中i为indicator函数,并且令h(t)=z(t)
t
k,参数k代表节假日对拟合的影响,同样的k~normal(0,γ2)
[0090]
基于prophet的预处理过程可以通过最大后验分布(max a posterior,map)来学习其对应参数。通过对∈
t
做高斯分布假设,此生成模型所对应的map存在一个闭式表达,以便可以使用诸多数值优化软件求解此优化问题。
[0091]
其中,在贝叶斯统计学中,“最大后验概率估计”是后验概率分布的众数。利用最大后验概率估计可以获得对实验数据中无法直接观察到的量的点估计。它与最大似然估计中的经典方法有密切关系,但是它使用了一个增广的优化目标,进一步考虑了被估计量的先验概率分布。所以最大后验概率估计可以看作是规则化的最大似然估计。
[0092]
涉及步骤130。
[0093]
将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据。
[0094]
相对于朴素transformer在多元时间序列预测问题上的低效问题上,本技术采用多路局部敏感哈希函数加速了qk^t的矩阵运算。令模型有更短的训练时间和推理时间。
[0095]
在一种可能的实施例中,步骤130,具体可以包括以下步骤:
[0096]
将原始时序数据和外生变量输入至预设模型,基于局部敏感哈希函数,对原始时序数据进行处理,得到第二时序数据;
[0097]
根据外生变量和第二时序数据,确定全局隐性特征;
[0098]
根据全局隐形特征、外生变量和第二时序数据,确定与第一预设时间段对应的预测时序数据。
[0099]
其中,全局隐形特征用于表征原始时序数据中的隐形特征。
[0100]
其中,预设模型包括:稀疏自注意力子模块、前向链接网络子模块和网络残差链接结构,相应地,步骤130,,具体可以包括以下步骤:
[0101]
根据外生变量和第二时序数据,确定全局隐性特征;
[0102]
根据全局隐形特征、外生变量和第二时序数据,确定预测时序数据,包括:
[0103]
将所述原始时序输入至所述稀疏自注意力子模块,基于局部敏感哈希函数,对所述原始时序数据进行处理,得到所述第二时序数据;
[0104]
将所述外生变量和所述第二时序数据,输入至所述前向链接网络子模块,捕捉所述全局隐性特征;
[0105]
通过所述网络残差链接结构,连接所述全局隐形特征、所述外生变量和所述第二时序数据,得到所述预测时序数据。
[0106]
首先,在上述涉及到的基于局部敏感哈希函数,对原始时序数据进行处理,得到第二时序数据的步骤之前,还可以包括以下步骤:
[0107]
根据外生变量,确定查询矩阵和键矩阵;
[0108]
根据查询矩阵和键矩阵,确定局部敏感哈希函数。
[0109]
一种基于局部敏感哈希函数(local sensitive hashing function,lsh)的稀疏自注意力子模块。由于朴素transformer中的多头点积自注意力机制需要计算查询矩阵q和键矩阵k的乘积qk
t
,随着时间序列的长度增加,这样的计算逐渐变的低效。其中,qk
t
是指查询矩阵乘键矩阵的转置。
[0110]
其中,查询矩阵q和键矩阵k是根据外生变量和第一时序数据确定。
[0111]
其中,局部敏感哈希函数,能够快速在高维空间中找到最近邻。一个局部敏感哈希算法可以将每个向量x转换为hashh(x),和这个向量x靠近的哈希更有可能有着相同的哈希值,而距离远的则不会。
[0112]
本技术为了简化点积自注意力的计算,采用共享q,k矩阵的方式,并对每一个查询
向量qi,仅对其邻近的键向量kj计算点积。
[0113]
其中,在高维空间中的邻近与否由本地敏感哈希函数h确定,当qi与kj同属一个哈希值时,才会有qi和kj的点积运算。哈希函数则是基于随机投影;
[0114]
若qi,kj均为dk维度的向量,则选取一个维度为(dk,b/2)的随机矩阵r,那么本地敏感哈希函数则被定义为h(x)=argmax([xr;-xr])。
[0115]
其中[u;v]被定义为向量u和向量v的粘合。其中,dk是原始数据的维度,b是预设的参数,x是预设的系数。dk是原始时序数据的数据维度。
[0116]
由此,可以根据查询矩阵和键矩阵,确定局部敏感哈希函数的表达式。
[0117]
其次,上述涉及到的根据外生变量和第二时序数据,确定全局隐性特征的步骤中,具体可以包括以下步骤:
[0118]
根据原始时序数据的数据维度,确定随机矩阵;
[0119]
根据随机矩阵,确定权重参数矩阵和偏差参数向量;
[0120]
根据权重参数矩阵和偏差参数向量对外生变量和第二时序数据,进行计算,得到全局隐性特征。
[0121]
前向链接网络子模块,用于捕捉多维时间序列的全局隐性特征。
[0122]
对于此前向链接网络子模块的输入此子模块利用内置的权重参数矩阵和偏差参数向量b∈r1×n去计算output=f(rw+b),output是全局隐性特征。
[0123]
其中,上述涉及到的权重参数矩阵和偏差参数向量是根据随机矩阵确定的。
[0124]
其中,前向链接网络子模块的输入,可以包括:基于局部敏感哈希函数对所述原始时序数据进行处理得到的第二时序数据,以及外生变量。
[0125]
其中函数f为网络的非线性激活函数,f可以被采用为relu函数f(x)=max(0,x)。
[0126]
即在rw+b大于0的情况下,全局隐性特征为rw+b;在rw+b小于0的情况下,全局隐性特征为全局隐性特征0。在rw+b大于0的情况下,全局隐性特征为0。
[0127]
最后,根据全局隐形特征、外生变量和第二时序数据,确定预测时序数据。
[0128]
通过所述网络残差链接结构,连接全局隐形特征、外生变量和第二时序数据,得到与第一预设时间段对应的预测时序数据。
[0129]
其中,网络残差链接结构,能够用于加速网络的训练。对于每一个子模块m的输入x,经过残差链接后其输出为m(x)+x。
[0130]
需要注意的是,本技术同样舍弃了朴素transformer架构中的layer norm层,且时序数据无需使用位置编码。
[0131]
其中,上述涉及到的预设模型包括编码器和解码器,编码器用于对步骤120输出的内容进行编译处理,以便加快数据处理过程,解码器的输入是编译处理后的外生变量和第一时序数据,或者编译处理后的外生变量和原始时序数据。
[0132]
为了解决朴素transformer中基于点积的自注意力模块高时间复杂度的问题,本技术基于局部敏感哈希函数,将朴素transformer中的点积自注意力模块修改为稀疏自注意力模块。
[0133]
为了解决传统时序模型中推理阶段低效自回归的问题,将预处理过程中得到的外
生变量当作解码器的输入,使得解码器在推理阶段同样可以多水平的,并行的预测所需的时序长度,并且无需使用朴素attention解码器中的masking机制防止训练阶段的信息泄露,有效的解决了自回归预测中的错误积累问题。
[0134]
具体的,如图3所示,transformer层包括编码器的n级结构,和解码器的m级结构。
[0135]
将原始时序数据输入至编码器,经过局部敏感哈希子注意力的n个累积,输入至解码器中,解码器的输入包括外生变量、编码器的输入,经过局部敏感哈希子注意力的m个累积,得到与第一预设时间段对应的预测时序数据,最后将预测时序数据输入至生成对抗网络。其中,transformer层相当于生成对抗网络的生成器。
[0136]
此transformer的编码器,具体可以包括:
[0137]
稀疏自注意力子模块、前向链接网络子模块和网络残差链接结构,用于实现上述步骤130。
[0138]
对于其对应的解码器,除了同样具有编码器对应的稀疏自注意力子模块、前向链接网络子模块和网络残差链接结构之外,还有如下改动:
[0139]
不同于朴素transformer将输入直接右移当作解码器的输入,本技术的解码器将预处理阶段得到的外生变量作为解码器的输入,使得解码器无需使用masking机制防止信息泄露,因为周期性数据信息被当作了原始时间序列的外生变量,从而简化实现。且在推理阶段亦可以并行化的多水平预测,从而摒弃了朴素transformer在推理阶段自回归的结构,极大的加速了推理速度。
[0140]
解码器除了包括用于处理上层输入的稀疏注意力模块,此解码器还有额外的稀疏自注意力模块,其对应的v,k,q矩阵均来自于编码器输出的隐变量和上层隐变量的整合。使得解码器可以得到输入层隐变量的注意力信息。
[0141]
其中,注意力信息是编码器的输出内容,解码器的输入内容。
[0142]
为了高效且并行化的实现基于多回局部哈希敏感自注意力机制。n
rounds
为控制lsh回数的超参数,表示利用n
rounds
个不同个哈希函数并行的计算哈希值,以此来减少相似的qi,kj无法被映射到同一哈希值的可能性。具体的,对每一个hr,其对应的随机矩阵r独立于其他哈希函数。
[0143]
对于朴素的自注意力计算,对每个查询qi,令表示为查询qi所涉及的时间位置的集合。
[0144]
以使用masking的自注意力为例,其为得到其相关的注意力向量:
[0145][0146]
其中,oi为注意力向量,pi为查询矩阵,kj为键矩阵,z是运算的中间量。这样的公式规划会令接下来的基于并行计算的实现更为容易。
[0147]
其中,i用于表示第i个隐变量在编码器中所对应信息的位置,j用于表示第j个隐变量在解码器中的位置。
[0148]
这里,用编码器编译后的信息,计算隐变量,并根据隐变量计算注意力向量oi,并
对注意力向量oi进行数学运算,并输入至解码器中。
[0149]
对于多路局部敏感哈希,pi的基数被极大的缩小:的基数被极大的缩小:
[0150]
同时,为了并行化的实现,需要对每个查询qi基于哈希值和序列位置进行排序i

si,并对排序后的矩阵连续均分为m块,由此即可多批量并行化的计算。
[0151]
这里,对每回哈希函数:
[0152]
则每个注意力向量可以写作
[0153]
其中,
[0154]
以及
[0155]
这里,将注意力向量拆解为m份,由此每一回的注意力向量都可以独立的并行计算。当前的深度学习框架(如pytorch或tensorflow等),可以方便的搭建上述所描述的计算图。
[0156]
这里,一方面,由于采用了局部敏感哈希,另一方面由于采用相关性强的运算计算查询向量和键向量的点积,即上述涉及到的对于查询向量qi,仅对其邻近的键向量kj计算点积,可以实现相对于朴素transformer在计算效率上的进一步加速。
[0157]
涉及步骤140。
[0158]
根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型,预测时序数据的时序信息与预设时序数据的时序信息相匹配。
[0159]
其中,预设时序数据对应第一时间段,即预设时序数据是从真实的样本数据确定的,在原始时序数据之后的时序数据。
[0160]
比如:原始时序数据对应第一周,预设时序数据对应第二周,预测时序数据对应第二周,原始时序数据和预设时序数据都是从真实的样本数据中提取得到。
[0161]
预设训练条件可以是预设模型满足预设收敛条件,或者,根据预测时序数据和预设时序数据确定的损失值小于预设损失值。
[0162]
本技术采用对抗式训练,使得模型拥有捕捉时间序列中序列级时序关系的能力。通过对模型的对抗式训练,相对于传统模型,本技术采用的模型泛用性更强,更不容易过拟合。
[0163]
在一种可能的实施例中,步骤140,具体可以包括以下步骤:
[0164]
根据预测时序数据和预设时序数据,计算对抗损失值和均方损失值;
[0165]
根据对抗损失值和均方损失值,训练预设模型,直至预设模型满足预设训练条件,得到预测模型。
[0166]
其中,预设时序数据对应第一预设时间段。
[0167]
预设模型包括生成器和鉴别器,所述生成器用于生成所述预测时序数据,所述鉴别器用于根据所述预测时序数据和所述预设时序数据计算损失值。
[0168]
基于点积的自注意力机制仅能捕捉多维时间序列之间的点与点的时序关系,无法捕捉到序列级别的时序关系,从而影响到模型最终的性能。本技术采用了一种基于生成对抗网络的对抗式损失函数(gan loss),配合均方误差损失函数(mse)对模型可学习参数进行额外的规约,使得其能够学习到序列级别的时序关系。
[0169]
预设模型包含一个由两层前向神经网络所构成的鉴别器,用于分类真实序列y
real
与从transformer(其对应的生成器)所得到的生成序列y
fake

[0170]
令d为鉴别器,当输入为y
real
时输出1,反之输出0。
[0171]
其中,上述涉及到的根据预测时序数据和预设时序数据,计算对抗损失值和均方损失值的步骤中,具体可以包括以下步骤:
[0172]
根据预测时序数据和预设时序数据,计算均方损失值;
[0173]
根据预测时序数据和原始时序数据,确定第一预测时序数据;
[0174]
根据预设时序数据和原始时序数据,确定第一预设时序数据;
[0175]
根据第一预测时序数据和第一预设时序数据,计算对抗损失值。
[0176]
令transformer的输入为所输出的长度为τ的预测为所输出的长度为τ的预测为即预测时序数据。
[0177]
则其中[a;b]表示将向量a,b整合成一个向量。其中,第一预测时序数据是y
fake

[0178]
令则模型的对抗式损失函数为ladv(θg,θd)=e[log(d(y
real
))]+e[log(d(y
fake
))]。其中,第一预设时序数据是y
real

[0179]
其中,θg为生成器参数,θd为判别器参数,e为数学期望。
[0180]
令g为我们上文描述的transformer生成器,模型的均方损失函数为
[0181]
其中,yi是预设时序数据,是预测时序数据。
[0182]
则l
mse
与l
adv
为互相对抗的损失函数,模型的优化问题便转换为了minmax问题:argmingmaxdλl
adv
(θg,θd)+l
p
(θg),其中λ为一个取舍超参数,取之范围为[0,1]。此模块具体架构见图4。
[0183]
这里的训练目的是使得l
mse
与l
adv
都逐渐减小,直至达到预设训练条件。
[0184]
如图4所示,将原始时序数据和外生变量输入至生成器,通过生成其中的编码器和解码器的运算,得到与第一预设时间段对应的预测时序数据,根据预测时序数据和预设时序数据,计算均方损失值。
[0185]
然后,根据预测时序数据和原始时序数据,确定第一预测时序数据;根据预设时序数据和原始时序数据,确定第一预设时序数据,根据第一预测时序数据和第一预设时序数
据,计算对抗损失值。
[0186]
其中,鉴别器有两层前向神经网络构成。在模型的训练阶段,鉴别器有50%的概率接收到真实的多元时间序列y
real
,0%的概率接收到由生成器(上游transformer模型)所生成的y
fake

[0187]
可以使用pytorch,tensorflow等框架方便的求得生成器和鉴别器的梯度,并使用adam等优化器对模型参数进行学习。具体的,对生成器g的梯度可以表示为:
[0188][0189]
其中,为梯度计算,为数学期望计算。
[0190]
对鉴别器d的梯度可以表示为
[0191][0192]
通过深度学习框架的自动微分图功能,实践者可以轻松的实现如上梯度的计算。可选择的,实践者可以选择对模型参数的l1正则化或者l2正则化。对l
p
的正则化训练,生成器和鉴别器的梯度分别为
[0193][0194][0195]
其中,α,β分别为正则化的强度。
[0196]
在一种可能的实施例中,在步骤140之后,还可以包括以下步骤:
[0197]
获取第三时序数据;
[0198]
对第三时序数据进行预处理,得到第三时序数据对应的外生变量,外生变量用于表征将第三时序数据所对应的周期性数据延伸第二预设时间段;
[0199]
将第三时序数据,和第三时序数据对应的外生变量输入至预测模型中,得到与第二预设时间段对应的第四时序数据,第四时序数据的时序信息,与第三时序数据对应的外生变量的时序信息相匹配。
[0200]
在得到预测模型之后,可以通过预设模型对带预测的数据进行预测的应用。具体可以对待处理的第三时序数据进行预测,对第三时序数据进行预处理,得到第三时序数据对应的外生变量,将第三时序数据和外生变量输入至预测模型中,得到与第二预设时间段对应的第四时序数据。
[0201]
预测模型预测到的第四时序数据具体可以用于以下方面:
[0202]
第一,运维监控数据的预测。运维监控目标一般包括硬件监控,系统监控,应用监控,网络监控,流量分析,日志监控,安全监控,api监控,性能监控等任务。最常见的如cpu、磁盘的使用率,当磁盘、cpu的容量占用较高时,可能会降低应用或者系统的运行性能,甚至造成事故。
[0203]
算法可以学习各指标历史数据的增长情况,对未来一段时间的指标情况进行预测,一旦发现在临近的某个时间点指标值将超过警报线时,将予以发出告警,通过对运维数据的预测实现提前告警,减少系统宕机率,以保证it系统的高效稳定运行。
[0204]
第二,容量规划问题。容量规划实际上就是运用一些策略对系统容量进行预估的
过程,如预测未来的负载水平在何时会使系统饱和,动态扩展容器pod数目、数据量、带宽、用户规模、网盘容量、cpu容量等。在企业中,每个业务都由一系列不同的系统来提供服务,每个业务系统都部署在不同的机器上。
[0205]
容量规划的目的在于让每一个业务系统能够清晰地知道:什么时候应该增加服务节点,什么时候应该减少服务节点;遇到促销、秒杀、渠道拓展引流等业务需求,需要扩充到什么数量级的服务,才能即保证系统的可用性、稳定性。从而能够规避系统在业务量增加时能力不足所造成的问题。
[0206]
第三,业务数据预测。如商品交易量、系统访问量等。业务预测是企业根据时间序列数据的预测结果,来制定业务未来发展(收入、销售、对资源的需求、产品数据)的工具。准确的预测能为企业的战略决策提供数据支撑,使企业能够有效的进行资金预算及资源分配,可以帮助企业高层做出更合理的计划。
[0207]
本技术实施例中,通过对原始时序数据进行预处理,得到用于表征将原始时序数据对应的周期性数据延伸第一预设时间段的外生变量,这里,能够将原始时序数据对应的周期性数据融入至外生变量中,便于在后续的预测过程中,融入实际使用场景下的领域特征信息。然后,将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据,由于外生变量为从原始时序数据中提取的信息,在模型的推理过程中无需再进行自回归式的推理,能够实现多水平的并行的推理过程,能够加速推理速度。最后,根据预测时序数据和预设时序数据训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。由此,训练好的预测模型能够快速准确地预测原始时序数据对应的预测时序数据。
[0208]
基于上述图1所示的预测模型的训练方法,本技术实施例还提供一种预测模型的训练装置,如图5所示,该预测模型的训练装置500可以包括:
[0209]
获取模块510,用于获取原始时序数据。
[0210]
预处理模块520,用于对原始时序数据进行预处理,得到外生变量,外生变量用于表征将原始时序数据对应的周期性数据延伸第一预设时间段。
[0211]
输入模块530,用于将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据。
[0212]
训练模块540,用于根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型,预测时序数据的时序信息与预设时序数据的时序信息相匹配。
[0213]
在一种可能的实施例中,预处理模块520,具体用于:确定原始时序数据的关联信息,关联信息包括:原始时序数据中的变点标注信息和节假日信息;
[0214]
根据原始时序数据和关联信息,确定第一时序数据;
[0215]
将第一时序数据输入至时序分解器,得到外生变量。
[0216]
在一种可能的实施例中,预处理模块520,具体用于:将第一时序数据,输入至时序分解器,提取关联信息对应的n阶傅立叶级数对应的参数,n为正整数;
[0217]
对参数进行数值模拟,得到外生变量。
[0218]
在一种可能的实施例中,输入模块530,具体用于:将原始时序数据和外生变量输
入至预设模型,基于局部敏感哈希函数,对原始时序数据进行处理,得到第二时序数据;
[0219]
根据外生变量和第二时序数据,确定全局隐性特征;
[0220]
根据全局隐形特征、外生变量和第二时序数据,确定与第一预设时间段对应的预测时序数据。
[0221]
在一种可能的实施例中,该装置500还可以包括:
[0222]
确定模块,用于:根据外生变量,确定查询矩阵和键矩阵;
[0223]
根据查询矩阵和键矩阵,确定局部敏感哈希函数。
[0224]
在一种可能的实施例中,输入模块530,具体用于:
[0225]
根据原始时序数据的数据维度,确定随机矩阵;
[0226]
根据随机矩阵,确定权重参数矩阵和偏差参数向量;
[0227]
根据权重参数矩阵和偏差参数向量,对外生变量和第二时序数据进行计算,得到全局隐性特征。
[0228]
在一种可能的实施例中,训练模块540,具体用于:
[0229]
根据预测时序数据和预设时序数据,训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型,包括:
[0230]
根据预测时序数据和预设时序数据,计算对抗损失值和均方损失值;
[0231]
根据对抗损失值和均方损失值,训练预设模型,直至预设模型满足预设训练条件,得到预测模型。
[0232]
在一种可能的实施例中,训练模块540,具体用于:
[0233]
根据预测时序数据和预设时序数据,计算均方损失值;
[0234]
根据预测时序数据和原始时序数据,确定第一预测时序数据;
[0235]
根据预设时序数据和原始时序数据,确定第一预设时序数据;
[0236]
根据第一预测时序数据和第一预设时序数据,计算对抗损失值。
[0237]
在一种可能的实施例中,该装置500还可以包括:预测模块,该预测模块,具体用于:
[0238]
获取第三时序数据;
[0239]
对第三时序数据进行预处理,得到第三时序数据对应的外生变量,外生变量用于表征将第三时序数据所对应的周期性数据延伸第二预设时间段;
[0240]
将第三时序数据,和第三时序数据对应的外生变量输入至预测模型中,得到与第二预设时间段对应的第四时序数据,第四时序数据的时序信息,与第三时序数据对应的外生变量的时序信息相匹配。
[0241]
本技术实施例中,通过对原始时序数据进行预处理,得到用于表征将原始时序数据对应的周期性数据延伸第一预设时间段的外生变量,这里,能够将原始时序数据对应的周期性数据融入至外生变量中,便于在后续的预测过程中,融入实际使用场景下的领域特征信息。然后,将原始时序数据和外生变量输入至预设模型,基于外生变量和局部敏感哈希函数,对原始时序数据进行处理,得到与第一预设时间段对应的预测时序数据,由于外生变量为从原始时序数据中提取的信息,在模型的推理过程中无需再进行自回归式的推理,能够实现多水平的并行的推理过程,能够加速推理速度。最后,根据预测时序数据和预设时序数据训练预设模型,直至预设模型满足预设训练条件,得到训练好的预测模型。由此,训练
好的预测模型能够快速准确地预测原始时序数据对应的预测时序数据。
[0242]
图6示出了本技术实施例提供的一种电子设备的硬件结构示意图。
[0243]
在电子设备可以包括处理器601以及存储有计算机程序指令的存储器602。
[0244]
具体地,上述处理器601可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0245]
存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在综合网关容灾设备的内部或外部。在特定实施例中,存储器602是非易失性固态存储器。在特定实施例中,存储器602包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
[0246]
处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现图所示实施例中的任意一种预测模型的训练方法。
[0247]
在一个示例中,电子设备还可包括通信接口606和总线610。其中,如图6所示,处理器601、存储器602、通信接口606通过总线610连接并完成相互间的通信。
[0248]
通信接口606,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
[0249]
总线610包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线610可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
[0250]
该电子设备可以执行本技术实施例中的预测模型的训练方法,从而实现结合图1-图4描述的预测模型的训练方法。
[0251]
另外,结合上述实施例中的预测模型的训练方法,本技术实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现图1-图4描述的预测模型的训练方法。
[0252]
需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0253]
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插
件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
[0254]
还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0255]
以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1