一种深度解耦时间序列预测方法

文档序号:26052217发布日期:2021-07-27 15:28阅读:340来源:国知局
一种深度解耦时间序列预测方法

本发明涉及时间序列数据预测领域,具体涉及一种深度解耦时间序列预测方法。



背景技术:

时间序列广泛存在于交通、电力、医疗和金融等领域。时间序列预测(即根据一段历史时间的观测值,预测接下来某个时刻的观测值)是数据挖掘中的重要研究课题。在如今的大数据时代,单条时间序列往往不是孤立存在,数据集通常会包含多条具有相关性的时间序列,这些时间序列具有全局(多条时间序列共享)和局部(单条时间序列特有)变化模式。如图1所示,所有道路的道路使用率时间序列均具有相同的周期(24小时),并具有早高峰和晚高峰,即全局变化模式;道路1具有轻微的早晚高峰,道路2具有明显的早高峰,没有晚高峰,道路3具有轻微的早高峰和明显的晚高峰,道路4具有强烈的早晚高峰,即局部变化模式。一个好的时间序列预测模型应该同时捕获这两种变化模式。

基于统计机器学习的时间序列预测模型,例如ar、arima、指数平滑和线性状态空间模型等,在单条时间序列上进行训练和预测,无法建模多变量时间序列数据集中公共的变化模式,因此无法从这种全局知识中获益。

经典深度学习模型,例如基于rnn、tcn和transformer的预测模型,是目前在该领域中应用最为广泛的一类方法。此类模型利用数据集的所有数据训练一组共享模型参数,平等地利用所有时间序列的信息,然而,这种通过简单的参数共享捕获全局信息的方式是不充分的,这是由于预测时模型只将单条时间序列的历史数据作为输入,无法为其显式引入全局信息或其他相关序列的信息。

一些最新的方法尝试利用矩阵分解将原始时间序列表示为k条潜在时间序列的线性组合(k远小于数据集中时间序列的数量),通过潜在时间序列捕捉多变量时间序列中的公共模式。然而矩阵分解作用于特征空间,无法捕捉复杂的全局变化模式。



技术实现要素:

鉴于上述,本发明的目的是提供一种深度解耦时间序列预测方法,通过有效建模时间序列的全局和局部变化模式,从而在降低计算消耗的同时提升时间序列数据的预测精度。

为实现上述发明目的,本发明提供以下技术方案:

一种深度解耦时间序列预测方法,应用到交通领域、电力领域、医疗领域、金融领域中时间序列数据的预测,包括以下步骤:

采集时间序列,并对时间序列进行预处理,得到预处理后的时间序列;

构建时间序列预测模型,包括全局特征编码器、自适应参数生成模块、局部特征编码器,以及解码器,其中,全局特征编码器用于将时间序列编码成全局特征表示,自适应参数生成模块用于根据时间序列生成局部特征编码器参数,局部特征编码器基于加载的局部特征编码器参数,将时间序列编码成局部特征表示,解码器用于对全局特征表示和局部特征表示拼接的结果进行解码处理,输出预测的时间序列数据;

利用时间序列数据对时间序列预测模型进行参数优化,将参数优化的时间序列预测模型用于时间序列的预测。

优选的,所述预处理包括异常值检测和去除、缺失值补充以及归一化处理。

优选的,所述全局特征编码器包括由卷积神经网络构建的短期特征抽取器、向量量化模块、由多个注意力模块堆叠组成的transformer编码器,其中,短期特征抽取器用于对输入时间序列进行短期特征提取得到时间序列的短期表示,向量量化模块用于对输入短期表示进行向量化编码,得到编码后的向量;transformer编码器用于基于编码后的向量建立整条时间序列中的长期依赖关系,输出时间序列的全局特征表示。

优选的,所述自适应参数生成模块采用基于多视野对比编码方式,实现对时间序列的编码,输出局部特征编码器参数。

