NS3: Neuro-Symbolic Semantic Code Search
Semantic code search is the task of retrieving a code snippet given a textual
description of its functionality. Recent work has been focused on using
similarity metrics between neural embeddings of text and code. However, current
language models are known to struggle with longer, compositional text, and
multi-step reasoning. To overcome this limitation, we propose supplementing the
query sentence with a layout of its semantic structure. The semantic layout is
used to break down the final reasoning decision into a series of lower-level
decisions. We use a Neural Module Network architecture to implement this idea.
We compare our model - NS3 (Neuro-Symbolic Semantic Search) - to a number of
baselines, including state-of-the-art semantic code retrieval methods, and
evaluate on two datasets - CodeSearchNet and Code Search and Question
Answering. We demonstrate that our approach results in more precise code
retrieval, and we study the effectiveness of our modular design when handling
compositional queries.