Improving Code Example Recommendations on Informal Documentation Using BERT and Query-Aware LSH: A Comparative Study

要約

この研究は、ソフトウェア開発者を支援するためのコード例の推奨について調査するもので、すぐに使えるコードスニペットを提供することで、開発者の時間を大幅に節約するものである。我々の研究の焦点は、特にJavaプログラミング言語のコンテキストにおいて、コーディングの議論と解決策のために一般的に使用されているリソースであるStack Overflowである。我々は、意味情報を抽出することによってコード例を数値ベクトルに変換できる強力な大規模言語モデル(LLM)である BERT を適用した。これらの数値表現が準備されると、Locality-Sensitive Hashing(LSH)を使用して近似最近傍(ANN)を特定する。我々の研究では、ランダム超平面ベースのLSHと、クエリを考慮したLSHという2種類のLSHを採用した。この2つのアプローチを4つのパラメータで厳密に比較した:HitRate、Mean Reciprocal Rank (MRR)、平均実行時間、Relevanceである。その結果、クエリーアウェア(QA)手法はランダム超平面ベース(RH)手法よりも優れた性能を示した。具体的には、RH手法と比較して、クエリペアのHitRateにおいて20%から35%の顕著な改善を示した。さらに、ハッシュテーブルの作成とバケットへのデータサンプルの割り当ての速度は、少なくとも4倍速く、QAアプローチは時間効率が大幅に高いことが証明された。RHアプローチではコード例を推薦するのに通常数秒を要するのに対し、QAアプローチではミリ秒以内にコード例を返すことができる。QA手法の優れた性能のため、最新のベースラインであるPostFinderとFaCoYとテストした。我々のQA手法は同等の効率を示し、効果的なコード推薦の可能性を証明した。

要約(オリジナル)

Our research investigates the recommendation of code examples to aid software developers, a practice that saves developers significant time by providing ready-to-use code snippets. The focus of our study is Stack Overflow, a commonly used resource for coding discussions and solutions, particularly in the context of the Java programming language. We applied BERT, a powerful Large Language Model (LLM) that enables us to transform code examples into numerical vectors by extracting their semantic information. Once these numerical representations are prepared, we identify Approximate Nearest Neighbors (ANN) using Locality-Sensitive Hashing (LSH). Our research employed two variants of LSH: Random Hyperplane-based LSH and Query-Aware LSH. We rigorously compared these two approaches across four parameters: HitRate, Mean Reciprocal Rank (MRR), Average Execution Time, and Relevance. Our study revealed that the Query-Aware (QA) approach showed superior performance over the Random Hyperplane-based (RH) method. Specifically, it exhibited a notable improvement of 20\% to 35\% in HitRate for query pairs compared to the RH approach. Furthermore, the QA approach proved significantly more time-efficient, with its speed in creating hashing tables and assigning data samples to buckets being at least four times faster. It can return code examples within milliseconds, whereas the RH approach typically requires several seconds to recommend code examples. Due to the superior performance of the QA approach, we tested it against PostFinder and FaCoY, the state-of-the-art baselines. Our QA method showed comparable efficiency proving its potential for effective code recommendation.

arxiv情報

著者 Sajjad Rahmani,AmirHossein Naghshzan,Latifa Guerrouj
発行日 2023-11-06 17:50:37+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, DeepL

カテゴリー: cs.AI, cs.LG, cs.SE パーマリンク