一种数据异常检测方法及装置与流程

文档序号:29570277发布日期:2022-04-09 03:41阅读:129来源:国知局
一种数据异常检测方法及装置与流程

1.本发明实施例涉及金融科技(finteh)领域,尤其涉及一种数据异常检测方法及装置。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,然而,由于金融行业具有安全性和实时性的要求,从而也对技术提出了更高的要求。
3.随着微服务应用的兴起和分布式架构的发展,子系统规模及系统调用复杂度不断提高。目前it运维领域的应用实例维护成本越来越高,而应用实例运维的核心问题之一就是关注应用实例的运维数据的各项指标是否异常。应用实例运维指标监控数据主要可分为主机性能指标(例如中央处理器(central processing unit,cpu)、存储器(memory,mem)、磁盘(disk)、java虚拟机(java virtual machine,jvm)、输入输出(input output,io)等)和关键业务指标(例如业务接口交易量、耗时及成功率),这些指标是典型的时序数据,可表征该应用实例本身以及应用实例上承载应用是否运行良好。
4.现有的应用实例级别异常检测是将多维运维时序指标进行横向分隔,转换为多个单维时间序列,利用单维时间序列领域的算法检测异常。对于多维序列中各个维度视为一个独立单元时,异常分析主要是在这个单元上进行,而系统运行及健康状态往往是由一系列指标共同决定的,指标之间并非相互独立的关系,仅因某个维度指标异常而将整个应用实例判断为异常是不合理的。同时,针对不同类型的时间序列需运维人员结合长期经验配置使用不同模型,维护成本比较高,不适用于大规模的时间序列异常检测场景。随着系统逐渐庞大,监控指标数量呈指数式增长。虽然运维指标序列可视化成本低、单一维度含义明确且数值变化规则明显,但运维人员手工设置告警规则检测维度低且人为判定异常准确度低,已无法满足产品应用快速迭代,提供可靠、高效服务的要求。
5.因此,亟需一种数据异常检测方法,用以解决现有技术中存在应用实例的原始运维数据异常检测准确性低的问题。


技术实现要素:

6.本发明实施例提供了一种数据异常检测方法及装置,用以解决现有技术中存在的应用实例的原始运维数据异常检测准确性低的问题。
7.第一方面,本发明实施例提供了一种数据异常检测方法,包括:
8.获取当前时刻的原始运维数据;原始运维数据包括多个运维指标的数据;
9.将所述原始运维数据输入至异常检测模型,得到所述原始运维数据对应的重构数据;所述异常检测模型是根据历史的正常运维数据对vae-gan模型进行训练得到的;
10.计算所述原始运维数据对应的重构数据与所述原始运维数据之间的重构误差;
11.根据所述重构误差,确定所述原始运维数据中的异常指标。
12.上述技术方案中,通过将当前时刻的多个运维指标的原始运维数据输入到预设的异常检测模型,得到所述原始运维数据对应的重构数据,然后根据计算的重构数据与所述原始运维数据之间的重构误差,确定原始运维数据中的异常指标,可以实现对多维运维指标采用一个模型进行检测,实时地自动识别出原始运维数据中的异常指标,而不是针对不同的运维指标采用不同的模型进行异常检测,从而可以避免仅根据某一维度指标异常而判断为应用实例异常的问题,进而可以提高对应用实例的原始运维数据异常检测的准确性。
13.可选地,所述根据所述重构误差,确定所述原始运维数据中的异常指标,包括:若所述重构误差大于或等于误差阈值,则确定所述原始运维数据异常;根据所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,确定所述原始运维数据中的异常指标。
14.上述技术方案中,根据原始运维数据与重构数据之间的重构误差与误差阈值的大小判断,可以快速确定原始运维数据是否异常,在确定原始运维数据存在异常时,再继续进行根因分析,可以避免在原始运维数据无异常时浪费的计算资源。
15.可选地,所述根据所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,确定所述原始运维数据中的异常指标,包括:计算所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,得到所述多个运维指标对应的多个重构误差;将所述多个运维指标对应的多个重构误差中的m个最大值所对应的运维指标确定为异常指标,所述m为正整数。
16.上述技术方案中,在根因分析时,从多维度指标分别对应的重构误差中找出m个最大值对应的维度指标,定位为故障根因,而不是采用重构误差作为指标异常判断标准,使得根因分析结果更具有客观性。
17.可选地,所述计算所述原始运维数据对应的重构数据与所述原始运维数据之间的重构误差,包括:将所述多个运维指标对应的多个重构误差之和,确定为所述重构数据与所述原始运维数据之间的重构误差。
18.可选地,所述将所述原始运维数据输入至异常检测模型之前,所述方法还包括:
19.获取离线的历史运维数据;
20.将所述历史运维数据作为输入构建vae-gan模型,以vae-gan模型的损失函数最小值为优化目标对所述vae-gan模型进行无监督训练,得到所述异常检测模型;
21.其中,所述vae-gan模型包括vae网络和gan网络,所述vae网络包括编码器和解码器,所述编码器用于输出变分分布所述解码器用于输出后验概率分布p
θ
(z);所述gan网络用于约束所述编码器输出的变分分布与后验概率分布p
θ
(z)之间的kl散度最小,以及用于约束所述解码器输出的重构数据与历史运维数据之间的重构误差最小。
22.上述技术方案中,通过离线的历史运维数据对vae-gan模型进行训练,以从而为预设的分类策略模型的实时识别提供支持,在vae中引入gan,关注vae判别模块隐藏层输出分布q(z)及生成模块重构输出w

