Page 43 - 《软件学报》2025年第5期
P. 43
董黎明 等: 结合主动学习和半监督学习的软件可追踪性恢复框架 1943
5 讨 论
5.1 挑战和约束
本文采用主动学习和半监督学习结合式的思路构建了 STRACE(AL+SSL) 框架. 这两种技术类属于弱监督学
习, 在软件可追踪性恢复任务的实践场景中仍然面临一些挑战和约束.
首先一个挑战是标注成本, 尽管主动学习旨在最大程度地减少标注成本, 但在实际应用中, 获取标注仍然需要
一定的资源和成本. 因此, 在选择哪些样本进行主动学习时, 需要在成本和性能之间进行权衡. 本文引入主动学习
策略时, 既要考虑到可追踪性任务面临的数据稀疏性和不平衡性等各项样本集中已存在的数据挑战对模型带来的
影响, 又要确保在实践中标注的成本是尽可能小, 因此本文在 STRACE(AL+SSL) 方法中参考了 Kothawade 等人 [63,64]
提出的子模块互信息 (SMI) 函数 [65,66] . 本文 RQ2 中的实验结果也表明了 STRACE(AL+SSL) 方法采用基于子模块
互信息 (SMI) 函数的主动学习策略有助于缩短迭代次数 (即标注成本) 的同时, 也能得到较好的模型效果. 其次是
对标注人员的要求也是 STRACE(AL+SSL) 方法实践中的难点, 不可否认的是区别于通用图像分类任务对对标注
人员的领域知识没有太高要求. 而软件可追踪性恢复任务中, 制品关联链接的标注往往需要是第一手负责开发者,
测试人员等该制品的数据生产者来标注样本, 这无疑增加了标注成本和复杂性.
初始训练集质量不可避免会影响 STRACE(AL+SSL) 方法的效果, 主动学习及半监督学习选择的样本能否对
于提升模型准确性有效依赖于基于初始训练集得到的初始模型的准确性. 举例而言, 如图 15 所示, 通过对比不同
类不平衡性的初始训练集 (P1 项目为例) 条件下, STRACE(AL+SSL) 模型 F2 值差异, 可以观察到, 当初始训练集
类不平衡变得越高时, STRACE (AL+SSL) 方法得到的初始模型效果越差. 即使后续训练迭代多次, 类不平衡性最
高的训练集得到的模型效果依然不佳, 即折线 2×ImR.始终在最下面. 当初始训练集类不平衡性有所下降时, 如折
线 1/4×ImR.效果最佳, ImR.表示 P1 项目初始训练集的不平衡性. 这表明了初始训练集的类不平衡性会严重影响
STRACE(AL+SSL) 的效果. 本文选择了 SMOTE 算法对训练集 train_set 重采样来缓解初始训练集样本类不平衡
问题, 在后续迭代中, STRACE(AL+SSL) 的半监督模块采用动态调整少类无标签样本的阈值, 主动学习模块则采
用子模块互信息函数来选择样本集中与“真” 链接样本模块相似的样本. 除了以上方法之外业界也有很多其他方法
可供参, 如代价敏感学习, 类权重调整 [72] 等.
80 1/4×ImR. 1/2×ImR. 1×ImR. 2×ImR.
70
60
F2 (%) 50
40
30
20
0 1 2 3 4 5 6 7 8 9 10
Iteration
图 15 初始训练集类不平衡性影响
虽然在本文的软件可追踪性的恢复任务场景中, 主动学习结合半监督学习的框架有着显著的效果提升, 但在
安全性要求较高的任务场景下, 如自动驾驶, 医学诊断等领域, 伪标签的生成及使用还需要慎重考虑.
5.2 效度威胁
针对内部效度 (internal validity) 而言, 本文实验数据的准备可能带来一定程度的有效性威胁. 并非所有
commit 都与缺陷 issue 存在潜在链接关系, 本文在参考 Rath 等人 [10] 提出的软件制品跟踪对匹配函数 is_candidate
ε . 此外本文观察到企
的基础上, 考虑到企业项目的业务属性、团队大小及项目规模等差异, 动态调整了时间参数
业项目 commit 一般只与一个制品 ID 关联, 因此若某 commit 已有明确关联制品 ID, 本文会删除其他缺陷与此
commit 形成的候选“假”链接, 从而降低样本不平衡性. 为了训练和验证可追踪性模型, 需要构建制品间存在“真”或