[论文解读] Neural Code Search Evaluation Dataset
本文提出了一项用于神经代码搜索的基准评估数据集,包含从 Stack Overflow 收集的 287 个自然语言查询,以及来自 GitHub 的相关代码片段和真实的方法级匹配结果。该研究使用 Answered@1、Answered@5 和 MRR 等指标评估了两种模型(NCS 和 UNIF),其中 UNIF stackoverflow 模型的 MRR 达到最高值 0.465。
There has been an increase of interest in code search using natural language. Assessing the performance of such code search models can be difficult without a readily available evaluation suite. In this paper, we present an evaluation dataset consisting of natural language query and code snippet pairs, with the hope that future work in this area can use this dataset as a common benchmark. We also provide the results of two code search models ([1] and [6]) from recent work. The evaluation dataset is available at https://github.com/facebookresearch/Neural-Code-Search-Evaluation-Dataset
研究动机与目标
- 为解决神经代码搜索模型评估缺乏标准化基准的问题。
- 提供一个可复现、公开可用的数据集,包含来自真实开发者问题的自然语言查询与对应代码片段匹配结果。
- 通过一致的评估指标,实现对代码搜索模型的系统性比较。
- 发布针对两种自定义模型(NCS 和 UNIF)的预评估结果,作为基线性能基准。
- 支持未来研究在真实、生产规模的语料库上学习自然语言与代码之间的语义映射。
提出的方法
- 从 24,549 个流行的 Android GitHub 仓库构建搜索语料库,按文件路径、方法名和行号索引 470 万个方法体。
- 收集 287 组 Stack Overflow 问题-答案对,筛选出具有高票代码答案、相关性高、且在搜索语料库中可匹配代码片段的问题。
- 使用 Aroma 代码相似度工具,设定 0.25 的阈值,自动验证语料库中的某个方法是否正确回答了查询。
- 构建两种模型:NCS(基于语料库中词嵌入的无监督模型)和 UNIF(基于注意力机制的神经网络监督模型,使用 GitHub 和 Stack Overflow 数据进行训练)。
- 在 NCS postrank 中应用后排序重排序,利用相似度得分提升 top-k 结果的质量。
- 使用 Answered@1、Answered@5、Answered@10 和均 reciprocated rank (MRR) 在全部 287 个查询上报告性能表现。
实验结果
研究问题
- RQ1标准化的、公开可用的数据集能否提升神经代码搜索研究中的可复现性与可比性?
- RQ2无监督与监督型神经代码搜索模型在真实开发者从 Stack Overflow 提出的查询上表现如何?
- RQ3后排序重排序在多大程度上提升了代码搜索模型的 top-k 检索性能?
- RQ4仅在 GitHub 数据上训练的模型与在 Stack Overflow 答案对上微调的模型之间,性能差距有多大?
- RQ5自动代码相似度度量(如 Aroma)在评估代码搜索正确性时,与人工判断的相关性如何?
主要发现
- UNIF stackoverflow 模型取得了最高的均 reciprocated rank (MRR) 值 0.465,优于所有其他模型。
- NCS postrank 模型相较于基础 NCS 模型有所提升,Answered@1 从 33 提高到 85,MRR 从 0.189 提升至 0.400。
- UNIF stackoverflow 在 top-1 结果中正确匹配了 104 个答案,显著优于 NCS(33 个)和 UNIF android(25 个)。
- NCS 模型性能最低,仅在 top-1 结果中正确回答了 33 个问题,MRR 为 0.189。
- UNIF stackoverflow 在 top-10 结果中正确匹配了 188 个答案,为所有模型中最高。
- Aroma 相似度阈值 0.25 在自动识别正确代码匹配方面表现有效,支持可扩展且可复现的评估。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。