xt
的重要特征,使用判别器de约束变分自编码器中间输出(即分布输出),提高重构的鲁棒性,减少重构的过拟合效应,提高预测引擎的运行效率和准确度;使用判别器dd约束变分自编码器的重构输出w

xt
更接近于输入以学习输入数据的分布。
23.可选的,所述将所述历史运维数据作为输入构建vae-gan模型,包括:
24.根据历史运维数据的似然函数,采用最大化对数似然函数的方式估计后验概率分布p
θ
(z|x)的参数θ;
25.根据以下公式(1)以及公式(2)将计算变分分布与后验概率分布p
θ
(z|x)之间的kl散度最小值,转换为寻找参数使得变分证据下界的值最大:
[0026][0027][0028]
其中,为变分分布与后验概率分布p
θ
(z|x)之间的kl散度,为变分证据下界;
[0029]
根据所述参数θ构建van网络的解码器,根据参数构建van网络的编码器;
[0030]
在所述van网络的编码器的输出端增加分布约束的gan判别器,并在所述van的编码器的输出端增加输出约束的gan判别器,得到vae-gan模型;其中,所述分布约束的gan判别器用于判别所述变分分布与后验概率分布p
θ
(z|x)是否接近;所述输出约束的gan判别器用于判别所述解码器输出的重构数据与所述历史运维数据是否接近。
[0031]
可选的,以vae-gan模型的损失函数最小值为优化目标对所述vae-gan模型进行无监督训练,得到所述异常检测模型,包括:
[0032]
确定vae-gan模型中基于分布约束的gan判别器的损失函数:
[0033][0034]
其中,y为随机噪声,p(y)为低维的噪声分布,x为真实样本,p(x)为真实样本分布,de(z)表示输入的样本是真实样本的概率,de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0035]
确定vae-gan模型中与所述编码器等效的生成器的损失函数:
[0036][0037]
其中,x为真实样本,p(x)为真实样本分布,de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0038]
根据所述分布约束的gan判别器的损失函数和所述解码器等效的生成器的损失函数的最小值为目标,约束编码器输出的变分分布与后验概率分布p
θ
(z)之间的kl散度最小,不断优化所述vae-gan模型;
[0039]
确定vae-gan模型中基于输出约束的gan判别器的损失函数:
[0040][0041]
其中,x为真实样本,p(x)为真实样本分布,表示以输入的样本是真实样本的概率,表示以解码器的输出结果作为输入的样本是真实样本的概率;
[0042]
确定与所述解码器等效的生成器的损失函数:
[0043][0044]
其中,x为真实样本,p(x)为真实样本分布,表示以解码器的输出结果作为输入的样本是真实样本的概率;
[0045]
根据所述基于输出约束的gan判别器的损失函数和所述编码器等效的生成器的损失函数的最小值为目标,约束解码器输出的重构数据与历史运维数据之间的重构误差最小。
[0046]
第二方面,本发明实施例还提供了一种异常数据检测装置,包括:
[0047]
获取单元,用于获取当前时刻的原始运维数据;原始运维数据包括多个运维指标的数据;
[0048]
处理单元,用于将所述原始运维数据输入至异常检测模型,得到所述原始运维数据对应的重构数据;计算所述原始运维数据对应的重构数据与所述原始运维数据之间的重构误差;根据所述重构误差,确定所述原始运维数据中的异常指标;所述异常检测模型是根据历史的正常运维数据对vae-gan模型进行训练得到的。
[0049]
可选地,所述处理单元具体用于:若所述重构误差大于或等于误差阈值,则确定所述原始运维数据异常;根据所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,确定所述原始运维数据中的异常指标。
[0050]
可选地,所述处理单元具体用于:计算所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,得到所述多个运维指标对应的多个重构误差;将所述多个运维指标对应的多个重构误差中的m个最大值所对应的运维指标确定为异常指标,所述m为正整数。
[0051]
可选地,所述处理单元还用于:将所述多个运维指标对应的多个重构误差之和,确定为所述重构数据与所述原始运维数据之间的重构误差。
[0052]
可选地,所述获取单元还用于:获取离线的历史运维数据;所述处理单元还用于:将所述历史运维数据作为输入构建vae-gan模型,以vae-gan模型的损失函数最小值为优化目标对所述vae-gan模型进行无监督训练,得到所述异常检测模型;
[0053]
其中,所述vae-gan模型包括vae网络和gan网络,所述vae网络包括编码器和解码器,所述编码器用于输出变分分布所述解码器用于输出后验概率分布p
θ
(z|x);所述gan网络用于约束所述编码器输出的变分分布与后验概率分布p
θ
(z|x)之间的kl散度最小,以及用于约束所述解码器输出的重构数据与历史运维数据之间的重构误差最小。
[0054]
可选地,所述处理单元具体用于:
[0055]
根据历史运维数据的似然函数,采用最大化对数似然函数的方式估计后验概率分布p
θ
(z)的参数θ;
[0056]
根据以下公式(1)以及公式(2)将计算变分分布与后验概率分布p
θ
(z|x)
之间的kl散度最小值,转换为寻找参数使得变分证据下界的值最大:
[0057][0058][0059]
其中,为变分分布与后验概率分布p
θ
(z|x)之间的kl散度,为变分证据下界;
[0060]
根据所述参数θ构建van网络的解码器,根据参数构建van网络的编码器;
[0061]
在所述van网络的编码器的输出端增加分布约束的gan判别器,并在所述van的编码器的输出端增加输出约束的gan判别器,得到vae-gan模型;其中,所述分布约束的gan判别器用于判别所述变分分布与后验概率分布p
θ
(z|x)是否接近;所述输出约束的gan判别器用于判别所述解码器输出的重构数据与所述历史运维数据是否接近。
[0062]
可选地,所述处理单元具体用于:
[0063]
确定vae-gan模型中基于分布约束的gan判别器的损失函数:
[0064][0065]
其中,y为随机噪声,p(y)为低维的噪声分布,x为真实样本,p(x)为真实样本分布,de(z)表示输入的样本是真实样本的概率,de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0066]
确定vae-gan模型中与所述编码器等效的生成器的损失函数:
[0067][0068]
其中,x为真实样本,p(x)为真实样本分布,de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0069]
根据所述分布约束的gan判别器的损失函数和所述解码器等效的生成器的损失函数的最小值为目标,约束编码器输出的变分分布与后验概率分布p
θ
(z)之间的kl散度最小,不断优化所述vae-gan模型;
[0070]
确定vae-gan模型中基于输出约束的gan判别器的损失函数:
[0071][0072]
其中,x为真实样本,p(x)为真实样本分布,表示以输入的样本是真实样本的概率,表示以解码器的输出结果作为输入的样本是真实样本的概率;
[0073]
确定与所述解码器等效的生成器的损失函数:
[0074][0075]
其中,x为真实样本,p(x)为真实样本分布,表示以解码器的输出
结果作为输入的样本是真实样本的概率;
[0076]
根据所述基于输出约束的gan判别器的损失函数和所述编码器等效的生成器的损失函数的最小值为目标,约束解码器输出的重构数据与历史运维数据之间的重构误差最小。
[0077]
第三方面,本发明实施例提供一种计算设备,包括:
[0078]
存储器,用于存储程序指令;
[0079]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行数据异常检测方法。
[0080]
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行数据异常检测方法。
附图说明
[0081]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0082]
图1为本发明实施例提供的一种系统架构的示意图;
[0083]
图2为本发明实施例提供的一种数据异常检测方法的流程示意图;
[0084]
图3为本发明实施例提供的一种数据异常检测方法的流程示意图;
[0085]
图4为本发明实施例提供的vae基本框架示意图;
[0086]
图5为本发明实施例提供的vae具体网络结构示意图;
[0087]
图6为本发明实施例提供的vae使用重参数构建示意图;
[0088]
图7为本发明实施例提供的gan模型结构示意图;
[0089]
图8为本发明实施例提供的多维异常检测模型结构示意图;
[0090]
图9为本发明实施例提供的一种异常数据检测装置的结构示意图。
具体实施方式
[0091]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0092]
图1为本发明实施例提供的一种系统架构。如图1所示,该系统架构可以为服务器100,包括处理器110、通信接口120和存储器130。
[0093]
其中,通信接口120用于与终端设备进行通信,收发该终端设备传输的信息,实现通信。
[0094]
处理器110是服务器100的控制中心,利用各种接口和线路连接整个服务器100的各个部分,通过运行或执行存储在存储器130内的软件程序/或模块,以及调用存储在存储器130内的数据,执行服务器100的各种功能和处理数据。可选地,处理器110可以包括一个
或多个处理单元。
[0095]
存储器130可用于存储软件程序以及模块,处理器110通过运行存储在存储器130的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器130可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储应用实例的运维数据等。此外,存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0096]
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
[0097]
下面对本发明涉及到的术语进行说明。
[0098]
变分自动编码器(variational auto-encoder,vae),是概率统计及机器学习领域的一类重要深度生成模型,其思想是利用神经网络来分别建模两个复杂的条件概率密度函数。变分自编码器是基于自编码器的改进,分为编码器(encoder)和解码器(decoder)两部分模型。编码器将输入样本映射为不同维度之间相互独立的低维多元高斯分布,学习输入数据的隐含特征,生成隐空间层。解码器将编码器学习得到的隐含特征重构出原始输入数据。将原始输入矢量和重建矢量之间的差异被称为重构误差,vae将不断学习最小化该重构误差。
[0099]
生成对抗式网络(generative adversarial networks,gan),是复杂分布上无监督学习的隐式密度生成模型。通过生成模型(generative model)和判别模型(discriminative model)的互相博弈学习生成输出轮流训练判别器(discriminator)和生成器(generator),令其相互对抗,从复杂概率分布中采样,使得生成网络产生的样本服从真实数据的分布。判别网络,其目标是尽量准确地判断一个样本是来自真实数据还是由生成网络产生;生成网络,其目标是尽量生成让判别网络无法准确区分来源的样本。通过这两个目标相反的网络不断交替训练,得到判别网络无法判断样本来源的生成网络,即可认定该生成网络可生成符合真实样本分布的样本。
[0100]
基于上述描述,图2示例性的示出了本发明实施例提供的一种数据异常检测方法的流程,该流程可以由一种异常数据检测装置执行,该装置可以位于如图1所示服务器100内,也可以是该服务器100。
[0101]
如图2所示,该流程具体包括:
[0102]
步骤201,获取当前时刻的原始运维数据。
[0103]
本发明实施例中,该原始运维数据包括多个运维指标的数据,以原始运维数据包括n维指标为例,当前时刻t的原始运维数据例如为w={x
t1
,x
t2
,x
t3
……
x
tn
},其中,x
tn
表示维度指标n对应的原始数据,n为正整数。
[0104]
其中,运维指标可以为主机性能指标和/或关键业务指标,主机性能指标例如为cpu、mem、disk、jvm、io等,关键业务指标例如为业务接口交易量、耗时及成功率等。在步骤201中的多个运维指标可以包括主机性能指标和关键业务指标这两类指标中的至少两个指标,例如多个运维指标包括cpu和业务接口交易量,又例如,多个运维指标包括cpu、jvm和io。
[0105]
步骤202,将原始运维数据输入至异常检测模型,得到原始运维数据对应的重构数据。
[0106]
本发明实施例中,异常检测模型是根据历史的正常运维数据对vae-gan模型进行训练得到的。
[0107]
示例性的,原始运维数据w={x
t1
,x
t2
,x
t3
……
x
tn
},w对应的重构数据表示为w

