基于预训练模型指导微调的半监督少样本时间序列异常检测与分类的系统和方法

文档序号:34305588发布日期:2023-05-31 18:44阅读:43来源:国知局
基于预训练模型指导微调的半监督少样本时间序列异常检测与分类的系统和方法

本发明涉及基于预训练模型指导微调的半监督少样本时间序列异常检测与分类的系统和方法,属于信息,特别是属于网络运维。


背景技术:

1、网络运维主要包括异常检测,根因定位,故障分类,故障修复等环节,各个环节环环相扣。异常检测属于网络运维的前置工作,旨在发现时间序列数据中的异常或稀有事件。异常检测是监控实体(例如制造系统和互联网服务)的各种状态(即指标)的关键任务,这些状态通常以多变量时间序列或单变量时间序列为特征。在实际工程中,准确检测异常非常重要,其精确率和效率对整个工作流程有重大影响。准确的异常检测可以触发及时的故障排除,保证网络运维后续工作准确和高效的进行。

2、目前异常检测的传统方法是领域专家人工为每个监控指标(例如,网络吞吐量、链路拥塞度、cpu利用率等)建立静态阈值,然后利用基于各种极值的分析方法,将具有高异常分数的时间序列数据分类为异常,或者使用聚类和统计分析来检测异常,或者利用快速傅立叶变换来检测具有潜在异常的区域。然而,传统方法面临着适应现实世界中复杂时间序列数据的挑战,随着网络业务和服务器规模的大大增加,上述基于人工的异常检测的成本越来越大,而且存在人力物力成本高、准确率和效率低、准确率和效率低、通用性差等一系列问题。

3、综上所述,如何有效解决传统的基于人工的异常检测所存在的上述问题,成为目前网络运维技术领域急需解决的一个技术难题。


技术实现思路

1、有鉴于此,本发明的目的是发明一种时间序列异常检测与分类的系统和方法,以半监督的方式实现时间序列的异常检测,并保证时间序列异常检测的准确性、效率和通用性。

2、为了达到上述目的,本发明提出了基于预训练模型指导微调的半监督少样本时间序列异常检测与分类的系统,所述系统包括如下模块:

3、数据输入与预处理模块:该模块的功能是对大量的无标签时间序列数据、少样本有标签时间序列数据和待检测的时间序列数据进行预处理;所述的预处理包括但不限于如下操作:数据清洗、特征选择、数据规范化、滑动时间窗口划分;

4、所述数据清洗操作是指:对原始序列,删除不合法的数值;

5、所述特征选择操作是指:对完成数据清洗的多维时间序列进行特征选择,删除多维时间序列中对任务没有意义序列,包括全0序列、纯平稳序列;

6、所述数据规范化操作是指:对特征选择完的时间序列数据进行零均值标准化,即对所述的每个时间序列数据减该时间序列数据的均值,除以该时间序列数据的标准差;

7、所述滑动时间窗口划分操作是指:对时间序列数据进行滑动时间窗口划分,使其划分为多个固定大小的时间窗口w,每个时间窗口看做一个向量,多个向量组成一个矩阵;

8、模型预训练模块:该模块的功能是向所述的数据输入与预处理模块请求无标签时间序列数据,指示模型模块进行模型预训练;模型模块的模型预训练完毕后,模型预训练模块向存储模块请求保存预训练好的预训练模型,存储模块返回是否保存成功;

9、所述的模型预训练包括两种预训练任务,即掩码时间序列建模预训练任务mtm和连续时间序列推断预训练任务cti;

10、所述的掩码时间序列建模预训练任务mtm的内容是:对已经完成预处理的时间序列数据随机掩码一定比例的时间序列数据,掩码时间序列建模预训练任务的训练目标是让模型输出被掩码的时间序列数据;

11、所述的连续时间序列推断预训练任务cti的内容是:训练模型对时间序列数据的推断能力,即判断两个时间序列段是否是来自同一时间序列的连续段;

12、在所述的掩码时间序列建模预训练任务mtm中,随机掩码一定比例的时间序列数据是通过构造一个掩码矩阵来实现的,的每个元素mij表示一个布尔掩码,代表第i个时间序列的第j个时间窗口wij是否被掩码,如果时间窗口wij没有被掩码,则mij=1,否则mij=0;

13、在所述的连续时间序列推断预训练任务cti中,通过构造一个分割标记矩阵来表示时间序列数据是否需要进行推断任务,分割标记矩阵的每个元素为cij,具体定义如下:cij代表时间窗口wij的位置是否是连续时间序列的分割点,即第i个时间序列的第j个时间窗口wij是否需要进行推断任务;cij=0代表不需要进行推断任务;cij=1代表需要进行推断任务;

14、所述模型预训练模块在进行模型的预训练时,所采用的总损失函数ltotal定义如下:

15、ltotal=αlmtm+(1-α)lcti

16、上式中,α为比例参数,范围是[0,1];

17、上式中,lmtm表示掩码时间序列建模预训练任务的损失函数,lcti表示连续时间序列推断

18、预训练任务的损失函数;

19、imtm具体定义如下:

20、

21、上式中,表示预训练数据集中的无标签时间序列数据的嵌入向量矩阵,εj表示所述的嵌入向量矩阵中的第i个行向量,代表所述无标签时间序列数据的第i个时间窗口wi的嵌入向量;e[]代表数学期望,yij表示所述嵌入向量εi内的第j个分量的真实值,表示嵌入向量εi内的第j个分量的掩码重建值;||εi||表示所述嵌入向量εi的长度;

22、lcti具体定义如下:

23、

24、上式中,y^是模型预测样本是正样本的概率;y是样本标签,如果样本属于正样本,取值为1,否则取值为0;e[]代表数学期望。

25、指导微调模块:该模块的功能是首先向存储模块请求读取预训练模型,存储模块返回训练好的预训练模型;然后指导微调模块向所述的数据输入与预处理模块请求有标签时间序列数据,指示模型模块进行指导微调;指导微调完毕后,指导微调模块向存储模块请求指导向量的存储,存储模块返回是否保存成功;

26、异常检测模块:该模块的功能是首先向所述的数据输入与预处理模块请求待检测的时间序列数据;向存储模块请求读取训练好的预训练模型,存储模块返回训练好的预训练模型;向存储模块请求读取微调完毕的指导向量,存储模块返回微调完毕的指导向量;然后异常检测模块融合所述的训练好的预训练模型与微调完毕的指导向量,指示模型模块进行异常检测和分类任务;检测完毕后输出异常检测和分类的结果;

27、模型模块:该模块的功能是:根据所述的模型预训练模块的指令,执行模型的预训练操作;根据所述的指导微调模块的指令,执行指导微调的操作;根据所述的异常检测模块的指令,执行异常检测的操作;所述的模型模块由编码器网络、解码器网络构成;所述的编码器网络由一个嵌入编码子层和ne个编码器块堆叠而成;所述的解码器网络由一个嵌入编码子层和nd个解码器块堆叠而成;所述的编码器网络的嵌入编码子层和所述的解码器网络的嵌入编码子层结构完全相同;

28、存储模块:该模块的功能是负责存储预训练好的预训练模型和微调完毕的指导向量。

29、所述的嵌入编码子层的功能是为输入数据生成嵌入矩阵的每个元素为eij,表示所述嵌入矩阵的第i个行向量εi的第j个分量;

30、

31、

32、

33、其中,表示由参数为θemb的卷积神经网络对输入数据所生成的嵌入矩阵的第i个行向量的第j个分量;表示所述的嵌入编码子层的输入,对于所述的编码器网络,其中⊙表示对时间序列数据进行掩码操作,表示时间序列数据,表示掩码矩阵和表示分割标记矩阵,对于所述的解码器网络,其中表示所述解码器网络从时刻1到时刻t-1的输出;pij表示第i个时间窗口的第j个分量的位置编码,dmodel代表所述嵌入编码子层的输入数据的维度,等于输入数据的时间窗口的大小|w|;demb表示生成的嵌入向量的维度。

34、所述的编码器网络的编码器块的功能是学习每个时间序列数据有意义的表示,将时间序列数据的嵌入矩阵编码为隐藏表示空间中的特征向量hen,使所述的解码器网络能够进行mtm任务和cti任务,并且为后续的异常检测和分类任务做准备;所述的特征向量hen公式如下:

35、

36、上式中,encoders()表示所述的编码器网络的ne个编码器块;所述的编码器块主要由三部分组成:多头多尺度注意力子层、多尺度注意力融合子层、前馈全连接子层;在所述的多尺度注意力融合子层和所述的前馈全连接子层后都进行残差和归一化;

37、所述的解码器网络的功能是执行所述的mtm任务、cti任务和异常检测和分类任务;解码器网络的输入为所述嵌入编码子层为解码器网络生成的嵌入矩阵和所述编码器网络输出的对时间序列数据编码生成的特征向量hen,解码器网络时刻t的输出为:

38、

39、上式中,decoders()表示所述的解码器网络的nd个解码器块;所述的解码器块主要由四部分组成:掩码多头多尺度注意力子层、多尺度注意力融合子层、多头注意力子层和前馈全连接子层;在所述的掩码多头多尺度注意力子层、多尺度注意力融合子层和前馈全连接子层后都进行残差和归一化;

40、所述的编码器块和解码器块中的前馈全连接子层结构完全相同,均采用全连接线性神经网络,由两个线性变换组成,中间使用relu函数激活;公式如下:

41、

42、其中,x1表示前馈全连接子层的输入,b1、b2是可学习的参数;

43、所述的编码器块和解码器块中的残差和归一化操作的具体内容是:

44、残差连接是将输入数据x2直接馈送到子层模块,防止过多堆叠模块层数导致过拟合和学习失败;归一化采用层归一化,只是在层的维度进行归一化;残差和归一化的总体公式为:

45、res&norm(x2)=layernorm(x2+sublayer(x2))

46、其中,res&norm(x2)表示残差和归一化操作的结果;layernorm()表示层归一化;sublayer(x2)表示子层模块的输出。

47、所述的多头多尺度注意力子层和掩码多头多尺度注意力子层具有相同的结构,均包括高斯核注意力单元、多头可解释指导注意力单元和图注意力单元;

48、所述的多头多尺度注意力子层和掩码多头多尺度注意力子层均从小、中和大三个尺度对时间序列数据进行处理,即:使用所述的高斯核注意力单元对时间序列数据窗口内的小尺度时间序列数据进行处理,得到结果使用多头可解释指导注意力单元对时间序列数据窗口间的中尺度的时间序列数据进行处理,得到结果使用图注意力单元对时间序列数据间的大尺度时间序列数据进行处理,得到结果

49、所述的高斯核注意力单元对时间序列数据窗口内的小尺度时间序列进行处理的具体内容是:

50、

51、

52、

53、上式中,[α′ij]代表一个n行n列的矩阵,n等于窗口的大小|w|,矩阵的每个元素是α′ij;exp()代表指数函数;尺度变量矩阵σ中第i行第j列的元素σij,是可学习的尺度变量,对应于时间序列的第i个窗口的第j个分量;所述尺度变量矩阵σ用全连接线性神经网络实现,即其中wσ是所述全连接线性神经网络的可学习的参数,是所述嵌入编码子层输出的时间序列数据的嵌入矩阵;

54、所述的多头可解释指导注意力单元由nh个单头可解释指导注意力单元组成;所述的单头可解释指导注意力单元由单头可解释注意力子单元和可插拔、可学习的注意力指导子单元构成;

55、所述的使用多头可解释指导注意力单元对时间序列数据窗口间的中尺度的时间序列数据进行处理是指对时间序列数据窗口间的中尺度的时间序列数据进行处理,具体内容是:

56、

57、上式中,是一个注意力分数矩阵,矩阵的每一项为多头可解释指导注意力分数;nh是所述的多头可解释指导注意力单元的头总数;wo是可学习的参数,用于最终多头的线性映射;qh表示所述的第h个头的单头可解释指导注意力单元的查询矩阵,kh表示所述的第h个头的单头可解释指导注意力单元的键矩阵;dk表示编码器块或解码器块的隐藏层向量的维度,softmax()表示softmax函数,[;]代表矩阵连接操作;是由所述的可插拔、可学习的注意力指导子单元为所述的第h个头的单头可解释指导注意力单元的键矩阵kh所添加的键指导矩阵,使用全连接线性神经网络变换得到;

58、所述使用图注意力单元对时间序列间的大尺度时间序列进行处理的具体内容是:图注意力能够对任意图中节点之间的关系进行建模,每条时间序列可以看做图中的一个节点,每条边表示两条时间序列特征之间的关系;通过这种方式,捕捉多条时间序列之间的关系;

59、处理结果是一个注意力矩阵,该矩阵的第i行第j列的元素β′ij按照下式进行计算:

60、

61、

62、

63、上式中,表示连接操作,和wp是可学习参数,leakyrelu是非线性激活函数;xi和xj分别表示第i条和第j条时间序列,n表示时间序列的个数;

64、所述的多尺度注意力融合子层的功能是对所述的多头多尺度注意力子层所处理得到的三个尺度的特征进行融合,具体计算方法如下;

65、按照下式,计算融合后的注意力分数矩阵

66、

67、上式中,layernorm()是层归一化操作;

68、

69、

70、

71、η1=elu(w4γ1+w5γ2+w6γ3+b4)

72、η2=w7η1+b5

73、上式中,glui代表用于控制输入的输入门控线性单元,gluo代表用于控制输出的输出门控线性单元:

74、glui(η)=softmax(w8η+b6)⊙(w9η+b7)

75、gluo(η)=sigmoid(w10η+b8)⊙(w11,ωη+b9)

76、elu代表指数线性单元;w1到w11和b1到b9为可学习的参数;

77、按照下式计算所述的多尺度注意力融合子层的输出x′:

78、

79、其中,v表示所述的多头可解释指导注意力单元的值矩阵;[;]代表矩阵连接操作;φv表示由所述的可插拔、可学习的注意力指导子单元为所述的多头可解释指导注意力单元的值矩阵v所添加的值指导矩阵;

80、所述的不同层的编码器块和解码器块的查询矩阵q、键矩阵k和值矩阵v具体计算过程如下:

81、首层编码器块的第h个头的查询矩阵第h个头的键矩阵和所有头共享的值矩阵由所述编码器网络的嵌入编码子层输出的嵌入矩阵经首层编码器块的全连接线性神经网络变换得到,即上式中和是前述首层编码器块的全连接线性神经网络的学习参数;

82、其余层的编码器块的第h个头的查询矩阵第h个头的键矩阵和所有头共享的值矩阵由该层编码器块前一层的编码器块的输出数据经该层编码器块的全连接线性神经网络变换得到,即上式中和是前述该层编码器块的全连接线性神经网络的学习参数;

83、首层解码器块的第h个头的查询矩阵第h个头的键矩阵和所有头共享的值矩阵由所述解码器网络的嵌入编码子层输出的嵌入矩阵经首层解码器块的全连接线性神经网络变换得到,即上式中和是前述首层解码器块的全连接线性神经网络的学习参数;

84、其余层的解码器块的第h个头的查询矩阵由该层解码器块前一层解码器块的输出数据经该层解码器块的全连接线性神经网络变换得到,即上式中是前述该层解码器块的全连接线性神经网络的学习参数;

85、其余层的解码器块的第h个头的键矩阵和所有头共享的值矩阵由所述编码器网络的输出数据经该层解码器块的全连接线性神经网络变换得到,即上式中和是前述该层解码器块的全连接线性神经网络的学习参数;

86、所述的每层编码器块和解码器块的键指导矩阵φk共用,所述的每层编码器块和解码器块的值指导矩阵φv共用;φk和φv具体计算过程如下:

87、φk和φv分别是由所述的可插拔、可学习的注意力指导子单元为所述的编码器块和解码器块中的键矩阵所添加的键指导矩阵和值矩阵所添加的值指导矩阵;表示由所述的可插拔、可学习的注意力指导子单元为所述的第l层编码器块和解码器块中第h个头的键矩阵所添加的键指导矩阵;表示由所述的可插拔、可学习的注意力指导子单元为所述的第l层编码器块和解码器块中所有头的值矩阵所添加的值指导矩阵;是指导向量的长度,设置为时间序列窗口长度的k倍,即k是正整数;dk是所述编码器块或解码器块的隐藏层向量的维度;所述的键指导矩阵和值指导矩阵使用全连接线性神经网络变换得到,即上式中和是所述全连接线性神经网络的可学习的参数,xk_init和xv_init是随机初始化的矩阵。

88、所述的指导微调模块的具体工作内容是:

89、模型预训练完毕后,需要结合预训练模型对指导向量进行微调,以适应不同的场景和任务;所述指导向量是由随机初始化的向量经过全连接线性神经网络变换而来,即根据下式:

90、

91、进行计算,其中是所述全连接线性神经网络的学习参数;具体过程是:

92、固定模型模块的参数,通过在输入的时间序列数据中加入需要学习的指导向量和时间序列的异常类型标签,通过微调训练,获得能使模型模块预测的预测结果与真实标签y最相近的最优的指导向量即:

93、

94、上式中,表示来自指导微调数据集带异常类型标签的输入时间序列数据的嵌入矩阵;表示模型的预测结果,y表示输入时间序列数据的真实标签;

95、训练所采用的损失函数是预测结果与真实标签y之间的交叉熵损失函数ltuning:

96、

97、其中,表示来自指导微调数据集带异常类型标签的输入时间序列数据的嵌入矩阵,e[]表示数学期望;采用随机梯度下降算法进行指导微调训练。

98、所述的异常检测模块的工作内容具体是:将数据输入与预处理模块预处理后的待检测的时间序列数据经过所述的嵌入编码子层所得到的嵌入矩阵训练好的预训练模型参数θ、微调完毕的指导向量输入到模型模块,指示模型模块进行异常检测和分类任务;

99、异常检测模块的输出是异常检测和分类的标签

100、

101、即对应的异常类型。

102、本发明还提出了基于预训练模型指导微调的半监督少样本时间序列异常检测与分类的方法,所述方法包括如下操作步骤:

103、(1)所述的数据输入与预处理模块对大量的无标签时间序列数据、少样本有标签时间序列数据和待检测的时间序列数据进行预处理;

104、(2)所述的模型预训练模块向所述的数据输入与预处理模块请求无标签时间序列数据,指示所述的模型模块进行模型预训练;模型模块的模型预训练完毕后,所述的模型预训练模块向存储模块请求保存预训练好的预训练模型,存储模块返回是否保存成功;

105、(3)所述的指导微调模块向存储模块请求读取预训练好的预训练模型,存储模块返回训练好的预训练模型;然后所述的指导微调模块向所述的数据输入与预处理模块请求有标签时间序列数据,指示模型模块进行指导微调;指导微调完毕后,指导微调模块向存储模块请求指导向量的存储,存储模块返回是否保存成功;

106、(4)所述的异常检测模块首先向所述的数据输入与预处理模块请求待检测的时间序列数据;向存储模块请求读取训练好的预训练模型,存储模块返回训练好的预训练模型;然后向存储模块请求读取微调完毕的指导向量,存储模块返回微调完毕的指导向量;然后异常检测模块融合所述的训练好的预训练模型与微调完毕的指导向量,指示模型模块进行异常检测和分类任务;检测完毕后输出异常检测和分类的结果。

107、本发明的有益效果在于本发明的系统和方法通过采用大量无监督数据进行系统预训练,利用少量有标签数据进行指导向量的微调,避免了大量人工标记和检测的问题,从而大大节省了人力。通过指导微调的融入,对于不同的场景,只需存储占用极少空间的指导向量,系统的预训练模型只需存储一份即可,而无需存储占用大量空间多种模型,从而大大节省了物力,并且解决了现有时间序列异常检测方法准确性低、效率低和通用性差的问题。

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