一种基于序列重建的异常事件自动检测方法和系统转让专利

申请号 : CN202210234545.3

文献号 : CN114356743B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨林李东阳马琳茹王晓磊张洪广

申请人 : 军事科学院系统工程研究院网络信息研究所

摘要 :

本发明提出一种基于序列重建的异常事件自动检测方法和系统。所述方法包括:步骤S1、利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;步骤S2、对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;步骤S3、基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。

权利要求 :

1.一种基于序列重建的异常事件自动检测方法,其特征在于,所述方法包括:步骤S1、利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;

步骤S2、对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;

步骤S3、基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性;

其中,在所述步骤S3中:

对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:M个互不相同的独立事件;

N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;

利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;

具体包括:

获取所述原始子序列中M个事件的固定位置;

在所述离散事件序列的重建子序列中:

当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;

当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:当所述排序位置处在前K个时,判定所述第i个事件为正常事件;

否则,判定所述第i个事件为异常事件;

其中,M和N均为正整数,且M≥N;i和K均为正整数,且1≤i≤M,1≤K<N。

2.根据权利要求1所述的一种基于序列重建的异常事件自动检测方法,其特征在于,所述步骤S1具体包括:利用从审计日志中提取出的所述预定义的事件模板,对所述多源日志进行解析,以获取若干事件日志;

基于用户ID对所述若干事件日志进行分类聚合,以确定同一用户的多个事件日志,并对所述同一用户的多个事件日志按照时间顺序进行拼接,来获取所述离散事件序列。

3.根据权利要求2所述的一种基于序列重建的异常事件自动检测方法,其特征在于,在所述步骤S2中:利用滑动窗口机制,采用预设的窗口长度对所述离散事件序列进行所述拆分处理,以获取所述若干原始子序列;

对所述若干原始子序列进行特征嵌入具体为:将各个原始子序列通过降维处理转换为具有更小维度的特征向量,作为所述输入子序列。

4.根据权利要求3所述的一种基于序列重建的异常事件自动检测方法,其特征在于,在所述步骤S2中,基于所述输入子序列生成所述离散事件序列的重建子序列具体包括:将所述输入子序列分为训练序列和测试序列,所述训练序列用于训练所述无监督检测模型,包括:利用所述LSTM编码器将所述训练序列压缩为抽象表征;

利用所述变分组件计算所述压缩表征的平均值和标准差,以模拟所述抽象表征的数据分布,采用标准正态随机数为种子生成待重建的抽象表征;

利用所述LSTM解码器对所述待重建的抽象表征进行解码以获取训练过程的重建子序列,当所述训练过程的重建子序列与所述输入子序列的相似度高于第一阈值时,完成所述训练过程;

将所述测试序列输入至经训练的无监督检测模型,经由所述LSTM编码器、所述变分组件和所述LSTM解码器的处理后得到测试过程的重建子序列,作为所述离散事件序列的重建子序列。

5.根据权利要求4所述的一种基于序列重建的异常事件自动检测方法,其特征在于,在所述步骤S2中:所述LSTM编码器中包含多层LSTM网络,所述多层LSTM网络用于提取所述训练序列的时序依赖关系,以基于所述时序依赖关系将所述训练序列压缩为抽象表征;

基于所述变分组件模拟的抽象表征的数据分布,采用标准正态随机数为种子生成所述待重建的抽象表征,以消除所述训练数据中的潜在异常样本的不良影响。

6.一种基于序列重建的异常事件自动检测系统,其特征在于,所述系统包括:第一处理单元,被配置为,利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;

第二处理单元,被配置为,对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;

第三处理单元,被配置为,基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性;

其中,所述第三处理单元具体被配置为:

对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:M个互不相同的独立事件;

N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;

利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;

具体包括:

获取所述原始子序列中M个事件的固定位置;

在所述离散事件序列的重建子序列中:

当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;

当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:当所述排序位置处在前K个时,判定所述第i个事件为正常事件;

否则,判定所述第i个事件为异常事件;

其中,M和N均为正整数,且M≥N;i和K均为正整数,且1≤i≤M,1≤K<N。

7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至5中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至5中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。

说明书 :

一种基于序列重建的异常事件自动检测方法和系统

技术领域

[0001] 本发明属于数据检测领域,尤其涉及一种基于序列重建的异常事件自动检测方法和系统。

背景技术

[0002] 日志数据的激增导致许多领域对异常检测的需求不断增加,这是构建安全、可靠和值得信赖的计算机系统的一项基本任务。据调查显示,大型现代系统平均以每小时约50GB(约1.2亿行)的速度生成日志,一旦系统发生故障,从如此海量的日志中手动识别关键信息以进行异常检测变得非常困难,即使是使用grep这样的实用搜索工具也是如此。与此同时,许多任务在具体实施时大多以事件序列的形式进行展开,这就使得其行为痕迹更加离散与混乱,大大增加了异常检测的难度。因此,面对诸如海量离散日志难以快速分析、复杂异常行为难以准确定位以及系统误报难以有效避免等现实挑战,亟需提出一种准确、高效的自动化异常事件检测系统。
[0003] 目前针对时序离散事件的异常检测方法主要分为三类:1)基于传统机器学习的方法,此类方法主要利用事件的量化或统计信息来检测异常,但存在事件间时序信息考虑不足,误报率较高的缺陷;2)基于工作流的方法,此类方法假设存在一个类似于有限状态机的工作流模型来表示事件跳转状态的正常顺序,但该类检测模型大多是确定性的且无法捕获序列中复杂的长期依赖性,因此只能提供有限的异常检测性能。3)基于深度学习的方法,此类方法能够利用强大的深度网络模型自动学习隐藏在日志数据中的正常序列模式,并通过比较测试样本是否偏离正常模式来检测异常,是未来日志分析与异常检测的主流发展方向。但如今现有的基于深度学习的异常检测方法大多通过预测未来单一事件的方式来实现异常检测,这种方法一方面无法充分利用已有事件序列的时序特征,另一方面在构建正常模型时容易陷入欠拟合或过拟合的误区,从而无法保证检测的准确性。

发明内容

[0004] 本申请提出一种基于序列重建的异常事件自动检测方案。本发明要解决的技术问题是:在给定一组离散事件日志序列作为历史监测数据的前提下,如何构建一个自动化的异常事件检测系统,能够准确地鉴别后续事件是否异常。进一步分解为两个部分:1)如何充分利用离散事件序列中潜在的时序依赖关系来构建更加准确的序列模型;2)如何克服模型构建过程中存在的过拟合和欠拟合问题,以提升异常检测的精度。
[0005] 本发明第一方面公开了一种基于序列重建的异常事件自动检测方法。所述方法包括:
[0006] 步骤S1、利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;
[0007] 步骤S2、对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;
[0008] 步骤S3、基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。
[0009] 根据本发明第一方面的方法,所述步骤S1具体包括:
[0010] 利用从审计日志中提取出的所述预定义的事件模板,对所述多源日志进行解析,以获取若干事件日志;
[0011] 基于用户ID对所述若干事件日志进行分类聚合,以确定同一用户的多个事件日志,并对所述同一用户的多个事件日志按照时间顺序进行拼接,来获取所述离散事件序列。
[0012] 根据本发明第一方面的方法,在所述步骤S2中:
[0013] 利用滑动窗口机制,采用预设的窗口长度对所述离散事件序列进行所述拆分处理,以获取所述若干原始子序列;
[0014] 对所述若干原始子序列进行特征嵌入具体为:将各个原始子序列通过降维处理转换为具有更小维度的特征向量,作为所述输入子序列。
[0015] 根据本发明第一方面的方法,在所述步骤S2中,基于所述输入子序列生成所述离散事件序列的重建子序列具体包括:
[0016] 将所述输入子序列分为训练序列和测试序列,所述训练序列用于训练所述无监督检测模型,包括:
[0017] 利用所述LSTM编码器将所述训练序列压缩为抽象表征;
[0018] 利用所述变分组件计算所述压缩表征的平均值和标准差,以模拟所述抽象表征的数据分布,采用标准正态随机数为种子生成待重建的抽象表征;
[0019] 利用所述LSTM解码器对所述待重建的抽象表征进行解码以获取训练过程的重建子序列,当所述训练过程的重建子序列与所述输入子序列的相似度高于第一阈值时,完成所述训练过程;
[0020] 将所述测试序列输入至经训练的无监督检测模型,经由所述LSTM编码器、所述变分组件和所述LSTM解码器的处理后得到测试过程的重建子序列,作为所述离散事件序列的重建子序列。
[0021] 根据本发明第一方面的方法,在所述步骤S2中:
[0022] 所述LSTM编码器中包含多层LSTM网络,所述多层LSTM网络用于提取所述训练序列的时序依赖关系,以基于所述时序依赖关系将所述训练序列压缩为抽象表征;
[0023] 基于所述变分组件模拟的抽象表征的数据分布,采用标准正态随机数为种子生成所述待重建的抽象表征,以消除所述训练数据中的潜在异常样本的不良影响。
[0024] 根据本发明第一方面的方法,所述步骤S3具体包括:
[0025] 对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:
[0026] M个互不相同的独立事件;
[0027] N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;
[0028] 利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;
[0029] 其中,M和N均为正整数,且M≥N。
[0030] 根据本发明第一方面的方法,利用所述异常评估组件基于所述出现概率,利用所述评判准则来判断所述M个事件的异常属性,具体包括:
[0031] 获取所述原始子序列中M个事件的固定位置;
[0032] 在所述离散事件序列的重建子序列中:
[0033] 当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;
[0034] 当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:
[0035] 当所述排序位置处在前K个时,判定所述第i个事件为正常事件;
[0036] 否则,判定所述第i个事件为异常事件;
[0037] 其中,i和K均为正整数,且1≤i≤M,1≤K<N。
[0038] 本发明第二方面公开了一种基于序列重建的异常事件自动检测系统。所述系统包括:
[0039] 第一处理单元,被配置为,利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;
[0040] 第二处理单元,被配置为,对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;
[0041] 第三处理单元,被配置为,基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。
[0042] 根据本发明第二方面的系统,第一处理单元具体被配置为:
[0043] 利用从审计日志中提取出的所述预定义的事件模板,对所述多源日志进行解析,以获取若干事件日志;
[0044] 基于用户ID对所述若干事件日志进行分类聚合,以确定同一用户的多个事件日志,并对所述同一用户的多个事件日志按照时间顺序进行拼接,来获取所述离散事件序列。
[0045] 根据本发明第二方面的系统,第二处理单元具体被配置为:
[0046] 利用滑动窗口机制,采用预设的窗口长度对所述离散事件序列进行所述拆分处理,以获取所述若干原始子序列;
[0047] 对所述若干原始子序列进行特征嵌入具体为:将各个原始子序列通过降维处理转换为具有更小维度的特征向量,作为所述输入子序列。
[0048] 根据本发明第二方面的系统,第二处理单元具体被配置为,基于所述输入子序列生成所述离散事件序列的重建子序列,具体包括:
[0049] 将所述输入子序列分为训练序列和测试序列,所述训练序列用于训练所述无监督检测模型,包括:
[0050] 利用所述LSTM编码器将所述训练序列压缩为抽象表征;
[0051] 利用所述变分组件计算所述压缩表征的平均值和标准差,以模拟所述抽象表征的数据分布,采用标准正态随机数为种子生成待重建的抽象表征;
[0052] 利用所述LSTM解码器对所述待重建的抽象表征进行解码以获取训练过程的重建子序列,当所述训练过程的重建子序列与所述输入子序列的相似度高于第一阈值时,完成所述训练过程;
[0053] 将所述测试序列输入至经训练的无监督检测模型,经由所述LSTM编码器、所述变分组件和所述LSTM解码器的处理后得到测试过程的重建子序列,作为所述离散事件序列的重建子序列。
[0054] 根据本发明第二方面的系统,所述LSTM编码器中包含多层LSTM网络,所述多层LSTM网络用于提取所述训练序列的时序依赖关系,以基于所述时序依赖关系将所述训练序列压缩为抽象表征;第二处理单元具体被配置为,基于所述变分组件模拟的抽象表征的数据分布,采用标准正态随机数为种子生成所述待重建的抽象表征,以消除所述训练数据中的潜在异常样本的不良影响。
[0055] 根据本发明第二方面的系统,第三处理单元具体被配置为:
[0056] 对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:
[0057] M个互不相同的独立事件;
[0058] N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;
[0059] 利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;
[0060] 其中,M和N均为正整数,且M≥N。
[0061] 根据本发明第二方面的系统,第三处理单元具体被配置为:
[0062] 利用所述异常评估组件基于所述出现概率,利用所述评判准则来判断所述M个事件的异常属性,具体包括:
[0063] 获取所述原始子序列中M个事件的固定位置;
[0064] 在所述离散事件序列的重建子序列中:
[0065] 当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;
[0066] 当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:
[0067] 当所述排序位置处在前K个时,判定所述第i个事件为正常事件;
[0068] 否则,判定所述第i个事件为异常事件;
[0069] 其中,i和K均为正整数,且1≤i≤M,1≤K<N。
[0070] 本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。
[0071] 本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。
[0072] 综上,本发明提供的技术方案能够充分利用日志序列数据中潜在的时序依赖关系,并通过概率建模和序列重建的方式缓解无监督检测过程中存在的过拟合和欠拟合问题,从而提升异常事件自动检测系统的准确率。

附图说明

[0073] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0074] 图1为根据本发明实施例的一种基于序列重建的异常事件自动检测方法的流程图;
[0075] 图2为根据本发明实施例的异常事件自动检测流程的示意图;
[0076] 图3为根据本发明实施例一种基于序列重建的异常事件自动检测系统的结构图;
[0077] 图4为根据本发明实施例的一种电子设备的结构图。

具体实施方式

[0078] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0079] 本发明第一方面公开了一种基于序列重建的异常事件自动检测方法。图1为根据本发明实施例的一种基于序列重建的异常事件自动检测方法的流程图;如图1所示,所述方法包括:
[0080] 步骤S1、利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;
[0081] 步骤S2、对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;
[0082] 步骤S3、基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。
[0083] 图2为根据本发明实施例的异常事件自动检测流程的示意图;如图2所示,主要包含数据预处理(S1)、无监督检测(S2)以及异常输出(S3)三个步骤。
[0084] 数据预处理(S1)主要负责离散事件日志的解析和序列转换工作,并将得到的事件序列馈送至无监督检测和异常输出两个模块中进行后续处理。无监督检测(S2)在收到一个预处理过的离散事件序列后,会以滑动窗口的形式获得多个子序列,每个子序列再经特征嵌入组件编码后馈送至LSTM变分自编码器中进行序列重建工作。在这一过程中,堆叠的LSTM网络负责提取事件序列中潜在的时序依赖关系,而变分编码器模型则对时序关系的抽象表征进行概率建模,并基于此概率分布生成原始子序列的重建版本。异常输出(S3)以原始子序列和它的重建版本为输入,通过构建分类器和异常评估组件来自动获取最终的检测结果。
[0085] 在步骤S1,利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成。
[0086] 在一些实施例中,所述步骤S1具体包括:利用从审计日志中提取出的所述预定义的事件模板,对所述多源日志进行解析,以获取若干事件日志;基于用户ID对所述若干事件日志进行分类聚合,以确定同一用户的多个事件日志,并对所述同一用户的多个事件日志按照时间顺序进行拼接,来获取所述离散事件序列。
[0087] 具体地,调用数据预处理过程,首先从审计日志中提取一组预定义的事件模板,将冗长杂乱的日志条目解析为简洁规范的事件e;同时根据日志中记录的用户ID标识,按照时间顺序,将对应的日志聚合为离散事件序列。
[0088] 在步骤S2,对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列。
[0089] 在一些实施例中,在所述步骤S2中:利用滑动窗口机制,采用预设的窗口长度对所述离散事件序列进行所述拆分处理,以获取所述若干原始子序列;对所述若干原始子序列进行特征嵌入具体为:将各个原始子序列通过降维处理转换为具有更小维度的特征向量,作为所述输入子序列
[0090] 在一些实施例中,在所述步骤S2中,基于所述输入子序列生成所述离散事件序列的重建子序列具体包括:
[0091] (1)将所述输入子序列分为训练序列和测试序列,所述训练序列用于训练所述无监督检测模型,包括:(i)利用所述LSTM编码器将所述训练序列压缩为抽象表征;(ii)利用所述变分组件计算所述压缩表征的平均值和标准差,以模拟所述抽象表征的数据分布,采用标准正态随机数为种子生成待重建的抽象表征;(iii)利用所述LSTM解码器对所述待重建的抽象表征进行解码以获取训练过程的重建子序列,当所述训练过程的重建子序列与所述输入子序列的相似度高于第一阈值时,完成所述训练过程;
[0092] (2)将所述测试序列输入至经训练的无监督检测模型,经由所述LSTM编码器、所述变分组件和所述LSTM解码器的处理后得到测试过程的重建子序列,作为所述离散事件序列的重建子序列。
[0093] 在一些实施例中,在所述步骤S2中:所述LSTM编码器中包含多层LSTM网络,所述多层LSTM网络用于提取所述训练序列的时序依赖关系,以基于所述时序依赖关系将所述训练序列压缩为抽象表征;基于所述变分组件模拟的抽象表征的数据分布,采用标准正态随机数为种子生成所述待重建的抽象表征,以消除所述训练数据中的潜在异常样本的不良影响。
[0094] 具体地,调用无监督检测模过程,首先根据滑动窗口机制以及预设的窗口长度W对事件序列进行拆分以生成若干子序列,并交由特征嵌入组件进行编码,经编码的序列向量W 1作为后续无监督检测模型的输入。特征嵌入工作包括,将较长长度(W)的事件子序列s =[e ,
2 W
e ,…,e ]转换为维度更小(d)的特征向量XW。所述经编码的特征向量用于训练基于LSTM和变分编码器的无监督检测模型。具体而言,该模型主要包括LSTM编码器、变分组件以及LSTM解码器三部分组成,其中LSTM编码器将所述经编码的特征向量XW压缩为潜在的抽象表征henc,而变分组件则通过计算压缩表征的平均值μ和标准差δ来模拟所述抽象表征的数据分布,并以标准正态分布随机数ε为种子来生成待重建的抽象表征henc’,随后LSTM解码器再对所述生成的抽象表征henc’进行解码以获取重建的特征向量。在这一过程中,堆叠的多层LSTM网络旨在提取事件序列中潜在的时序依赖关系,而变分机制则通过建模所述事件序列的抽象表征的数据分布来消除训练数据中可能存在异常样本所带来的不利影响。
[0095] 在步骤S3,基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。
[0096] 在一些实施例中,所述步骤S3具体包括:对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:
[0097] M个互不相同的独立事件;
[0098] N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;
[0099] 利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;
[0100] 其中,M和N均为正整数,且M≥N。
[0101] 在一些实施例中,利用所述异常评估组件基于所述出现概率,利用所述评判准则来判断所述M个事件的异常属性,具体包括:
[0102] 获取所述原始子序列中M个事件的固定位置;
[0103] 在所述离散事件序列的重建子序列中:
[0104] 当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;
[0105] 当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:
[0106] 当所述排序位置处在前K个时,判定所述第i个事件为正常事件;
[0107] 否则,判定所述第i个事件为异常事件;
[0108] 其中,i和K均为正整数,且1≤i≤M,1≤K<N。
[0109] 具体地,调用异常输出过程,该过程以原始事件子序列以及无监督检测模块生成的重建子序列为输入,通过构建单层全连接分类器模型以获取序列中各事件在每个位置出现的概率值,随后经内嵌的异常评估组件对所述概率进行综合评估以生成最终的检测结果。具体而言,异常评估组件包含两种并行的评判准则,一种用来检查重建序列中正确事件出现的概率是否低于某个阈值,另一种则用来核对重建序列各位置的正确事件是否位于所述重建概率的前K中。如果两种评判准则不能同时满足,那么就将该子序列视为异常并加以告警。
[0110] 本发明第二方面公开了一种基于序列重建的异常事件自动检测系统。图3为根据本发明实施例一种基于序列重建的异常事件自动检测系统的结构图;如图3所示,所述系统300包括:
[0111] 第一处理单元301,被配置为,利用预定义的事件模板,从多源日志中确定离散事件序列,所述离散事件序列由同一用户的多个事件日志按照时间顺序拼接而成;
[0112] 第二处理单元302,被配置为,对所述离散事件序列进行拆分处理来获取若干原始子序列,并通过对所述若干原始子序列进行特征嵌入,进一步获取无监督检测模型的输入子序列,所述无监督检测模型包括LSTM编码器、变分组件和LSTM解码器,用于基于所述输入子序列生成所述离散事件序列的重建子序列;
[0113] 第三处理单元303,被配置为,基于所述原始子序列和所述离散事件序列的重建子序列,利用评判准则来判断所述多个事件的异常属性。
[0114] 根据本发明第二方面的系统,第一处理单元301具体被配置为:
[0115] 利用从审计日志中提取出的所述预定义的事件模板,对所述多源日志进行解析,以获取若干事件日志;
[0116] 基于用户ID对所述若干事件日志进行分类聚合,以确定同一用户的多个事件日志,并对所述同一用户的多个事件日志按照时间顺序进行拼接,来获取所述离散事件序列。
[0117] 根据本发明第二方面的系统,第二处理单元302具体被配置为:
[0118] 利用滑动窗口机制,采用预设的窗口长度对所述离散事件序列进行所述拆分处理,以获取所述若干原始子序列;
[0119] 对所述若干原始子序列进行特征嵌入具体为:将各个原始子序列通过降维处理转换为具有更小维度的特征向量,作为所述输入子序列。
[0120] 根据本发明第二方面的系统,第二处理单元302具体被配置为,基于所述输入子序列生成所述离散事件序列的重建子序列,具体包括:
[0121] 将所述输入子序列分为训练序列和测试序列,所述训练序列用于训练所述无监督检测模型,包括:
[0122] 利用所述LSTM编码器将所述训练序列压缩为抽象表征;
[0123] 利用所述变分组件计算所述压缩表征的平均值和标准差,以模拟所述抽象表征的数据分布,采用标准正态随机数为种子生成待重建的抽象表征;
[0124] 利用所述LSTM解码器对所述待重建的抽象表征进行解码以获取训练过程的重建子序列,当所述训练过程的重建子序列与所述输入子序列的相似度高于第一阈值时,完成所述训练过程;
[0125] 将所述测试序列输入至经训练的无监督检测模型,经由所述LSTM编码器、所述变分组件和所述LSTM解码器的处理后得到测试过程的重建子序列,作为所述离散事件序列的重建子序列。
[0126] 根据本发明第二方面的系统,所述LSTM编码器中包含多层LSTM网络,所述多层LSTM网络用于提取所述训练序列的时序依赖关系,以基于所述时序依赖关系将所述训练序列压缩为抽象表征;第二处理单元302具体被配置为,基于所述变分组件模拟的抽象表征的数据分布,采用标准正态随机数为种子生成所述待重建的抽象表征,以消除所述训练数据中的潜在异常样本的不良影响。
[0127] 根据本发明第二方面的系统,第三处理单元303具体被配置为:
[0128] 对齐所述原始子序列和所述离散事件序列的重建子序列,所述原始子序列和所述离散事件序列的重建子序列均包含M个事件,所述M个事件中的每一个事件都对应一个事件位置,所述事件位置表征当前事件在其所述的事件序列中的位置,其中所述M个事件包含以下情况:
[0129] M个互不相同的独立事件;
[0130] N个互不相同的独立事件以及M‑N个重复事件,所述重复事件为所述N个互不相同的独立事件中的若干事件的重复事件;
[0131] 利用单层全连接分类器模型计算M个事件中的每一个事件分别在M个位置上的出现概率,利用异常评估组件基于所述出现概率,利用所述评判准则来判断M个事件的异常属性;
[0132] 其中,M和N均为正整数,且M≥N。
[0133] 根据本发明第二方面的系统,第三处理单元303具体被配置为:
[0134] 利用所述异常评估组件基于所述出现概率,利用所述评判准则来判断所述M个事件的异常属性,具体包括:
[0135] 获取所述原始子序列中M个事件的固定位置;
[0136] 在所述离散事件序列的重建子序列中:
[0137] 当第i个事件出现在与其对应的所述固定位置上的概率低于第二阈值时,判定所述第i个事件为异常事件;
[0138] 当所述第i个事件出现在与其对应的所述固定位置上的概率不低于第二阈值时,获取除所述第i个事件之外的其他事件在所述第i个事件对应的所述固定位置上的概率,作为概率集合,判断所述第i个事件出现在与其对应的所述固定位置上的概率在所述概率集合中的排序位置:
[0139] 当所述排序位置处在前K个时,判定所述第i个事件为正常事件;
[0140] 否则,判定所述第i个事件为异常事件;
[0141] 其中,i和K均为正整数,且1≤i≤M,1≤K<N。
[0142] 本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。
[0143] 图4为根据本发明实施例的一种电子设备的结构图,如图4所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0144] 本领域技术人员可以理解,图4中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145] 本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于序列重建的异常事件自动检测方法中的步骤。
[0146] 综上,本发明提供的技术方案能够充分利用日志序列数据中潜在的时序依赖关系,并通过概率建模和序列重建的方式缓解无监督检测过程中存在的过拟合和欠拟合问题,从而提升异常事件自动检测系统的准确率。本发明的技术特点和显著效果为:首先,本发明提出了一种基于序列重建的异常事件检测模型,它能够充分利用离散事件序列中潜在的时序依赖关系,并缓解传统基于预测类方法存在的过拟合问题,从而提升异常检测的准确率;其次,本发明提出了一种新的双重序列异常检测评估标准,能够在降低系统漏报的同时增加检测结果的准确性,为异常检测类方案如何断定异常提供了新的指导原则。
[0147] 请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。