MIXCODE:基于 Mixup 的数据增强提升代码分类
软件工程
2023-01-11 v2 人工智能
摘要
受深度神经网络(DNNs)在自然语言处理(NLP)中巨大成功的启发,DNNs 已越来越多地应用于源代码分析,并引起了软件工程界的显著关注。由于其数据驱动的特性,DNN 模型需要海量且高质量的标注训练数据以达到专家级性能。收集此类数据通常并不困难,但标注过程却极为费力。基于 DNN 的代码分析任务使情况更加严峻,因为源代码标注还要求精湛的专业知识。数据增强一直是计算机视觉与 NLP 等领域中补充训练数据的流行方法。然而,代码分析中的现有数据增强方法采用简单手段,如数据变换与对抗样本生成,因而带来的性能优势有限。在本文中,我们提出一种名为 MIXCODE 的数据增强方法,旨在有效补充有效训练数据,其灵感来自计算机视觉中近期名为 Mixup 的进展。具体而言,我们首先利用多种代码重构方法生成与原始数据标签一致的变换代码。然后,我们调整 Mixup 技术将原始代码与变换代码混合以扩充训练数据。我们在两种编程语言(Java 和 Python)、两项代码任务(问题分类与缺陷检测)、四个基准数据集(JAVA250、Python800、CodRep1 和 Refactory)以及七种模型架构(包括两个预训练模型 CodeBERT 和 GraphCodeBERT)上评估了 MIXCODE。实验结果表明,MIXCODE 在准确率上比基线数据增强方法最高提升 6.24%,在鲁棒性上最高提升 26.06%。
引用
@article{arxiv.2210.03003,
title = {MIXCODE: Enhancing Code Classification by Mixup-Based Data Augmentation},
author = {Zeming Dong and Qiang Hu and Yuejun Guo and Maxime Cordy and Mike Papadakis and Zhenya Zhang and Yves Le Traon and Jianjun Zhao},
journal= {arXiv preprint arXiv:2210.03003},
year = {2023}
}
备注
Accepted by SANER 2023