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%的特定条件下,可实现高准确率的故障预测。