一种基于卷积神经网络的SaaS软件故障诊断方法及装置与流程

文档序号:20874942发布日期:2020-05-26 16:22阅读:242来源:国知局
一种基于卷积神经网络的SaaS软件故障诊断方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种基于卷积神经网络的saas软件故障诊断方法及装置。



背景技术:

软件即服务(saas)因其无需对软件产品,基础架构和昂贵的维护成本进行前期投资,而逐渐成为在云上交付应用程序的一种越来越流行的范例。saas是通过internet从所有用户共享的单个应用程序实例交付软件功能。saas软件的解决方案通过web浏览器即可访问,无需安装或维护软件和硬件。它们还通过“按需付费”,基于订阅的服务关系取代了传统安装应用程序的前期许可费用和冗长的实施周期。此外,定价可以根据所需的功能和数据存储量进行分层。服务提供商运营和管理所有必需的硬件和软件,并推出新功能和升级。如今,全系列提供商为各种规模的企业提供几乎任何企业应用程序的saas版本。它已被包括微软和甲骨文在内的知名软件供应商所接受,他们正试图将典型的许可模式与服务模型进行协调。服务提供模式显示没有放缓增长的迹象。saas是各种规模企业的可行软件的可行替代方案。

saas提供商和供应商提供基本的系统服务。它们也被称为在线内容提供商。应用程序开发人员通过客户端-服务器架构直接提供软件即服务,开发软件的核心功能,并确实推动saas行业初始阶段的增长。为了节省成本和简化,很多公司正在转向saas,借此希望将维护和升级的问题留给供应商。

在近年来的市场份额分析中,观察到crm(客户关系管理)和cpg(custompackagegood)是saas的两个突出应用领域。这样的系统每天处理非常大量的交易数据,例如销售信息,产品库存,购买细节等。这意味着预计saas应用程序处理的数据量将在未来几年内大幅增长。

通过将软件与服务捆绑在一起,saas提供商面临着许多具有挑战性的问题。首先,saas的可靠性和可用性本身至关重要。其次,在选择软件应用程序时,用户通常不得不面对应用程序性能与部署成本的权衡。虽然saas易于使用且实施成本较低,但saas应用程序的性能故障问题依旧频频出现。数据安全性也仍然是saas供应商的重要选择标准。

在将应用程序作为服务交付时,提供商应确保应用程序全天候可用,几乎不会出现停机。saas应用程序中的停机容忍度甚至可能低于更传统的web应用程序。因此,saas平台的一个重要原则是应用程序大部分时间都可用,并且必须在其提供的服务中可靠。saas应用程序中的停机时间的影响与大规模电子商务应用程序中的不可用性的影响相匹配,这种平台的不稳定行为可能导致saas供应商的巨大损失,并最终可能危及客户和依赖此类平台进行业务的服务提供商。为了使系统在大多数时间都可用,必须有一种机制来连续监视系统以检测任何错误或性能问题。检测越快,操作人员就越快解决问题,以避免严重故障或服务水平协议(sla)违规。

现有技术中,传统的saas软件性能故障诊断方法更多的选择人工对性能故障进行逐一的筛选和诊断,或者一些自动的诊断方法例如,朴素贝叶斯,逻辑回归等方法对性能故障进行诊断,

本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:

选择人工对性能故障进行逐一的筛选和诊断,对人力和时间是一个很大的浪费,同时很多维护人员在对性能故障进行诊断时会受经验或是其他主观因素的影响,从而降低准确率。另外的一些自动诊断方法在准确率上没有达到一个比较好的效果。

由此可知,现有技术中的故障诊断方法存在准确率较低的技术问题。



技术实现要素:

有鉴于此,本发明提供了一种基于卷积神经网络的saas软件故障诊断方法及装置,用以解决或者至少部分解决现有技术中的故障诊断方法存在的准确率较低的技术问题。

本发明第一方面提供了一种基于卷积神经网络的saas软件故障诊断方法,包括:

s1:对系统产生的日志数据进行过滤;

s2:对过滤后的日志数据进行类别划分与标注;

s3:对进行类别划分与标注后的日志数据进行去噪处理;

s4:采用skip-gram方法对去噪后的日志数据进行向量化,对向量化后的日志数据进行二维拓扑结构的构造,构造成词向量维度和单词维度两个维度的二维向量数据;

s5:将构造的二维向量数据作为训练数据对预先构建好的卷积神经网络模型进行训练,获得训练好的性能故障诊断模型;

s6:利用训练好的性能故障诊断模型对未知类型日志数据进行诊断,获得日志数据的故障类型。

在一种实施方式中,s1具体包括:

剔除日志数据中包含的时间信息和节点信息,并剔除冗余日志数据。

在一种实施方式中,s2具体包括:

s2.1:从内存占用率,网络传输速率,磁盘读写速率以及cpu占用率四个方面对性能故障进行划分;

s2.2:根据划分的类别对过滤后的日志数据进行标注。

在一种实施方式中,标注后的日志数据包括关键信息和基本信息,s3具体包括:

s3.1:从标注后的日志数据中提取出关键信息;

s3.2:对关键信息中包含的干扰信息进行剔除。

在一种实施方式中,s4具体包括:

s4.1:对去噪后的日志数据进行one-hot编码;

s4.2:将通过one-hot编码的日志文本输入skip-gram模型训练,得到高关联度的日志向量,其中,skip-gram模型通过上下文窗口的大小确定给定单词之前和之后将包括多少单词作为当前单词的上下文单词,每个单词在经过skip-gram的训练,最终可以得到对应的单词向量,高关联度的日志向量包括当前单词以及与该单词关联度高的单词。

在一种实施方式中,skip-gram模型包括输入层、隐藏层和输出层,s4.2中skip-gram模型的计算过程包括:

s4.2.1:输入层与隐藏层之间的权重矩阵a的第i行代表词汇表中第i个单词的权重,权重即为嵌入词向量,经过隐层的计算,输入单词的嵌入词向量被输入到输出层,输出词向量uc,k再由嵌入词向量的加权求和计算得到:

其中,h为隐藏层的输出结点,为权重矩阵a′中对应的行向量;

s4.2.2:目标函数中包括的预测概率p(wt|wt,j)用多类softmax分类器计算,wt是目标单词,wt,j是文档中第t个单词的第j个上下文单词:

其中,v(wi)是单词wi和第i行w(1)的输入向量表示,v′(wj)是单词wj和w(2)的第j列的输出向量表示;

s4.2.3:输出层中的每个单词共享权重,通过回归分类器产生第c个单词的多项式分布,即第c个输出单词的第k个结点的概率大小为:

在一种实施方式中,所述方法还包括:

采用负采样方法随机选择负样本单词作为需要更新权重的单词,负样本单词为除了期望的输出单词以外的其他单词,通过下述公式计算每个负样本单词的概率p(wi):

其中,f(wi)代表当前词出现的频率,其中,该概率计算公式与单词出现的频率相关,单词出现的频率越高,被选为负样本单词的概率越高。

基于同样的发明构思,本发明第二方面提供了一种基于卷积神经网络的saas软件故障诊断装置,包括:

过滤模块,用于对系统产生的日志数据进行过滤;

标注模块,用于对过滤后的日志数据进行类别划分与标注;

去噪模块,用于对进行类别划分与标注后的日志数据进行去噪处理;

向量化模块,用于采用skip-gram方法对去噪后的日志数据进行向量化,并对向量化后的日志数据进行二维拓扑结构的构造,构造成词向量维度和单词维度两个维度的二维向量数据;

训练模块,用于将构造的二维向量数据作为训练数据对预先构建好的卷积神经网络模型进行训练,获得训练好的性能故障诊断模型;

诊断模块,用于利用训练好的性能故障诊断模型对未知类型日志数据进行诊断,获得日志数据的故障类型。

基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。