={x
t1

,x
t2

,x
t3

……
x
tn

},其中,x
t1

为x
t1
对应的重构数据,x
t2

为x
t2
对应的重构数据,x
tn

为x
tn
对应的重构数据。x
tn

表示维度指标n对应的重构数据,也就是说,x
tn

与x
tn
对应同一维度指标。
[0108]
步骤203,计算原始运维数据对应的重构数据与原始运维数据之间的重构误差。
[0109]
步骤204,根据原始运维数据对应的重构数据与原始运维数据之间的重构误差,确定原始运维数据中的异常指标。
[0110]
本技术实施例中,通过将当前时刻的多个运维指标的原始运维数据输入到预设的异常检测模型,得到所述原始运维数据对应的重构数据,然后根据计算的重构数据与所述原始运维数据之间的重构误差,确定原始运维数据中的异常指标,可以实现对多维运维指标采用一个模型进行检测,实时地识别出原始运维数据中的异常指标,而不是针对不同的运维指标采用不同的模型进行异常检测,从而可以避免仅根据某一维度指标异常而判断为应用实例异常的问题,进而可以提高对应用实例的原始运维数据异常检测的准确性。
[0111]
在一种可实施的方式中,上述步骤203中的重构误差可以通过以下方式得到:根据原始运维数据与原始运维数据对应的重构数据中多个运维指标分别对应的重构误差,将多个运维指标分别对应的重构误差之和,确定为重构数据与原始运维数据之间的重构误差。
[0112]
在一个示例中,原始运维数据w
t
={x
t1
,x
t2
,x
t3
……
x
tn
},w对应的重构数据表示为w
t

