CN116484260A - 一种基于双向时间卷积网络的半监督日志异常检测方法 - Google Patents

一种基于双向时间卷积网络的半监督日志异常检测方法 Download PDF

Info

Publication number
CN116484260A
CN116484260A CN202310478997.0A CN202310478997A CN116484260A CN 116484260 A CN116484260 A CN 116484260A CN 202310478997 A CN202310478997 A CN 202310478997A CN 116484260 A CN116484260 A CN 116484260A
Authority
CN
China
Prior art keywords
log
sequence
word
supervised
semi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310478997.0A
Other languages
English (en)
Other versions
CN116484260B (zh
Inventor
尹春勇
孔娴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202310478997.0A priority Critical patent/CN116484260B/zh
Publication of CN116484260A publication Critical patent/CN116484260A/zh
Application granted granted Critical
Publication of CN116484260B publication Critical patent/CN116484260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于双向时间卷积网络的半监督日志异常检测方法,涉及计算机技术领域,步骤为:收集来自不同系统产生的日志数据集;对每个原始日志条目进行拆分并对日志事件进行日志解析,获得日志条目对应的日志模板;通过BERT词嵌入模型对日志模板进行向量化;基于日志分组方法将所有日志条目分为日志序列,并结合语义向量化得到日志序列语义向量;通过聚类算法给出每条日志条目对应标签概率;将日志序列语义向量输入带有残差块的Bi‑TCN网络进行训练,得到训练好的模型BTCNLog,在测试阶段使用该模型对日志测试集进行异常检测,从而解决现有技术中日志解析准确率不高和标记样本不足所导致的异常检测准确率降低等问题。

Description

一种基于双向时间卷积网络的半监督日志异常检测方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于双向时间卷积网络的半监督日志异常检测方法。
背景技术
现代网络设备、系统及服务程序等在运行过程中会产生具有记载系统状态和事件信息的日志记录,通过基于日志的异常检测方法可以及时检查出系统中的异常或故障以及系统受到攻击时攻击者留下的痕迹,从而保证系统的可靠性和稳定性。因此,日志文件在多个方面都扮演着重要角色,可以提供对系统的全面了解和深入分析,帮助管理员实时监测系统运行情况、快速排查故障、优化系统性能并保障软件安全。
早期,系统日志的异常检测依赖于人工检查分析大量日志信息,但随着服务器系统的大规模发展,日志数据量越发庞大,数据越发复杂,人工智能技术逐渐运用于数据领域,通过机器学习、深度学习等算法自动地从海量运维数据中学习并总结规则,实现了日志异常检测的自动化。
现有的基于日志异常检测的方法通常都包含日志收集、日志解析、特征提取和异常检测四个步骤;日志收集:从网络设备、系统及服务程序等软硬件中获取生成的相关日志;日志解析:从收集的日志数据中提取已知日志事件和日志序列来构建检测模型,是一个将非结构化数据转为结构化数据并将参数提取出统一模板的过程;特征提取:利用机器学习、统计分析等方法,分析和挖掘日志数据特征信息;异常检测:将日志的向量表示输入机器学习或深度学习的模型中,进行学习训练,从而生成异常检测的模型,该模型可用于对新的日志进行检测。
基于监督学习的日志异常检测方法需要对大量的日志数据进行标记工作,虽然可以得到较好的结果但实用性不高;基于无监督学习的日志异常检测方法使用大量的正常日志作为训练数据,需要确保其中只有极少部分样本是异常数据,否则有效性会降低;而半监督学习使用部分标记数据和大量未标记的数据进行模式识别工作,从而尽可能的减少人工标记成本,同时,又能带来比较高的准确性,因此,基于日志的半监督学习方法值得深入研究。
日志数据的特点具有非结构化、多样性以及不稳定性,给异常日志序列检测带来了巨大的挑战,先前研究支持向量机(SVM),主成分分析(PCA),Invariant Mining(IM)等将日志序列表示为日志计数向量,忽略了日志事件中的语义信息,无法应对不断演化的日志语句;而基于深度学习和自然语言处理技术的异常检测方法,通过日志解析方法提取日志模板并进一步提取语义向量,进行异常检测,此类方法保留了日志的语义信息,可以应对部分变化的日志语句。
现有的日志异常检测方法依赖于日志解析的准确性,而大部分的日志解析方法例如Drain,Spell和FT-Tree等在不同的日志数据集上需要分别进行预训练调参,并且容易产生解析错误,引入噪声。
随着软件系统不断更新,日志消息也随之演化,出现了很多新的词汇,导致Word2vec,GloVe此类常用的词向量模型语义向量提取不够准确。
很多基于RNN网络的异常检测模型支持并行计算,但是训练时间开销大,且处理长序列时可能会出现梯度消失或爆炸的问题,因此很难准确地学习较长日志序列中的依赖关系,最终导致异常检测不够准确。
发明内容
为了解决以上技术问题,本发明提供一种基于双向时间卷积网络的半监督日志异常检测方法,包括以下步骤
S1、日志收集:收集来自不同系统产生的日志数据集,按照6:1:3的比例将其分为训练集、验证集以及测试集;
S2、数据预处理和日志解析:对每个原始日志条目进行拆分并对日志事件进行日志解析,获得日志条目对应的日志模板;
S3、语义向量化:通过BERT词嵌入模型对日志模板进行向量化;
S4、日志分组:基于日志时间戳和日志条目特定数据项将日志序列重排,使用固定窗口大小将所有日志条目分为日志序列,并结合步骤S3中语义向量化的方法得到日志序列语义向量;
S5、日志序列聚类:通过HDBSCAN聚类算法将日志训练集中的所有日志序列聚类到不同的簇,并给出每条日志条目对应标签概率;
S6、异常检测:将日志序列语义向量输入带有残差块的双向Bi-TCN网络进行训练,得到训练好的模型BTCNLog,在测试阶段使用该训练好的模型BTCNLog对日志测试集进行异常检测。
本发明进一步限定的技术方案是:
进一步的,步骤S2中,数据预处理和日志解析包括以下步骤
S2.1、将日志条目根据日志框架确定的字段进行分割,提取出日志条目的有效信息,有效信息包括与日志条目相对应的时间戳、日志消息等级以及日志事件;
S2.2、对日志事件进行日志解析,将描述系统事件的日志关键字部分和日志参数部分进行分离;利用正则表达式将日志事件中的日志公共变量分别替换成相关标记,筛选出不符合规则的变量,将其与正常模板区分。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S2.2中,日志解析的方法包括以下步骤
S2.2.1、对每个日志事件进行分隔并形成一组单词标记;
S2.2.2、根据引入的字典将所有单词标记进行字典化,将字典中存在的单词标记识别为有效单词并放入单词集中;对于非字典中的单词标记,对其进行筛选,去除包含特殊字符的词,并引入基于wiki百科语料的频率分词的外部包wordninja,同时加入由有效词生成的连接词;
S2.2.3、将日志事件根据单词集进行集群,将具有相同单词集并且每个单词词频相同的日志事件被归为同一簇,并使用最长公共序列提取该簇现有模板的公共子序列;
S2.2.4、将所有不同集群获得的模板按照顺序对所有单词集进行排序并生成前缀树,最后生成最终的模板。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S3中,BERT词嵌入模型包括12层Transformer编码器,每个Transformer均包括768个隐藏单元;
进行语义向量化前,首先对BERT词嵌入模型进行预训练,BERT词嵌入模型分别通过掩码语言建模和下句预测模型进行预训练。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,BERT词嵌入模型在进行预训练时,
掩码语言建模在序列中掩盖部分单词并使用[MASK]替换,然后利用掩码后的序列让模型预测被掩码的词,以此来训练模型;
下句预测模型通过将标签[CLS]加入第一个句子开头并用标签[SEP]连接第二个句子,来预测第二个句子是否是第一个句子的下一个句子。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S4中,对于每个日志序列,将其中每个日志对应的模板语义向量进行整合,作为每个日志序列的语义向量。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S5中,采用FastICA算法降低日志序列语义向量的维度,并使用基于密度群集的HDBSCAN聚类算法将训练集中的所有日志序列聚类到不同的簇,最后聚类结果给每个日志序列分配一个0到1区间的分数;
日志序列聚类包括以下步骤
S5.1、将日志序列语义向量作为图的顶点,日志序列之间的相互可达度量距离作为顶点之前边的权重,构建一个带权连通无向图,相互可达度量距离如下式所示,
dmreach-m(a,b)=max{corem(a),corem(b),d(a,b)}
其中,dmreach-m(a,b)表示日志序列样本a和b的相互可达度量距离,corem(a)表示日志序列样本a与第m个最近邻样本点的核心距离,corem(b)表示日志序列样本b与第m个最近邻样本点的核心距离,d(a,b)是两个日志序列样本a和b之间的直接距离;
S5.2、通过Prim算法构建带权连通无向图的最小生成树,根据最小生成树,通过按距离升序排列树的边,对于每条边连接的两个顶点,将它们所属的聚类合并为一个新的聚类;
S5.3、基于聚类的相对密度,使用单链接聚合策略将生成的聚类分层,并形成一个连接组件层次结构;
S5.4、根据预设的最小簇数值,将连接组件层次结构缩减为一个包含更少连接组件节点的树形图;
S5.5、根据每个簇的稳定性值,从压缩树中提取出稳定的簇,簇的稳定性公式如下所示,
scluster=∑p∈clusterpbirth)
其中,λ=1/distance,λbirth表示当节点被分裂成两个子节点时,对应断开边的长度的倒数;λp表示样本点p因为分裂离开该节点时,对应断开边长度的倒数;
S5.6、HDBSCAN聚类结果给每个日志序列分配一个0到1区间的分数score,score用于表示每个日志序列属于该簇的不确定性,score越小表示该日志序列越接近该簇的中心,将该分数化为日志序列属于正常或异常的概率,若预测日志序列位于正常日志序列簇,则伪标签如下式所示:
其中,P(normal)表示日志序列为正常的概率,P(anomalous)表示日志序列为异常的概率。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S6中,双向Bi-TCN网络包括若干层Bi-TCN残差块,Bi-TCN残差块由膨胀卷积、非线性映射、WeightNorm、Dropout以及残差连接组成;双向Bi-TCN网络的每层中使用膨胀卷积和0-padding技术来保证输入序列和输出序列具有相同的长度,padding=(k-1)*d/2;
膨胀卷积计算公式如下所示:
padding=(k-1)*d/2
其中,d表示膨胀率,以2的指数增长;k表示卷积核的大小。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,双向Bi-TCN网络包括4层Bi-TCN残差块,每层的卷积核大小k为3,dropout设置为0.2。
前所述的一种基于双向时间卷积网络的半监督日志异常检测方法,步骤S6中,向Bi-TCN网络中输入给定序列V={v1,v2,…,vn-1,vn},并生成与给定序列长度相同的输出序列Y={y1,y2,…,yn-1,yn};通过Bi-TCN网络对日志上下文的相关性的特征提取后,使用全局平均池化来平均Bi-TCN网络中最后一个卷积层的输出特征;最后经过全连接层和Softmax分类器对日志序列是正常还是异常进行判定。
本发明的有益效果是:
(1)本发明中,结合日志数据的特性改进了日志解析方法,采用基于字典的日志解析方法无需进行调参,有效避免了过度解析导致日志事件中有价值的信息丢失的问题,此外通过预处理时正则替换日志公共参数以及解析部分添加复合单词的改进,保留了部分参数信息,极大提高了日志信息的利用率和日志解析的准确率;
(2)本发明中,能够结合上下文对日志模板进行语义向量化,可以适应系统演化和日志演化,并保留部分模板参数的语义信息;
(3)本发明中,通过半监督学习不仅可以有效学习正常日志序列的信息,还能学习历史异常日志序列的信息,从而提高了日志异常检测的准确性;
(4)本发明中,引入带有残差块的双向时间卷积网络,避免了传统循环神经网络方法在处理长序列时可能出现梯度消失或爆炸的问题,利用时间网络可以并行化处理的特点能够更快地获得稳定的模型,提高了异常检测的效率,并且通过拓展为双向时间卷积,可以从日志序列上下文的信息中捕获每个日志的长期上下文依赖关系,从而有效地增强上下文表示,进一步提高异常检测的精度。
附图说明
图1为本发明检测方法的流程示意图;
图2为本发明中Bi-TCN残差块的结构示意图;
图3为本发明中膨胀卷积的结构示意图;
图4为本发明实施例中BTCNLog模型日志检测部分与其它三个基准方法在16个日志数据集上的实验结果以及平均准确率的对比图;
图5为本发明实施例中BTCNLog与其它六个基准在BGL和Thunderbird日志数据集上的实验结果的对比图;
图6为本发明实施例中BTCNLog与其它三个基准在BGL、Thunderbird以及Spirit日志数据集上的实验结果的对比图。
具体实施方式
本实施例提供的一种基于双向时间卷积网络的半监督日志异常检测方法,如图1所示,包括以下步骤
S1、日志收集:收集来自不同系统产生的日志数据集,按照6:1:3的比例将其分为训练集、验证集以及测试集。
S2、数据预处理和日志解析:对每个原始日志条目进行拆分并对日志事件进行日志解析,获得日志条目对应的日志模板。
数据预处理和日志解析包括以下步骤
S2.1、原始日志条目除了记录系统事件外还包含事件发生的一些相关信息,例如时间戳、日志消息等级和日志事件等,其中时间戳用于记录系统产生日志条目的时间;日志消息等级记录日志条目的粗略特征;日志事件记录具体事件的详细内容;除此之外,不同的日志可能会包含其它不同的日志数据项;
因此,数据预处理部分首先将日志条目根据日志框架确定的字段进行分割,提取出日志条目的有效信息,有效信息包括与日志条目相对应的时间戳、日志消息等级以及日志事件。
例如BGL原始日志条目“APPSEV 1124722088 2005.08.22R41-M0-N4-I:J18-U012005-08-22-07.48.08.401638R41-M0-N4-I:J18-U01RAS APP FATAL ciod:Error readingmessage prefix after LOGIN_MESSAGE on CioStream socket to 172.16.96.116:37564:Link has been severed”,其中标签为APPSEV表示异常日志,若标签为“-”则表示正常日志,时间戳是1124722088,日期是2005.08.22,节点是R41-M0-N4-I:J18-U01,具体时间是2005-08-22-07.48.08.401638,重复节点是R41-M0-N4-I:J18-U01,日志消息类型是RAS,生成位置是APP,日志消息的等级是FATAL,日志事件是ciod:Error reading messageprefix after LOGIN_MESSAGE on CioStream socket to172.16.96.116:37564:Link hasbeen severed。
S2.2、日志事件是描述事件具体发生的非结构化文本,蕴含丰富的日志信息,因此是进行日志分析和异常检测的主要数据来源,日志事件包含日志关键字和日志参数部分,其中日志参数部分通常会以文件路径、IP地址、端口号以及主机名等形式出现,如果将原始日志消息直接向量化,则会出现词汇量过多和无效词过多的问题,给日志异常检测带来许多噪声,影响训练效果。
因此需要对日志事件进行日志解析,将描述系统事件的日志关键字部分和日志参数部分进行分离;对于日志事件中的日志公共变量,例如IP地址、端口号、八进制数以及日期等,利用正则表达式分别替换成相关标记,不仅可以保留变量的部分语义信息,而且可以通过正则表达式筛选出不符合规则的变量,将其与正常模板区分,而不是被统一的变量通配符替换。
使用传统日志解析方法Spell和Drain等都需要对每个日志经过预训练调参才能达到最佳解析结果,除此之外,还存在将日志关键字部分解析成日志参数的情况,日志解析准确率不高;而基于字典的日志解析方法SwissLog根据单词集进行集群,可以有效解决以上问题,可以高效精准地提取日志模板并且具有鲁棒性,无需调整参数,但当日志事件中无有效词或有效词单一较少时,有被解析为0模板或其他模板的可能性,因此结合日志单词特性对SwissLog日志解析进行改进。
日志解析的方法包括以下步骤
S2.2.1、对每个日志事件进行分隔并形成一组单词标记;
S2.2.2、根据引入的字典将所有单词标记进行字典化,将字典中存在的单词标记识别为有效单词并放入单词集中;对于非字典中的单词标记,对其进行筛选,去除包含特殊字符的词,并引入基于wiki百科语料的频率分词的外部包wordninja,同时加入由有效词生成的连接词,可以在一定程度上减少0模板;
S2.2.3、将日志事件根据单词集进行集群,将具有相同单词集并且每个单词词频相同的日志事件被归为同一簇,并使用最长公共序列(LCS)提取该簇现有模板的公共子序列;
S2.2.4、将所有不同集群获得的模板按照顺序对所有单词集进行排序并生成前缀树,最后生成最终的模板。
S3、语义向量化:通过BERT词嵌入模型对日志模板进行向量化。
对于每个日志模板使用BERT词嵌入模型进行向量化,BERT词嵌入模型相当于Transformer的编码器组成的模型,BERT词嵌入模型包括12层Transformer编码器,每个Transformer均包括768个隐藏单元。
进行语义向量化前,首先对BERT词嵌入模型进行预训练,BERT词嵌入模型的预训练阶段包括两个任务,一是掩码语言建模(MLM),二是下句预测模型(NSP);掩码语言建模通过在序列中掩盖部分单词并使用“[MASK]”替换,然后利用掩码后的序列让模型预测被掩码的词来训练模型;下句预测模型通过将标签“[CLS]”加入第一个句子开头并用标签“[SEP]”连接第二个句子,来预测第二个句子是否是第一个句子的下一个句子。
与传统语义向量模型Word2Vec和GloVe方法相比,因BERT是基于Transformer的结构,自带双向功能和多层Self-attention机制可以学习更多序列信息,能够根据周围的单词动态地产生单词表示形式,可以结合上下文将日志序列语义信息编码为具有固定维度的向量表示。
S4、日志分组:由于日志中存在上下文时间依赖性且日志事件条目数量大,需要将日志条目进行分组,而不能只考虑单个日志消息的异常检测;基于日志时间戳和日志条目特定数据项(例如BGL数据集中的数据项Node(节点))将日志序列重排,并使用固定窗口大小进行日志分组,可以一定程度上保证相同的日志事务被划分到相同的日志序列;对于每个日志序列,将其中每个日志对应的模板语义向量进行整合,作为每个日志序列的语义向量。
S5、日志序列聚类:通过HDBSCAN聚类算法将日志训练集中的所有日志序列聚类到不同的簇,并给出每条日志条目对应标签概率。
采用FastICA算法降低日志序列语义向量的维度,并使用基于密度群集的HDBSCAN聚类算法将训练集中的所有日志序列聚类到不同的簇,使每个簇更可能包含语义相似的日志序列,最后聚类结果给每个日志序列分配一个0到1区间的分数。
日志序列聚类包括以下步骤
S5.1、将日志序列语义向量作为图的顶点,日志序列之间的相互可达度量距离作为顶点之前边的权重,构建一个带权连通无向图,相互可达度量距离如下式所示,
dmreach-m(a,b)=max{corem(a),corem(b),d(a,b)}
其中,dmreach-m(a,b)表示日志序列样本a和b的相互可达度量距离,corem(a)表示日志序列样本a与第m个最近邻样本点的核心距离,corem(b)表示日志序列样本b与第m个最近邻样本点的核心距离,d(a,b)是两个日志序列样本a和b之间的直接距离;
S5.2、通过Prim算法构建带权连通无向图的最小生成树,根据最小生成树,通过按距离升序排列树的边,对于每条边连接的两个顶点,将它们所属的聚类合并为一个新的聚类;
S5.3、基于聚类的相对密度,使用单链接聚合策略将生成的聚类分层,并形成一个连接组件层次结构;
S5.4、根据预设的最小簇数值,将连接组件层次结构缩减为一个包含更少连接组件节点的树形图;
S5.5、根据每个簇的稳定性值,从压缩树中提取出稳定的簇,簇的稳定性公式如下所示,
scluster=∑p∈clusterpbirth)
其中,λ=1/distance,λbirth表示当节点被分裂成两个子节点时,对应断开边的长度的倒数;λp表示样本点p因为分裂离开该节点时,对应断开边长度的倒数;
S5.6、通过步骤S5.1至步骤S5.5,将训练集中的日志序列分成若干簇,以便识别语义相似的日志序列,HDBSCAN聚类结果给每个日志序列分配一个0到1区间的分数score,score用于表示每个日志序列属于该簇的不确定性,score越小表示该日志序列越接近该簇的中心,因此,可以将该分数化为日志序列属于正常或异常的概率,若预测日志序列位于正常日志序列簇,则伪标签如下式所示:
其中,P(normal)表示日志序列为正常的概率,P(anomalous)表示日志序列为异常的概率。
S6、异常检测:将日志序列语义向量输入带有残差块的双向Bi-TCN网络进行训练,得到训练好的模型BTCNLog,在测试阶段使用该训练好的模型BTCNLog对日志测试集进行异常检测。
将日志序列语义向量输入Bi-TCN网络,进一步提取长日志上下文的相关性,向Bi-TCN网络中输入给定序列V={v1,v2,...,vn-1,vn},并生成与给定序列长度相同的输出序列Y={y1,y2,...,yn-1,yn},其中,预测值不仅依赖于该时刻之前的输入值,而且也与未来的输入值有关;通过Bi-TCN网络对日志上下文的相关性的特征提取后,使用全局平均池化代替全连接层来平均Bi-TCN网络中最后一个卷积层的输出特征,进一步减少全连接层中的参数,从而实现紧凑和高效的特征表示;最后经过全连接层和Softmax分类器对日志序列是正常还是异常进行判定。
双向Bi-TCN网络包括4层Bi-TCN残差块,每层的卷积核大小k为3,dropout设置为0.2;Bi-TCN残差块由膨胀卷积、非线性映射、WeightNorm、Dropout以及残差连接组成;膨胀卷积操作改进了从各种感受野中提取的特征表示,使用WeightNorm来加速训练过程,提高泛化能力,加入Dropout来避免过拟合保证稳定性;双向Bi-TCN网络的每层中使用膨胀卷积和0-padding技术来保证输入序列和输出序列具有相同的长度,padding=(k-1)*d/2;
膨胀卷积计算公式如下所示:
padding=(k-1)*d/2
其中,d表示膨胀率,以2的指数增长;k表示卷积核的大小。
为了验证本发明有效性和对现有的日志异常检测方法效果的提升,分别进行了日志解析和日志异常检测的实验。
在日志解析实验部分采用了Loghub提供的16个真实世界日志数据集,并选取了基于最长公共序列算法的Spell,基于固定深度树的Drain以及SwissLog日志解析方法进行实验效果对比;使用解析准确率(Parsing Accuracy,PA)作为评估日志解析的指标,如下式所示:
其中,PA表示解析准确率,即正确解析的日志消息与日志消息总数之比,其中日志模板的部分匹配的情况也被认定为不正确。
日志解析部分使用与SwissLog方法所提供的相同字典进行实验,除此之外,为了与解析结果相匹配,在预处理时将正则表达式替换的参数部分改为统一标记,如图4(表1)所示,显示了BTCNLog模型日志检测部分与其余三个基准方法在16个日志数据集上的实验结果以及平均准确率,其中有下划线字体显示每个数据集最优结果。
实验结果表明,在每个数据集上BTCNLog模型都能取得优于Spell和Drain方法的结果,因为基于字典的解析方法不会将日志关键字过度解析为日志参数;较SwissLog而言,结合日志单词特点的改进使得日志解析准确率在Hadoop、HPC、Thunderbird、Mac、Linux以及Andriod六个数据集上都有所提高。
在日志异常检测部分选择了三个公共日志数据集(BGL、Thunderbird以及Spirit)用于验证实验的有效性,并将BTCNLog与六个基准方法做比较,其中包括两个基于数据挖掘的日志异常检测方法,即由Wei等人提出的PCA和由Lou等人提出的IM;还包括四种基于深度学习的日志异常检测方法,即由Du等人提出的DeepLog、由Meng等人提出的LogAnomaly、由Guo等人提出的LogBERT以及由Yang等人提出的PLELog。
异常检测实验部分采用精度、召回率以及F1分数作为评价指标,本发明设置日志序列窗口大小为60,模型训练的epochs为5,batch_size为100,测试batch_size为1024,使用Adam优化器和LambdaLR学习率调整方法,初始学习率设置为2e-3,根据6:1:3的比例拆分所有数据集。
对于日志异常检测的研究使用精度、召回率以及F1分数作为评估指标,TP意味着模型正确检测出的异常日志序列数量;FP意味着被模型错误识别为异常的正常日志序列的数量;FN意味着被模型判别为正常的异常日志序列数量,即未被检测到的异常日志序列的数量;TN意味着模型正确识别的正常日志序列数量。
精度(Precision,P):正确识别为异常的日志序列占模型识别为异常的所有日志序列的百分比,计算公式如下:
召回率(Recall,R):被正确识别为异常的日志序列占所有异常日志序列的百分比,计算公式如下:
F1分数(F1):精度和召回率的调和平均数,计算公式如下:
其中,P表示精度,R表示召回率。
如图5所示,显示了BTCNLog与六个基准在BGL和Thunderbird日志数据集上的对比实验结果,实验结果表明本发明优于使用日志计数向量的机器学习方法,并且使用双向时间卷积高效提取日志序列上下文信息优于其他深度学习方法。
消融实验可以看出模型各个部分的有效性,因此分别在BGL、Thunderbird以及Spirit日志数据集上进行消融实验,验证日志解析和日志异常检测模型的有效性。
如图6所示,模型Bi-TCN+SwissLog的结果略有下降,由于本发明的日志解析部分结合了日志单词的特性,并保留了部分参数的语义信息,充分利用日志事件的语义信息,所以实验结果更好;在Spirit数据集上,实验效果普遍较差,这跟该数据集中包含较多专业领域缩写,可读性较差有关;模型TCN+BERT显示了将日志异常检测模型部分改为TCN网络的实验结果,结果显示使用TCN网络进行异常检测仍然可以得到很好的效果,但与Bi-TCN网络相比,实验效果略微下降;此外,使用具有100层隐藏层的Bi-LSTM网络替换Bi-TCN网络,实验结果如图6中的模型Bi-LSTM+BERT所示,虽召回率可以保持较好水平,但精确率有所下降,综上所示,进一步证实了Bi-TCN网络有效学习日志序列上下文信息,对日志异常检测有较大的改进效果。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (10)