基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本发明提供的一种基于卷积神经网络的saas软件故障诊断方法,采用了卷积神经网络结合skip-gram方法对日志文本进行处理,首先对日志文本数据进行过滤、标注和去噪,然后通过skip-gram方法对去噪后的日志文本向量化,提高日志文本信息的关联性,为卷积神经网络提供一个精确度较高的数据源,进一步的对词向量进行二维拓扑结构的构造,构成了词向量维度和单词维度两个维度的二维向量数据。通过卷积神经网络的局部连接性提取到相邻词向量之间的特征,更准确的找出描述故障类型的关键文本信息,完成性能故障的诊断。该方法完全实现了对性能故障全自动化的诊断,避免了人为主观因素的干预,在保证了准确率的基础上又确保了速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中的基于卷积神经网络的saas软件故障诊断方法的流程图;

图2为本发明实施例的系统框架图;

图3为日志向量化方法示意图;

图4为本发明实施例中基于卷积神经网络的saas软件故障诊断装置的结构框图;

图5为本发明实施例中一种计算机可读存储介质的结构框图;

图6为本发明实施例中计算机设备的结构图。

具体实施方式

本申请发明人通过大量的研究与实践发现,工业界和学术界提出的几种性能故障诊断技术,如基于算法的容错,断言和控制流检查中,大多数软件故障(逃逸测试)在特定运行时条件下被激活。随之而来的错误或故障本质上可能是暂时的或无声的,只有在过载,定时问题(例如,程序崩溃或挂起)和异常的情况下才能检测到。在这样的情况下,当几个现成的软件层交互并同时运行并且共享应用程序中的非确定性来源时,这会更加恶化。也就是说现有的方法准确率无法保证,并且效率也较低。

本发明的目的在于提供一种基于卷积神经网络的saas软件故障诊断方法及装置,以提升saas软件性能日志诊断模型的速度和准确率,并达到在较短的时间内诊断的目的。

为了实现上述目的,本发明的主要构思如下:

采用卷积神经网络结合skip-gram方法对日志文本进行处理,首先通过skip-gram方法对去噪后的日志文本向量化,提高日志文本信息的关联性,为卷积神经网络提供一个精确度较高的数据源,进一步的对词向量进行二维拓扑结构的构造,构成了词向量维度和单词维度两个维度的二维向量数据。通过卷积神经网络的局部连接性提取到相邻词向量之间的特征,更准确的找出描述故障类型的关键文本信息,完成性能故障的诊断。该方法完全实现了对性能故障全自动化的诊断,避免了人为主观因素的干预,在保证了准确率的基础上又确保了速度。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种基于卷积神经网络的saas软件故障诊断方法,请参见图1,该方法包括:

s1:对系统产生的日志数据进行过滤。

具体来说,从时间维度考虑,在相邻的特定时间内,一个性能故障的节点故障未能解决时,它会频繁报告相同的日志信息。从空间维度考虑,调度节点向性能故障的节点发送请求,由于未能及时处理,调度节点会向其他节点发送请求,其他节点同样也会报告相同的日志信息。因此,需要去除性能日志中相同的日志信息,从而提高诊断效率。本发明以性能日志中是否具有相同的严重等级,性能故障组件和性能故障描述来判断它们是否冗余。例如剔除时间、节点等无关信息,组合剩余的属性,如果出现相同的组合则删除,从而完成一次过滤。

s2:对过滤后的日志数据进行类别划分与标注。

具体来说,本发明提出的模型是基于卷积神经网络建立的,卷积神经网络是一种监督学习的机器学习算法,因此每条日志信息都对应一个期望输出,也就是具体的性能故障类型。所以需要在训练日志数据之前对每条日志信息的性能故障类型进行标注。只有标注后的日志数据,才可以将原始的输出结果与预期输出(标注结果)进行对比,从而反向调整模型权重,最后得到一个成熟的性能故障诊断模型。因此在过滤冗余的性能日志后,需要对剩余的日志进行性能故障类型的划分和标注。

