一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Transformer可填补高缺失率时间序列的方法

2022-11-19 12:19:10 来源:中国专利 TAG:

一种基于transformer可填补高缺失率时间序列的方法
技术领域
1.本发明属于多变量时间序列的缺失值自动填补领域,具体涉及一种基于transformer可填补高缺失率时间序列的方法。


背景技术:

2.时间序列是很常见的数据形式,在许多领域都有广泛应用。在实践中,我们采集到时间序列数据,许多不是单一的变量,而是有多个变量的观测结果,是一个多变量的时间序列,而且由于设备损坏,文件丢失和统计出错,经常会出现数据缺失的问题。
3.解决数据缺失的方法主要有两种,填补和删除,在缺失率较小时,直接删除缺失的样本并不会对整体分析有较大影响,而在许多数据中,缺失数据的占比一般较大,直接删除很可能导致最后的分析结果与真实情况有较大误差。
4.在传统的填补方法中,有基于统计量的计算方法和基于机器学习的计算方法。基于统计量的计算方法忽略了时间序列之间的时间依赖性,传统的机器学习使用一种复杂的方法来获得时间序列的统计性质并几乎不考虑时间依赖性。
5.现有研究中,越来越多的深度学习方法被用于多变量时间序列的填补。循环神经网络(rnn)模型是处理时间序列最常用的模型,同时,长短期记忆(lstm)和门控循环单元(gru)网络在处理时间序列的长期和短期依赖性方面具有一定的优越性。然而,这些方法仍然存在一些缺点。时间序列每个时间戳变量输入到循环神经网络的单元中,获得变量的混合信息,没有考虑到全局依赖关系,当序列过长时,也不能捕捉到长时间依赖关系。除了基于循环神经网络的方法,transformer在处理时间序列中取得了良好表现,可以很好的捕捉长期时间依赖关系,但是传统的transformer在处理高缺失率数据时,其中的自注意力层会有一个权重学习问题,如图1所示。
6.自注意力层中的具体实现如下:
[0007][0008]
在自注意力层中,获取query(q)、key(k)和value(v)的方法为线性变换(例:q=(w1x1,w2x2,

,w
t
x
t
)),提取的单点信息,当缺失率过高时,在缺失位置提取的信息会有许多高度相似性,导致qk
t
计算出的值不能作为有效权重。
[0009]
因此,提出一种改进的transformer模型,针对高缺失率时间序列中缺失值的填补,并期待获得优于其他的填补方法的结果。


技术实现要素:

[0010]
本发明的目的在于,目的在于提供了一种基于transformer可填补高缺失率时间序列的方法,
[0011]
为了解决技术问题,本发明的技术方案是:
[0012]
一种基于transformer可填补高缺失率时间序列的方法,所述方法包括:
[0013]
对多变量时间数据集进行预处理和原始缺失位置标记,得到含有原始缺失位置标记的数据集,并将含有原始缺失位置标记的数据集分成训练集和测试集;
[0014]
对所述训练集中观测到的值进行百分比删除处理,并将观测到的值的删除位置进行缺失位置标记处理,得到含有缺失位置标记的训练集;
[0015]
对含有缺失位置标记的训练集进行位置编码处理,得到含有位置编码和缺失位置标记的训练集;
[0016]
调用预设的transformer模型,利用含有位置编码和缺失位置标记的训练集对transformer模型进行训练,得到多个预测的缺失值;
[0017]
基于上述进行百分比删除处理后的训练集,利用多个预测的缺失值进行填补,得到填补后的序列;
[0018]
将填补后的序列输入到transformer模型中的重构模块,重构所以位置的值,所述所有的位置的值包括:观察到的值;
[0019]
对填补后的序列和重构所有位置的值进行加权处理,得到最终推断出的完整序列。
[0020]
进一步,在对多变量时间数据集进行预处理和原始缺失位置标记之前,所述方法还包括:获取多变量时间数据集。
[0021]
进一步,对多变量时间数据集归一化处理和原始缺失位置标记处理,得到含有原始缺失位置标记的数据集。
[0022]
进一步,采用掩码矩阵m=(m1,m2,

,m
t
)进行原始缺失位置标记和缺失位置标记处理。
[0023]
进一步,所述利用含有位置编码和缺失位置标记的训练集对transformer模型中的填补模块和重构模块进行训练,具体包括:
[0024]
对含有位置编码和缺失位置标记的训练集进行层归一化后,利用一维卷积层提取含有位置编码和缺失位置标记的训练集中的特征点及周围信息;
[0025]
利用线性层对特征点及周围信息进行query和key计算,得到query和key;
[0026]
利用线性层提取含有位置编码和缺失位置标记的训练集中信息,计算得到value;
[0027]
对query和key进行点积计算后,将计算得到的结果与value进行相乘处理,并利用归一化指数函数对相乘处理的结果进行计算,得到长时间依赖关系和变量混合特征;
[0028]
将含有位置编码和缺失位置标记的训练集和长时间依赖关系及变量混合特征进行融合,得到第一融合信息;
[0029]
对第一融合信息、长时间依赖关系和变量混合特征,进行层归一化处理,然后输入到前馈网络层,提取含有隐藏信息的复杂信息;
[0030]
将第一融合信息和复杂信息进行融合处理,得到第二融合信息;
[0031]
把第二融合信息输入到推断层中,得到多个预测的缺失值。
[0032]
进一步,所述对填补后的序列和重构所有位置的值进行加权处理,具体包括:
[0033]
在进行加权时,权重由填补模块和重构模块的自注意力层提取的信息计算所得,同时,设置一个阈值β,调整学习到权重,减小权重偏差;
[0034]
加权的过程如下,首先计算学习到的权重α:
[0035][0036]
其次,采用阈值β对α进行调整:
[0037][0038]
最终填补值的加权计算如下:
[0039][0040]
缺失位置的权重需要进行调整,具有观测值的位置不需要;当学习到权重较大时,可是通过设定的阈值调整使它降低;
[0041]
计算最终推断出的完整序列为:
[0042]
进一步,对所述测试集中观测到的值进行百分比删除处理,将被删除后的观测到的值与最终推断出的完整序列进行误差计算处理,即实现了对时间序列中缺失值的准确填补。
[0043]
进一步,所述进行误差计算处理,具体包括:
[0044]
计算被删除后的观测到的值与最终推断出的完整序列的平均绝对值误差mae和均方根误差rmse;
[0045]
平均绝对值误差mae的计算过程如下:
[0046][0047]
均方根误差rmse的计算过程如下:
[0048][0049]
与现有技术相比,本发明的优点在于:
[0050]
一种基于transformer可填补高缺失率时间序列的方法,提出一种基于的一维卷积的自注意力机制。使用一维卷积捕捉特征以及周围信息,解决缺失率过高时,自注意力层权重学习问题。缺失位置的值在未填补前存在相似性,通过一维卷积的自注意力层,在进行query和key的计算时,相似点可以不再直接进行点积计算,而是在一维卷积后,使用包含周围信息的特征点进行计算,避免了计算出许多相似权重。
[0051]
提出一种权重调整机制。当根据填补模块和重构模块的重构的序列加权计算出最终的重构序列时,设定的权重阈值,可以对学习的权重进行调整,当权重出现较大偏移,设定的阈值可以使它回到正确的权重范围,使最终的填补结果更为准确。
附图说明
[0052]
图1、自注意力层结构图;
[0053]
图2、改进自注意力层结构图;
[0054]
图3、填补模块以及重构模块中的transformer;
[0055]
图4、本发明方法主流程图。
具体实施方式
[0056]
下面结合实施例描述本发明具体实施方式:
[0057]
需要说明的是,本说明书所示意的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
[0058]
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0059]
实施例一:
[0060]
本发明的目的是为了解决多变量时间的中缺失值的填补问题,提出一种基于transformer可填补高缺失率时间序列的方法,图4展示了本发明的主流程图。
[0061]
一种基于transformer的缺失值填补方法的实现步骤如下:
[0062]
第一步,获取多变量时间数据集,并对数据集进行预处理,并对缺失位置用一个掩码矩阵标记m=(m1,m2,

,m
t
)。
[0063]
第二步,将训练集中数据删除10%,并将删除位置用一个掩码矩阵md标记。
[0064]
第三步,将手动删除10%的数据集输入模型中,进行训练,得到预测的缺失值。
[0065]
输入的时间序列表示为x=(x1,x2,

,x
t
),含有n个变量,在输入序列中加入位置信息(x p),位置编码p=(p1,p2,

,p
t
),采用以下方式实现:
[0066][0067][0068][0069]
为了解决高缺失率问题,对transformer的自注意力层做了改进,如图2所示,先使用一维卷积提取特征以及周围信息,再使用线性层进行query和key计算。
[0070]
同时,transformer中采用pre-ln,即在特征进入自注意力层和前馈层之前实现层归一化(layer normalization)。具体实现如图3,经过位置编码的数据先进行层归一化(layer normalization),再进入注意力层提取长时间依赖关系和变量混合特征,再进行层归一化,最后进入前馈网络,提取更为复杂的模式。在网络中,还引入了残差连接。将以上提取出的信息通过一个简单线性层推断出缺失值。
[0071]
模型主要由三块构成:填补模块、重构模块和加权推断模块。填补模块和重构模块都是由transformer的编码器部分以及线性层构成。在填补模块使用transformer模型推断出填补后的序列(观察到的位置值保持不变),并将直接输入重构模块,重构所有位置
的值(包括观察到的值),重构序列为最后将和通过设置一个可学习权重进行加权,推断出最终的完整序列
[0072]
在进行加权时,权重由填补模块和重构模块的自注意力层提取的信息计算所得,同时,设置一个阈值β,调整学习到权重,减小权重偏差。
[0073]
加权的过程如下,首先计算学习到的权重α:
[0074][0075]
其中,h1为填补模块自注意力层提取的信息,h2为重构模块自注意力层提取的信息;
[0076]
其次,采用阈值β对α进行调整。得到最终的权重γ:
[0077][0078]
最终填补值的加权计算如下:
[0079][0080]
缺失位置的权重需要进行调整,具有观测值的位置不需要。当学习到权重较大时,可是通过设定的阈值调整使它降低。
[0081]
计算最终的完整序列为
[0082]
第四步,对填补的值进行验证,检验填补方法的有效性检验过程:计算填补值与真实值的平均绝对值误差mae和均方根误差rmse,并和传统的数据填补方法进行比较,检验transformer模型的性能。
[0083]
平均绝对值误差(mae)的计算过程如下:
[0084][0085]
均方根误差(rmse的计算过程如下):
[0086][0087]
第五步,在不同缺失率的数据集下测试模型性能,与传统方法进行比较。设定不同的缺失率,10%、20%、30%、40%和50%,按照设定的缺失率删除数据集中的数据,用这些不同缺失率的数据测试模型性能。
[0088]
上面对本发明优选实施方式作了详细说明,但是本发明不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
[0089]
不脱离本发明的构思和范围可以做出许多其他改变和改型。应当理解,本发明不限于特定的实施方式,本发明的范围由所附权利要求限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献