1.一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:包括以下步骤
S1、日志收集:收集来自不同系统产生的日志数据集,按照6:1:3的比例将其分为训练集、验证集以及测试集;
S2、数据预处理和日志解析:对每个原始日志条目进行拆分并对日志事件进行日志解析,获得日志条目对应的日志模板;
S3、语义向量化:通过BERT词嵌入模型对日志模板进行向量化;
S4、日志分组:基于日志时间戳和日志条目特定数据项将日志序列重排,使用固定窗口大小将所有日志条目分为日志序列,并结合步骤S3中语义向量化的方法得到日志序列语义向量;
S5、日志序列聚类:通过HDBSCAN聚类算法将日志训练集中的所有日志序列聚类到不同的簇,并给出每条日志条目对应标签概率;
S6、异常检测:将日志序列语义向量输入带有残差块的双向Bi-TCN网络进行训练,得到训练好的模型BTCNLog,在测试阶段使用该训练好的模型BTCNLog对日志测试集进行异常检测。
2.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S2中,数据预处理和日志解析包括以下步骤
S2.1、将日志条目根据日志框架确定的字段进行分割,提取出日志条目的有效信息,有效信息包括与日志条目相对应的时间戳、日志消息等级以及日志事件;
S2.2、对日志事件进行日志解析,将描述系统事件的日志关键字部分和日志参数部分进行分离;利用正则表达式将日志事件中的日志公共变量分别替换成相关标记,筛选出不符合规则的变量,将其与正常模板区分。
3.根据权利要求2所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S2.2中,日志解析的方法包括以下步骤S2.2.1、对每个日志事件进行分隔并形成一组单词标记;
S2.2.2、根据引入的字典将所有单词标记进行字典化,将字典中存在的单词标记识别为有效单词并放入单词集中;对于非字典中的单词标记,对其进行筛选,去除包含特殊字符的词,并引入基于wiki百科语料的频率分词的外部包wordninja,同时加入由有效词生成的连接词;
S2.2.3、将日志事件根据单词集进行集群,将具有相同单词集并且每个单词词频相同的日志事件被归为同一簇,并使用最长公共序列提取该簇现有模板的公共子序列;
S2.2.4、将所有不同集群获得的模板按照顺序对所有单词集进行排序并生成前缀树,最后生成最终的模板。
4.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S3中,BERT词嵌入模型包括12层Transformer编码器,每个Transformer均包括768个隐藏单元;
进行语义向量化前,首先对BERT词嵌入模型进行预训练,BERT词嵌入模型分别通过掩码语言建模和下句预测模型进行预训练。
5.根据权利要求4所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述BERT词嵌入模型在进行预训练时,
掩码语言建模在序列中掩盖部分单词并使用[MASK]替换,然后利用掩码后的序列让模型预测被掩码的词,以此来训练模型;
下句预测模型通过将标签[CLS]加入第一个句子开头并用标签[SEP]连接第二个句子,来预测第二个句子是否是第一个句子的下一个句子。
6.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S4中,对于每个日志序列,将其中每个日志对应的模板语义向量进行整合,作为每个日志序列的语义向量。
7.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S5中,采用FastICA算法降低日志序列语义向量的维度,并使用基于密度群集的HDBSCAN聚类算法将训练集中的所有日志序列聚类到不同的簇,最后聚类结果给每个日志序列分配一个0到1区间的分数;
日志序列聚类包括以下步骤
S5.1、将日志序列语义向量作为图的顶点,日志序列之间的相互可达度量距离作为顶点之前边的权重,构建一个带权连通无向图,相互可达度量距离如下式所示,
dmreach-m(a,b)=max{corem(a),corem(b),d(a,b)}
其中,dmreach-m(a,b)表示日志序列样本a和b的相互可达度量距离,corem(a)表示日志序列样本a与第m个最近邻样本点的核心距离,corem(b)表示日志序列样本b与第m个最近邻样本点的核心距离,d(a,b)是两个日志序列样本a和b之间的直接距离;
S5.2、通过Prim算法构建带权连通无向图的最小生成树,根据最小生成树,通过按距离升序排列树的边,对于每条边连接的两个顶点,将它们所属的聚类合并为一个新的聚类;
S5.3、基于聚类的相对密度,使用单链接聚合策略将生成的聚类分层,并形成一个连接组件层次结构;
S5.4、根据预设的最小簇数值,将连接组件层次结构缩减为一个包含更少连接组件节点的树形图;
S5.5、根据每个簇的稳定性值,从压缩树中提取出稳定的簇,簇的稳定性公式如下所示,
scluster=∑p∈clusterpbirth)
其中,λ=1/distance,λbirth表示当节点被分裂成两个子节点时,对应断开边的长度的倒数;λp表示样本点p因为分裂离开该节点时,对应断开边长度的倒数;
S5.6、HDBSCAN聚类结果给每个日志序列分配一个0到1区间的分数score,score用于表示每个日志序列属于该簇的不确定性,score越小表示该日志序列越接近该簇的中心,将该分数化为日志序列属于正常或异常的概率,若预测日志序列位于正常日志序列簇,则伪标签如下式所示:
其中,P(normal)表示日志序列为正常的概率,P(anomalous)表示日志序列为异常的概率。
8.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S6中,双向Bi-TCN网络包括若干层Bi-TCN残差块,Bi-TCN残差块由膨胀卷积、非线性映射、WeightNorm、Dropout以及残差连接组成;双向Bi-TCN网络的每层中使用膨胀卷积和0-padding技术来保证输入序列和输出序列具有相同的长度,padding=(k-1)*d/2;
膨胀卷积计算公式如下所示:
padding=(k-1)*d/2
其中,d表示膨胀率,以2的指数增长;k表示卷积核的大小。
9.根据权利要求8所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述双向Bi-TCN网络包括4层Bi-TCN残差块,每层的卷积核大小k为3,dropout设置为0.2。
10.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S6中,向Bi-TCN网络中输入给定序列V={v1,v2,…,vn-1,vn},并生成与给定序列长度相同的输出序列Y={y1,y2,…,yn-1,yn};通过Bi-TCN网络对日志上下文的相关性的特征提取后,使用全局平均池化来平均Bi-TCN网络中最后一个卷积层的输出特征;最后经过全连接层和Softmax分类器对日志序列是正常还是异常进行判定。
CN202310478997.0A 2023-04-28 2023-04-28 一种基于双向时间卷积网络的半监督日志异常检测方法 Active CN116484260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310478997.0A CN116484260B (zh) 2023-04-28 2023-04-28 一种基于双向时间卷积网络的半监督日志异常检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310478997.0A CN116484260B (zh) 2023-04-28 2023-04-28 一种基于双向时间卷积网络的半监督日志异常检测方法

