Publication Type
Journal Article
Version
acceptedVersion
Publication Date
1-2023
Abstract
Code search aims to retrieve accurate code snippets based on a natural language query to improve software productivity and quality. With the massive amount of available programs such as (on GitHub or Stack Overflow), identifying and localizing the precise code is critical for the software developers. In addition, Deep learning has recently been widely applied to different code-related scenarios, ., vulnerability detection, source code summarization. However, automated deep code search is still challenging since it requires a high-level semantic mapping between code and natural language queries. Most existing deep learning-based approaches for code search rely on the sequential text ., feeding the program and the query as a flat sequence of tokens to learn the program semantics while the structural information is not fully considered. Furthermore, the widely adopted Graph Neural Networks (GNNs) have proved their effectiveness in learning program semantics, however, they also suffer the problem of capturing the global dependencies in the constructed graph, which limits the model learning capacity. To address these challenges, in this paper, we design a novel neural network framework, named GraphSearchNet, to enable an effective and accurate source code search by jointly learning the rich semantics of both source code and natural language queries. Specifically, we propose to construct graphs for the source code and queries with bidirectional GGNN (BiGGNN) to capture the local structural information of the source code and queries. Furthermore, we enhance BiGGNN by utilizing the multi-head attention module to supplement the global dependencies that BiGGNN missed to improve the model learning capacity. The extensive experiments on Java and Python programming language from the public benchmark CodeSearchNet confirm that GraphSearchNet outperforms current state-of-the-art works by a significant margin.
Keywords
Code Search, Codes, Graph Neural Networks, Message passing, Multi-Head Attention, Natural languages, Semantics, Software, Source coding, Task analysis
Discipline
Databases and Information Systems | Numerical Analysis and Computation | Software Engineering
Research Areas
Data Science and Engineering
Publication
IEEE Transactions on Software Engineering
First Page
1
Last Page
16
ISSN
0098-5589
Identifier
10.1109/TSE.2022.3233901
Publisher
Institute of Electrical and Electronics Engineers
Citation
LIU, Shangqing; XIE, Xiaofei; SIOW, Jjingkai; MA, Lei; MENG, Guozhu; and LIU, Yang.
GraphSearchNet: Enhancing GNNs via capturing global dependencies for semantic code search. (2023). IEEE Transactions on Software Engineering. 1-16.
Available at: https://ink.library.smu.edu.sg/sis_research/7767
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/TSE.2022.3233901
Included in
Databases and Information Systems Commons, Numerical Analysis and Computation Commons, Software Engineering Commons