s3:对进行类别划分与标注后的日志数据进行去噪处理。

具体来说,性能日志是半结构化的,将日志结构化后,从中提取出需要的信息才能对故障进行诊断。在日志文本(数据)中,已修复和未修复的性能故障的日志信息描述性能故障的位置总是相同的,同时在日志关键信息的描述中干扰信息的特点也是相似的,基于上述特点可以对日志信息进行去噪。

s4:采用skip-gram方法对去噪后的日志数据进行向量化,并对向量化后的日志数据进行二维拓扑结构的构造,构造成词向量维度和单词维度两个维度的二维向量数据。

具体来说,本发明需要构建一个能够正确诊断出经过不同的监控工具采集的文本型性能日志的故障诊断模型。当训练的样本足够大时,利用skip-gram方法得到根据语义构造的以词向量和单词两个维度的二维向量数据,这确保了相同语义的日志信息可以得到相似的向量数据。通过卷积神经网络,本发明对得到的向量数据进行特征提取,进而更准确的找出描述故障类型的关键文本信息,完成故障的诊断。

s5将构造的二维向量数据作为训练数据对预先构建好的卷积神经网络模型进行训练,获得训练好的性能故障诊断模型。

s6:利用训练好的性能故障诊断模型对未知类型日志数据进行诊断,获得日志数据的故障类型。

本发明的技术方案包括日志数据的预处理和构建性能故障诊断模型两个重要步骤。日志数据的预处理依次为日志故障过滤,日志故障标记,日志的去噪和日志向量化。日志故障过滤会剔除无关信息,组合剩余的属性,日志故障标记对每条日志信息的性能故障类型进行标注,日志的去噪根据日志信息的特征提取出关键信息,日志向量化得到了关联度更高的词向量。

请参见图2,为本发明实施例的系统框架图,日志标注和预处理对应步骤s1~s4,模型训练对应s5,对未知类型日志数据的预测或诊断对应s6。

在一种实施方式中,s1具体包括:

剔除日志数据中包含的时间信息和节点信息,并剔除冗余日志数据。

在一种实施方式中,s2具体包括:

s2.1:从内存占用率,网络传输速率,磁盘读写速率以及cpu占用率四个方面对性能故障进行划分;

s2.2:根据划分的类别对过滤后的日志数据进行标注。

具体来说,首先根据性能日志中的severity属性确定当前日志是否出现性能故障,然后再利用性能日志中的其他属性对出现了性能故障的日志进行性能故障类型划分。性能日志的基本结构如表3-1所示。

表31性能日志属性描述表

当severity的值为normal或information时,代表当前的日志信息中的性能故障已被修复。在一个时间段内,同一个组件会出现多种性能故障,这些性能故障可能是相同的也可能是不同的,具体的性能故障原因可以依据description属性进行判断。component和description确定了性能故障的类型,一般先通过component属性锁定出现性能故障的组件,再通过description属性对应于所属组件即可确定性能故障类型。

在一般的方法中,常常以响应时间,系统吞吐量以及资源利用率等指标来衡量软件系统的性能。系统资源层的指标可以参见表3-2。

表3-2系统资源层指标描述

如果仅仅从上述的三个指标来描述性能,对于维护人员对系统的维护依旧不是很友好,维护人员只能通过这些指标判断当前系统的性能好坏,而不能定位到具体的性能故障类别,这无法对后续的维护工作提供很大的帮助。因此,需要对性能故障进一步划分,从内存占用率,网络传输速率,磁盘读写速率以及cpu占用率等四个方面对性能故障进行一个更详细的划分。表3-3列举了经过具体分类的性能故障集合。

表33性能故障类型描述

综上,具体实施例中可以用下面的数组描述性能日志故障类型:

performancefailurecategory=[clf,pqlf,pif,pof,crf,cwf,chrf,duf,drf,dwf,nrf,nsf,normal.]

在一种实施方式中,标注后的日志数据包括关键信息和基本信息,s3具体包括:

s3.1:从标注后的日志数据中提取出关键信息;

s3.2:对关键信息中包含的干扰信息进行剔除。

具体来说,日志去噪是根据日志信息的特征提取出关键信息,即将杂乱无序的日志信息转化为统一格式文本的过程。原始的日志信息包含的不仅仅是日志信息,还包括节点,时间等基本信息,这些信息会影响后续对日志的向量化,因此剔除这些信息是日志去噪的第一步。

在日志文本中,已修复和未修复的性能故障的日志信息描述性能故障的位置总是相同的,同时在日志关键信息的描述中干扰信息的特点也是相似的,基于上述特点可以对日志信息进行去噪。信息类型提取或信息类型集群是一种在事件的半结构化消息字段中构建结构化上下文的方法。它的目标是找到一组文本模板,由常量标记和变量标记(通配符)定义,用于抽象性能日志中的所有信息。

日志的去噪过程可以分为三个部分:

(1)日志文本的组成

性能日志中的信息可以分为两部分,一部分用来表示日志的基本信息,即日志文本中的变量部分,另一部分用来表示关键信息,即日志文本中的常量部分,反应当前saas软件的运行情况。

(a)基本信息(变量信息):基本信息的内容会随着saas软件执行状态的变化而发生变化,比如执行的时间,ip地址或者端口号的不同都会影响它的内容。

(b)关键信息(常量信息):关键信息是划分日志性能故障种类的重要部分,它从表示基本信息结束的位置开始对性能故障进行描述,从某种意义上说,它是日志信息中不变的一部分。

由于日志信息中的基本信息是会发生变化的,只有剔除基本信息才能更好的对日志信息向量化。另一方面,在日志的关键信息中,偶尔也会出现其他干扰信息,只有保留有用的关键信息才能尽可能提高后续处理和计算的速度。

(2)日志去噪流程

本文的日志去噪共分为两个步骤,提取性能日志的关键信息部分,再剔除日志中关键信息的无关信息,得到简短且准确的日志信息。

第一步:所有的日志信息中关键信息的长度是一致的,因此只需要截取性能日志中的关键部分就可以剔除基本信息。

第二步:获取到只包含关键信息的性能日志后,对关键信息内的无关信息剔除,无关信息可能是包含数字等字符的字符串。

(3)关键信息提取方法

标准的关键信息中不应该包含除了字母以外的其他字符,因此可以通过这一特征对已经剔除了基本信息的性能日志进行提取。

提取方法可以利用正则表达式剔除文本中不符合标准的字符串,为了避免例如包含特殊字符的主机标识符或文件大小标识符等无意义的字符串对后续日志向量化过程的干扰,将是否包含除字母以外的字符作为剔除标准。

在一种实施方式中,s4具体包括:

s4.1:对去噪后的日志数据进行one-hot编码;

s4.2:将通过one-hot编码的日志文本输入skip-gram模型训练,得到高关联度的日志向量,其中,skip-gram模型通过上下文窗口的大小确定给定单词之前和之后将包括多少单词作为当前单词的上下文单词,每个单词在经过skip-gram的训练,最终可以得到对应的单词向量,高关联度的日志向量包括当前单词以及与该单词关联度高的单词。

具体来说,日志向量化可以分为两步骤,首先对去噪后的性能日志进行one-hot编码,在对经过one-hot编码的日志文本放入skip-gram模型训练,得到高关联度的日志向量。

one-hot编码通过数字位置向量表示词汇表中的每个单词,其元素除了词汇表中单词的位置全为零。在本实施例中,one-hot矢量是1×n矩阵(矢量),用于将词汇表中的每个单词与词汇表中的其他单词区分开。该向量由所有单元格中的0组成,但单元格中的单个1除外,用于唯一标识当前单词。

