一种基于图卷积对抗神经网络和追踪数据的故障诊断方法与流程

文档序号:33402919发布日期:2023-03-08 19:20阅读:38来源:国知局
一种基于图卷积对抗神经网络和追踪数据的故障诊断方法与流程

1.本发明涉及故障诊断方法技术领域,特别是一种基于图卷积对抗神经网络和追踪数据的故障诊断方法。


背景技术:

2.分布式软件系统规模庞大,组成复杂,极易出现系统故障,且故障难以发现和诊断。系统追踪技术是分析和理解分布式系统请求执行路径和程序逻辑和关键技术,是系统故障诊断的关键数据源之一。然而,由于追踪数据规模庞大、信息密度低、数据间关联关系复杂,基于追踪数据的故障诊断十分困难。现有基于追踪数据的故障诊断方法往往采用人工定义异常规则的方法,通过在线检测追踪链路是否满足异常规则,从而诊断故障请求和位置。这种方法需要耗费大量人力构件规则库,同时规则定义方式对复杂的追踪数据的适应性差,难以扩展,导致故障诊断精准程度不佳。
3.现有的追踪数据故障诊断方案主要可以分为两类——基于人工定义异常规则的方案、和基于深度学习的方案。前者是根据追踪数据本身的调用函数类别、调用函数持续时间、所在服务器等特征的统计量去筛选统计意义上的极端值,外加一些人工定义的其他规则,并以此来筛选异常;而后者则是将追踪数据输入到神经网络,利用深度学习技术去提取相关的时序特征并筛选异常。
4.虽然存在两类已有的追踪数据故障诊断实现方案,但这两类方案都有各自的缺点。
5.对于第一类方案,虽然其实现简单且易于理解,但是往往不能够有效提取到追踪数据的深度信息,无法面对大型系统的复杂追踪数据;同时人工成本过大,需要耗费大量人力构造规则库,而构造完成的规则库也并不能用在其他系统上,可扩展性很差。不过,我们一般使用这类方案作为基线方案,以检查所提其他方案的性能。
6.对于第二类方案,已有的算法主要基于lstm(长短时记忆网络,long-short term memory network)和tree-cnn(树状卷积网络,tree convolutional neural network)。然而,lstm的主要用武之地是在自然语言等时序特征上,与此同时tree-cnn是为ast抽象语法树而设计,两类网络都在追踪数据集上没有很好的表现。虽然tree-cnn也是提取树状结构特征的网络,但其需要输入的树状结构具有比较高的平衡性(近似于完全二叉树的结构),而追踪数据集的树状结构则是高度不平衡的,因此算法的表现不尽人意。
7.基于上述情况,一种基于图卷积对抗神经网络和追踪数据的故障诊断方法成为整个社会亟待解决的技术问题。


技术实现要素:

8.鉴于此,本发明提出了一种基于图卷积对抗神经网络和追踪数据的故障诊断方法,包括以下故障诊断步骤,
9.(1)首先对追踪数据集进行读取和预处理,将无用特征筛除,并将有用特征转化为
标准的数据类型;
10.(2)读取并还原追踪数据的树状结构,以多叉树作为数据结构来存储追踪数据,计算每一条追踪数据对应的多叉树的节点特征和邻接矩阵;
11.(3)然后将其输入到gcn中,利用gcn来充分提取追踪数据的结构特征;
12.(4)使用gan借助真实的追踪数据生成虚假的追踪数据,并迭代优化生成器和判别器的网络参数;
13.(5)借助gan的判别器对原始的追踪数据集进行判别,若某一条追踪数据被判定为“虚假数据”,则视作该追踪数据出现了某种程度的异常,将被判定为异常的追踪数据收集起来,以满足故障诊断的需求。
14.进一步地,所述追踪数据集包括以下特征:
15.(1)span的编号信息,span所在trace的编号、span本身的编号、其父进程的编号,如果这条span是根进程,那么其父进程的编号为nan;
16.(2)span的内容特征,span对应的被调用的函数名、span对应的被调用的函数请求类型、span从开始到结束时的总时间;
17.(3)span发生的时间和位置,span调用时的时间戳、span调用时所在的服务器编号。
18.进一步地,在上述特征中,利用第一类“span的编号信息”,我们可以用原始数据集还原出trace的树状结构;利用第二类“span的内容特征”,我们可以对span的异常情况以及其所在trace的异常情况进行评估,而利用第三类“span发生的时间和位置”,我们则可以对异常进行定位,判断异常发生的时间和位置。
19.进一步地,所述gan网络的训练过程如下:
20.(1)初始化判别器d和生成器g的网络参数;
21.(2)从真实数据集中采样m个样本,并从先验分布噪声中采样m个噪声样本,并通过生成器获取m个生成样本,固定生成器g,训练判别器d尽可能准确地判别真实样本和生成样本,并更新判别器d的网络参数;
22.(3)固定判别器d,仅训练生成器g使其能够生成更加逼真的生成样本让判别器d判断错误;
23.(4)循环2和3,交替训练判别器d和生成器g以提高两者的性能。
24.进一步地,所述判别器由卷积层(指图卷积)、下采样层、全连接层组成,所述生成器由反卷积层、上采样层、全连接层组成,其目的是在输入“真实trace数据”的情况下,让判别器经过训练后能够自己生成以假乱真的“生成trace数据”。
25.采用上述技术方案,具有如下有益效果:
26.本技术方案可以充分利用追踪数据的信息以增强分布式系统故障诊断的准确性和鲁棒性,利用图卷积对抗神经网络结构,本技术方案拥有更强大的追踪数据特征提取能力,因此会在包括但不限于故障诊断的任务中取得更优异的结果。
附图说明
27.图1是本发明的训练过程流程图;
28.图2是本发明使用过程流程图;
29.图3是gcn的结构图;
30.图4是gan网络的结构图。
具体实施方式
31.下面对本发明作进一步的说明。
32.一种针对追踪数据集的故障诊断方法。该方法针对追踪数据集的特殊数据结构而设计,充分利用了其中包含的分布式系统的状态信息,从而达到了提高系统故障诊断算法精度的目的。
33.本发明的技术方案为:
34.首先对追踪数据集进行读取和预处理,将无用特征筛除,并将有用特征转化为标准的数据类型;其次,读取并还原追踪数据的树状结构,以多叉树作为数据结构来存储追踪数据。计算每一条追踪数据对应的多叉树的节点特征和邻接矩阵,然后将其输入到gcn(graph convolutional network,图卷积网络)中,利用gcn来充分提取追踪数据的结构特征;然后,使用gan(generative adversarial network,生成对抗网络)借助真实的追踪数据生成虚假的追踪数据,并迭代优化生成器和判别器的网络参数。最后,借助gan的判别器对原始的追踪数据集进行判别,若某一条追踪数据被判定为“虚假数据”,则视作该追踪数据出现了某种程度的异常。将被判定为异常的追踪数据收集起来,以满足故障诊断的需求。
35.1.追踪数据集预处理
36.一个软件系统的追踪数据集占用空间一般比较大,能达到和文本日志数据相当的大小;一般而言,追踪数据大致产生速度为1万~100万条/天,占用空间为100mb~10gb/天。每一条追踪数据也被称作一条trace(下文中“trace”指每一条特定样本,而“追踪数据”泛指整个数据集),而每一次函数调用则称作span;一条trace大约由4~40个span组成,trace记录了span互相之间的调用关系、调用持续时间等信息。
37.在如下示意图所示的trace中,可以看到span a首先调用了span b,随后span b调用了span d;在span d和span b执行依次结束后,span a又调用了span c......最终,不同span之间的调用过程形成了一个树状结构,也组成了一条trace。
38.不过,原始的追踪数据中并不会给出trace的树状结构,而是会给出每一条span的所在trace、父进程等信息。一个典型的追踪数据集包含的特征如下:
39.(1)span的编号信息,span所在trace的编号、span本身的编号、其父进程的编号,如果这条span是根进程,那么其父进程的编号为nan;
40.(2)span的内容特征,span对应的被调用的函数名、span对应的被调用的函数请求类型、span从开始到结束时的总时间;
41.(3)span发生的时间和位置,span调用时的时间戳、span调用时所在的服务器编号。
42.在这些特征中,利用第一类“span的编号信息”,我们可以用原始数据集还原出trace的树状结构;利用第二类“span的内容特征”,我们可以对span的异常情况(以及其所在trace的异常情况)进行评估;而利用第三类“span发生的时间和位置”,我们则可以对异常进行定位,判断异常发生的时间和位置。
43.因此,我们首先遍历数据集中的“span的编号信息”部分,以多叉树的数据结构存
储每一条trace;树的每一个节点则对应一条span,并且在节点中存储span的所有特征,以避免处理过程中出现任何信息损失。
44.2.gcn模块
45.gcn(graph convolutional network,图卷积网络)是一种为了提取图结构特征而设计的神经网络结构,其主要思想是在一个图中,用每个节点汲取其相邻节点的特征信息并将其当作下一层特征,以完成一次“卷积”。
46.用公式来表达,gcn的“卷积”操作为:
[0047][0048]
其中h为每个节点的特征,a为邻接矩阵,而d是令a归一化的平衡因子矩阵,w则为待训练的网络参数。gcn的作者指出,即使w完全不训练,图卷积也可以起到提取图信息的效果,这一点和经典cnn是不一样的。经过两次这样的“卷积”操作并配合激活函数,得到的输出即为gcn提取到的每个节点的高层特征。
[0049]
当我们对追踪数据集进行预处理,并将其树状结构化之后,便可以将追踪数据对应的树(我们称之为trace tree)输入到gcn中了。我们将trace中的每条span视作图的节点,然后将span的特征视作节点的特征以构造矩阵h,将span互相调用的父子节点关系视作图的边以构造邻接矩阵a,并通过a进一步计算对应的平衡因子矩阵d。这样一来,便得到了gcn所需要的所有输入变量。而在输出部分,由于树的根节点(也就是trace的根进程)最能代表整个trace的状态,并且根节点在gcn中汲取了较多其他节点的信息,因此直接使用根节点的高层特征作为整个树的输出特征不失为一种选择;当然,也可以直接使用所有节点的高层特征拼接在一起作为网络输出。
[0050]
3.gan模块与数据集划分
[0051]
gan(generative adversarial network,生成对抗网络)是一种为了生成和真实数据十分近似的逼真数据而发明的网络结构,其主要思想是将一个判别器(discriminator)和一个生成器(generator)互相对抗、交替训练,使得两者最终都拥有较高的算法性能。gan已经在深度学习领域中有了较为成熟的应用,在风格迁移、虚拟图片生成、文字-图像转换等任务中都有着较好的表现。
[0052]
下图是一个简单的gan网络的结构,其判别器和生成器分别由卷积层、下采样层、全连接层和反卷积层、上采样层、全连接层组成,目的是在输入“手写数字0~9数据集”的情况下,让判别器经过训练后能够自己生成以假乱真的“手写数字0~9”。
[0053]
该网络的训练过程如下:
[0054]
1.初始化判别器d(discriminator)和生成器g(generator)的网络参数;
[0055]
2.从真实数据集中采样m个样本,并从先验分布噪声中采样m个噪声样本,并通过生成器获取m个生成样本。固定生成器g,训练判别器d尽可能准确地判别真实样本和生成样本,并更新判别器d的网络参数;
[0056]
3.固定判别器d,仅训练生成器g使其能够生成更加逼真的生成样本让判别器d判断错误。
[0057]
4.循环2和3,交替训练判别器d和生成器g以提高两者的性能。
[0058]
当我们获取了trace tree之后,我们便可以借助这些样本,来使用gan训练出一个
高准确率的判别器d。我们将gan中的判别器d直接设计为gcn的结构,这样能够让其最大程度地提取trace tree的特征;而gan中的生成器g则设计为和d结构倒置的网络,以生成虚假的trace tree,生成的特征需要包括trace的树状结构、span的内容特征、span的发生时间和位置等信息。
[0059]
为了得到没有杂质的数据集,我们需要使用一定没有出现故障的追踪数据作为“真实样本”输入gan。如果分布式系统给出了服务器发生故障的时间,我们需要根据trace的时间戳信息,剔除所有发生故障前后五分钟内的trace,因为它们都有可能和服务器的故障有着因果关系;而剩下的trace则可以视作不包括异常的数据,作为“真实样本”输入到gan中。
[0060]
当gan的判别器d训练好后,我们便可以直接将其视作追踪数据的“异常判断器”,因为它已经可以很好地判断出哪些是没有异常的真实样本、哪些是逼真的生成样本(虚假样本);而当它认为原数据集中的某些trace是生成样本的时候,说明这部分trace和真实样本的分布不同,有很大可能是存在一些异常的trace。通过这种方式,我们从追踪数据集中检测并定位出了一些可能出现的服务器故障。
[0061]
作为本发明的进一步阐述,训练过程流程图
[0062]
如图所示,我们在将追踪数据集的每一条trace处理为树状结构后,首先根据数据集给出的故障时间排除所有可能包含异常的trace,并将剩下的样本作为真实样本输入至gan中的判别器d(结构为gcn);然后随机生成噪声样本,将其输入gan中的生成器g(结构为反向gcn),并将结果作为虚假样本输入判别器d。以此构造gan的数据集,训练判别器的判别能力。
[0063]
使用流程图,如图所示,当我们结束了训练过程后,将判别器模型保存后,使用判别器对整个追踪数据集进行分类,并将被分类为“虚假样本”的数据视作“可能包含异常的trace”,再根据这部分trace的所在服务器和时间戳等信息对系统进行故障诊断。
[0064]
作为本发明的进一步阐述,其具备以下特点:
[0065]
(1)经过实际落地使用,本方法能够基于操作的访问意图来建立精细化的访问基线,其它的有益效果。
[0066]
(2)提升了异常告警的精确率。
[0067]
(3)降低了异常告警的误报率。
[0068]
(4)解决了新员工入职时的训练冷启动问题。
[0069]
(5)本方法具备学习功能和领域通用性。
[0070]
以上描述了本发明的基本原理和主要特征,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,发明要求保护范围由所附的权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1