中文

基于对比学习提升提交分类性能

软件工程 2023-08-17 v1

摘要

提交分类(Commit Classification, CC)是软件维护中的一项重要任务,它帮助软件开发人员根据其性质和目的将代码变更分类为不同类型。它使开发人员能够更好地了解其开发工作的进展,识别需要改进的领域,并就何时及如何发布新软件版本做出明智决策。然而,现有模型在微调过程中需要大量人工标注数据,且忽略了句子级语义信息,而后者对于发现不同提交之间的差异往往至关重要。因此,在少样本场景下解决 CC 仍然具有挑战性。为解决上述问题,我们提出了一种基于对比学习的提交分类框架。首先,我们根据数据集的标签生成 KK 个句子和伪标签,旨在增强数据集。其次,我们将增强数据随机分组 NN 次,以比较它们与正样本 TpCT_p^{|C|} 和负样本 TnCT_n^{|C|} 的相似度。我们利用独立的预训练句子 Transformer(ST)分别从不同特征高效获取句子级嵌入。最后,我们采用余弦相似度函数限制向量分布,使相似向量更为邻近。随后将轻量微调模型应用于新提交的分类预测。在两个公开数据集上的大量实验表明,我们的框架能在少样本场景下简单而有效地解决 CC 问题,同时达到最先进(SOTA)性能,并在无需大量训练样本进行微调的情况下提升模型适应性。代码、数据和训练模型可在 https://github.com/AppleMax1992/CommitFit 获取。

关键词

引用

@article{arxiv.2308.08263,
  title  = {Boosting Commit Classification with Contrastive Learning},
  author = {Jiajun Tong and Zhixiao Wang and Xiaobin Rui},
  journal= {arXiv preprint arXiv:2308.08263},
  year   = {2023}
}