With the increasing complexity and scope of software systems, their dependability is crucial. The analysis of log data recorded during system execution can enable engineers to automatically predict failures at run time. Several Machine Learning (ML) techniques, including traditional ML and Deep Learning (DL), have been proposed to automate such tasks. However, current empirical studies are limited in terms of covering all main DL types -- Recurrent Neural Network (RNN), Convolutional Neural network (CNN), and transformer -- as well as examining them on a wide range of diverse datasets. In this paper, we aim to address these issues by systematically investigating the combination of log data embedding strategies and DL types for failure prediction. To that end, we propose a modular architecture to accommodate various configurations of embedding strategies and DL-based encoders. To further investigate how dataset characteristics such as dataset size and failure percentage affect model accuracy, we synthesised 360 datasets, with varying characteristics, for three distinct system behavioral models, based on a systematic and automated generation approach. Using the F1 score metric, our results show that the best overall performing configuration is a CNN-based encoder with Logkey2vec. Additionally, we provide specific dataset conditions, namely a dataset size >350 or a failure percentage >7.5%, under which this configuration demonstrates high accuracy for failure prediction.
翻译:随着软件系统规模和复杂性的日益增长,其可靠性至关重要。分析系统运行过程中记录的日志数据,可使工程师在运行时自动预测故障。多种机器学习技术(包括传统机器学习与深度学习)已被提出用于自动化此类任务。然而,现有实证研究在覆盖所有主流深度学习类型——循环神经网络、卷积神经网络和Transformer——以及跨多样化数据集进行验证方面存在局限性。本文旨在通过系统探究日志数据嵌入策略与深度学习类型在故障预测中的组合来弥补上述不足。为此,我们提出一种模块化架构,可容纳嵌入策略和基于深度学习的编码器的多种配置。为深入探究数据集规模、故障百分比等数据集特征对模型准确率的影响,我们基于系统化自动化生成方法,针对三种不同的系统行为模型合成了360个具有不同特征的数据集。基于F1分数指标的结果表明,全局最优配置是结合Logkey2vec的卷积神经网络编码器。此外,我们明确了该配置在数据集规模>350或故障百分比>7.5%的特定数据集条件下,能够实现高准确率的故障预测。