优选的,所述自适应参数生成模块包括情境识别网络和参数生成网络,其中,情境识别网络包括依次连接的卷积模块、transformer编码器和lstm聚合器,用于将时间序列映射为情境隐变量,参数生成网络由全连接网络组成,用于根据情境隐变量生成局部特征编码器的参数。

优选的,所述局部特征编码器的参数不参与训练,由自适应参数生成模块生成,局部特征编码器包括短期特征抽取器、由多个注意力模块堆叠组成的transformer编码器,其中,短期特征抽取器用于对输入时间序列进行短期特征提取得到时间序列的短期表示,transformer编码器用于基于短期表示建模整条时间序列中的长期依赖关系,输出时间序列的局部特征表示。

优选的,所述解码器包括卷积模块和多个相同的注意力模块,其中,卷积模块用于对输入的全局特征表示和局部特征表示拼接的结果进行卷积操作,所述注意力模块用于基于卷积结果进行连接计算,输出预测的时间序列数据。

优选的,在对时间序列预测模型进行参数优化时,采用的损失函数为:

与现有技术相比,本发明具有的有益效果至少包括:

本发明提供的深度解耦时间序列预测方法,时间序列的动态性解耦为全局和局部变化模式,并使用全局和局部两个特征编码器分别对其进行建模,这样利用向量量化全局编码器学习表示全局变化模式的编码表,充分利用数据集中共享的知识,建模全局变化模式,利用自适应参数生成模块为每条时间序列生成其特有的局部特征编码器参数,有效建模异构的局部变化模式。基于全局和局部变化模式提升时间序列的预测精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。

图1是背景技术中道路使用率时间序列图;

图2是实施例提供的深度解耦时间序列预测方法的整体流程图;

图3是实施例提供的深度解耦时间序列预测方法的整体框图;

图4是实施例提供的全局表示和短期表示的学习过程;

图5是实施例提供的卷积transformer解码器结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

为了提升时间序列的预测精度,实施例提供了一种深度解耦时间序列预测方法,通过将时间序列的动态性解耦为全局变化模式和局部变化模式,并分别建模后,基于两个变化模式进行时间序列预测。该深度解耦时间序列预测方法可以应用到交通领域、电力领域、医疗领域以及金融领域,也就是时间序列可以为道路车流量、用户用电量和股票价格等数据。

图2是实施例提供的深度解耦时间序列预测方法的整体流程图;图3是实施例提供的深度解耦时间序列预测方法的整体框图。如图2和图3所示,实施例提供的深度解耦时间序列预测方法包括以下步骤:

步骤1,采集时间序列数据,对采集的时间序列进行异常值消除处理和归一化处理,并利用滑动时间窗口对处理后的数据进行划分得到训练数据集。

对给定的时间序列进行异常值检测和去除,并将其中的无效值(如超出正常范围的值和缺失值)使用线性插值方法填充。对时间序列中所有值进行min-max归一化处理,使处理后每一个数值都归一化到[-1,1]的范围内,转换公式如下:

其中x为原始时间序列中的数值,xmin为时间序列中的最小值,xmax为时间序列中的最大值,x′为归一化之后的数值。

根据经验人为设定时间窗口大小t,利用固定长度的滑动步长对归一化后的数据进行划分得到训练数据集。

步骤2,将训练数据集按照固定的批量大小进行分批,批次总数为n。

根据经验人为设定的批量大小m对训练数据集进行分批,批次总数为n。具体计算方式如下:

其中nsamples为训练数据集中样本总数。

步骤3,从训练数据集中顺序选取索引为k的一批训练样本,其中k∈{0,1,...,n}。对于该批次中的每一个训练样本,重复步骤4-10。

步骤4,将样本时间序列输入到向量量化的全局特征编码器,输出全局特征表示并计算向量量化约束目标函数其中t表示输入步长。

如图3(b)所示的全局特征编码器用于建模时间序列的全局变化模式,具体步骤为:

首先,将样本时间序列x1:t输入到由多层1d卷积神经网络构成的短期特征抽取器,得到序列各时刻的短期表示z1:t。卷积层的滑动步长设为1,使用了填补(padding)机制,使得输出的步长和输入一致,并使用了小尺寸的卷积核,可以捕捉序列中的短期变化模式。

