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).