评估少样本与对比学习方法在代码克隆检测中的表现
软件工程
2023-11-10 v3
摘要
背景:代码克隆检测(Code Clone Detection,CCD)是一项软件工程任务,用于剽窃检测、代码搜索和代码理解。近来,基于深度学习的模型在 CodeXGLUE 基准上取得了约 95% 的 F1 分数(一种用于评估分类器的指标)。这些模型需要大量训练数据,主要在 Java 或 C++ 数据集上微调。然而,此前尚无研究评估这些模型在仅有少量标注数据可用时的泛化能力。目标:本研究的主要目标是评估 CCD 模型以及少样本学习算法在未见编程问题与新型语言(即模型未在这些问题/语言上训练过)上的能力。方法:我们通过设定三种场景——i) 未见问题,ii) 未见语言,iii) 新语言与新问题组合——来评估最先进 CCD 模型在少样本设定(即仅用少量样本微调)下的泛化能力。我们选取 BigCloneBench、POJ-104 和 CodeNet 三个数据集以及 Java、C++ 和 Ruby 语言。随后,我们采用模型无关元学习(Model Agnostic Meta-learning,MAML),使模型学习一个能从训练集中提取可迁移知识的元学习器,从而可用少量样本进行微调。最后,我们将对比学习与 MAML 结合,以进一步研究其是否能改善 MAML 的结果。
引用
@article{arxiv.2204.07501,
title = {Evaluating few shot and Contrastive learning Methods for Code Clone Detection},
author = {Mohamad Khajezade and Fatemeh Hendijani Fard and Mohamed S. Shehata},
journal= {arXiv preprint arXiv:2204.07501},
year = {2023}
}