Page 127 - 《软件学报》2025年第9期
P. 127
4038 软件学报 2025 年第 36 卷第 9 期
学习, 作为多模态表示学习的主要类别, 它在给定的约束下可以分别处理不同模式的数据, 并将它们带入协同空
间. 我们最近的研究 [14] 也表明, 将 bug 报告文本和 bug-开发人员二部图进行融合, 比单一的文本信息更能够全面
地表达 bug 报告和开发人员的语义以及他们之间的相关性. 因此, 为了解决上述问题, 本文受多模态机器学习和协
同过滤 (collaborative filtering, CF) 在推荐系统及社交网络等领域对实体关系挖掘的预训练模型启发 [15,16] , 将 bug
报告文本数据和 bug-开发者二部图数据作为两种不同模态的数据, 提出了一种多模态融合的软件缺陷协同分派方
[2]
法——CBT-MF, 如图 2 所示. 首先, 为了减小噪声影响, 通过文本清洗、Word2Vec 等技术进行 bug 报告文本预
处理, 同时, 为了挖掘 bug 和开发者之间的相关性, 构建了 bug-开发人员二部图. 其次, 针对 bug 修复记录的不均衡
性, CBT-MF 采用 K-means 和正负采样的方法对数据样本进行增强和二部图重构, 降低了由于 bug 修复记录不均
衡性带来的过拟合风险. 随后, 为了丰富 bug 和开发者的表征信息并挖掘 bug 与开发者关系, 基于图卷积神经网络
模型融合 bug 报告文本模态和二部图模态数据, 经多层卷积后捕获了二部图的节点语义和结构特征, 实现了 bug
和开发者的深度表征及二者关系的提取. 最后, 为了实现 bug 和开发者的相关性匹配, CBT-MF 将 bug 分派任务转
化为图协同过滤 (graph collaborative filtering, GCF) 的 bug-开发人员二部图链接预测, 并基于内积匹配和贝叶斯个
性化排序 (Bayesian personalized ranking, BPR) 得到了 bug 分派的推荐方案, 最终实现了 bug 分派推荐.
Step 1: 数据预处理 Step 2: 数据增强 Step 3: 协同分派建模 Step 4: 协同分派推荐
Bug 报告 Bug语义 开发者语 Bug表征 开发者表
信息 义信息 向量 分 征向量
原型
文 派
聚类 本 推
模 荐
态
正样本 记录 负样本
文本分词、清洗、词向量转换 抽样 内积匹配
邻节点 邻节点
Bug 修复记录
b 1 相关性挖掘 BPR
b 1
d 1 d 1 图
b 2
b 2
形 Bug分派列表
b 3
b 3
d 2 模 Bug 开发者
d 2
b 4 态
b 4 581698 Vasili@gmail.com
···
b n−1 ··· 432700 LTTng@aol.com
b n−1
d n 185699 Dario@msn.com
b n d n
构建二部图 增强二部图 b n 图卷积 ··· ···
图 2 CBT-MF 缺陷分派思路
具体地讲, 本文主要研究贡献包含以下 4 点.
(1) 设计一个 CBT-MF 方法框架. 该框架由数据预处理、数据增强、多模态数据融合及 bug 分派推荐这 4 部
分构成. 在该框架的指导下, 可以缓解 bug 修复记录不均衡性影响, 并充分地利用开发者信息挖掘、建模其与 bug
的相关性, 提高 bug 分派效能.
(2) 提出一个 bug 和开发者文本与图数据的增强方案. 一方面采用 K-means 对 bug 报告进行原型聚类; 另一方
面, 通过正负采样的方式进行新记录抽样. 缓解了两种模态数据中修复记录不均衡性对分派预测结果的影响, 为深
度挖掘 bug 和开发者之间的相关性提供了支持.
(3) 构建一个基于图卷积神经网络的协同分派模型. 通过定义节点之间的消息传递方式和聚合规则, 进行节点
特征表示的更新, 并将 bug 报告和开发者的特征及其关系映射到同一个协同空间, 从而实现 bug 报告文本和二部
图数据的融合, 丰富了 bug 和开发者表征信息, 更好地捕捉 bug 和开发者之间的相关性.
(4) 在 Google Chromium、Mozilla Core 及 Mozilla Firefox 数据集上对 CBT-MF 进行了广泛的实验评估. 通过
与文本模态分类、相关性匹配及基于 CF 的 3 类方法对比, 评估了 CBT-MF 对 bug 分派的性能; 又通过分组对比
和消融实验证明了 CBT-MF 可以缓解数据不均衡性与文本数据模态对 bug 分派产生的影响; 此外, 还详细分析了
CBT-MF 对采样尺度、聚类质心数、图卷积层数的敏感性. 这些评估实验为 CBT-MF 后续研究与应用提供了建