考虑到训练样本中出现的例如“the”,“a”这些无意义的高频词,当这些高频词作为输入词的上下文时,它们不能提供有效的信息,同时因为这些高频词出现的频率很高,当它们作为输入词时,会增加大量无意义的训练样本。为了解决这些问题,skip-gram方法使用抽样的方法删除这些高频词。抽样的基本思想是:每个单词都有一定的概率被删除,它被删除的概率与它在文本中出现的频率正相关。

表示每个单词被丢弃的概率的公式如下:

在skip-gram方法中涉及到的神经网络模型是在前馈神经网络的基础上进行了改进,从而使模型更高效,具体的模型如图3所示。

在一种实施方式中,skip-gram模型包括输入层、隐藏层和输出层,s4.2中skip-gram模型的计算过程包括:

s4.2.1:输入层与隐藏层之间的权重矩阵a的第i行代表词汇表中第i个单词的权重,权重即为嵌入词向量,经过隐层的计算,输入单词的嵌入词向量被输入到输出层,输出词向量uc,k再由嵌入词向量的加权求和计算得到:

其中,h为隐藏层的输出结点,为权重矩阵a′中对应的行向量;

s4.2.2:目标函数中包括的预测概率p(wt|wt,j)用多类softmax分类器计算,wt是目标单词,wt,j是文档中第t个单词的第j个上下文单词:

其中,v(wi)是单词wi和第i行w(1)的输入向量表示,v′(wj)是单词wj和w(2)的第j列的输出向量表示;

s4.2.3:输出层中的每个单词共享权重,通过回归分类器产生第c个单词的多项式分布,即第c个输出单词的第k个结点的概率大小为:

具体来说,skip-gram方法上下文窗口的大小确定给定单词之前和之后将包括多少单词作为当前单词的上下文单词。给定一句日志信息s={s1,s2,s3,....,sn},并假设该模型的上下文窗口大小为w(一般定义为偶数),对于s1的期望输出单词为{s1,s2},...,{s1,s1+w},s2的期望输出单词为{s2,s1},{s2,s3},...,{s2,s2+w},s3的期望输出单词为{s3,s3-w},...,{s3,s3+w},以此类推,归纳起来每个单词的期望输出单词范围为{si,si-w}与{si,si+w}之间,其中i表示当前词向量的下标,i-w需要不小于0,i+w需要小于日志信息词汇总数。每个单词在经过skip-gram的训练,最终可以得到对应的单词向量,不同单词向量之间的距离越小,它们之间的相关性就越大,由此也就实现了由当前单词预测周围单词。

在一种实施方式中,所述方法还包括:

采用负采样方法随机选择负样本单词作为需要更新权重的单词,负样本单词为除了期望的输出单词以外的其他单词,通过下述公式计算每个负样本单词的概率p(wi):

其中,f(wi)代表当前词出现的频率,其中,该概率计算公式与单词出现的频率相关,单词出现的频率越高,被选为负样本单词的概率越高。

具体来说,由于输入词向量的维度由词汇表的大小决定,对于巨大的语料库来说,每对神经网络调整一次权重,就需要经过大量的计算。skip-gram方法采用负采样的方法降低权重调整的计算量,提高训练速度。负采样不同于一般更新所有权重的方法,它只选取一个较小的部分对其权重进行更新。负采样方法随机选择少量negativeword(负样本单词)作为需要更新权重的单词。negativeword也就是除了期望的输出单词以外的其他单词,通过公式(1-5)计算每个negativeword的概率,f(wi)代表当前词出现的频率,该概率计算公式与单词出现的频率有关,当单词出现的频率越高,被选为negativeword的概率也就越高。

在日志文本中,使用了大量语料,因此每个单词向量都是高维度向量,使用skip-gram方法可以保证语义最高的准确性。由此可见,skip-gram方法正是对one-hot编码的很好的改进,通过增加单词间的关联性从而提高对性能故障的诊断准确率。

