Page 210 - 《软件学报》2024年第6期
P. 210

2786                                                       软件学报  2024  年第  35  卷第  6  期


                                                              ∑ N
                                                      1  L ∑  2   y ij ˆy ij
                                                 mF =     ∑     i=1 ∑                                (11)
                                                      L      N      N
                                                        j=1   y ij +  ˆ y ij
                                                             i=1    i=1
                                                                                                  j
                                                                                        i
                 其中,   N  表示样本数,   L  表示标签数,    Y  表示标签的真实值,    ˆ Y  表示标签的预测值,   y ij  表示第   个样本的第   个标签
                         ˆ y ij  表示第   个样本的第   个标签的预测值. 汉明损失是基于标签的评价指标, 即不考虑在样本尺度上的
                                            j
                                 i
                 的真实值,
                 正确性. 相反, 0-1  损失是基于样本的评价指标, 即只要对样本中的任一标签预测出错, 该样本即被算作预测错误.
                 宏  F1  分数同样是基于标签的评价指标, 其用于评价模型在不平衡数据集上的表现. 此外, 在评价自动化模型对单
                 一质量属性的学习能力时, 实验还使用了查准率                (precision, P)、召回率  (recall, R) 和  F1  分数  (F). 各评价指标中,
                 汉明损失和    0-1  损失值越低, 表示模型表现越好; 其余值越高, 表示模型表现越好. 对各模型的评估使用                       5  折交叉
                 验证方式, 在每一折验证中, 从每个项目中选择              400  条评审意见组成训练集, 剩余       100  条评审意见作为测试集. 本
                 文使用非参数检验方法“Wilcoxon       符号秩检验     (Wilcoxon signed rank test)”来保证实验结论的正确性. 具体地, 针对
                 实验提出的空假设为: 本文提出的方法的表现相较于基准模型在各评价指标上没有差异.
                  4.2.4    超参数设置
                    本文提出的方法涉及若干超参数. 现将主要超参数的设置说明如下: 代码评审意见的最大输入长度                                 (截断长
                 度) 为  256, 批大小为  32, 学习器为  Adam, 学习率为   3E–5. 非对称损失函数     ASL  中,   γ +  为  1,   γ −  为  4,   m 为  0.05. 虚
                 拟对抗损失函数      VAL  中,    ε 和  K  均为  1. 本文遵循机器学习模型训练的一般流程, 即在训练集中划分出验证集, 在
                 验证集上观察超参数对模型性能的影响, 最终选定在验证集上使得模型表现最优的参数作为超参数. 例如, “学习
                 率”影响模型拟合数据集的效果, 是模型最重要的超参数之一. 通过多次实验和调整, 本文发现学习率设置为                                3E–5
                 可以使得本文提出的方法在验证集上最优. 对于不需要通过验证集来确定的“最大输入长度”, 本文统计了数据集
                 中所有评审意见的字符数, 发现当前设置             (256) 可以覆盖处理   95%  的评审意见, 因此将     256  作为超参数.
                  4.3   结果与分析
                    后文表   4–表  6  分别从项目、质量属性和质量等级视角展示了本文提出的方法及其他                        5  种基准模型的表现,
                 加粗的数字表示某一视角下评价指标的最优值.
                  4.3.1    基于质量属性视角的分析
                    各模型对质量属性的预测表现如表             5  所示. 首先关注对“情绪”的预测, 本文提出的方法的查准率和召回率分
                 别是  0.76  和  0.42, 分别排在所有模型的第    2  位和第  1  位. TextCNN  在预测“情绪”时, 拥有最高的查准率      (0.85), 但
                 是其召回率仅为      0.22, 远远低于本文提出的方法表现. 综合表现最接近本文提出的方法的是                     FastText, 其查准率和
                 召回率分别为     0.75、0.31. 需要注意的是, 尽管    Transformer 的查准率为  0.63, 但是其召回率仅为     0.06, 意味着其几
                 乎不能准确预测“不积极” (本文提出的方法在预测质量属性“情绪”时, 将“不积极”作为正类, 将“积极”作为负类)
                 的代码评审意见. 在对“疑问”的预测中, 本文提出的方法的查准率、召回率和                       F1  分数分别是  0.93、0.96、0.94, 分
                 别排在所有模型的第        2  位、第  1  位、第  1  位. 综合表现最接近本文提出的方法的模型是           TextCNN  和  TextRCNN,
                 其  F1  分数均为  0.92. 对“评价”的预测, 本文提出的方法的查准率和召回率分别是                0.80、0.81. 对“建议”的预测, 本
                 文提出的方法的查准率和召回率分别是              0.92、0.94. 本文提出的方法在上述两个预测任务中的表现均排在所有模
                 型的第   1  位. Transformer 在上述两个预测任务中的查准率表现和本文提出的方法持平                  (0.80、0.92), 但是其召回
                 率远远落后本文提出的方法          (0.51、0.82). 由于拥有较高的查准率, 同时在召回率指标上取得优势, 本文提出的方
                 法在关于   4  个质量属性的预测任务的        F1  指数均排在了所有模型的首位.
                    表  4  详细展示了各模型在      34  个项目上的预测表现. 此时不再区分每一质量属性, 而是使用多标签学习任务常
                 见的评价指标     (汉明损失、0-1    损失和宏    F1  分数) 来分析各模型表现. 首先关注本文提出的方法, 其在               34  个项目
                 上的平均汉明损失为        0.06, 最接近的模型是    TextCNN  和  TextRCNN, 其平均汉明损失均为     0.08. 本文提出的方法
                 的平均   0-1  损失为  0.19, 最接近的模型仍是    TextCNN  和  TextRCNN, 但其平均  0-1  损失高了  7  个百分点, 为  0.26.
                 其余模型的平均      0-1  损失接近或超过    0.30. 最后在宏  F1  分数这一项评价指标中, 本文提出的方法同样处于领先的
                 位置, 超过排在第     2  名的模型  (TextRCNN) 6  个百分点  (0.74 vs. 0.68).
   205   206   207   208   209   210   211   212   213   214   215