然后,将短期表示z1:t输入向量量化(vq)模块q,vq模块维护了一个表示全局变化模式的编码表其包含了f条d维向量,在所有序列间共享,用来表示序列的全局变化模式,编码表e中的向量称为全局表示。vq模块将各时刻的短期表示z1:t分别映射为编码表e中的向量,得到具体来说,其通过最近邻搜索的方式将原始的短期表示z替换为计算公式为:i=argminj||z-ej||2,其中,ei表示编码表e中的第i条向量。需要指出的是,argmin操作是不可微分的,因此直接用目标函数关于的梯度替换关于z的梯度。具体来说,在前向传播过程中,将最近邻全局表示输入下游网络,在反向传播过程中,不经改变地传递回上游卷积网络。在这样的训练方式下,如果仅仅使用预测目标函数,编码表中的全局表示ei不会得到更新,因此本发明引入向量量化约束目标函数用于学习全局表示:

其中,sg()为梯度截断操作,满足sg(z)≡z,γ为可调节的超参数。如图4中深灰色箭头所示,在预测目标函数的共同作用下,短期表示z会选择合适的全局表示,并且约束z和差别尽量小;如图4中浅灰色箭头所示,驱使编码表中的全局表示向原始的短期表示z移动,当有多个原始短期表示被映射为同一全局表示时,该全局表示会趋向这些原始表示的聚类中心,这也使得vq模块学习到的全局表示更具代表性。

最后,利用transformer编码器建模整条序列中的长期依赖关系,输出序列各时刻的长期表示,也就是全局特征表示transformer编码器是由多个注意力模块堆叠组成,单个模块包含一层多头自注意力层和一个由两层全连接层构成的前馈网络(第一层使用relu激活函数,第二层使用线性激活函数)。其中,注意力机制可表示为由查询和一组键/值对到输出的映射。它计算查询与各个键的匹配程度,为各个键对应的值赋予权重系数,最后将这些值的加权和作为输出。其计算方式如下:

其中,表示查询,表示键,表示值,其计算过程分三步:第一步是计算查询和每个键的向量内积并除以因子得到未归一化的权重系数,其中,因子起到调节作用,防止softmax函数的梯度消失;第二步是利用softmax函数对权重系数进行归一化;第三步是利用归一化的权重系数对值进行加权求和得到最终的输出。多头注意力机制实际上计算了多组注意力机制,对多组结果进行拼接得到输出,其思想是利用多组注意力机制来捕捉数据中存在的不同类型的相关性。其计算方式如下:

其中,concat表示张量拼接操作,为第i组注意力机制的映射矩阵,分别将原始的查询、键和值映射到对应的空间。本发明中使用的多头自注意力层中,查询q、键k和值v一致,第一层中均为向量量化模块的输出后续层中均为前一层注意力模块的输出。经过transformer编码器处理得到的长期表示前馈网络是transformer模型中的固定子结构,主要起空间映射作用。

步骤5,将样本时间序列x1:t输入到基于多视野对比编码的自适应参数生成模块,生成局部特征编码器参数φ,并计算多视野对比编码目标函数

如图3(a)所示,基于多视野对比编码的自适应参数生成模块包含情境识别网络和参数生成网络,生成局部特征编码器参数φ的具体步骤如下:

首先,将x1:t输入到包含卷积模块、transformer编码器和lstm聚合器的情境识别网络,情境识别网络将输入序列映射为情境隐变量多视野对比编码(contrastivemulti-horizoncoding,cmc)方法和其对应的kl散度正则可以使得情境隐变量能够充分保留序列局部变化模式的信息,并且过滤掉全局信息(因为其已经在全局特征编码器中建模)。cmc利用对比学习方法最大化了情境识别网络中lstm聚合器的输出情境隐变量与卷积模块输出的短期表示v(sh)和transformer编码器输出的长期表示v(lo)之间的互信息,从而使得情境隐变量能有效捕捉原始序列中特有的信息(特有的长/短期变化模式)。

