Page 212 - 《软件学报》2024年第6期
P. 212
2788 软件学报 2024 年第 35 卷第 6 期
表 6 模型表现 (质量等级视角)
TextCNN TextRCNN FastText DPCNN Transformer 本文方法
等级
HL 01L mF HL 01L mF HL 01L mF HL 01L mF HL 01L mF HL 01L mF
优秀 0.16 0.57 0.66 0.14 0.49 0.70 0.18 0.62 0.68 0.16 0.53 0.67 0.25 0.81 0.50 0.10 0.36 0.77
良好 0.05 0.16 0.56 0.05 0.16 0.54 0.06 0.17 0.51 0.06 0.18 0.52 0.06 0.19 0.50 0.03 0.11 0.59
一般 0.10 0.34 0.42 0.11 0.36 0.42 0.12 0.36 0.43 0.12 0.40 0.44 0.11 0.33 0.34 0.09 0.30 0.48
较差 0.25 0.79 0.33 0.23 0.73 0.36 0.26 0.76 0.35 0.26 0.78 0.35 0.31 0.95 0.26 0.20 0.65 0.39
表 7 Wilcoxon 符号秩检验 (p 值)
本文方法
模型
HL 01L mF
TextCNN <2E–7 <2E–7 <2E–7
TextRCNN <2E–7 <2E–7 <3E–7
FastText <2E–7 <2E–7 <2E–7
0.36、0.65, 表现最接近的模型是
DPCNN <2E–7 <2E–7 <3E–7
Transformer <2E–7 <2E–7 <2E–7
4.3.2 基于质量等级视角的分析
需要首先说明的是, 根据本文提出的方法的设计原理 (详见第 3.1 节), 质量等级即评审意见质量评价最终的
产出是根据预先定义的映射表来确定的, 该部分不参与“预测/学习”. 换言之, 质量等级由预测的质量属性间接确
定. 评价自动化模型对不同质量等级的预测表现, 尽管视角不同 (聚合评审意见样本的方式不同, 本文回答 RQ1 按
“项目”和“质量属性”聚合; 回答 RQ2 按“质量等级”聚合), 实际仍是评价其对各质量属性的预测表现. 因此, 本文回
答 RQ2 仍沿用在多标签学习任务中常见的评价指标 (汉明损失、0-1 损失和宏 F1 分数).
各模型对质量等级的预测表现如表 6 所示. 首先关注对“优秀”的预测, 本文提出的方法的汉明损失、0-1 损失
和宏 F1 分数分别为 0.10、0.36、0.77, 均排在所有模型的第 1 位. 排在第 2 位的模型是 TextRCNN, 3 项指标分别
为 0.14、0.49、0.70. 在对“良好”的预测中, 本文提出的方法的汉明损失、0-1 损失和宏 F1 分数分别为 0.03、0.11、
0.59, 均领先于其他所有模型. 排在第 2 位的模型是 TextCNN, 3 项指标分别为 0.05、0.16、0.56. 在对“一般”的预
测中, 本文提出的方法的汉明损失、0-1 损失和宏 F1 分数分别为 0.09、0.30、0.48, 均排在所有模型的第 1 位. 在
该预测任务中, 不再有 3 项评价指标均排在第 2 位的模型. 汉明损失排在第 2 位的模型是 TextCNN (0.10); 0-1 损
失排在第 2 位的模型是 Transformer (0.33), 宏 F1 分数排在第 2 位的模型是 FastText (0.43). 在对“较差”的预测中,
本文提出的方法的汉明损失、0-1 损失和宏 F1 分数分别为 0.20、0.65、0.39, 同样均排在所有模型的第 1 位. 排
在第 2 位的模型是 TextRCNN, 3 项指标分别为 0.23、0.73、0.36.
值得注意的是, 本文提出的方法对“少数类”的预测表现相较于其他模型具有领先优势, 实证了设置非对称损
失函数的正确性和必要性 (详见第 3.3.2 节). 如图 4 所示, 质量等级为“优秀”评审意见占总数的 13%, 属于少数类;
质量等级为“较差”评审意见仅占总数的 2%, 属于极少数类. 以分析各模型的 0-1 损失为例, 本文提出的方法预测
“优秀”和“较差”的 0-1 损失分别为 TextRCNN (“优秀”—0.49, “较差”—0.73). 表
现最糟糕的模型是 Transformer, 其预测“优秀”的 0-1 损失为 0.81; 对“较差”的预测几乎完全失败, 其 0-1 损失高达 0.95.
总结来说, 本文提出的方法 (自动化模型) 能够有效地预测代码评审意见的质量属性 (RQ1) 和质量等级
(RQ2), 在多项评价指标上领先于其他模型.
5 讨 论
本节讨论应用本文提出的方法时应该注意的若干事项. 具体地, 第 5.1 节和第 5.2 节分别讨论其数据标注和模
型选择; 第 5.3 节讨论其对代码评审的影响和启示.