Learning Semantic Vector Representations of Source Code via a Siamese Neural Network
This work addresses the challenge of improving code embeddings for software engineering tasks, but it is incremental as it builds on existing deep learning methods applied to source code.
The authors tackled the problem of learning semantic vector representations of Python source code using a Siamese recurrent neural network, resulting in a model that significantly outperformed a bag-of-tokens embedding in identifying which programming competition problem the code solves.
The abundance of open-source code, coupled with the success of recent advances in deep learning for natural language processing, has given rise to a promising new application of machine learning to source code. In this work, we explore the use of a Siamese recurrent neural network model on Python source code to create vectors which capture the semantics of code. We evaluate the quality of embeddings by identifying which problem from a programming competition the code solves. Our model significantly outperforms a bag-of-tokens embedding, providing promising results for improving code embeddings that can be used in future software engineering tasks.