={x
t1

,x
t2

,x
t3

……
x
tn

},xn′
与xn对应同一维度指标,针对维度指标j来说,w

与w之间的重构误差可以通过以下公式计算得到:
[0113][0114]
在公式(1)中,为t时刻的维度指标j对应的原始运维数据,为t时刻的维度指标j对应的重构数据,为t时刻的维度指标j对应的重构误差,表示对t时刻的维度指标1~j分别对应的重构误差进行求和。
[0115]
若重构数据与原始运维数据之间的重构误差小于误差阈值,则确定原始运维数据正常;若重构数据与原始运维数据之间的重构误差大于或等于误差阈值,则确定原始运维数据异常,然后,可以根据所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,确定原始运维数据中的异常指标。如此,可以快速确定原始运维数据是否异常,在确定原始运维数据存在异常时,再继续进行根因分析,可以避免在原始运维数据无异常时浪费的计算资源。
[0116]
在一种可实施的方式中,根据所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,确定所述原始运维数据中的异常指标,包括:计算所述原始运维数据中每个运维指标的数据与所述原始运维数据对应的重构数据中对应所述运维指标的数据之间的重构误差,得到所述多个运维指标对应的多个重构误差;将所述多个运维指标对应的多个重构误差中的m个最大值所对应的运维指标确定为异常指标,m为正整数。其中,m的取值可以根据实际需要进行设置,此处
不进行限制。
[0117]
以为误差阈值为0.05,m为5为例,若根据上述公式(1),计算得到t时刻的原始运维数据与原始运维数据对应的重构数据之间的重构误差的值大于或等于0.05,则从中确定出5个最大值,这5个最大值对应的运维指标即为异常指标。
[0118]
通过上述方式,从多维度指标对应的多个重构误差中找出m个最大值对应的维度指标,定位为故障根因,而不是采用重构误差作为指标异常判断标准,使得根因分析结果更具有客观性。
[0119]
本技术实例中,可以在离线模块中,先对vae-gan模型进行训练得到异常检测模型,然后在实时模块使用训练好的异常检测模型,以实现异常检测流程。
[0120]
如图3所示,在离线模块中的具体处理过程如下:
[0121]
s301,获取离线的历史运维数据。
[0122]
该历史运维数据为应用实例在历史时间内的正常数据。
[0123]
然后,可以在离线模块中,根据历史运维数据对vae-gan模型进行训练得到异常检测模型。在一种可实施的方式中,将历史运维数据作为输入构建vae-gan模型,以vae-gan模型的损失函数最小值为优化目标对vae-gan模型进行无监督训练,得到异常检测模型。
[0124]
其中,vae-gan模型包括vae网络和gan网络,vae网络包括编码器和解码器,编码器用于输出变分分布解码器用于输出后验概率分布p
θ
(z);gan网络用于约束编码器输出的变分分布与后验概率分布p
θ
(z)之间的kl散度最小,以及用于约束解码器输出的重构数据与历史运维数据之间的重构误差最小。需要说明的是,本技术实施例中涉及的后验概率分布p
θ
(z)也可以用p
θ
(z|x)表示。
[0125]
s302,对原始运维数据进行预处理。
[0126]
应理解,该s302为可选的步骤,在对vae-gan模型进行训练之前,由于历史运维数据中最大值和最小值未知且量钢尺度不一,为提高模型的训练收敛速度,对原始运维数据进行预处理之后输入至异常检测模型中,示例的,具体预处理方式可以采用最大化最小化(maxmin)归一化方法,将原始运维数据的数据值映射到[0,1]之间。去量钢加速模型构建,具体处理方式如下公式:
[0127][0128]
其中,x

