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

要約

私たちの調査では、ソフトウェア開発者を支援するためのコード例の推奨について調査しています。これは、すぐに使用できるコード スニペットを提供することで開発者の時間を大幅に節約する実践です。
私たちの研究の焦点は、特に Java プログラミング言語のコンテキストで、コーディングのディスカッションやソリューションに一般的に使用されるリソースである Stack Overflow です。
私たちは、強力なラージ言語モデル (LLM) である BERT を適用しました。これにより、意味情報を抽出することでコード サンプルを数値ベクトルに変換できます。
これらの数値表現が準備されたら、局所性依存ハッシュ (LSH) を使用して近似最近傍 (ANN) を識別します。
私たちの研究では、ランダム ハイパープレーン ベースの LSH とクエリ認識 LSH の 2 つの LSH バリアントを使用しました。
これら 2 つのアプローチを、HitRate、平均相互ランク (MRR)、平均実行時間、および関連性の 4 つのパラメータにわたって厳密に比較しました。
私たちの調査では、クエリ対応 (QA) アプローチがランダム ハイパープレーン ベース (RH) 手法よりも優れたパフォーマンスを示したことが明らかになりました。
具体的には、RH アプローチと比較して、クエリ ペアの HitRate が 20% ~ 35% という顕著な向上を示しました。
さらに、QA アプローチは時間効率が大幅に向上し、ハッシュ テーブルの作成とデータ サンプルのバケットへの割り当ての速度が少なくとも 4 倍高速であることが判明しました。
RH アプローチでは通常、コード例を推奨するのに数秒かかりますが、コード例は数ミリ秒以内に返されます。
QA アプローチのパフォーマンスが優れているため、最先端のベースラインである PostFinder と FaCoY に対して QA アプローチをテストしました。
当社の 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-07-20 16:05:39+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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