Page 27 - 《软件学报》2025年第5期
P. 27

董黎明 等: 结合主动学习和半监督学习的软件可追踪性恢复框架                                                  1927


                 学习  (deep learning) [13,40,41]  模型, 如循环神经网络  (recurrent neural network, RNN)、词嵌入模型  (word embedding)、
                 基于  Transformer 的  BERT  模型  [40] 等. 然而大部分研究还是基于开源软件项目或学生项目           [10,31,42] , 如基于  CoEST
                 中收集的数据, 验证算法的有效性. 即使相关研究也逐渐开始采用工业界项目进行实验验证                            [12,14] , 但是研究人员发
                 现, 在真实的企业项目中采用当前主流的自动追踪技术构建的可追踪性模型                         [43] , 并没有实现如以往研究在学生项
                 目和开源项目上的理想的实验效果.
                    本文通过前期案例分析发现将主流的学习式的可追踪性技术应用于企业项目, 其效果不佳的原因主要是由于
                 样本数据带来的关键挑战: (1) 数据低质量. 目前软件可追踪性主要是依赖于人工方式创建和维护, 这种手段最主
                 要的问题是导致产生很多低质量样本, 如软件制品之间无关联、延时关联、错误关联、不完整关联等. 因此使得
                 训练模型难以学习到正确、可靠且有价值的数据. (2) 数据稀疏性. 即使企业项目制品规模足够大, 但软件制品之
                 间  (如缺陷-commit 之间) 有关联的跟踪链接比例         (linked ratio) 太小. 此外开源项目中适用的特征, 如过程特征, 由
                 于企业的组织特性       (如内外研发合作模式), 部分过程特征并不适配, 这导致模型可学习的特征空间依然是稀疏的.
                 (3) 数据不平衡性. 可追踪性模型中输入的样本是通过两两制品之间通过时间匹配规则, 生成潜在的制品跟踪对,
                 又因为一个制品在其生命周期内最多和              n  个  (在企业项目中   n (中位数)≤2  普遍成立) 目标制品存在真正关联, 而
                 时间匹配规则会生成过多的无关联的跟踪对, 导致数据集中包含很多“假”链接样本, 样本数据中“真”和“假”链接
                 样本比例过于悬殊, 因而加重了数据不平衡性.
                    为了克服以上挑战, 本课题组首先提出了基于半监督学习的可追踪性恢复框架                          (semi-supervised pre-processing
                 for learning-based traceability, SPLINT) [44] , 简化流程如图  2  所示, 具体而言: (1) 在模型预处理阶段, 引入混合文本
                 相似性特征, 缓解特征空间稀疏性问题; (2) 在模型训练阶段, 引入半监督学习策略, 学习无标签样本, 缓解样本规
                 模稀疏性问题; (3) 在具体半监督样本选择策略中, 提出调整后的类平衡自训练                      (adjust class balancing self-training,
                 CBST-Adjust) 样本选择策略, 重点缓解数据不平衡问题. 通过半监督学习策略构建的可追踪性恢复框架                           SPLINT
                 的确有效缓解了数据稀疏性和数据不平衡性问题.

                                                训练模型              迭代循环
                                                                   +
                                                    A                       D L
                                          初始      混合文本        半监督        更新有标
                                          模型     相似性特征         学习         签集合

                                     图 2 基于半监督学习的可追踪性恢复模型              SPLINT  简化流程

                    然而基于半监督学习的可追踪性恢复框架                SPLINT  依然存在相应的挑战. 半监督学习的主要原理是通过模
                 型在未标签的数据上的预测情况, 来得到可靠的伪标签, 从而将大量无标签数据引入训练. 因此半监督学习有效
                 的前提是: (1) 要生成可靠的伪标签. 然而正如上述挑战中所提到的, 由于企业组织特性的复杂性和过程交付的
                 压力等潜在的原因, 依赖于人工          (开发人员打     tag) 方式创建和维护的软件制品间的可追踪性链接可能包含大量
                 的低质量样本, 从而使得半监督学习模型难以有效预测得到可靠的伪标签样本. (2) 其次为了充分利用无标签样
                 本, 半监督学习过程中要引入大量可靠的伪标签. SPLINT                动态调整无标签样本选择比例           (逐步递增), 即随着迭
                 代, 降低  (不同类别) 的样本置信度阈值, 来引入更多的伪标签参与训练. 但是低阈值会不可避免地引入质量低
                 的伪标签样本.
                    本文针对    SPLINT  中存在的问题, 进一步优化了框架, 提出了一个基于结合主动学习及半监督学习改进策略
                 的自动化可追踪性恢复框架          (software traceability recovery framework based on active learning and semi-supervised
                 learning), 命名为  STRACE(AL+SSL), 该框架可以针对软件可追踪性在企业数据上面临的挑战和半监督学习技术
                 应用时的挑战, 逐一引入对应的改进策略, 从而更加有效地预测真实复杂企业项目中软件过程制品之间的可追踪
                 性关系. 具体而言, STRACE(AL+SSL) 框架从如下几点进行改进: (1) 将主动学习与半监督学习结合, 重塑初始训
                 练集, 让模型学习正确可靠        (reliable), 有价值且有用  (valuable and useful) 的数据, 重点改进初始训练集低质量问题,
   22   23   24   25   26   27   28   29   30   31   32