为标准化随机变量,x为原始序列数值,max为原始运维数据中的最大值,min为原始运维数据中的最小值。
[0129]
s303,基于vae的重构模块构建。
[0130]
vae作为基于概率统计结合深度学习的深度生成模型,可用于随机生成一系列可观测数据,其本质为定向概率图形模型。如图4所示,vae基本框架是随机采样的概率模型,模拟了样本输入变量x及隐变量z之间的关系。假设x可由服从某种分布的隐变量z生成,其中x

z为判别模块的变分近似,类似自编码器的编码器;z

x为生成模块p
θ
(x|z),类似于自编码器的解码器。
[0131]
vae利用神经网络分别建模两个复杂的条件概率密度函数,其网络结构自编码器
类似,但输出内部不同。vae输出为分布,而自编码器输出固定编码,图5为vae具体网络结构。
[0132]
如图5所示,编码模块输入为x,输出为变分分布vae使用神经网络估计变分分布因本方法中的隐变量z为连续变量,其真实后验概率分布p
θ
(z|x)难以统计推断,涉及积分计算,传统的em算法无法解决θ的参数统计。因此vae基于变分推断,使用近似逼近后验概率分布p
θ
(z|x)。
[0133]
解码模块输入为z,输出为概率分布p
θ
(x|z)。vae使用神经网络估计概率分布p
θ
(x|z),利用神经网络的拟合功能对p
θ
(x|z)的分布参数进行拟合。
[0134]
s303a,vae目标函数-对数最大似然函数。
[0135]
vae目标为解码模块重构的数据接近原始数据,即对p
θ
(x|z)做参数估计,利用对数最大似然法,就是要最大化对数似然函数。假定输入样本集(即历史运维数据)为d,d={x1,x2,x3……
xn},其中所有数据均独立分布,两个观察间不会相互影响。最大似然估计则利用已知样本结果,估算概率密度函数的参数向量θ,以联合概率密度函数p
θ
(d)=p(x1,x2,x3……
xn|θ)为相当于{x1,x2,x3……
xn}的似然函数l(θ)),其计算方式如下:
[0136][0137]
根据如公式(2)所示的似然函数,θ

为参数空间中使似然函数l(θ)值最大的θ值,可以表示为如下公式(3):
[0138][0139]
为便于计算使用对数最大似然函数,如公式(4):
[0140][0141][0142]
当且仅当时,θ

