Page 155 - 《软件学报》2026年第7期
P. 155

2840                                                       软件学报  2026  年第  37  卷第  7  期



                                                      表 2 数据集信息

                              数据集名称               大小            采集时间跨度              日志条数
                                HDFS             1.55 GB           38.7 h           11 175 629
                                 BGL             708 MB             7 m             4 747 963
                               OpenStack         58.5 MB           29.5 h            207 820

                  4.1.2    评估指标
                    预测结果分为      4  类: 真正例  (TP)、真反例  (TN)、假正例   (FP) 和假反例  (FN). 基于上述   4  类预测结果, 本文采
                 用精确率   (Precision)、召回率  (Recall) 和 F1  值  (F1-score) 这  3  个指标来评估 PCLog 的性能. 其计算公式如下:

                                                                TP
                                                     Precision =                                     (12)
                                                              TP+FP

                                                               TP
                                                      Recall =                                       (13)
                                                             TP+FN

                                                          2×Precision×Recall
                                                 F1-score =                                          (14)
                                                          Precision+Recall
                  4.1.3    基线方法
                    在基线方法的选择上, 本文力求覆盖不同类别的代表性技术, 以保证对比的全面性与公平性. 具体而言, 选择
                 PCA [58] 、IM (invariant mining) [19] 、LogCluster [18] 作为传统方法的代表, 其中  PCA  通过降维方式挖掘日志特征的主
                 要成分, IM 基于不变量约束规则检测异常, LogCluster 则利用日志模板聚类方法进行异常模式识别. 这                        3  类方法
                 实现简单、可解释性较好, 是传统日志分析的重要代表.
                    在深度学习方法方面, 本文采用          DeepLog [26] 与  LogAnomaly [59] 作为基线. DeepLog  基于  LSTM  模型进行序列
                 建模, 是较早应用深度学习于日志异常检测的工作, 代表了时间序列预测范式; LogAnomaly                       则结合了注意力机制
                 与上下文特征建模, 在异常检测准确性和鲁棒性方面均达到较高水平, 两者均属于近年来该领域的代表性甚至是
                 SOTA  方法.
                    而在强化学习方法方面, 本文则选取            QLLog [49] 作为对照. QLLog  是少数将强化学习范式引入日志异常检测的
                 工作之一, 其思想与本文方法最为相关, 为对比不同               RL  框架的性能提供了直接参考.
                    基于上述基线方法, 我们在 HDFS、BGL          和  OpenStack  数据集上, 使用相同的实验参数、训练集和测试集进
                 行了对比实验. 所有实验均选取并记录最佳结果.
                  4.1.4    实验环境
                    我们基于    Python 3.8  和  PyTorch 1.10.1  实现了  PCLog. 语义向量与状态向量的维度均为   100. 策略网络和价值
                 网络结构相同, 均由      3  层全连接层组成, 层维度依次为        256、128  和  64. 动作数量设置为数据集中唯一日志事件的
                 数量, 分组窗口大小设为       20. 超参数的具体设置见表       3. 所有实验均在配置为       64  核  Intel(R) Xeon(R) E5-2640 CPU、
                 256 GB  内存及  16 GB  显存  GPU  的  Linux 服务器上进行.

                                                    表 3 训练超参数设置

                                           参数名           数值             说明
                                           actor_lr     0.000 3     策略网络学习率
                                           critic_lr    0.001       价值网络学习率
                                             ε           0.2          剪切比例
                                             γ           0.99         折扣因子
                                           Epochs        100         优化迭代次数

                  4.2   RQ1: 与基线方法相比, PCLog  在异常检测中的表现如何?
                    ● 动机: 现有方法    (如 DeepLog、QLLog) 在动态日志模式下精度低、泛化弱, 需验证              PCLog  的整体优势.
                    ● 评估方法: 采用 HDFS、BGL、OpenStack 这     3 个数据集, 训练集为     80%  正常日志, 测试集为    20%  正常日志+
   150   151   152   153   154   155   156   157   158   159   160