在本实施例中,将输入的日志文本作为单通道二维向量来进行处理。该单通道二维向量是通过日志文本中的信息生成的,由skip-gram模型所生成的词向量按照规则进行拼接而成,假设指定该二维向量中的单词维度包含n个单词,而一条性能故障日志中第i个单词对应相应的词向量为wordi∈rs,其中wordi为包含k个元素的一维向量,最终本发明通过词向量在句子单词维度上的拼接,得到n×k的二维向量矩阵。

由于每条日志数据中包含不定长的m个单词数据,因此需要进一步的分析不定长数据的特征。通常来说,性能故障日志数据在其设计过程中,如:严重等级、性能故障组件等重要的部分放在了靠前的位置,而后面的部分通常是对故障信息的附加描述。根据这一特征,本发明将通过上述的二维向量生成过程中的参数n来对该不定长数据进行处理,若单词数量m>n,则将句子中的多余单词进行删除,这样能够保证留下最重要的信息,若单词数量m<n,则对不足的部分进行补0操作。

最终得到的二维向量数据如下:

vsentence=[word1,word2,…,wordn]t

在得到二维向量数据之后,将根据本发明所要处理问题的特点及数据的特征,通过卷积神经网络对该二维向量数据进行处理,卷积神经网络有三个关键的步骤,分别是卷积操作、池化操作和全连接操作,下面对性能故障诊断模型中的具体处理模式及相关参数做出详细的介绍。

在卷积层中,将通过卷积核来提取本发明性能日志二维向量中的数据,每次卷积操作都会利用多个卷积核来进行特征的提取,用来发现更多的隐藏在数据中的非线性关系。在卷积核的滑动过程中,其中会包含多个相邻的日志单词之间的数据特征,通过这一过程,卷积神经网络可以轻易的找出位于性能日志句子中不同位置的相同文本描述特征。通过多个卷积核对本发明上述得到的n×k的格式的性能日志二维向量进行处理,该过程的输出公式如下:

si=σ(wivsentence+bi)

其中i用来区分不同的卷积核,wi对应于不同卷积核的权重,bi表示不同的偏置,si表示不同卷积核对应的输出,σ表示激活函数,具体激活函数的选取将在下面的内容中进行介绍。

通过卷积层对输入的二维向量数据进行特征提取,大大减少了数据规模,同时减少了参数的数量。在经过卷积层对性能日志的二维向量进行特征提取后,将进一步的通过池化层对数据进行操作。池化层可以进一步的缩小数据规模,使得模型中的参数进一步的减少,加速模型的训练过程及减少过拟合问题。在本方法中通过maxpooling进行池化操作,其通过提取特征的最大值,也即抹除相对不明显的特征值,选取最能反应当前数据的特征值。通过maxpooling进行处理后,其输出公式如下:

oi=pool(si)

其中si为公式(1-4)中的不同卷积核的输出,i用来区分不同的卷积核,pool为池化方法,在此处为maxpooling。

当通过神经网络中的参数运算之后,需要利用激活函数保留特征并将特征映射出来。激活函数是对矩阵中线性表示的数据进行非线性化处理。针对本方法中模型的特点,为了加快训练速度,采用relu(rectifiedlinearunit,relu)函数作为卷积层中隐藏层的激活函数。relu为线性整流函数,当其输入值x小于0时,函数的输出为0,其输入值x大于0时,函数的输出为x,其导数始终为常数,可以加速模型的训练过程,其下降梯度不会因为极端值的出现而消失。

通过上述方法,可以完成卷积池化的操作,如果将该过程通过全连接神经网络进行数据处理,假设字典中单词数量为200,一句话的单词长度为20,那么将包含4000个输入。将其作为全连接神经网络的输入时,假设隐藏层神经元的数量为1024,那么在第一层所需要的参数就需要400多万个,第二层将包含40多亿个参数,以此类推,每层参数数量以指数级形式增长,这些参数需要耗费巨大的内存空间和计算量。通过卷积神经网络进行数据特征的提取,解决了普通神经网络中出现的消耗时间长,过拟合,泛化能力差的问题。

