技术领域
[0001] 本申请涉及数据分析技术领域,尤其涉及一种掩码时间序列模型训练、预测方法、装置、设备及介质。
相关背景技术
[0002] 无监督的时间序列表示学习大体包括生成式即掩码学习和对比式即对比学习。
[0003] 其中,对比学习的关键在于通过特定的代理任务(pretext task)来定义谁与谁相似。通过代理任务来定义对比学习的正负样本,并通过目标函数来计算两者的损失从而指导模型的学习方向。在时间序列对比学习中目前主要采取的策略包括对原始时间序列进行分解,提取周期、趋势等特征,并分别进行对比学习。
[0004] 生成式自监督学习模型则为掩码学习。在时间序列领域,又称为掩码时间序列建模。其核心思想是将原始的采集值及其对应的采集时间构成的时间序列按照预设的时间尺度划分为若干个互不重叠的子序列(patch),随机掩盖(mask)其中的部分patch,并将所有的patch作为令牌(token)输入到掩码时间序列模型中,然后通过掩码时间序列模型重构这些缺失的即被掩盖的patch,以学习时间序列的表征。掩码时间序列模型核心设计是非对称的编码器‑解码器架构,其中编码器仅对没有被掩盖的即可见的patches进行编码,不对掩盖的子序列令牌(masked tokens)进行任何处理,解码器将编码器的输出,即隐藏的表示(latent representation)和masked tokens作为输入,并重构被masked的时间序列。
[0005] 然而现有的时间序列表示学习方法通常使用单一的时间尺度对数据进行建模和预测,并未考虑到时间序列自有的特性,即多尺度特性。然而,随着数据量的增加和数据结构的复杂化,单一时间尺度的建模方法可能无法充分挖掘时间序列中的有效信息。现有的时间序列预训练模型大多直接借鉴来自计算机视觉或自然语言处理等领域的相关经验,忽略了时序样本数据本身内涵的多尺度特性。这导致现有的方法难以精确表征时间序列的不同尺度的相关性,使得预训练模型在下游任务上性能表现不佳。
[0006] 因此,如何提高掩码时间序列模型进行时序数据预测的准确率是亟待解决的技术问题。
具体实施方式
[0063] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步的详细描述,显然,本申请所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0064] 需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
[0065] 本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
[0066] 术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
[0067] 术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
[0068] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
[0069] 时间序列建模是一种广泛用于金融、气象、交通和能源等领域的数据分析方法。在互联网产业的应用中,时间序列的表示学习技术至关重要,该技术典型的应用场景包括电力、燃气、风力、供热负荷预测、机械设备故障诊断、异常点检测和智能运维等。
[0070] 无监督的时间序列表示学习技术主要的范式包括对比学习和掩码学习。其中,掩码学习因其方法简单、可扩展性较强等优势,在计算机视觉领域得到了广泛的关注,并在不同的下游任务中表现了良好的性能,其中,下游任务可以是天然气负荷预测、缺失数据填充、异常值检测和偷盗气检测等。
[0071] 无监督的时间序列表示学习大体包括生成式即掩码学习和对比式即对比学习。其中,对比学习的关键在于通过特定的pretext task来定义谁与谁相似。通过代理任务来定义对比学习的正负样本,并通过目标函数来计算两者的损失从而指导模型的学习方向。在时间序列对比学习中目前主要采取的策略包括对原始时间序列进行分解,提取周期、趋势等特征,并分别进行对比学习。生成式自监督学习模型则为掩码学习。在时间序列领域,又称为掩码时间序列建模。其核心思想是将原始的采集值及其对应的采集时间构成的时间序列按照预设的时间尺度划分为若干个互不重叠的patch,随机mask其中的部分patch,并将所有的patch作为token输入到掩码时间序列模型中,然后通过掩码时间序列模型重构这些缺失的即被掩盖的patch,以学习时间序列的表征。掩码时间序列模型核心设计是非对称的编码器‑解码器架构,其中编码器仅对没有被掩盖的即可见的patches进行编码,不对masked tokens进行任何处理,解码器将编码器的输出,即latent representation和masked tokens作为输入,并重构被masked的时间序列。
[0072] 无监督的掩码时间序列建模方法能够从海量的无标签的时间序列数据中挖掘丰富的语义信息,并构建强有力的时间序列表征,从而降低数据标注带来的高昂成本,并有效提升下游任务的精度。然而现有的时间序列表示学习方法通常使用单一的时间尺度对数据进行建模和预测,并未考虑到时间序列自有的特定特性,即多尺度特性。然而,随着数据量的增加和数据结构的复杂化,单一时间尺度的建模方法可能无法充分挖掘时间序列中的有效信息。现有的时间序列预训练模型大多直接借鉴来自计算机视觉或自然语言处理等领域的相关经验,忽略了时序样本数据本身内涵的多尺度特性。这导致现有的方法难以精确表征时间序列的不同尺度的相关性,使得预训练模型在下游任务上性能表现不佳。
[0073] 为了提高掩码时间序列模型进行时序数据预测的准确率,本申请提供了一种掩码时间序列模型训练、预测方法、装置、设备及介质。该训练方法中获取时序样本数据;将所述时序样本数据输入待训练的掩码时间序列模型中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列;按照预设的第二时间尺度,随机掩盖其中的部分第一子序列;其中,所述第二时间尺度大于所述第一时间尺度;对其中没有被掩盖的每个第一子序列进行编码;按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码;对每个第二子序列及所述部分第一子序列进行解码,获取输出的所述部分第一子序列的预测数据;根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整。
[0074] 实施例1:
[0075] 图1为本申请的一些实施例提供的一种掩码时间序列模型训练的过程示意图,如图1所示,该过程包括以下步骤:
[0076] S101:获取时序样本数据。
[0077] 本申请实施例应用于电子设备,其中该电子设备可以是PC、服务器等设备。
[0078] 本申请实施例提供的一种掩码时间序列模型训练方法,首先获取时序样本数据作为模型训练的样本数据。其中,时序样本数据为按照预设的时间间隔采集到的多个样本数据,也可以称为时间样本序列。其中,预设的时间间隔可以是几秒、几小时、1天,7天或30天等。
[0079] S102:将所述时序样本数据输入待训练的掩码时间序列模型中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列。
[0080] 将时序样本数据输入待训练的掩码时间序列模型中,待训练的掩码时间序列模型按照预设的第一时间尺度将时序样本数据划分为多个不重叠的第一子序列。其中,第一时间尺度是一个较小的时间间隔,例如1天。
[0081] 具体的,图2为本申请的一些实施例提供的另一种掩码时间序列模型的训练过程示意图。如图2所示,该掩码时间序列模型可以包括划分模块(Instance Norm&Patching)、转换器编码器模块(Transformer Encoder)、合并模块(Merge)和转换器译码器模块(Transformer Decoder)。
[0082] 其中,划分模块可以按照预设的第一时间尺度将时序样本数据划分为多个不重叠的第一子序列。例如,图2中按照预设的第一时间尺度,将时序样本数据划分为了12个不重叠的第一子序列。
[0083] S103:按照预设的第二时间尺度,随机掩盖其中的部分第一子序列;其中,所述第二时间尺度大于所述第一时间尺度。
[0084] 为了能够提高掩码时间序列模型进行时序数据预测的准确率,掩码时间序列模型的划分模块中包含的掩码子模块可以按照预设的第二时间尺度,随机掩盖其中的部分第一子序列,其中第二时间尺度为一个较大的时间间隔,大于第一时间尺度。例如,第一时间尺度为1天,第二时间尺度为7天。
[0085] 一般情况下第二时间尺度大于所述第一时间尺度,且是第一时间尺度的整数倍。例如,第二时间尺度为第一时间尺度的4倍。
[0086] 如图2所示,在按照预设的第一时间尺度,将时序样本数据划分为了12个不重叠的第一子序列之后,按照预设的第二时间尺度,随机掩盖其中连续的4个第一子序列。
[0087] S104:对其中没有被掩盖的每个第一子序列进行编码。
[0088] 掩码时间序列模型的转换器编码器模块可以针对输入的可见的每个第一子序列进行学习,提取每个第一子序列中的语义信息,并对其中可见的第一子序列进行编码,也就是对没有被掩盖的每个第一子序列进行编码。仅对可见的第一子序列进行编码,可以降低转换器编码器模块的输入token数量,以提升转换器编码器模块的计算效率。
[0089] 具体的,图3为本申请的一些实施例提供的一种转换器编码器模块的结构示意图。如图3所示,转换器编码器模块包括多头注意力机制子模块(Multi‑Head Attention)、残差连接和层规范化子模块(Add&Norm)和前馈神经网络子模块(Feed Forward)。其中,多头注意力机制模块是利用多个查询操作并行地输入信息,也就是从可见的每个第一子序列中选取多个信息。多头注意力机制模块中的每个注意力机制关注每个第一子序列中的不同部分。残差连接和层规范化模块中的残差连接可参考残差神经网络,通过衡量每个第一子序列的预测数据和真实数据之间的差距,不断进行学习,缓解神经网络中的梯度消失和梯度退化问题,使得待训练的掩码时间序列模型的神经网络能够训练地更深。残差连接和层规范化模块中的层规范化是一种用于深度神经网络的归一化技术,可以对神经网络中的每一个神经元的输出进行归一化,使得神经网络中每一层的输出具有相似的分布。通过层规范化,神经网络可以更快地收敛,同时也能够提高神经网络的泛化能力。前馈神经网络模块位于多头自注意力机制模块之后,用于提取每个第一子序列中的语义信息。
[0090] S105:按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码。
[0091] 掩码时间序列模型的合并模块可以按照第二时间尺度将编码后的第一子序列合并为多个第二子序列。
[0092] 具体的,图4为本申请的一些实施例提供的一种合并模块的合并示意图。如图4所示,合并模块由单层的全连接网络构成,用于将左侧(图中左右)输入的细粒度即第一时间尺度的第一子序列进行合并,形成右侧(图中左右)粗粒度即第二时间尺度的第二子序列,从而能够提取到多种时间尺度的子序列的特征信息,构建层次化的多时间尺度特征金字塔网络。
[0093] S106:对每个第二子序列及所述部分第一子序列进行解码,获取输出的所述部分第一子序列的预测数据。
[0094] 图5为本申请的一些实施例提供的一种转换器解码器模块的解码示意图。如图5所示,掩码时间序列模型的转换器解码模块可以对每个第二子序列及部分第一子序列进行解码,输出解码后的每个第二子序列的预测数据以及部分第一子序列的预测数据。从而可以获取输出的部分第一子序列的预测数据。
[0095] 转换器解码器模块将被掩盖(masked)的部分第一子序列也作为输入令牌(token),目的是通过可见的部分第二子序列重建被masked的部分第一子序列。即学习重构被masked的部分第一子序列。使得转换器编码器模块更好的理解时序样本数据即时间序列,构造强有力的特征提取器,更好的提取子序列的语义信息。
[0096] S107:根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整。
[0097] 根据获取到的部分第一子序列的预测数据以及该部分第一子序列的真实数据,可以对待训练的掩码时间序列模型中的参数进行调整。
[0098] 具体的,例如可以根据部分第一子序列的预测数据以及该部分第一子序列的真实数据之间的差值,对待训练的掩码时间序列模型中的参数进行调整。
[0099] 在本申请实施例中,通过将获取到的时序样本数据输入待训练的掩码时间序列模型中,待训练的掩码时间序列模型按照预设的第一时间尺度将时序样本数据划分为多个不重叠的第一子序列,按照预设的、大于第一时间尺度的第二时间尺度,随机掩盖其中的部分第一子序列;并对其中没有被掩盖的每个第一子序列进行编码,再按照第二时间尺度将编码后的第一子序列合并为多个第二子序列,并对每个第二子序列进行编码,从而能够提取到多种时间尺度的子序列的特征信息;对每个第二子序列及部分第一子序列进行解码,获取输出的部分第一子序列的预测数据;根据预测数据以及部分第一子序列,对待训练的掩码时间序列模型中的参数进行调整,从而提高掩码时间序列模型进行时序数据预测的准确率。
[0100] 为缓解现有掩码时间序列模型的缺陷,本申请的方法从层次化、多时间尺度建模的角度出发,时间粒度从细到粗,提取不同层次、不同时间尺度下的时间序列变化,充分学习时间序列的本质特征,构建层次化的多尺度时间序列特征提取器。
[0101] 首先,引入多尺度的掩码时间序列模型可以更好地反映数据的内在结构。在实际应用中,时序样本数据具有多种不同的变化规律和周期性,这些规律和周期性在不同的时间尺度上可能会有所不同。例如,对于气象数据,我们可以将其分为小时、日、月、季度和年等不同的时间尺度进行模型训练。在不同的时间尺度上,气象数据可能会呈现出不同的变化规律和周期性。因此,通过引入多时间尺度的掩码时间序列模型训练方法,可以更好地反映时序样本数据的内在结构,从而提高掩码时间序列模型的精度和预测准确率。
[0102] 其次,引入多时间尺度的掩码时间序列模型可以提高模型的鲁棒性。在单一时间尺度下进行模型训练时,时序样本数据中可能存在噪声、异常值等干扰因素,这些因素可能会对预测结果产生较大的影响。而引入多时间尺度的掩码时间序列模型训练方法可以通过对不同时间尺度下的时序样本数据进行加权平均等方式来降低噪声和异常值带来的影响,从而提高模型的鲁棒性。
[0103] 最后,引入多时间尺度的掩码时间序列模型可以更好地应对长期预测问题。在长期预测问题中,单一时间尺度下的掩码时间序列模型通常会受到时序样本数据长度和预测时段长度等因素的限制。而引入多时间尺度的掩码时间序列模型训练方法可以通过将长期预测问题分解为多个时间尺度上的短期预测问题,并将这些短期预测结果进行组合来得到长期预测结果。这种方法可以充分利用不同时间尺度上的信息,从而提高长期预测的准确率。
[0104] 综上所述,引入多尺度的掩码时间序列模型训练方法可以更好地反映时序样本数据的内在结构、提高模型的鲁棒性,并且更适用于长期预测问题。因此,在实际应用中,可以根据时序样本数据的特点和需求选择合适的时间尺度进行建模并进行掩码时间序列模型训练,并且可以考虑引入多时间尺度的方法来进一步提高掩码时间序列模型的精度和预测准确率。
[0105] 然而,为掩码时间序列模型引入多尺度特征提取能力却并不容易。主要原因在于,时序样本数据的部分子序列被随机掩码,这导致特征金字塔无法直接应用到掩码建模中。解决这一问题的可行方案是预先在一个较大的子序列中划分多个更小的子序列,在更大的子序列中进行随机掩码,在更小的子序列中构建特征金字塔网络。本申请从时序样本数据的多时间尺度掩码建模这一角度出发,提出了一种基于层次化多尺度转换器掩码时间序列模型以及掩码时间序列模型训练方法,从而获得更好的时序样本数据表征,节约数据的标注成本,将所学习到的特征提取器应用到产业物联网中,并提升下游任务如天然气负荷预测、缺失数据填充、异常值检测和偷盗气检测等性能。
[0106] 实施例2:
[0107] 为了进一步提高掩码时间序列模型进行时序数据预测的准确率,在上述实施例的基础上,在本申请实施例中,所述对其中没有被掩盖的每个第一子序列进行编码之后,所述按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列之前,所述方法还包括:
[0108] 按照预设的第三时间尺度,将编码后的第一子序列合并为多个第三子序列;其中所述第三时间尺度大于所述第一时间尺度,且小于所述第二时间尺度;
[0109] 对每个第三子序列进行编码;
[0110] 所述按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列包括:
[0111] 按照所述第二时间尺度将编码后的第三子序列合并为多个第二子序列。
[0112] 为了进一步提高掩码时间序列模型预测的准确率,还可以预设有大于第一时间尺度、且小于第二时间尺度的第三时间尺度。在对其中没有被掩盖的每个第一子序列进行编码之后,按照第二时间尺度将编码后的第一子序列合并为多个第二子序列之前,按照预设的第三时间尺度,将编码后的第一子序列合并为多个第三子序列,对每个第三子序列进行编码,再按照第二时间尺度将编码后的第三子序列合并为多个第二子序列。
[0113] 具体的,转化器编码器模块对其中没有被掩盖的每个第一子序列进行编码之后,合并模块按照第二时间尺度将编码后的第一子序列合并为多个第二子序列之前,合并模块还可以按照预设的大于第一时间尺度、且小于第二时间尺度的第三时间尺度,将编码后的第一子序列合并为多个第三子序列。再由转换器编码器模块对每个第三子序列进行编码。合并模块按照预设的第二时间尺度将编码后的第三子序列合并为多个第二子序列。从而能够提取到第一时间尺度、第二时间尺度和第三时间尺度等多种时间尺度的子序列的特征信息,构建层次化的多时间尺度特征金字塔网络。进一步提高掩码时间序列模型进行时序数据预测的准确率。
[0114] 一般情况下第三时间尺度大于第一时间尺度、且小于第二时间尺度。优选的,第三时间尺度是第一时间尺度的整数倍,第二时间尺度为第三时间尺度的整数倍。例如,第三时间尺度为第一时间尺度的2倍,第二时间尺度为第三时间尺度的2倍。
[0115] 如图2所示,合并模块按照预设的第一时间尺度,将时序样本数据划分为了12个不重叠的第一子序列之后,按照预设的第二时间尺度,随机掩盖其中连续的4个第一子序列。
[0116] 按照第二时间尺度将编码后的第一子序列合并为多个第二子序列之前,合并模块还可以按照第三时间尺度,将编码后的8个第一子序列合并为4个第三子序列。再由转换器编码器模块对每个第三子序列进行编码。合并模块按照预设的第二时间尺度将编码后的第三子序列合并为2个第二子序列。
[0117] 实施例3:
[0118] 为了进一步提高掩码时间序列模型进行时序数据预测的准确率,在上述各实施例的基础上,在本申请实施例中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列包括:
[0119] 确定所述时序样本数据的均值和标准差;根据所述均值和所述标准差,对所述时序样本数据归一化;按照预设的第一时间尺度,将所述归一化后的时序样本数据划分为多个不重叠的第一子序列。
[0120] 时序样本数据分析面临的一个重要的问题是存在分布漂移/协方差漂移。图6为本申请的一些实施例提供的一种时序样本数据分布漂移的示意图。如图6所示,横轴表示采集时间,纵轴表示时序样本数据。过去的、真实的子序列即时间窗口(look back)和未来的、预测的子序列即预测窗口(horizon)之间的分布存在差异。期望的掩码时间序列模型在测试(test)时的数据分布为曲线1,但现实情况可能是曲线2,因此掩码时间序列模型的预测可能不准确。
[0121] 基于此,可以确定该时序样本数据中包含的各个数据的均值和标准差,根据均值和标准差,对该时序样本数据中包含的各个数据进行归一化,再按照预设的第一时间尺度将归一化后的时序样本数据划分为多个不重叠的第一子序列。
[0122] 具体的,掩码时间序列模型的划分模块中包含的归一化子模块可以将每个时序样本数据的子序列对应的过去时间窗口做一次归一化,然后记录归一化系数,根据归一化后的子序列可以预测得到归一化后的预测子序列,并将预测到的归一化后的预测子序列反归一化即可得到预测子序列。通过可学习的归一化系数,使得子序列的真实数据和预测数据上的分布差异尽可能小,从而缓解分布漂移问题。
[0123] 另外,现有的划分子序列的策略一般设置固定的时间尺度对时序样本数据进行划分,这种仅在单一时间尺度下的划分策略忽略了时序样本数据的多时间尺度特性,并且难以直接应用到特征金字塔网络。而本申请的划分策略可以是预先在一个固定大小的第二时间尺度中,按照更小的第一时间尺度划分若干个更小的第一子序列。从而能够按照第二时间尺度随机masked的部分第一子序列,避免直接随机masked部分第一子序列,无法准确预测该部分第一子序列。
[0124] 在本申请实施例中,通过对时序样本数据归一化,再按照预设的第一时间尺度将归一化后的时序样本数据划分为多个不重叠的第一子序列,缓解时序样本数据的分布漂移问题,进一步提高掩码时间序列模型进行时序数据预测的准确率。
[0125] 实施例4:
[0126] 为了进一步提高掩码时间序列模型进行时序数据预测的准确率,在上述各实施例的基础上,在本申请实施例中,所述根据所述均值和所述标准差,对所述时序样本数据归一化包括:
[0127] 确定时序样本数据与所述均值的差值,将所述差值与所述标准差的比值确定为时序样本数据归一化后的时序样本数据。
[0128] 具体的,掩码时间序列模型的划分模块对于原始的时序样本数据中的各个数据,计算各个数据的均值和标准差,并针对其中每个数据,确定该数据与均值的差值,将差值与标准差的比值确定为该数据归一化后的数据,各个归一化后的数据构成了归一化后的时序样本数据。
[0129] 本申请实施例中将原始的时序样本数据归一化为均值为0,标准差为1的高斯分布,并通过可学习的归一化系数均值和标准差控制时序样本数据的峰值和偏移量,使得时序样本数据和预测数据上的分布差异尽可能小,从而缓解时序样本数据与预测数据的分布漂移问题。
[0130] 实施例5:
[0131] 为了进一步提高掩码时间序列模型进行时序数据预测的准确率,在上述各实施例的基础上,在本申请实施例中,所述根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整包括:
[0132] 根据所述部分第一子序列的预测数据,所述部分第一子序列的数量,以及所述部分第一子序列,确定所述掩码时间序列模型的损失值最小平方误差(Mean Squared Error,MSE);
[0133] 根据所述MSE,对所述待训练的掩码时间序列模型中的参数进行调整。
[0134] 为了对待训练的掩码时间序列模型中的参数进行调整,可以将MSE函数作为掩码时间序列模型学习的损失函数,通过计算被masked的部分第一子序列的预测数据和真实数据之间的MSE,不断优化模型参数。
[0135] 具体的,可以根据以下公式确定掩码时间序列模型的损失值MSE:
[0136]
[0137] 其中,其中n表示被masked的部分第一子序列中被掩盖的数据的数量。yi表示部分第一子序列中第i个真实数据, 表示部分第一子序列中第i个预测数据。
[0138] 根据计算出的MSE,可以对待训练的掩码时间序列模型中的参数进行调整;其中MSE的值越小,预测的准确率越高。
[0139] 在本申请实施例中,可以根据部分第一子序列的预测数据和部分第一子序列的数量,以及部分第一子序列,确定掩码时间序列模型的损失值MSE,从而根据MSE,对待训练的掩码时间序列模型中的参数进行调整,进一步提高掩码时间序列模型进行时序数据预测的准确率。
[0140] 下面以一个具体的例子来对本申请实施例中的掩码时间序列模型训练的全过程进行进一步说明。
[0141] 例如,可以利用新奥私有供热站的时序样本数据对掩码时间序列模型进行训练,该时序样本数据可以来自廊坊、石家庄、洛阳、聊城、唐山、保定和青岛等城市的402个供热站,其中362个站的时序样本数据可以用于预训练的样本集,40个站的时序样本数据可以作为模型测试的测试集。测试集的时序样本数据的时间范围例如是2022年11月到2023年3月,即一整个供暖季。时序样本数据具体可以包括天气、温度、历史用气量等。
[0142] 利用样本集中的时序样本数据可以对掩码时间序列模型进行微调,其中特征提取器参数冻结,仅微调预测头,可以采用两层的多层感知机(Multilayer Perceptron,MLP)进行实验。具体的,可以采用1天、7天、14天和30天四种不同时间尺度的预测步长进行微调,得到不同时间尺度的掩码时间序列模型。
[0143] 对测试集终端时序样本数据所属的供热站进行测试的精度评估,图7为本申请的一些实施例提供的一种掩码时间序列模型与基线模型的损失值对比示意图。如图7所示,以第一行为例进行说明,其中horizon表示两种模型的时间尺度均为1天时,本申请的掩码时间序列模型的损失值MSE为0.155;平均绝对误差(Mean Absolute Error,MAE)即绝对误差的平均值为0.262;对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error,SMAPE)的范围是(0‑2),当时间尺度为1时,SMAPE为0.145,其中分布(distribution)在0‑0.1的值有13个,分布在0.1‑0.2的值有15个,分布在0.2‑0.3的值有7个,分布在0.3‑2的值有1个。而时间尺度为1时,现有技术patchTST的MSE为0.172,大于本申请的掩码时间序列模型的MSE。
[0144] 因此,采用本申请的方法训练完成的掩码时间序列模型相比于现有技术提供的时间序列转换器(Patch Time series Transformer,patchTST)算法的基线模型,在不同的预测步长即时间尺度下,取得了更好的预测结果。
[0145] 实施例6:
[0146] 为了使用掩码时间序列模型进行预测,在上述各实施例的基础上,在本申请实施例中,还提供了一种时序数据预测方法,图8为本申请的一些实施例提供的一种时序数据预测的过程示意图。如图8所示,该方法包括以下步骤:
[0147] S801:获取时序数据。
[0148] 其中,该时序数据可以是采集到的历史数据。
[0149] S802:将所述时序数据输入预先训练完成的掩码时间序列模型中,所述掩码时间序列模型按照预设的第一时间尺度将所述时序数据划分为多个不重叠的第一子序列。
[0150] 划分模块可以按照预设的第一时间尺度将时序样本数据划分为多个不重叠的第一子序列。另外,预先训练完成的掩码时间序列模型去除掉了划分模块中的掩码子模块,因此,无需对输入的时序数据进行掩码操作。
[0151] S803:对每个第一子序列进行编码。
[0152] 掩码时间序列模型的转换器编码器模块可以针对输入的可见的每个第一子序列进行学习,提取每个第一子序列中的语义信息,并对第一子序列进行编码。
[0153] S804:按照预设的第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码。
[0154] 掩码时间序列模型的合并模块可以按照预设的第二时间尺度将编码后的第一子序列合并为多个第二子序列。
[0155] S805:对每个第二子序列进行解码,获取输出的预测数据。
[0156] 掩码时间序列模型的编码器解码模块可以对每个第二子序列进行解码,输出预测数据。
[0157] 具体的,时序数据的预测过程与上述掩码时间序列模型训练的过程类似,可参考上述各实施例,在此不再赘述。
[0158] 实施例7:
[0159] 基于同样的技术构思,在上述各实施例的基础上,在本申请实施例中,提供了一种掩码时间序列模型训练装置。图9为本申请的一些实施例提供的一种掩码时间序列模型训练装置的结构示意图,如图9所示,该装置包括:
[0160] 获取模块901,用于获取时序样本数据,将所述时序样本数据输入待训练的掩码时间序列模型中;
[0161] 划分模块902,用于按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列;按照预设的第二时间尺度,随机掩盖其中的部分第一子序列;其中,所述第二时间尺度大于所述第一时间尺度;
[0162] 编码模块903,用于对其中没有被掩盖的每个第一子序列进行编码;
[0163] 合并模块904,用于按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列;
[0164] 所述编码模块903,还用于对每个第二子序列进行编码;
[0165] 解码模块905,用于对每个第二子序列及所述部分第一子序列进行解码,获取输出的所述部分第一子序列的预测数据;
[0166] 调整模块906,用于根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整。
[0167] 在一种可能的实施方式中,所述合并模块904,还用于按照预设的第三时间尺度,将编码后的第一子序列合并为多个第三子序列;其中所述第三时间尺度大于所述第一时间尺度,且小于所述第二时间尺度;
[0168] 所述编码模块903,还用于对每个第三子序列进行编码;
[0169] 所述合并模块904,还用于按照所述第二时间尺度将编码后的第三子序列合并为多个第二子序列。
[0170] 在一种可能的实施方式中,所述划分模块902,具体用于确定所述时序样本数据的均值和标准差;根据所述均值和所述标准差,对所述时序样本数据归一化;按照预设的第一时间尺度,将所述归一化后的时序样本数据划分为多个不重叠的第一子序列。
[0171] 在一种可能的实施方式中,所述划分模块902,具体用于确定时序样本数据与所述均值的差值,将所述差值与所述标准差的比值确定为时序样本数据归一化后的时序样本数据。
[0172] 在一种可能的实施方式中,所述调整模块906,具体用于根据所述部分第一子序列的预测数据,所述部分第一子序列的数量以及所述部分第一子序列,确定所述掩码时间序列模型的损失值最小平方误差MSE;根据所述MSE,对所述待训练的掩码时间序列模型中的参数进行调整。
[0173] 本申请实施例的装置,其中各个模块执行操作的具体方式已经在有关该掩码时间序列模型训练方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0174] 在本申请实施例中,通过将获取到的时序样本数据输入待训练的掩码时间序列模型中,待训练的掩码时间序列模型按照预设的第一时间尺度将时序样本数据划分为多个不重叠的第一子序列,按照预设的、大于第一时间尺度的第二时间尺度,随机掩盖其中的部分第一子序列;并对其中没有被掩盖的每个第一子序列进行编码,再按照第二时间尺度将编码后的第一子序列合并为多个第二子序列,并对每个第二子序列进行编码,从而能够提取到多种时间尺度的子序列的特征信息;对每个第二子序列及部分第一子序列进行解码,获取输出的部分第一子序列的预测数据;根据预测数据以及部分第一子序列,对待训练的掩码时间序列模型中的参数进行调整,从而提高掩码时间序列模型进行时序数据预测的准确率。
[0175] 实施例8:
[0176] 基于同样的技术构思,在上述各实施例的基础上,在本申请实施例中,提供了一种时序数据预测装置,图10为本申请的一些实施例提供的一种时序预测装置的结构示意图。如图10所示,该装置包括:
[0177] 获取模块1001,用于获取时序数据,将所述时序数据输入预先训练完成的掩码时间序列模型中;
[0178] 划分模块1002,用于按照预设的第一时间尺度将所述时序数据划分为多个不重叠的第一子序列;
[0179] 编码模块1003,用于对每个第一子序列进行编码;
[0180] 合并模块1004,用于按照预设的第二时间尺度将编码后的第一子序列合并为多个第二子序列;
[0181] 所述编码模块1003,还用于对每个第二子序列进行编码;
[0182] 解码模块1005,用于对每个第二子序列进行解码,获取输出的预测数据。
[0183] 本申请实施例的装置,其中各个模块执行操作的具体方式已经在有关该时序数据预测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0184] 实施例9:
[0185] 基于同样的技术构思,在上述各实施例的基础上,在本申请实施例中,提供了一种电子设备。
[0186] 图11为本申请的一些实施例提供的一种电子设备的结构示意图。如图11所示,该电子设备包括:处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信;
[0187] 所述存储器1103中存储有计算机程序,当所述程序被所述处理器1101执行时,使得所述处理器1101执行如下步骤:
[0188] 获取时序样本数据;
[0189] 将所述时序样本数据输入待训练的掩码时间序列模型中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列;按照预设的第二时间尺度,随机掩盖其中的部分第一子序列;其中,所述第二时间尺度大于所述第一时间尺度;对其中没有被掩盖的每个第一子序列进行编码;按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码;对每个第二子序列及所述部分第一子序列进行解码,获取输出的所述部分第一子序列的预测数据;
[0190] 根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整。
[0191] 在一种可能的实施方式中,所述处理器1101,还用于:
[0192] 按照预设的第三时间尺度,将编码后的第一子序列合并为多个第三子序列;其中所述第三时间尺度大于所述第一时间尺度,且小于所述第二时间尺度;对每个第三子序列进行编码;按照所述第二时间尺度将编码后的第三子序列合并为多个第二子序列。
[0193] 在一种可能的实施方式中,所述处理器1101,还用于:
[0194] 确定所述时序样本数据的均值和标准差;根据所述均值和所述标准差,对所述时序样本数据归一化;按照预设的第一时间尺度,将所述归一化后的时序样本数据划分为多个不重叠的第一子序列。
[0195] 在一种可能的实施方式中,所述处理器1101,还用于:
[0196] 确定时序样本数据与所述均值的差值,将所述差值与所述标准差的比值确定为时序样本数据归一化后的时序样本数据。
[0197] 在一种可能的实施方式中,所述处理器1101,还用于:
[0198] 根据所述部分第一子序列的预测数据,所述部分第一子序列的数量以及所述部分第一子序列,确定所述掩码时间序列模型的损失值最小平方误差MSE;根据所述MSE,对所述待训练的掩码时间序列模型中的参数进行调整。
[0199] 在一种可能的实施方式中,所述处理器1101,还用于:
[0200] 获取时序数据;将所述时序数据输入预先训练完成的掩码时间序列模型中,所述掩码时间序列模型按照预设的第一时间尺度将所述时序数据划分为多个不重叠的第一子序列;对每个第一子序列进行编码;按照预设的第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码;对每个第二子序列进行解码,获取输出的预测数据。
[0201] 由于上述电子设备解决问题的原理与掩码时间序列模型训练方法或时序数据预测相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
[0202] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0203] 通信接口1102用于上述电子设备与其他设备之间的通信。
[0204] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0205] 上述处理器可以是通用处理器,包括中央处理器、网络处理器(Network Processor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0206] 实施例11:
[0207] 基于同样的技术构思,在上述各实施例的基础上,在本申请实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
[0208] 获取时序样本数据;
[0209] 将所述时序样本数据输入待训练的掩码时间序列模型中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列;按照预设的第二时间尺度,随机掩盖其中的部分第一子序列;其中,所述第二时间尺度大于所述第一时间尺度;对其中没有被掩盖的每个第一子序列进行编码;按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码;对每个第二子序列及所述部分第一子序列进行解码,获取输出的所述部分第一子序列的预测数据;
[0210] 根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整。
[0211] 在一种可能的实施方式中,所述对其中没有被掩盖的每个第一子序列进行编码之后,所述按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列之前,所述方法还包括:
[0212] 按照预设的第三时间尺度,将编码后的第一子序列合并为多个第三子序列;其中所述第三时间尺度大于所述第一时间尺度,且小于所述第二时间尺度;
[0213] 对每个第三子序列进行编码;
[0214] 所述按照所述第二时间尺度将编码后的第一子序列合并为多个第二子序列包括:
[0215] 按照所述第二时间尺度将编码后的第三子序列合并为多个第二子序列。
[0216] 在一种可能的实施方式中,所述待训练的掩码时间序列模型按照预设的第一时间尺度将所述时序样本数据划分为多个不重叠的第一子序列包括:
[0217] 确定所述时序样本数据的均值和标准差;根据所述均值和所述标准差,对所述时序样本数据归一化;按照预设的第一时间尺度,将所述归一化后的时序样本数据划分为多个不重叠的第一子序列。
[0218] 在一种可能的实施方式中,所述根据所述均值和所述标准差,对所述时序样本数据归一化包括:
[0219] 确定时序样本数据与所述均值的差值,将所述差值与所述标准差的比值确定为时序样本数据归一化后的时序样本数据。
[0220] 在一种可能的实施方式中,所述根据所述预测数据以及所述部分第一子序列,对所述待训练的掩码时间序列模型中的参数进行调整包括:
[0221] 根据所述部分第一子序列的预测数据,所述部分第一子序列的数量以及所述部分第一子序列,确定所述掩码时间序列模型的损失值最小平方误差MSE;
[0222] 根据所述MSE,对所述待训练的掩码时间序列模型中的参数进行调整。
[0223] 在一种可能的实施方式中,获取时序数据;
[0224] 将所述时序数据输入预先训练完成的掩码时间序列模型中,所述掩码时间序列模型按照预设的第一时间尺度将所述时序数据划分为多个不重叠的第一子序列;对每个第一子序列进行编码;按照预设的第二时间尺度将编码后的第一子序列合并为多个第二子序列,对每个第二子序列进行编码;对每个第二子序列进行解码,获取输出的预测数据。
[0225] 上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD)等。
[0226] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0227] 本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0228] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0229] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0230] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。