Litcius/Paper detail

All you need is logs: improving code completion by learning from anonymous IDE usage logs

Vitaliy Bibaev, Alexey Kalina, Vadim Lomshakov, Yaroslav Golubev, Alexander Bezzubov, Nikita Povarov, Timofey Bryksin

2022Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering12 citationsDOI

Abstract

In this work, we propose an approach for collecting completion usage logs from the users in an IDE and using them to train a machine learning based model for ranking completion candidates. We developed a set of features that describe completion candidates and their context, and deployed their anonymized collection in the Early Access Program of IntelliJ-based IDEs. We used the logs to collect a dataset of code completions from users, and employed it to train a ranking CatBoost model. Then, we evaluated it in two settings: on a held-out set of the collected completions and in a separate A/B test on two different groups of users in the IDE. Our evaluation shows that using a simple ranking model trained on the past user behavior logs significantly improved code completion experience. Compared to the default heuristics-based ranking, our model demonstrated a decrease in the number of typing actions necessary to perform the completion in the IDE from 2.073 to 1.832.

Topics & Concepts

Computer scienceRanking (information retrieval)HeuristicsCode (set theory)Context (archaeology)Set (abstract data type)Machine learningArtificial intelligenceSource codeDatabaseInformation retrievalProgramming languageOperating systemPaleontologyBiologySoftware Engineering ResearchMobile Crowdsensing and CrowdsourcingData Quality and Management
All you need is logs: improving code completion by learning from anonymous IDE usage logs | Litcius