cmc解决了两个对比学习任务,分别要求在已知情境隐变量的情况下,从干扰项中选择出正确的短期表示和长期表示,对应的目标函数分别为除此之外,正则项可以保证中过滤掉全局信息。

以短期表示的对比任务为例,给定情境识别网络的输出和集合其中包含输入时间序列t时刻的短期表示(正样本)和k个干扰项(负样本),模型需要从集合v(sh)中识别出正确的短期表示。干扰项是从同一批次中其他样本时间序列各个时刻的短期表示均匀采样得到。短期表示对比目标函数定义为:

其中,f1为评估函数,其结构为两层mlp(第一层为relu激活函数,第二层为线性激活函数),将情境隐变量和短期表示拼接后作为输入,其作用为度量两个表示之间的匹配程度,ε为softmax的温度参数,u(t)为时刻1,2,…,t的均匀采样。

类似的,给定了和集合长期表示对比目标函数为:

f2为评估函数,其结构与f1相同,根据对比学习的性质有:

其中,表示与x间的互信息,可以看到最小化可以最大化的下界,从而使得情境隐变量中充分保留序列x的局部(特有)信息。

为了使能够过滤掉全局信息,本发明使用kl散度正则使得过滤掉全局信息,计算方式如下:

其中,为情境识别网络输出的高斯后验分布。该正则项为引入了先验,目标是约束的信息量尽可能少。因此,在最大化互信息和最小化的信息量两个目标的共同作用下,会自动地过滤掉全局信息,而保留下可以使得最大化的局部信息,最终的多视野对比目标函数计算方式如下:

其中,α为可调节的超参数。

最后,将情境隐变量输入到由多层全连接层组成的参数生成网络mlp(隐藏层使用relu激活函数,输出层使用线性激活函数)将其映射为局部特征编码器的参数φ。

步骤6,将自适应参数生成模块生成的参数φ加载到局部特征编码器中。

步骤7,将样本时间序列x1:t输入到局部特征编码器,输出局部特征表示

局部特征编码器的结构与全局特征编码器一致(不包含vq模块q),该编码器的参数φ不参与反向传播调整,而是直接由自适应参数生成模块生成得到。

具体过程包括:首先,将样本时间序列x1:t输入到由多层1d卷积神经网络构成的短期特征抽取器,得到序列各时刻的短期表示z1:t;然后,将短期表示z1:t输入至transformer编码器中,利用transformer编码器建模整条序列中的长期依赖关系,输出序列各时刻的局部特征表示

步骤8,将全局特征表示和局部特征表示拼接后输入到卷积transformer解码器,得到预测输出其中τ表示预测步长。

卷积transformer解码器由一个卷积模块和多个相同的注意力模块堆叠而成,具体结构如图5所示,其中,卷积模块结构与编码器中卷积模块一致,注意力模块包含:一层面向解码器输出的掩码多头自注意力层,引入后向掩码机制可以防止在预测某一时刻数据时看到后面的数据,一层面向编码器输出的多头注意力层,和一个由两层全连接层构成的前馈网络(第一层使用relu激活函数,第二层使用线性激活函数)。最后一个注意力模块输出未来τ步的预测值

步骤9,计算预测目标函数即该样本时间序列对应的真实值xt+1:t+τ和实际输出的预测值之间的误差。

本发明中利用平均绝对误差作为预测目标函数计算公式如下:

步骤10,计算预测目标函数多视野对比编码目标函数和向量量化约束目标函数之和

步骤11,根据批中所有样本的损失对整个模型中的网络参数进行调整。

批中所有样本的损失

根据损失对整个模型中可学习的参数进行调整。更新公式如下:

其中,η为学习率。

步骤12,重复步骤3-11直到训练数据集的所有批次都参与了模型训练。

步骤13,重复步骤3-12直到达到指定迭代次数。

步骤14,将待预测的样本时间序列输入到已训练好的模型中,得到预测结果。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

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