Skip to main content
QUICK REVIEW

[論文レビュー] Deep API Learning

Xiaodong Gu, Hongyu Zhang|arXiv (Cornell University)|May 27, 2016
Software Engineering Research参考文献 42被引用数 35
ひとこと要約

DeepAPIは、自然言語クエリから正確なAPI使用シーケンスを生成するために、RNNエンコーダデコーダモデルを用いたディープラーニングアプローチを提案する。キーワードマッチングを超えて意味的意味を捉えることで、700万件のGitHubコードスニペットで評価され、従来の情報検索ベースの手法よりもシーケンス精度で優れている。

ABSTRACT

Developers often wonder how to implement a certain functionality (e.g., how to parse XML files) using APIs. Obtaining an API usage sequence based on an API-related natural language query is very helpful in this regard. Given a query, existing approaches utilize information retrieval models to search for matching API sequences. These approaches treat queries and APIs as bag-of-words (i.e., keyword matching or word-to-word alignment) and lack a deep understanding of the semantics of the query. We propose DeepAPI, a deep learning based approach to generate API usage sequences for a given natural language query. Instead of a bags-of-words assumption, it learns the sequence of words in a query and the sequence of associated APIs. DeepAPI adapts a neural language model named RNN Encoder-Decoder. It encodes a word sequence (user query) into a fixed-length context vector, and generates an API sequence based on the context vector. We also augment the RNN Encoder-Decoder by considering the importance of individual APIs. We empirically evaluate our approach with more than 7 million annotated code snippets collected from GitHub. The results show that our approach generates largely accurate API sequences and outperforms the related approaches.

研究の動機と目的

  • 既存のAPI推薦システムがbag-of-wordsモデルに依存しており、ユーザークエリの意味的理解に欠けるという限界を解決すること。
  • 自然言語クエリと対応するAPI呼び出しの両方の順序構造をモデル化することで、意味的に正確なAPI使用シーケンスを生成すること。
  • ディープラーニングを用いて、実世界のプログラミングシナリオにおけるAPI推薦の精度と関連性を向上させること。
  • 生成プロセスにおいて個々のAPIの重要性を組み込むことで、シーケンス品質を向上させること。

提案手法

  • 自然言語クエリを固定長のコンテキストベクトルにマップするため、RNNベースのエンコーダデコーダアーキテクチャを適応する。
  • 再帰的エンコーダネットワークを用いて、入力クエリを単語のシーケンスとしてコンテキストベクトルに符号化する。
  • エンコーディングされた表現に対するアテンションを用いたデコーダRNNにより、コンテキストベクトルから段階的にAPIシーケンスを生成する。
  • シーケンス生成中に個々のAPIの重要性を重みづけするメカニズムをRNNモデルに拡張する。
  • GitHubの700万件のアノテート済みコードスニペットを用いて、クエリからAPIへのマッピングを学習するため、エンドツーエンドでモデルを訓練する。
  • アテンションを用いたシーケンスツーセクエンス学習により、クエリの意味とAPIシーケンスの整合性を向上させる。

実験結果

リサーチクエスチョン

  • RQ1ディープラーニングモデルは、キーワードマッチングに基づく情報検索ベースのモデルよりも、より正確なAPI使用シーケンスを生成できるか?
  • RQ2クエリとAPIの両方の順序構造をモデル化することで、推薦品質がどの程度向上するか?
  • RQ3APIの重要性を組み込むことで、生成されたシーケンスの関連性はどの程度向上するか?
  • RQ4モデルは多様なプログラミングタスクやAPIドメインにどの程度一般化できるか?

主な発見

  • DeepAPIは、正確なAPI使用シーケンスを生成する点で、既存の情報検索ベースのアプローチを著しく上回っている。
  • キーワードマッチングを超えた意味的意味を捉えることで、正しいAPIシーケンスの推薦において高い精度と再現率を達成している。
  • 生成プロセス中にAPIの重要性を組み込むことで、推薦シーケンスの品質と関連性が向上している。
  • アテンションを備えたRNNエンコーダデコーダフレームワークにより、自然言語クエリからAPIコードへの有効なシーケンスツーセクエンスマッピングが可能になっている。
  • 700万件のGitHubコードスニペットを用いた実証的評価により、モデルの頑健性とスケーラビリティが確認された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。