本发明涉及时间序列数据预测领域,具体涉及一种深度解耦时间序列预测方法。
背景技术:
时间序列广泛存在于交通、电力、医疗和金融等领域。时间序列预测(即根据一段历史时间的观测值,预测接下来某个时刻的观测值)是数据挖掘中的重要研究课题。在如今的大数据时代,单条时间序列往往不是孤立存在,数据集通常会包含多条具有相关性的时间序列,这些时间序列具有全局(多条时间序列共享)和局部(单条时间序列特有)变化模式。如图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,将样本时间序列
如图3(b)所示的全局特征编码器用于建模时间序列的全局变化模式,具体步骤为:
首先,将样本时间序列x1:t输入到由多层1d卷积神经网络构成的短期特征抽取器,得到序列各时刻的短期表示z1:t。卷积层的滑动步长设为1,使用了填补(padding)机制,使得输出的步长和输入一致,并使用了小尺寸的卷积核,可以捕捉序列中的短期变化模式。
然后,将短期表示z1:t输入向量量化(vq)模块q,vq模块维护了一个表示全局变化模式的编码表
其中,sg()为梯度截断操作,满足sg(z)≡z,
最后,利用transformer编码器建模整条序列中的长期依赖关系,输出序列各时刻的长期表示,也就是全局特征表示
其中,
其中,concat表示张量拼接操作,
步骤5,将样本时间序列x1:t输入到基于多视野对比编码的自适应参数生成模块,生成局部特征编码器参数φ,并计算多视野对比编码目标函数
如图3(a)所示,基于多视野对比编码的自适应参数生成模块包含情境识别网络和参数生成网络,生成局部特征编码器参数φ的具体步骤如下:
首先,将x1:t输入到包含卷积模块、transformer编码器和lstm聚合器的情境识别网络,情境识别网络将输入序列映射为情境隐变量
cmc解决了两个对比学习任务,分别要求在已知情境隐变量
以短期表示的对比任务为例,给定情境识别网络的输出
其中,f1为评估函数,其结构为两层mlp(第一层为relu激活函数,第二层为线性激活函数),将情境隐变量
类似的,给定了
f2为评估函数,其结构与f1相同,根据对比学习的性质有:
其中,
为了使
其中,
其中,α为可调节的超参数。
最后,将情境隐变量
步骤6,将自适应参数生成模块生成的参数φ加载到局部特征编码器中。
步骤7,将样本时间序列x1:t输入到局部特征编码器,输出局部特征表示
局部特征编码器的结构与全局特征编码器一致(不包含vq模块q),该编码器的参数φ不参与反向传播调整,而是直接由自适应参数生成模块生成得到。
具体过程包括:首先,将样本时间序列x1:t输入到由多层1d卷积神经网络构成的短期特征抽取器,得到序列各时刻的短期表示z1:t;然后,将短期表示z1:t输入至transformer编码器中,利用transformer编码器建模整条序列中的长期依赖关系,输出序列各时刻的局部特征表示
步骤8,将全局特征表示和局部特征表示拼接后输入到卷积transformer解码器,得到预测输出
卷积transformer解码器由一个卷积模块和多个相同的注意力模块堆叠而成,具体结构如图5所示,其中,卷积模块结构与编码器中卷积模块一致,注意力模块包含:一层面向解码器输出的掩码多头自注意力层,引入后向掩码机制可以防止在预测某一时刻数据时看到后面的数据,一层面向编码器输出的多头注意力层,和一个由两层全连接层构成的前馈网络(第一层使用relu激活函数,第二层使用线性激活函数)。最后一个注意力模块输出未来τ步的预测值
步骤9,计算预测目标函数
本发明中利用平均绝对误差作为预测目标函数
步骤10,计算预测目标函数
步骤11,根据批中所有样本的损失
批中所有样本的损失
根据损失
其中,η为学习率。
步骤12,重复步骤3-11直到训练数据集的所有批次都参与了模型训练。
步骤13,重复步骤3-12直到达到指定迭代次数。
步骤14,将待预测的样本时间序列输入到已训练好的模型中,得到预测结果。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。