Skip to main content
QUICK REVIEW

[論文レビュー] DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning

Xiaodong Gu, Hongyu Zhang|arXiv (Cornell University)|Apr 25, 2017
Software Engineering Research参考文献 11被引用数 17
ひとこと要約

DeepAM は、大規模なコードコーパス上でマルチモodalなシーケンス・ツー・シーケンス学習を用いて API シーケンスの共同意味的埋め込みを学習することで、プログラミング言語間での自動 API 移行を可能にするディーブラーニングシステムである。808,488 個の API マッピングを抽出し、StaMiner よりも 8 倍以上多く、高い正確性(88.2% の正答率)を維持しながら 72.4% のアライメント正答率を達成し、従来の IR ベースのアプローチを上回る。

ABSTRACT

Computer programs written in one language are often required to be ported to other languages to support multiple devices and environments. When programs use language specific APIs (Application Programming Interfaces), it is very challenging to migrate these APIs to the corresponding APIs written in other languages. Existing approaches mine API mappings from projects that have corresponding versions in two languages. They rely on the sparse availability of bilingual projects, thus producing a limited number of API mappings. In this paper, we propose an intelligent system called DeepAM for automatically mining API mappings from a large-scale code corpus without bilingual projects. The key component of DeepAM is based on the multimodal sequence to sequence learning architecture that aims to learn joint semantic representations of bilingual API sequences from big source code data. Experimental results indicate that DeepAM significantly increases the accuracy of API mappings as well as the number of API mappings, when compared with the state-of-the-art approaches.

研究の動機と目的

  • 既存の移行ツールにおける利用可能な API マッピングの数を制限している二か国語プロジェクトの不足に対処する。
  • 移行ルールを手動で定義する作業を減らすために、異なる言語間で同等の API シーケンスを自動で発見する。
  • 大規模なコメント付きコードコーパスから学習することで、より洗練された意味的表現を用いて API マッピングの正確性とカバレッジを向上させる。
  • 対応するソース言語およびターゲット言語のプロジェクトを必要とせずに API マッピングを抽出できるようにする。

提案手法

  • 1,000万個のコードスニペットから成る大規模コーパス内のコメント付きコードスニペットから、API シーケンスとその自然言語的説明を抽出する。
  • マルチモダリティ・シーケンス・ツー・シーケンス学習モデルを適用し、ソース言語およびターゲット言語の API シーケンスを共通の高次元意味的空間に埋め込む。
  • これらの共同埋め込みを用いて、ベクトルの類似度を測定することで、異なる言語間で意味的に類似した API シーケンスをアライメントする。
  • アライメントされたシーケンスを活用し、統計的機械翻訳技術を用いて一般的な API マッピングを抽出する。
  • API シーケンスとそのテキスト的説明を同時にモデル化する深層ニューラルネットワークアーキテクチャを採用し、従来の浅いモデルよりも洗練された意味的表現を学習する。
  • 500組のランダムに抽出されたペアの手動による検査を通じてアライメント品質を検証し、テキスト類似度を用いた IR ベースのベースラインと性能を比較する。

実験結果

リサーチクエスチョン

  • RQ1二か国語プロジェクトに依存せずに、プログラミング言語間の API シーケンスの共同意味的表現を深層学習モデルが効果的に学習できるか。
  • RQ2マルチモダリティ・シーケンス・ツー・シーケンス学習の性能は、従来の IR ベースの手法と比較して、同等の API シーケンスをアライメントする際にどう異なるか。
  • RQ3提案手法は、最先端のアプローチと比較して、抽出された API マッピングの数のスケーリングにおいてどの程度の拡張性を示せるか。
  • RQ4より複雑にマッピングが難しい長めの API シーケンスに対しても、モデルは高い正確性を維持できるか。

主な発見

  • DeepAM は 808,488 個の API マッピングを抽出した。これは StaMiner の 100,825 個を大きく上回り、カバレッジの大幅な拡大を示している。
  • DeepAM のマッピングの正答率は 88.2% に達し、StaMiner の 87.1% よりわずかに高い。これは、規模が拡大しても同等またはより優れた品質を示している。
  • DeepAM のアライメント正答率は 72.4% であり、IR ベースのベースラインの 40.8% よりも顕著に優れており、意味的埋め込みの有効性を裏付けている。
  • DeepAM は特に 'ファイルをコピーする' や 'オーディオを再生する' のような長めの API シーケンスにおいて、顕著な性能を発揮しており、従来の手法が苦手とする分野でも優れた結果を示している。
  • 二か国語プロジェクトを必要とせず、大規模コードコーパスから学習できる点が、実世界のコード移行における広範な適用可能性とスケーラビリティを実現している。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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