Code search aims to retrieve the accurate code fragments based on a natural language query to improve the software productivity and quality. However, automated deep code search is still challenging due to the semantic gap between the program and the natural language query. Most existing deep learning-based approaches for code search rely on the sequential text eg., feeding the program and the query as a flat sequence of tokens to learn the program semantics and the structural information for both program and the query is not fully considered. Furthermore, the widely adopted Graph Neural Networks (GNNs) have proved the effectiveness in learning program semantics, however they also suffer from capturing the global dependency between any pair of nodes in the constructed graph, which hinder the model learning capacity. In this paper, to address these challenges, we design a novel neural network framework, named GraphSearchNet, to enable an effective and accurate source code search by jointly learning rich semantics of both source code and natural language queries. Specifically, we propose to encode both source code and queries into two separated graphs with Bidirectional GGNN to capture the local structural information of the programs and queries. We further enhance it by utilizing the effective multi-head attention mechanism to supplement the global dependency that BiGGNN missed to improve the model learning capacity. The extensive experiments on both Java and Python language from the public benchmark illustrate that GraphSearchNet outperforms current state-of-the-art works by a significant margin. We further conduct a quantitative analysis based on the real queries to further illustrate the effectiveness of our approach.


翻译:代码搜索的目的是在自然语言查询的基础上检索精确的代码碎片,以提高软件生产率和质量。然而,由于程序与自然语言查询之间的语义差异,自动深度代码搜索仍然具有挑战性。大多数现有的深层次基于学习的代码搜索方法依赖于顺序文字,例如,将程序与查询作为统一象征序列,用于学习程序语义和对程序的结构信息,而查询没有得到充分考虑。此外,广泛采用的图形神经网络(GNNS)已证明了学习程序语义质量的有效性,但是,由于在构建的图形中找到任何一组节点之间的全球依赖性,从而阻碍了模型学习能力。为了应对这些挑战,我们设计了一个新的神经网络框架,名为Greaph SearchNet, 以便通过共同学习丰富的源代码和自然语言查询的语义来进行有效和准确的源代码搜索。具体地说,我们提议将源代码和查询都编码成两个分离的图形,与Bidirectal GNNNNN进一步分解, 以捕捉到当前程序的结构信息,从而从数据库中获取大量的基础实验能力。我们用多式的模型来进一步改进全球模型,从而改进全球数据库的模型,从而改进全球数据库的模型的模型,从而改进全球数据库的模型的模型,从而改进全球数据库的模型的学习。

0
下载
关闭预览

相关内容

《计算机信息》杂志发表高质量的论文,扩大了运筹学和计算的范围,寻求有关理论、方法、实验、系统和应用方面的原创研究论文、新颖的调查和教程论文,以及描述新的和有用的软件工具的论文。官网链接:https://pubsonline.informs.org/journal/ijoc
专知会员服务
51+阅读 · 2021年5月30日
【NeurIPS 2020】通过双向传播的可扩展图神经网络
专知会员服务
27+阅读 · 2020年11月3日
【NeurIPS2020-MIT】子图神经网络,Subgraph Neural Networks
专知会员服务
45+阅读 · 2020年9月28日
【清华大学】图随机神经网络,Graph Random Neural Networks
专知会员服务
154+阅读 · 2020年5月26日
【快讯】CVPR2020结果出炉,1470篇上榜, 你的paper中了吗?
Graph Neural Networks 综述
计算机视觉life
29+阅读 · 2019年8月13日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Facebook PyText 在 Github 上开源了
AINLP
7+阅读 · 2018年12月14日
开发者应当了解的18套机器学习平台
深度学习世界
5+阅读 · 2018年8月14日
可解释的CNN
CreateAMind
17+阅读 · 2017年10月5日
Arxiv
1+阅读 · 2022年2月15日
VIP会员
相关VIP内容
专知会员服务
51+阅读 · 2021年5月30日
【NeurIPS 2020】通过双向传播的可扩展图神经网络
专知会员服务
27+阅读 · 2020年11月3日
【NeurIPS2020-MIT】子图神经网络,Subgraph Neural Networks
专知会员服务
45+阅读 · 2020年9月28日
【清华大学】图随机神经网络,Graph Random Neural Networks
专知会员服务
154+阅读 · 2020年5月26日
【快讯】CVPR2020结果出炉,1470篇上榜, 你的paper中了吗?
相关资讯
Graph Neural Networks 综述
计算机视觉life
29+阅读 · 2019年8月13日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Facebook PyText 在 Github 上开源了
AINLP
7+阅读 · 2018年12月14日
开发者应当了解的18套机器学习平台
深度学习世界
5+阅读 · 2018年8月14日
可解释的CNN
CreateAMind
17+阅读 · 2017年10月5日
Top
微信扫码咨询专知VIP会员