最大。
[0143]
s303b,对vae编码模块构建过程进行介绍。
[0144]
vae编码模块使用变分近似逼近原始后验概率布p
θ
(z|x),即要学习生成参数向量使两者分布近似。在概率统计中使用kl散度衡量两个分布间的相似程度,kl散度即kullback-leibler散度,又称为相对熵,是两个概率分布p和q之间差异的非对称度量。在信息理论中,相对熵等价于两个概率分布的信息熵的差值,其计算公式如下:
[0145][0146]
s303b-1,编码网络的分布假设。
[0147]
vae推断模块为简化计算假设为服从均值为μi,方差为的正态分布,即即由μi和两个参数向量决定,可通过编码网络进行
预测,即其中一般为全连接网络或卷积网络,在本方法中为使历史训练样本的特征训练更为完整,将使用全连接网络,其计算方法如下:
[0148]
h=σ(w
(1)
x+b
(1)
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7);
[0149]
μi=w
(2)
h+b
(2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8);
[0150][0151]
其中w(i)和b(i)是神经网络的权重和偏差,σ是非线性变换函数。由于方差恒为非负值,所以使用激活函数:
[0152]
softplus=log(1+e
x
)
ꢀꢀꢀ
(10);
[0153]
h为经编码模块处理后输入样本x隐藏到隐藏层的表示。
[0154]
s303b-2,编码网络的变分近似。
[0155]
vae编码网络的目标为尽可能逼近真实后验概率分布p
θ
(z|x),即找到一组网络参数最小化两个分布的kl散度,可表示为如下公式(11):
[0156][0157]
其计算过程如下:
[0158]
(1)根据kl散度定义得:
[0159][0160]
(2),根据吉布森不等式知,kl散度恒大于等于0。当且仅当两分布相同时,kl散度为0,即上述公式(12)可变换为公式(13):
[0161][0162]
上述公式(13)进一步变换为公式(14):
[0163][0164][0165]
(3)根据条件概率上述公式(14)可变换为公式(16):
[0166][0167]
由上述公式(16)可知等号右边第二项为编码模块的目标最大化对数似然函数,令即为对数似然性的变分证据下界,得到如下公式(17):
[0168][0169]
因kl散度恒大于等于0,编码网络的目标函数可进行如下转换:编码网络的目标函数优化转化为寻找一组参数向量使得z变分证据下界最大,其中,可用如下公式(18)表示:
[0170][0171]
s303c,vae解码模块构建。
[0172]
因kl散度非负,由公式(18)可知一般情况下优化logp
θ
(x)是不可行的,因此一般转而优化它的变分证据下界即优化对数似然函数转化为优化变分证据下界可进行如下转换:
[0173][0174][0175][0176]
公式(21)中的第一项用l1表示,第二项用l2表示,即公式(21)可以表示为如下公式(22):
[0177][0178]
s303c-1,解码网络目标函数转换。
[0179]
vae将生成模块的目标函数最大化似然函数logp
θ
(x),转换为最大化提高变分证据下界。对于vae的目标函数等价于l1(近似后验概率与先验分布p
θ
(z)的kl散度)+l2(对数似然估计)。l1可作为正则化项来防止过拟合,在本方法中使用gan进行分布约束。l2相当于自编码器的重构误差,用于重构原始样本数据。
[0180]
s303c-2,l1项的神经网络近似拟合,如下公式(23):
[0181][0182]
vae设定隐变量z为简单的先验分布,以便对目标函数进行优化求解。一般设定p
θ
(z)为标准正态分布,近似后验分布服从均值为μi,方差为的正态分布,并使用神经网络拟合,其具体形式如下:
[0183]
p
θ
(z)=n(0,i)
ꢀꢀꢀꢀꢀ
(24);
[0184][0185]
s303c-3,l2项的蒙特卡洛方法估计。
[0186][0187]
因l2梯度方差很大,不适于用于数值计算。在机器学习领域,对于复杂积分的期望问题,可以采用蒙特卡洛方法,利用蒙特卡洛采样即l2等价于如下公式(27):
[0188][0189]
s303d,vae重参数化构建。
[0190]
在生成网络中,vae需从分布中采样足够多的样本zk近似原函数的分布,尽管已假定p
θ
(z|x)为正态分布,因均值和方差均需模型计算得出,此过程需通过反向传播优化均值方差模型。反向传播过程中的采样操作为随机采样不可微,因此vae使用重参数构建方法,如图6所示,假定从n(μ,σ2)中采样出z相当于从n(0,i)中采样一个ε,令z=μ+ε*σ。通过重参数化,使得采样操作无需参与梯度下降,使得模型训练可微。
[0191]
在构建van网络的编码器和解码器之后,在van网络的编码器的输出端增加分布约束的gan判别器,并在van的编码器的输出端增加输出约束的gan判别器,得到vae-gan模型。其中,分布约束的gan判别器用于判别变分分布与后验概率分布p
θ
(z|x)是否接近;输出约束的gan判别器用于判别解码器输出的重构数据与历史运维数据是否接近。
[0192]
s304,基于gan对vae分布约束和vae输出约束,以训练得到异常检测模型。
[0193]
下面先对gan进行详细介绍。
[0194]
gan与vae均为基于神经网络的生成模型,主要思想是生成内容原始样本尽量相似,两者区别主要在于训练的损失函数不同,其中,vae其目标函数在于最大似然估计,即最小化kl散度,kl散度为模型和p
θ
(z|x)之间的距离,其优化目标和过程都是显式的,而gan其目标在于优化生成网络与判别网络的博弈过程,即生成网络g的目标就是尽量生成真实的图片去欺骗判别网络d,最终实现判别网络无法识别样本是真实样本还是生成样本。gan属于隐式生成模型,其目标函数及训练过程并未显式计算最大似然函数,其模型结构如图7所示。
[0195]
下面对gan的基本原理进行介绍,如图7所示,生成器g是一个生成样本的神经网络,它接收一个随机的噪声y,通过这个噪声生成样本(如正态分布)记做g(z)。鉴别器d是一个判别样本的神经网络,判别样本是不是真实,即判定输入样本来自于生成器还是原始样本取样。其输入参数是样本x,输出d(x)代表x为真实样本的概率,若d(x)=1,则判定样本来自原始数据。
[0196]
(1)gan的目标损失函数如下公式(28):
[0197]
v(d,g)=mingmaxde
x~p(x)
[logd(x)]+e
y~pnoise(y)
[log1-d(g(z))]
ꢀꢀꢀ
(28);
[0198]
其中,p(x)为真实样本分布,p
noise
(y)为定义低维的噪声分布。gan的损失计算均在鉴别器d输出处产生,整体上使用二进制的交叉熵函数进行true/fake的判定。
[0199]
第一部分为maxd部分为鉴别器训练部分,在模型保持生成器g不变的基础上训练鉴别器d。鉴别器的训练目标为正确区分true/fake并以1/0表示。因e
x~p(x)
输入采样自真实
数据,模型期望d(x)趋近于1,即最大化第一项整体值e
x~p(x)
[logd(x)]。同理第二项e
y~pnoise(z)
输入采样自g的生成数据,模型期望d(g(z))趋近于0,即同步最大化第二项e
y~pnoise(z)
[log1-d(g(z))]整体值。即鉴别器的损失定义如下:
[0200][0201]
第二部分为ming部分为生成器训练部分,在模型保持判别d不变,训练生成器g。生成器训练目标为训练迷惑鉴别器,需期望d(g(z))输出接近于1,即最小化第二项整体值。因与鉴别器训练过程博弈,鉴别器会产生较大误差,通过误差会更新优化g。即生成器的损失定义如下:
[0202][0203]
(2)基于gan的vae分布约束。
[0204]
在日常系统运维中,监控系统以分钟级别采集维度为n的数据x
t
∈rn。如图8所示,基于vae-gan构建多维异常检测模型,以检测时刻x
t
的历史序列窗口δ
t
的运维数据为输入,vae的中间输出服从分布基于对抗式差分自编码器,约束该分布与先验分布p
θ
(z)近似,通过判别器de比较和p
θ
(z),从而提高vae重构的鲁棒性和减少重构的过拟合效应。为原始数据,由gan的标准损失函数,可得基于分布约束的判别器的损失函数为:
[0205][0206]
其中,y为随机噪声,p(y)为低维的噪声分布,x为真实样本,p(x)为真实样本分布,de(z)表示输入的样本是真实样本的概率;de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0207]
与编码器等效的生成器的损失函数分别为:
[0208][0209]
其中,x为真实样本,p(x)为真实样本分布,de(ge(x))表示以编码器的输出结果作为输入的样本是真实样本的概率;
[0210]
以生成器和判别器的损失函数最小值为目标,约束编码器输出的变分分布与后验概率分布p
θ
(z|x)之间的kl散度最小,不断优化vae-gan模型。
[0211]
(3)基于gan的vae输出约束。
[0212]
如图8所示,基于vae-gan构建多维异常检测模型,以检测时刻x
t
的历史序列窗口δ
t
的历史运维数据为输入,利用vae重构序列得到vae损失函数为输入和输出的距离,令重构输出逼近输入数据的分布,但单独用范数距离无法准确衡量输入和输出分布的相似性。因此,本方法利用gan的判别器进一步来辨认输出和重构的相似性。
[0213]
输出约束gan生成器对应vae的解码模块gd,判别器为dd判断重构输出与原始输入间的距离,从而进一步约束自编码器的输出以让自编码器学习原始时序数据的正常分布。
由gan的标准损失函数,可得基于输出约束的判别器的损失函数分别为:
[0214][0215]
其中,x为真实样本,p(x)为真实样本分布,表示以输入的样本是真实样本的概率,表示以解码器的输出结果作为输入的样本是真实样本的概率;
[0216]
与解码器等效的生成器的损失函数分别为:
[0217][0218]
其中,x为真实样本,p(x)为真实样本分布,表示以解码器的输出结果作为输入的样本是真实样本的概率;
[0219]
以生成器和判别器的损失函数最小值为目标,约束解码器输出的重构数据与历史运维数据之间的重构误差最小,不断优化vae-gan模型。
[0220]
上述方案中,在vae中引入gan,关注vae判别模块隐藏层输出分布q(z)及生成模块重构输出w