Publications (2)

Publication Number Publication Date
CN116484260A true CN116484260A (zh) 2023-07-25
CN116484260B CN116484260B (zh) 2024-03-19

Family

ID=87211679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310478997.0A Active CN116484260B (zh) 2023-04-28 2023-04-28 一种基于双向时间卷积网络的半监督日志异常检测方法

Country Status (1)

Country Link
CN (1) CN116484260B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117792696A (zh) * 2023-12-07 2024-03-29 北京邮电大学 一种面向分布式系统的日志异常检测和定位的方法及装置
CN118227361A (zh) * 2024-03-11 2024-06-21 北京邮电大学 一种不依赖日志解析器的无监督日志异常检测方法
CN118467743A (zh) * 2024-07-12 2024-08-09 国网江西省电力有限公司电力科学研究院 基于双向并行树优化日志解析的日志异常检测方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100148A (zh) * 2020-07-31 2020-12-18 紫光云(南京)数字技术有限公司 一种打包日志的增量处理方法
CN112529156A (zh) * 2020-12-07 2021-03-19 江苏大学 一种基于聚类的神经网络测试多方法混合挑选输入方法
CN113312447A (zh) * 2021-03-10 2021-08-27 天津大学 基于概率标签估计的半监督日志异常检测方法
US20210303380A1 (en) * 2020-03-24 2021-09-30 EMC IP Holding Company LLC Method for providing log information, electronic device, and computer program product
CN114416479A (zh) * 2022-01-12 2022-04-29 大连海事大学 一种基于流外正则化的日志序列异常检测方法
CN114584379A (zh) * 2022-03-07 2022-06-03 四川大学 基于优化特征提取粒度的日志异常检测方法
CN114610515A (zh) * 2022-03-10 2022-06-10 电子科技大学 基于日志全语义的多特征日志异常检测方法及系统
CN114841637A (zh) * 2022-04-14 2022-08-02 中国地质大学(武汉) 一种基于hdbscan的物流配送中心选址方法及系统
CN114912500A (zh) * 2021-11-29 2022-08-16 长沙理工大学 一种基于预训练模型的无监督日志异常检测方法
CN115037543A (zh) * 2022-06-10 2022-09-09 江苏大学 一种基于双向时间卷积神经网络的异常网络流量检测方法
CN115659191A (zh) * 2022-10-20 2023-01-31 广东工业大学 基于集成聚类和频繁项集树的光-荷典型场景集生成方法
KR20230032591A (ko) * 2021-08-31 2023-03-07 국방과학연구소 전자 장치의 사이버 공격 탐지 방법
CN115794480A (zh) * 2023-02-10 2023-03-14 成都工业学院 一种基于日志语义编码器的系统异常日志检测方法及系统
CN115828180A (zh) * 2022-12-29 2023-03-21 北京邮电大学 一种基于解析优化和时序卷积网络的日志异常检测方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210303380A1 (en) * 2020-03-24 2021-09-30 EMC IP Holding Company LLC Method for providing log information, electronic device, and computer program product
CN112100148A (zh) * 2020-07-31 2020-12-18 紫光云(南京)数字技术有限公司 一种打包日志的增量处理方法
CN112529156A (zh) * 2020-12-07 2021-03-19 江苏大学 一种基于聚类的神经网络测试多方法混合挑选输入方法
CN113312447A (zh) * 2021-03-10 2021-08-27 天津大学 基于概率标签估计的半监督日志异常检测方法
KR20230032591A (ko) * 2021-08-31 2023-03-07 국방과학연구소 전자 장치의 사이버 공격 탐지 방법
CN114912500A (zh) * 2021-11-29 2022-08-16 长沙理工大学 一种基于预训练模型的无监督日志异常检测方法
CN114416479A (zh) * 2022-01-12 2022-04-29 大连海事大学 一种基于流外正则化的日志序列异常检测方法
CN114584379A (zh) * 2022-03-07 2022-06-03 四川大学 基于优化特征提取粒度的日志异常检测方法
CN114610515A (zh) * 2022-03-10 2022-06-10 电子科技大学 基于日志全语义的多特征日志异常检测方法及系统
CN114841637A (zh) * 2022-04-14 2022-08-02 中国地质大学(武汉) 一种基于hdbscan的物流配送中心选址方法及系统
CN115037543A (zh) * 2022-06-10 2022-09-09 江苏大学 一种基于双向时间卷积神经网络的异常网络流量检测方法
CN115659191A (zh) * 2022-10-20 2023-01-31 广东工业大学 基于集成聚类和频繁项集树的光-荷典型场景集生成方法
CN115828180A (zh) * 2022-12-29 2023-03-21 北京邮电大学 一种基于解析优化和时序卷积网络的日志异常检测方法
CN115794480A (zh) * 2023-02-10 2023-03-14 成都工业学院 一种基于日志语义编码器的系统异常日志检测方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XIAOYUN LI ET AL.: "SwissLog: Robust and Unified Deep Learning Based Log Anomaly Detection for Diverse Faults", 《2020 IEEE 31ST INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE)》, pages 385 - 103 *
尹春勇 等: "基于CNN和Bi-LSTM的无监督日志异常检测模型", 《计算机应用》, pages 1 - 9 *
汪洪桥 主编: "《Python机器学习算法及典型案例实战》", 西安:西北工业大学出版社, pages: 110 - 111 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117792696A (zh) * 2023-12-07 2024-03-29 北京邮电大学 一种面向分布式系统的日志异常检测和定位的方法及装置
CN118227361A (zh) * 2024-03-11 2024-06-21 北京邮电大学 一种不依赖日志解析器的无监督日志异常检测方法
CN118467743A (zh) * 2024-07-12 2024-08-09 国网江西省电力有限公司电力科学研究院 基于双向并行树优化日志解析的日志异常检测方法

