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

基于深度混合神经网络的日志序列异常检测方法

2022-11-12 22:33:05 来源:中国专利 TAG:
decisiontrees.inicac’04:proc.ofthe1stinternationalconferenceonautonomiccomputing,pages36–43.ieee,2004.)等。invariantsminer(j.lou,q.fu,s.yang,yxu,andj.li.mininginvariantsfromconsolelogsforsystemproblemdetection.inatc’10:proc.oftheusenixannualtechnicalconference,2010.)则是创新性的根据日志的序列信息,挖掘日志序列的不变量特性,提出了日志序列不变量挖掘的机器学习方式,是一种效果较好的无监督方式。6.近年来随着深度学习的发展,越来越多的深度学习方式应用于日志分析中,deeplog(m.du,f.li,g.zheng,andv.srikumar,“deeplog:anomalydetectionanddiagnosisfromsystemlogsthroughdeeplearning,”inproceedingsofthe2017acmsigsacconferenceoncomputerandcommunicationssecurity-ccs’17.dallas,texas,usa:acmpress,2017,pp.1285–1298.[online].)将序列化深度神经网络lstm应用于日志分析中,采用了无监督训练的方式,特征向量采取一维日志事件序列的方式,简单直观,通过已知日志序列预测下一个可能发生的日志事件。logrobust(x.zhang,y.xu,q.lin,b.qiao,h.zhang,y.dang,c.xie,x.yang,q.cheng,z.lietal.,“robustlog-basedanomalydetectiononunstablelogdata,”inproceedingsofthe201927thacmjointmeetingoneuropeansoftwareengineeringconferenceandsymposiumonthefoundationsofsoftwareengineering,2019,pp.807–817.)则是采用自然语言处理的方式对日志事件进行语义向量化,再投入lstm中进行有监督训练,结果直接映射到标签(0和1),这样的日志异常检测方式具有一定的鲁棒性。[0007]目前的机器学习的日志分析方法已经越来越完善,然而它们仍面临一些问题:[0008]1)大多数机器学习的方法如pca、svm、clustering等对于日志特征的选择是基于日志序列块的事件计数矩阵,这种特征提取方式忽略了日志的语义和序列特征。并不能够很彻底的挖掘日志的特征,充分训练。[0009]2)大多数的日志分析方法对于训练集的要求较高,鲁棒性较低。而当今的日志增长速度是迅速的,不断有新的日志加入的日志系统。较低的鲁棒性意味着模型需要不断的迭代更新,费时费力。[0010]3)大多数现有的机器学习模型不能充分的挖掘日志的序列特征,目前捕获日志序列信息的最佳模型是lstm,需要一种更适合日志序列特征信息捕获的序列化深度学习模型。技术实现要素:[0011]本发明目的在于提供一种具有良好鲁棒性和高准确率、召回率的基于深度混合神经网络的日志序列异常检测方法。[0012]实现本发明目的的技术解决方案为:一种基于深度混合神经网络的日志序列异常检测方法,包括以下步骤:[0013]步骤1,采用滑动窗口与会话窗口相结合的方式对日志进行序列分割;[0014]步骤2,采用语义向量特征和统计特征结合的方式实现日志模板的语义向量化;[0015]步骤3,采用改进的序列化深度学习模型与卷积神经网络相结合的模型结构,对有异常或正常标签的日志序列进行训练,建立异常检测模型;[0016]步骤4,应用构建的异常检测模型对新产生的日志序列进行异常检测。[0017]进一步的,步骤1中,判断日志的序列模式:如果是基于时间的序列,则指定参数滑动窗口大小window_size和滑动步长step_size,按照时间戳在日志集上进行滑动,对日志序列进行分割;如果是基于会话id的序列,则根据会话id将各个id对应的日志事件抽取出来组合成对应于id的日志序列,完成日志序列划分。[0018]进一步的,异常检测前,将非结构化的日志数据结构化,获得日志事件模板以及结构化后的日志事件集。[0019]进一步的,滑动窗口方式的日志事件抽取方式,将所有日志在时间维度上按照窗口滑动的方式,生成一个个日志事件序列;窗口大小window_size和滑动距离step_size根据日志的时间跨度自行设置,而当step_size》=window_size时,日志事件序列无重复;当一个日志事件序列内有一条及以上异常日志时,该序列即视为异常序列;反之,则为正常序列;[0020]会话窗口方式的日志事件抽取方式,将属于一个会话id:blk_id的所有日志事件抽取出来组合成一个日志事件序列,并与该blk_id对应的标签相匹配。[0021]进一步的,步骤2中,先利用预训练语言模型bert对日志模板进行语义向量化,然后计算出各个日志事件的逆频率,将bert语义化的向量与事件逆频率相结合实现日志模板的语义向量化。[0022]进一步的,步骤2日志模板语义向量化的具体步骤为:[0023]步骤2.1,对步骤1.1的产生的日志模板进行数据预处理,去除无效符号和干扰数字,将拼接单词拆分;[0024]步骤2.2,将处理好的日志模板投入到bert预训练模型中,获得日志模板的语义向量,每个日志事件对应一个768维的语义向量。[0025]步骤2.3,根据步骤1.1统计不同日志事件的数量,计算各个日志事件的逆频率event_idf:[0026][0027]其中n表示日志中出现的事件数,ei表示第i个事件;[0028]步骤2.4,将event_idf进行适当缩放后,与步骤2.2产生的语义向量进行结合。[0029][0030]其中[min,max]是指定的缩放范围,idfmin和idfmax是步骤2.3所计算的事件逆频率的最小值和最大值。eventnor-i(ei)经过计算后缩放至指定范围[min,max];再将规范后的事件逆频率与步骤2.2的日志模板语义向量相乘,实现日志统计特性与语义向量的结合,获得具有鲁棒性的日志模板特征向量。[0031]进一步的,步骤3日志异常检测模型构建的具体步骤为:[0032]步骤3.1,用步骤2所产生的日志模板语义向量对步骤1的日志序列进行特征向量化,产生日志序列的特征向量,再投入到模型中。首先接入一层全连接层,用以将特征向量进行提取压缩,使步骤2产生的语义向量与日志数据更加匹配。[0033]步骤3.2,接着将日志序列特征向量按日志事件的顺序依次投入到改进的序列化深度学习模型mogrifierlstm中,每条日志事件的特征向量对应于一个神经细胞单元cell,用以捕获日志的序列特征和语义特征。[0034]步骤3.3,在序列化深度学习模型后面接入卷积神经网络(cnn),利用卷积神经网络的特征捕获能力,对lstm层的结果进行特征提取。再接入全连接层,将cnn层的输出最终映射到标签0和1。[0035]进一步的,步骤4中,使用sigmoid函数将模型的预测结果进行归一化处理,获得日志序列隶属于正常或异常的概率,根据概率判断日志序列正常与否。[0036]进一步的,步骤4日志异常检测的具体步骤为:[0037]步骤4.1,将待预测的日志序列按照步骤2的日志模板向量进行特征向量化,投入到步骤3训练好的模型中,最终获得全连接层输出的大小为2的一维向量;[0038]步骤4.2,使用sigmod函数对结果进行归一化计算,获得结果为0和1的概率;[0039][0040]步骤4.3,设定预测阈值p,当步骤4.2产生的预测结果为0的概率大于p时,预测该日志序列为正常,结果为0的概率小于p时,预测该日志序列为异常。[0041]与现有技术相比,本发明的显著优点为:特征提取部分采用bert预训练模型结合日志事件统计特性的方式,能够充分挖掘日志集的特性,提升整体模型的鲁棒性和f1值;模型采用改进的序列化深度学习模型mogrifierlstm和卷积神经网络cnn结合的方式,能更好的捕获语义向量间的联系和日志的序列信息,提升模型的预测效果。在公开的hdfs和bgl数据集上,本发明的日志异常检测效果和鲁棒性都优于绝大多数主流方法。[0042]下面结合附图对本发明作进一步详细描述。附图说明[0043]图1是本发明基于深度混合神经网络的日志序列异常检测方法流程图。[0044]图2是日志序列分割流程图。[0045]图3是日志模板语义向量化示意图。具体实施方式[0046]本发明提供一种基于深度混合神经网络的日志序列异常检测方法,采用bert预训练模型和日志事件逆频率(event_idf)提取日志事件语义向量,增强鲁棒性;并用改进型的序列化模型mogrifierlstm结合卷积神经网络cnn训练拟合模型,获得较好的预测效果;该方法具体包括以下步骤:[0047]步骤1:日志序列分割,根据日志数据特性采用滑动窗口或会话窗口的方式,将日志数据集划分成不同的日志序列分组,每个日志序列都对应于一个标签(0或1)。[0048]步骤2:日志模板语义向量化,对日志解析后获得的日志模板进行语义向量化处理,首先将日志事件投入到bert预训练模型中获得初步语义向量(768维),再根据日志事件的统计特性计算每个日志事件的逆频率(event_idf),将语义向量与日志事件逆频率event_idf结合后获得最终具有良好鲁棒性的特征向量。[0049]步骤3:日志序列异常检测模型构建,首先采用改进的序列化深度学习模型mogrifierlstm对日志序列信息进行学习,然后接入卷积神经网络cnn对上一层序列化深isallyouneed,”inproceedingsofthe31stinternationalconferenceonneuralinformationprocessingsystems,2017,pp.5998–6008.)注意力机制的先进语义提取模型。由多个transformer块(trm)构成,每个trm都由多头注意力机制层和前馈神经网络层构成,bert能够充分捕获输入日志事件每个单词间的权重关系,并结合单词位置信息进行语义化。本发明采用预训练的bert模型对日志事件进行初步的语义向量化,每个日志事件最终都转化为768维的向量。[0065]步骤2.3,根据步骤1.1统计不同日志事件的数量,计算各个日志事件的逆频率event_idf。[0066][0067]其中count(ei)表示日志事件ei在该日志集中所发生的次数,而表示日志集中所有日志事件发生的总次数,eventidf(ei)能够在一定程度上表现出日志事件的统计特性。[0068]步骤2.4,将event_idf进行适当缩放后,与步骤2.2产生的语义向量进行结合。[0069][0070]其中[min,max]是指定的缩放范围,idfmin和idfmax是步骤2.3所计算的事件逆频率的最小值和最大值。eventnor-idf(ei)经过计算后缩放至指定范围[min,max]。日志序列的异常与否往往与序列内的罕见日志事件有着更大的联系,在全局出现较少的日志事件往往对当前日志序列的影响更大,所以我们在步骤2.2产生的日志事件语义向量的基础上,乘上我们缩放后的日志事件逆频率eventnor-i(ei),就能够将这种统计特性以权重的方式去影响语义特征,而[min,max]则是人为可以控制的event_idf对语义特征向量的影响大小,一般设置在1左右。二者结合后我们就获得了最终的日志模板特语义征向量。[0071]步骤3,构建日志序列异常检测模型,具体步骤如下:[0072]步骤3.1,将步骤1获得的日志序列按照步骤2获得的日志模板语义向量进行语义向量化替代,得到日志序列的语义向量,譬如一个日志序列由n条日志构成的话,形成的日志序列语义向量就是[n,768]。[0073]将[n,768]特征向量接入到一层全连接层,进行特征的提纯压缩,压缩至指定大小[n,in_size],该步目的是将bert预训练的语义向量与日志数据集文本相匹配,进行特征提炼。[0074]步骤3.2,将[n,in_size]向量投入到序列化深度学习模型mogrifierlstm中,按日志序列顺序,n个日志对应的向量分别输入到n个神经单元细胞cell中。[0075]mogrifierlstm是本发明所发现的能够更加贴合日志序列特征的改进的长短时记忆网络。相较于普通的长短时记忆网络lstm,mogriferlstm在信息进入细胞单元cell中前,对信息进行了交互处理。在每个当前输入xt输入到cell中前,会先与前一个cell的隐藏层状态ht-1进行迭代交互,具体迭代运算如下:[0076][0077][0078]实验证明xt和ht-1进行有限次迭代交互后再投入到lstmcell中,将极大提高序列化模型的记忆力和拟合能力,这也是mogrifierlstm能更好的捕获和拟合日志序列化特征的原因。[0079]步骤3.3,在经过mogrifierlstm后,我们采用不同大小的多个卷积核对隐藏层输出[n,hidden_size]进行卷积运算,并将卷积结果拼接后再接入全连接层映射到最终结果(0或1),这样能够最大程度挖掘出经过mogrifierlstm处理后的日志特征。[0080]步骤4,进行日志异常检测,具体步骤如下:[0081]步骤4.1,将待预测的日志序列按照步骤2的日志模板向量进行特征向量化,投入到步骤3训练好的模型中,最终会获得全连接层输出的长度为2的一维向量。[0082]步骤4.2,使用sigmod函数对结果进行归一化计算,获得结果为0和1的概率。[0083][0084]将待预测日志序列投入到步骤3训练好的模型中,最终会获得一个长度为2的一维向量,其中第一个数表示预测结果为0的可能性,第二个数表示预测结果为1的可能性。经过sigmod函数后,可能性大小被归一化至(0,1)之间,符合概率形式。[0085]步骤4.3,设定预测阈值p,当步骤4.2产生的预测结果为0的概率大于p时,预测该日志序列为正常,结果为0的概率小于p时,预测该日志序列为异常。本发明采用阈值p的方式来确定预测日志序列正常与否,相较于单纯比较0和1可能性大小的方式,能够进行预测精度的调整。根据日志特性和用户需求,适当调高p值,可以使得预测结果中正常的结果减少,异常结果增多,从而提高召回率降低准确率;反之,降低p值,可以增加预测结果中正常结果的数量,减少异常数量,提高准确率,增加召回率。预测阈值p使得用户能够根据需求调整模型的精准度和召回率。[0086]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献