xt
的重要特征,使用判别器de约束变分自编码器中间输出(即分布输出),提高重构的鲁棒性,减少重构的过拟合效应,提高预测引擎的运行效率和准确度;使用判别器dd约束变分自编码器的重构输出w

xt
更接近于输入以学习输入数据的分布,通过以上分布约束和输出约束,不断训练vae-gan模型,从而可以得到最终的异常检测模型的模型参数。
[0221]
在s304训练得到异常检测模型之后,可以在实时模块中使用异常检测模型进行数据异常检测。如图3所示,实时模块中的具体处理过程包括:
[0222]
s305,获取实时的原始运维数据。
[0223]
s306,加载异常检测模型,将原始运维数据输入至异常检测模型,输出重构数据。
[0224]
s307,计算原始运维数据与重构数据之间的重构误差,并根据重构误差进行数据异常判断。
[0225]
此处,s307的具体实现可以参见上述针对s202-203具体实现的相关描述,此处不再赘述。
[0226]
s308,在确定出数据异常时,进行异常根因定位,确定出异常指标。
[0227]
此处,s308的具体实现可以参见上述针对s204具体实现的相关描述,此处不再赘述。
[0228]
s309,运维人员核实告警准确性。
[0229]
基于相同的技术构思,图9示例性的示出了本发明实施例提供的一种异常数据检测装置,该装置可以执行数据异常检测方法的流程。
[0230]
如图9所示,该装置包括:
[0231]
获取单元901,用于获取当前时刻的原始运维数据;原始运维数据包括多个运维指标的数据;原始运维数据包括多个运维指标的数据;
[0232]
处理单元902,用于将所述原始运维数据输入至异常检测模型,得到所述原始运维数据对应的重构数据;计算所述原始运维数据对应的重构数据与所述原始运维数据之间的
重构误差;根据所述重构误差,确定所述原始运维数据中的异常指标;所述异常检测模型是根据历史的正常运维数据对vae-gan模型进行训练得到的。
[0233]
可选地,所述处理单元902具体用于:若所述重构误差大于或等于误差阈值,则确定所述原始运维数据异常;根据所述原始运维数据与所述原始运维数据对应的重构数据中多个运维指标分别对应的重构误差,确定所述原始运维数据中的异常指标。
[0234]
可选地,所述处理单元902具体用于:将所述多个运维指标对应的多个重构误差中的m个最大值所对应的运维指标确定为异常指标,所述m为正整数。
[0235]
可选地,所述处理单元902还用于:根据所述原始运维数据与所述原始运维数据对应的重构数据中多个运维指标分别对应的重构误差;将所述多个运维指标分别对应的重构误差之和,确定为所述重构数据与所述原始运维数据之间的重构误差。
[0236]
可选地,获取单元901还用于:获取离线的历史运维数据;
[0237]
所述处理单元902还用于:将所述历史运维数据作为输入构建vae-gan模型,以vae-gan模型的损失函数最小值为优化目标对所述vae-gan模型进行无监督训练,得到所述异常检测模型;
[0238]
其中,所述vae-gan模型包括vae网络和gan网络,所述vae网络包括编码器和解码器,所述编码器用于输出变分分布所述解码器用于输出后验概率分布p
θ
(z);所述gan网络用于约束所述编码器输出的变分分布与后验概率分布p
θ
(z)之间的kl散度最小,以及用于约束所述解码器输出的重构数据与历史运维数据之间的重构误差最小。
[0239]
可选地,处理单元902具体用于:
[0240]
根据历史运维数据的似然函数,采用最大化对数似然函数的方式估计后验概率分布p
θ
(z)的参数θ;
[0241]
根据以下公式(1)以及公式(2)将计算变分分布与后验概率分布p
θ
(z|x)之间的kl散度最小值,转换为寻找参数使得变分证据下界的值最大:
[0242][0243][0244]
其中,为变分分布与后验概率分布p
θ
(z|x)之间的kl散度,为变分证据下界;
[0245]
根据所述参数θ构建van网络的解码器,根据参数构建van网络的编码器;
[0246]
在所述van网络的编码器的输出端增加分布约束的gan判别器,并在所述van的编码器的输出端增加输出约束的gan判别器,得到vae-gan模型;其中,所述分布约束的gan判别器用于判别所述变分分布与后验概率分布p
θ
(z|x)是否接近;所述输出约束的gan判别器用于判别所述解码器输出的重构数据与所述历史运维数据是否接近。
[0247]
可选地,处理单元902具体用于:
[0248]
确定vae-gan模型中基于分布约束的gan判别器的损失函数:
[0249][0250]
以及,与所述编码器等效的生成器的损失函数:
[0251][0252]
根据所述分布约束的gan判别器的损失函数和所述解码器等效的生成器的损失函数的最小值为目标,约束编码器输出的变分分布与后验概率分布p
θ
(z|x)之间的kl散度最小,不断优化所述vae-gan模型;
[0253]
确定vae-gan模型中基于输出约束的gan判别器的损失函数:
[0254][0255]
以及,确定vae-gan模型中与所述解码器等效的生成器的损失函数:
[0256][0257]
根据所述基于输出约束的gan判别器的损失函数和所述编码器等效的生成器的损失函数的最小值为目标,约束解码器输出的重构数据与历史运维数据之间的重构误差最小。
[0258]
基于相同的技术构思,本发明实施例提供一种计算设备,包括:
[0259]
存储器,用于存储程序指令;
[0260]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行数据异常检测方法。
[0261]
基于相同的技术构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行数据异常检测方法。
[0262]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0263]
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0264]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0265]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0266]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0267]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1