Also Published As

Publication number Publication date
CN116484260B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
CN114610515B (zh) 基于日志全语义的多特征日志异常检测方法及系统
CN116484260B (zh) 一种基于双向时间卷积网络的半监督日志异常检测方法
CN111079430B (zh) 一种组合深度学习和概念图谱的电力故障事件抽取方法
CN109034368A (zh) 一种基于dnn的复杂设备多重故障诊断方法
CN113626400A (zh) 基于日志树和解析树的日志事件提取方法及系统
CN114969334B (zh) 异常日志检测方法、装置、电子设备及可读存储介质
CN116318830A (zh) 一种基于生成对抗网络的日志入侵检测系统
CN115757695A (zh) 一种日志语言模型训练方法及系统
CN117688488A (zh) 一种基于语义向量化表示的日志异常检测方法
CN111190873B (zh) 一种用于云原生系统日志训练的日志模式提取方法及系统
CN114416479A (zh) 一种基于流外正则化的日志序列异常检测方法
CN112882899B (zh) 一种日志异常检测方法及装置
CN111737993B (zh) 一种配电网设备的故障缺陷文本提取设备健康状态方法
CN111538639B (zh) 一种日志解析方法
CN114880584B (zh) 一种基于社区发现的发电机组故障分析方法
CN115221013A (zh) 一种日志模式的确定方法、装置及设备
CN115757062A (zh) 一种基于句嵌入以及Transformer-XL的日志异常检测方法
CN115442211A (zh) 基于孪生神经网络和固定解析树的网络日志解析方法及装置
Yin et al. Semi-supervised log anomaly detection based on bidirectional temporal convolution network
CN114610882A (zh) 一种基于电力短文本分类的异常设备编码检测方法和系统
CN115293133A (zh) 一种基于抽取文本因子增强的车险欺诈行为识别方法
CN114298041A (zh) 网络安全命名实体的识别方法及识别装置
CN113326371A (zh) 一种融合预训练语言模型与抗噪声干扰远程监督信息的事件抽取方法
He et al. LogADCH: Hyperspheric-Based Log Message Anomaly Detection And Classification
CN112698977A (zh) 服务器故障定位方法方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant