基于多渠道融合的智能故障预测技术*
2023-12-28白梦莹张霁莹刘经纬韩华锦
白梦莹,米 迅,张霁莹,刘经纬,韩华锦,黄 楠
(天津航海仪器研究所,天津 300131)
0 引 言
随着工业化和信息化的不断发展,各种设备和机器在生产和生活中扮演着越来越重要的角色。然而,这些设备和机器在长期使用过程中,难免会出现各种故障和问题,从而给生产和生活带来不便和损失。如何及时准确地预测和诊断设备故障,成为工业和科技领域的研究热点之一。系统故障检测在许多领域至关重要,传统的故障预测方法主要依靠人工经验和专业知识,存在预测不准确、成本高昂等问题。而随着人工智能技术的不断发展,智能故障预测模型逐渐成为解决这些问题的有效手段。然而,目前大多数智能故障预测模型仍然存在单一模型设计、不可信数据来源、数据处理能力不足等问题,难以满足实际生产和生活的需求,更无法处理特定场景下的预测需要。
机器学习和深度学习在故障检测方面具有重要意义,这类方法可以通过学习数据的模式,自动地提取预测特征,提升预测的准确性。此外,一些基于智能学习的无监督方法也为故障预测提供了不同角度的支撑,如主成分分析(Principal Component Analysis,PCA)[1]、逻辑回归(Logistic Regression,LR)[2]和聚类[3-6],均可在无标签的数据集中进行故障的离群学习,从而判断故障的性质和位置。然而,传统的故障检测方法通常需要手动设置阈值或规则,且只能使用单一模型,如简单分类算法[3]和特征提取方法[7]等均仅支持某一类的智能预测任务。这类方法无法适应复杂的系统和环境变化,难以根据用户实际预测需求进行动态调整,从而限制了其在真实预测场景下的应用范围。
在智能故障预测领域,已有一些工作为本文提供了解决方案。这些方案包括故障预测模型的设计和优化、用户自主的模型调用等。传统方法主要关注故障预测模型的设计和优化。首先,使用大量日志作为数据集,设计统计学方法[8]、改进的机器学习[9]以及深度学习模型[10]等,对历史数据进行分析和建模,预测设备或系统的故障概率。同时,一些方法还提出了优化策略,如特征选择、参数调优和模型融合等,以提高预测模型的准确性和稳定性。其次,在面向不同用户检测需求或不同的系统故障场景时,当前主流策略仍然是通过用户手动选择使用的模型,而无任何对模型的智能判断,使得适配效果难以满足,产生数据质量不稳定、模型选择困难、用户需求偏差等问题。
为了提升故障预测需求的适配弹性,面向系统场景满足用户的特定预测需求,从而优化模型整体的性能效果,本文提出了一种多渠道学习算法融合的系统故障预测策略,通过综合考虑各种机器学习和深度学习方法的优点和局限性,利用先验的模型-需求权重经验,实现智能化的模型调度和需求适配。为了达到此目标,本文设计了通用的多渠道模型调度算法。首先,将用户预测需求分为通用需求和特定需求,相应地将候选模型分为主干组和辅助组,用于满足不同的场景需求。其次,通过先验权重赋值和改进的调度算法,得到模型选取的内在逻辑。最后,本文在公开日志数据集上进行了方法的实验验证,在多个场景下得到了与预期相符的优化效果。实验表明,通过多渠道模型融合和属性调度策略,可以更好地解决单一模型在可靠性和实用性方面存在的局限性,从而提升智能故障预测的应用效果。
1 背景知识
1.1 基于智能学习的故障预测
机器学习和深度学习等智能学习模型和算法在故障预测领域应用广泛,通过学习数据的模式和特征,自动地进行故障检测,从而提高检测的准确性和效率。目前,机器学习和深度学习在故障检测方面的研究主要集中在以下3 个方向。
1.1.1 基于监督学习的故障检测方法
该方法是一种常见的故障检测方法[9],它需要大量的标注数据,通过训练模型来预测未知数据的故障状态。其优点是可以通过大量的标注数据来训练模型,提高故障检测的准确性和可靠性。此外,该方法可以使用各种分类算法,如支持向量机(Support Vector Machine,SVM)或神经网络等完成分类任务,具有较高的灵活性和适用性。然而,基于监督学习的故障检测方法也存在一些缺点:一是该方法需要大量的标注数据,这可能会导致数据采集和标注成本较高;二是该方法对于未知的故障类型,难以进行有效的检测和诊断。此外,这类方法的性能也受到数据质量和特征选择的影响,需要进行充分的数据预处理和特征工程。
1.1.2 基于无监督学习的故障检测方法
该方法在一定程度上解决了监督学习的数据标记难题,它可以在没有标注数据的情况下进行故障检测[2]。这种方法的优点是可以自动学习数据的分布和特征,不需要人工标注数据,因此可以节省大量的时间和人力成本。此外,该类方法还可以更好地适用于不同类型的数据,包括结构化数据和非结构化数据。然而,基于无监督学习的故障检测方法也存在一些缺点:一是由于没有标注数据,可能会出现误报和漏报的情况,导致检测结果不够准确;二是为了提升准确率,需要大量的计算资源和时间来训练模型和检测故障,因此在实际应用中会面临实时性挑战。
1.1.3 基于深度学习的故障检测方法
该方法利用深度神经网络来学习数据的特征和模式,从而进行故障检测,这是近年来兴起的研究方向。这类方法可以使用参数量更多的、更复杂的深度模型来进行故障检测,如卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)等。其优点是能够自动学习数据的特征和模式,无须手动设计特征提取器。此外,深度神经网络可以通过多层的神经元来提取数据的高级特征,从而更好地捕捉故障的特征和模式,这使得故障检测更加准确和可靠。深度神经网络可以通过大量的训练数据来学习数据的特征和模式,从而能够适应不同的故障情况和变化。这使得该类方法在实际应用中能够适应各种不同的故障检测任务。然而,基于深度学习的故障检测方法也存在一些缺点:一是该类方法需要大量的标注数据进行训练,而获取和标注大规模的故障数据是一项耗时且费力的工作;二是深度神经网络的训练过程需要较长的时间和大量的计算资源[11]。
传统的故障检测方法通常依赖单一的智能模型预测,需要手动设置阈值或规则,这种方法存在诸多局限。正如前文所述,这种方法无法适应复杂多变的系统环境,缺乏必要的智能判断,且难以适用于实际的使用需求。
1.2 模型调度
模型调度是指在计算机科学领域中,对多个模型进行任务和资源分配,使得系统整体取得更优的性能和效果。目前业界已有一些研究是关于模型调度的方法策略。
1.2.1 基于优先级的调度
该方法根据模型的重要性和紧急程度,为每个模型分配一个优先级,并根据优先级来进行调度。该类调度可以确保重要的模型能够及时得到处理。
1.2.2 基于顺序的调度
该方法直接把调度模型按照序号进行排序,每次调用一种不同的模型,同时也能保证模型的有序性[12]。
传统的模型调度策略算法无法直接在智能故障预测任务上使用,这是因为智能故障预测是面向用户需求和实际场景的,难以静态确定优先级、资源消耗和顺序,因此需要提出更具针对性的调度算法。
2 多渠道融合的智能故障预测技术
传统的机器学习和深度学习方法在准确率和F1 值方面有高有低,而用户对于准确率、召回率、F1 值和运行时间等方面的要求可能有所不同。为了满足用户的预测需求和特定场景的实用性,本文提出并实现多渠道智能模型融合的故障预测策略Multi-Det。该策略能够弥补单一模型的不足,通过集成不同的机器学习和深度学习模型,采用先验的需求-模型属性和参数,来实现多维度权衡,Multi-Det 的模型整体架构如图1 所示。
图1 多渠道融合的智能故障预测系统Multi-Det 整体架构
Multi-Det 接收日志输入数据。首先,对输入数据进行数据解析、格式化分割等预处理,继而利用典型的向量化嵌入表征将原始数据转换为有时序关系的向量数值集合。与传统智能预测算法不同的是,当得到向量化表征之后,Multi-Det 不急于直接进行模型预测,而是根据用户需求和实际场景进行需求分析,再通过专家经验得到需求经验参数矩阵,该矩阵将作为后续模型调度的依据。该参数矩阵的设置将根据目标数据的类型和特点,并满足预警系统在准确度、效率、可解释性等多角度需求,以便实现多种优势互补的智能预警和数据挖掘模型。
在根据调度算法进行模型调度的过程中,本文将候选模型根据其预测综合性能和应用通用性分成主干模型组和辅助模型组两个类别。主干模型组为默认调度候选,而辅助模型组为特定场景的调度候选。当选定候选模型后,便开始进行模型预测得出预测结果,最后进行结果的适配,如果不满足需求可以选择再次迭代预测。
2.1 数据解析与向量表征
2.1.1 数据解析
日志数据包含设备的运行状态、错误信息、异常事件等。数据解析为每个原始日志文件提取数据事件,因为原始数据消息包含一些多余的信息(例如文件名、IP 地址),可能会妨碍自动数据分析。数据解析方式可以利用正则表达式,也可以使用一些现有的方法,如DRAIN[13]等。首先,一些公共参数字段(如IP 地址)和重复字段被固定的正则表达式删除。然后,使用基于编辑距离的聚类方法,数据消息按照其特性类型被提取或聚类成粗粒度的组。最后,在各个同类型的数据组中,通过查找最长公共子串提取数据事件。这些共享子串的数据消息形成数据序列,通过消息ID 连接在一起形成数据事件流。数据事件流按照属性被参数化在有结构的数据存储中。
2.1.2 向量表征
向量表征层的作用是将结构化数据转化为智能模型所需的向量表示,便于后期的特征学习和数据内涵挖掘。向量化层分为两个方面:一是对于有语义的流量文本数据,需要进行上下文无监督训练来进行词嵌入向量化。这可以通过使用算法(如Word2Vec、GloVe 等)来学习词汇的分布式表示形式,以捕捉单词之间的语义关联。二是对于数值性数据,可以进行频率计算或者归一化处理。频率计算可以衡量数值特征在数据集中出现的次数,并将其转换为相对频率或概率。而归一化处理则可以将数值特征缩放到特定的范围内,以确保数据在相同的比例上进行比较与分析。本文的词嵌入向量化采用Word2Vec 的Skip-Gram[14]算法,该算法针对每个中间token,预测有限周围tokens 的出现概率,最后进行加权求和得到最终的向量表示。
2.2 基于场景需求的模型调度
2.2.1 模型调度参数矩阵
系统的故障检测与预警是一个复杂多变的过程,在不同的应用场景下,用户的需求侧重可能会发生变化,例如一些实时性较强的预警系统更加关注预测的响应时间,而对召回率要求无需太高;而一些运维资源丰富的场景则需要智能算法提供一定的可解释性,以便管理员和用户能够理解算法的决策过程并快速作出响应,对召回率要求较高。面对因场景变化带来的多维度需求适配问题,一个朴素的应对方法是将所有候选模型在目标数据上均运行一遍并进行适配比较,这种方法虽然能得到准确满意的适配结果,但是开销巨大,面对实际的故障预警问题难以奏效。
为了解决该问题,本文提出了一个高效的智能模型调度算法。与上述朴素的事后对比思想不同,本文首先通过专家经验采集先验的模型能力参数矩阵,继而根据矩阵参数值计算出调度权重。典型的模型能力参数矩阵如表1 所示,为每一个模型建立模型属性对应关系,关系值为模型在该需求属性上的性能表现评分(0~1 范围),该评分由前期实验积累并结合专家经验得出。
表1 模型能力参数矩阵
继而,根据输入的需求属性组合,对各模型进行适配度计算。
式中:k为需求属性数量;μ为权重,a为需求属性。计算之后,所有适配度中的最大值为理论最优模型。在实际的实现过程中,为了进一步提升系统鲁棒性和效率,进行如下两方面的优化:一是对模型和属性进行动态配置化,方便系统的扩展;二是进行模型的主干-辅助分组,对于主干模型所具备的优势属性需求,省略适配过程,直接选取主干模型。
关于属性的权重μk,需要根据实际场景需求进行调整。一般来说,可以根据任务对准确率、解释性、模型响应时间等因素的需求来确定权重。不同的业务场景和优化目标需要不同的权重设置。
2.2.2 主干模型组
经过多轮前期实验和用户经验调研可知,相较于其他智能模型,SVM 和多层长短期记忆循环神经网络(Long Short-Term Memory,LSTM)在故障预测的性能、效率、可靠性等方面的综合评价具有一定优势。因此,在本文的多渠道智能模型层中,主干模型组采用基于SVM 与多层LSTM 相结合的方式进行构建。
(1)SVM。智能故障预测技术是一种利用机器学习算法和大数据分析来预测设备或系统故障的技术。其中,基于日志数据的SVM 模型是一种常用的预测模型。SVM 是一种监督学习算法,它可以用于分类和回归问题,它的基本思想是将数据映射到高维空间中,通过找到一个最优的超平面来分隔不同类别的数据点,在文本中指异常日志和正常日志的超平面。在面向日志数据的故障预测中,SVM 模型通常具有较高的故障预测准确率、召回率以及较低的响应时间,并有一定的解释性,拥有较优的综合性能。基于日志数据的SVM 模型在智能故障预测技术中具有广泛的应用,可用于各种设备或系统,如工业设备、网络设备、服务器场景等。
(2)多层LSTM。SVM 的优势在于计算复杂度相对较低、训练速度较快。然而,SVM 难以处理高维数据、复杂的多模态数据(文本数值结合),且其结果难以提供与概率相关的回归类数值。因此,当其面对复杂文本数据序列时,拟采用时序深度学习模型LSTM 进行故障和异常预测。LSTM 的每个单元节点都是一个循环结构的神经元,LSTM 在组织这些单个的神经元时,进行了与序列相关的门结构重建,增加了遗忘门、输入门和输出门,使得模型序列对于长短距离目标均可学习其概率分布特征。这在处理文本相关的时序数据(如日志数据)时具有明显优势。
在处理大规模数据时,由于单层LSTM 序列模型参数有限,难以挖掘数据序列的深度特征,因此在面向大规模状态训练数据时将采用如图2所示的多层LSTM。
图2 复杂文本的多层LSTM 学习训练
多层LSTM 将底层LSTM 的每个输出隐向量H 作为上层LSTM 的输入向量,参与下一轮循环神经网络训练。如此,模型整体参数量增加,并从侧重时序特征提取转向侧重空间特征提取,使得对输入文本的概率分布拟合更优。
本文利用多层LSTM 进行日志数据的故障异常判断,可以得到较之其他模型更优的准确率。然而,由于LSTM 在处理单向神经序列时具有长期依赖关系的处理能力和单向性的限制,使其训练效率较之其他深度学习模型(如CNN)显著降低。这种效率下降在面向多层LSTM 训练时将会更加明显,因此需要进行多渠道模型的综合调度调优。
2.2.3 辅助模型组
除了LSTM 和SVM,还存在众多其他智能运维故障预测任务的智能学习模型,涵盖了有监督和无监督、机器学习和深度学习等模型。这些模型拥有各自擅长的故障预测场景,可以满足不同用户的预测需求。例如,CNN、Transformer、编码器、LR、朴素Bayes 和无监督模型PCA 主成分分析等,这些模型在准确率、召回率、F1-score、运行效率、领域数据、解释性、目标系统等方面均有相应的优势和劣势。通常,在目标预警训练数据缺少标签的场景下,利用无监督模型进行数据挖掘和辅助预警;而对召回率有较高需求时,则优先采用CNN、朴素Bayes 等模型。由于这些模型往往在特定环境下才能发挥优势,规避劣势,因此利用它们构建辅助模型组时,其在各属性上的参数权重矩阵需要根据专家经验和实验积累获得。
2.3 故障预测和适配分析
当得到调度矩阵和计算适配度之后,选择最优的模型参与输入数据的故障预测。本文系统对候选模型均进行了大数据的训练处理,故障预测仅需输入待测试数据,继而可得到数据故障与否的分类结果。例如,本系统在前期已对经SVM 模型处理后的日志数据进行训练。在训练过程中,SVM 模型会根据已知的故障样本和正常样本来学习故障的特征和模式。通过这种方式,SVM 模型可以建立一个分类边界,将正常样本和故障样本区分开来。将新的待测日志数据输入到SVM 模型中时,模型会根据已学习的分类边界来判断该数据是否属于正常或故障状态。通过这种方式,可以实时监测设备或系统的运行状态,并提前预测可能的故障。
为了进一步确保多渠道调度的适配有效性,在故障预测之后,可进行人工预期偏差排查,以评估分析结果的适配性。如果与预期结果偏差较大,可以重新构建用户场景需求,进行迭代的模型调度调优,以保证实际的故障预测效果符合预期的场景需要。
3 实验分析
3.1 日志数据集
本文利用常用的公开日志数据集对Multi-Det 进行有效性验证。该数据集来自He 等人[7]发布的Loghub,这是一个大型系统日志数据集集合。由于篇幅限制,本文只研究了在蓝色基因/L(BlueGene/L,BGL)数据集和Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)日志数据集[6]上评估的结果,同时实验结果也可以很容易地扩展到其他数据集。表2总结了数据集统计信息。
HDFS 数据集包含11 175 629 条日志消息,这些日志消息是在200 多个Amazon EC2 节点上运行map-reduce 任务产生的[10]。特别是,对于每个块的分配、写入、复制、删除等操作,每个日志消息都包含一个唯一的block id。因此,基于标识符的分区可以自然地应用于生成日志事件序列。日志事件序列预处理后得到575 061个测井序列,其中异常样本16 838 个。如果一个测井序列的任何一个测井窗口W被识别为异常,则该序列将被预测为异常。
BGL 数据集包含4 747 963 条日志信息,这些日志信息来自美国劳伦斯利弗莫尔国家实验室的BlueGene/L 超级计算机。与HDFS 不同,该数据集的日志没有标识符来区分不同的作业执行。在BGL 数据集中,有348 460 条日志消息被标记为失败。如果日志序列包含任何失败日志,则将其标记为异常[15]。
3.2 实验设置
本实验在PyCharm 中,基于Python 10.3 的环境下运行,实验所需的数据集均为上述HDFS和BGL 日志数据集。对于所有数据集,本文首先按时间顺序对日志进行排序,并应用日志分区生成日志序列,然后对其进行洗牌。接下来,本文利用前80%的数据进行模型训练,剩下的20%用于测试,并对测试好的模型进行模型属性调度,通过对不同需求场景进行模拟,设置6 组对照实验,其权重参数和场景语义如表3所示。
表3 权重参数设置
3.3 评估指标
在智能故障预测模型的评估中,常用的评估指标包括准确率(Precision)、召回率(Recall)和F1 值(F1-score)。
准确率是指模型预测为正例的样本中,实际为正例的比例。它衡量了模型预测为正例的准确性,计算方式为:
式中:TP为真正例(模型正确预测为正例的样本数);FP为假正例(模型错误预测为正例的样本数)。
召回率是指模型正确预测为正例的样本数占所有实际正例样本数的比例。它衡量了模型对正例样本的查全率,计算方式为:
式中:TP为真正例;FN为假反例(模型错误预测为反例的样本数)。
F1 值是指准确率和召回率的调和平均值,综合考虑了模型的准确性和查全率,计算方式为:
F1 值的范围在0 到1 之间,值越接近1 表示模型性能越好。
在故障预测任务中,准确率衡量了模型预测故障的准确性,召回率衡量了模型对真实故障的检测能力。F1 值综合考虑了这两个指标,可以评估模型在故障预测任务中的整体性能。通过对这些评估指标的分析,我们可以选择最合适的模型或优化模型的参数,以提高故障预测的准确性和可靠性。
3.4 实验结果
将划分的训练集和测试集分别用于主干模型组和辅助模型组共计5 类智能运维故障预警模型中,分别统计这些模型在HDFS 和BGL 日志数据上准确率、召回率、F1 值的表现效果。对比实验结果如表4 所示。
表4 主干模型和辅助模型准确率
通过实验可以得出,主干模型组SVM 和多层LSTM 在HDFS 和BGL 数据集的准确率、召回率和F1 值上均表现很好,但在个别情况下,辅助模型组中有略高于主干模型组的值。
在上述实验的基础上,以主干模型组为实验模型,以HDFS 日志数据为数据集,根据两种主干模型的模型属性值,结合上述实验积累和专家经验得出模型能力矩阵值,并设置不同的权重参数,对比预期模型调度,以此来验证模型调度的准确性。由上述实验积累和专家经验得出的主干模型组需求属性如表5 所示。
表5 模型和需求属性值
根据主干需求属性、设置的权重计算得出模型的适配度,并对比相应需求属性预期的模型。实验结果如表6 所示。
表6 模型适配度和预期模型
从实验结果可以看到,超过83%的实验得到了符合预期的结果,仅最后一组结果存在偏差。然而从细节上看,偏差的结果并不严重,预期的多层LSTM 模型仍然获得了第二高的得分(0.65),可以验证Multi-Det 的有效性。总体上看,多层LSTM 在各场景下的适配性最强,表明其有着较高的通用性,也从侧面验证了利用LSTM 作为主干模型的合理性。在第四组实验中,由于主模型组中SVM 与辅助模型组中LR 适配度相同,因此预期结果可能是两种模型。但据实验结果显示,输出的模型为SVM,这证明在适配度相同时,优先考虑主干模型组,设置主模型组的原因在于主模型在综合性能上优越,并且在适配度产生矛盾时其能够解决模型调度的问题。从实验结果中得知,相较于传统调度方式,本文提出的面向场景需求的模型属性调度方式具有以下优点。
(1)更准确地预测故障。基于模型属性的调度可以通过分析设备的历史数据和特征,构建故障预测模型,从而更准确地预测设备的故障概率。相比之下,其他简单优先级调度可能只是基于设备的一些基本信息或规则进行调度,无法提供准确的故障预测。
(2)灵活性和可扩展性。基于模型属性的调度策略可以根据实际场景需求,灵活地调整模型属性的权重,以适应不同的业务场景和优化目标。这种灵活性和可扩展性使得基于模型属性的调度更加适用于复杂的生产环境和多变的需求。
4 结 语
传统的系统故障预测方法往往依赖于人工经验和规则,无法满足大规模和复杂系统的需求。因此,引入智能模型和机器学习算法成为解决这一问题的关键,然而单一的智能方法难以适用于动态变化的系统场景。本文旨在提出一种多渠道融合的智能故障预测技术,通过设计与场景需求适配的模型调度策略,使用LSTM和SVM 作为主干模型,并结合CNN 等辅助模型,对日志故障在准确率、召回率和F1 值等指标上进行实验对比,实验结果表明了多渠道调度策略的有效性,该方法能够为系统故障运维提供有效的决策支持。
为进一步改进模型性能和可扩展性,未来可以考虑引入更多的辅助模型,如决策树等,以提高模型的表达能力和泛化能力。此外,可以探索更多的特征工程方法,引入更多的数据源和领域知识,以提取更有价值的特征信息,进一步提高模型的预测能力。最后,还可以将模型应用于实际工业系统中,并进行实际效果评估,以验证其在实际应用中的可行性和有效性。