在经过多次卷积和池化操作后,需要通过全连接层来得到模型最终的输出。本发明将卷积池化层输出的数据作为全连接层的输入,由于数据格式的差异,本发明在此处需要通过flatten将二维向量展开为一维向量,通过一个隐藏层和一个输出层,输出最终的性能故障类型标签。针对全连接层输出的特点,本发明采用softmax作为它的激活函数,softmax函数通常用于多分类问题中,它会将多个分量中最大的分量进一步的增加并逼近于1而其余的分量减小并逼近于0。

本发明通过损失函数来定义模型输出和期望输出之间的距离,在模型训练中,通过随机梯度下降算法来优化损失函数,使其最终达到一个期望的较小值。

在优化器的选择中,随机梯度下降(stochasticgradientdescent,sgd)与梯度下降(gradientdescent,gd)类似,都是基于损失函数减小损失的一种算法。梯度下降算法通过计算损失函数的偏导从而对不同的权重进行相应的调整。这个对权重进行调整修改的过程也就是反向传播的过程。而随机梯度下降与梯度下降的不同之处在于,梯度下降每次的迭代中需要用到全部的训练数据而随机梯度下降在每次的迭代中可以仅仅使用一个训练数据来更新参数,因此,随机梯度下降相较于梯度下降的优势在于其在计算中所需要的内存较少,同时,随机梯度下降算法在收敛速度方面也优于梯度下降。

最后采用交叉熵作为损失函数,在使交叉熵损失函数最小化的过程等价于似然函数的最大化。此外,该模型对saas软件性能故障的诊断属于多分类问题,通过随机梯度下降算法minibatch对模型进行多次迭代优化,使更快的达到满意的效果。

本发明的主要有点或者有益技术效果包括:

1、日志故障标记根据软件运行时的内存占用率,网络传输速率,磁盘读写速率以及cpu占用率等四个方面对性能故障进行划分,避免了以响应时间,系统吞吐量以及资源利用率等指标描述性能而产生的不能定位到具体的性能故障类别的问题,为后续维护工作提供了帮助。

2、日志向量化采用skip-gram方法取代传统方式来对日志文本进行编码,有效解决词向量稀疏且高维的问题,提高了模型诊断的准确率。并采用负采样的方法降低权重调整的计算量,提高训练速度。

3、构建故障诊断模型通基于卷积神经网络算法,通过对词向量进行二维拓扑结构的构造,构成了词向量维度和单词维度两个维度的二维向量数据,改善了传统的方法难以归纳出不同表述形式的共同特征,并通过卷积神经网络的局部连接性可以提取到相邻词向量之间的特征,更准确的找出描述故障类型的关键文本信息,完成性能故障的诊断。

基于同一发明构思,本申请还提供了与实施例一中一种基于卷积神经网络的saas软件故障诊断方法对应的装置,详见实施例二。

实施例二

本实施例提供了一种基于卷积神经网络的saas软件故障诊断装置,请参见图4,该装置包括:

过滤模块201,用于对系统产生的日志数据进行过滤;

标注模块202,用于对过滤后的日志数据进行类别划分与标注;

去噪模块203,用于对进行类别划分与标注后的日志数据进行去噪处理;

向量化模块204,用于采用skip-gram方法对去噪后的日志数据进行向量化,并对向量化后的日志数据进行二维拓扑结构的构造,构造成词向量维度和单词维度两个维度的二维向量数据;

训练模块205,用于将构造的二维向量数据作为训练数据对预先构建好的卷积神经网络模型进行训练,获得训练好的性能故障诊断模型;

诊断模块206,用于利用训练好的性能故障诊断模型对未知类型日志数据进行诊断,获得日志数据的故障类型。

由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于卷积神经网络的saas软件故障诊断方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

实施例三

请参见图5,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。

由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中一种基于卷积神经网络的saas软件故障诊断方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。

实施例四

基于同一发明构思,本申请还提供了一种计算机设备,请参见图6,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。

由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于卷积神经网络的saas软件故障诊断方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1