English

CCBERT: Self-Supervised Code Change Representation Learning

Software Engineering 2023-09-28 v1

Abstract

Numerous code changes are made by developers in their daily work, and a superior representation of code changes is desired for effective code change analysis. Recently, Hoang et al. proposed CC2Vec, a neural network-based approach that learns a distributed representation of code changes to capture the semantic intent of the changes. Despite demonstrated effectiveness in multiple tasks, CC2Vec has several limitations: 1) it considers only coarse-grained information about code changes, and 2) it relies on log messages rather than the self-contained content of the code changes. In this work, we propose CCBERT (\underline{C}ode \underline{C}hange \underline{BERT}), a new Transformer-based pre-trained model that learns a generic representation of code changes based on a large-scale dataset containing massive unlabeled code changes. CCBERT is pre-trained on four proposed self-supervised objectives that are specialized for learning code change representations based on the contents of code changes. CCBERT perceives fine-grained code changes at the token level by learning from the old and new versions of the content, along with the edit actions. Our experiments demonstrate that CCBERT significantly outperforms CC2Vec or the state-of-the-art approaches of the downstream tasks by 7.7\%--14.0\% in terms of different metrics and tasks. CCBERT consistently outperforms large pre-trained code models, such as CodeBERT, while requiring 6--10×\times less training time, 5--30×\times less inference time, and 7.9×\times less GPU memory.

Keywords

Cite

@article{arxiv.2309.15474,
  title  = {CCBERT: Self-Supervised Code Change Representation Learning},
  author = {Xin Zhou and Bowen Xu and DongGyun Han and Zhou Yang and Junda He and David Lo},
  journal= {arXiv preprint arXiv:2309.15474},
  year   = {2023}
}

Comments

12 Pages; Accepted in the Main Track of The International Conference on Software Maintenance and Evolution (ICSME) 2023