Revisiting code search in a two-stage paradigm

F Hu, Y Wang, L Du, X Li, H Zhang, S Han… - Proceedings of the …, 2023 - dl.acm.org
Proceedings of the Sixteenth ACM International Conference on Web Search and …, 2023dl.acm.org
With a good code search engine, developers can reuse existing code snippets and
accelerate software development process. Current code search methods can be divided into
two categories: traditional information retrieval (IR) based and deep learning (DL) based
approaches. DL-based approaches include the cross-encoder paradigm and the bi-encoder
paradigm. However, both approaches have certain limitations. The inference of IR-based
and bi-encoder models are fast; however, they are not accurate enough; while cross …
With a good code search engine, developers can reuse existing code snippets and accelerate software development process. Current code search methods can be divided into two categories: traditional information retrieval (IR) based and deep learning (DL) based approaches. DL-based approaches include the cross-encoder paradigm and the bi-encoder paradigm. However, both approaches have certain limitations. The inference of IR-based and bi-encoder models are fast; however, they are not accurate enough; while cross-encoder models can achieve higher search accuracy but consume more time. In this work, we propose TOSS, a two-stage fusion code search framework that can combine the advantages of different code search methods. TOSS first uses IR-based and bi-encoder models to efficiently recall a small number of top-K code candidates, and then uses fine-grained cross-encoders for finer ranking. Furthermore, we conduct extensive experiments on different code candidate volumes and multiple programming languages to verify the effectiveness of TOSS. We also compare TOSS with six data fusion methods. Experimental results show that TOSS is not only efficient, but also achieves state-of-the-art accuracy with an overall mean reciprocal ranking (MRR) score of 0.763, compared to the best baseline result on the CodeSearchNet benchmark of 0.713.
ACM Digital Library
Showing the best result for this search. See all results