Skip to main content
QUICK REVIEW

[論文レビュー] Automatic Source Code Summarization with Extended Tree-LSTM

Yusuke Shido, Yasuaki Kobayashi|arXiv (Cornell University)|Jun 19, 2019
Natural Language Processing Techniques参考文献 29被引用数 10
ひとこと要約

本稿では、任意の順序・任意の子ノード数を持つノードを扱える抽象構文木(AST)を効果的に処理できる Tree-LSTM の拡張版である Multi-way Tree-LSTM を提案する。これは、ソースコードに一般的に見られる構造を捉えることで、より優れたソースコード要約を実現する。コードコメントデータセット上で評価した結果、特に複雑なASTに対して最先端の手法を上回り、人間が書いた要約よりも表現力に富んだ要約を生成した。

ABSTRACT

Neural machine translation models are used to automatically generate a document from given source code since this can be regarded as a machine translation task. Source code summarization is one of the components for automatic document generation, which generates a summary in natural language from given source code. This suggests that techniques used in neural machine translation, such as Long Short-Term Memory (LSTM), can be used for source code summarization. However, there is a considerable difference between source code and natural language: Source code is essentially {\em structured}, having loops and conditional branching, etc. Therefore, there is some obstacle to apply known machine translation models to source code. Abstract syntax trees (ASTs) capture these structural properties and play an important role in recent machine learning studies on source code. Tree-LSTM is proposed as a generalization of LSTMs for tree-structured data. However, there is a critical issue when applying it to ASTs: It cannot handle a tree that contains nodes having an arbitrary number of children and their order simultaneously, which ASTs generally have such nodes. To address this issue, we propose an extension of Tree-LSTM, which we call \emph{Multi-way Tree-LSTM} and apply it for source code summarization. As a result of computational experiments, our proposal achieved better results when compared with several state-of-the-art techniques.

研究の動機と目的

  • 子ノードの数が任意で、かつ順序が保たれるノードを有するASTを扱えるように、従来の Tree-LSTM モデルの制限を解消すること。
  • コードをフラットなシーケンスとして扱う代わりに、AST内の構造的情報を活用することで、ソースコード要約の性能を向上させること。
  • 階層的かつ順序付けられたプログラム構造を効果的に捉えるニューラルネットワークアーキテクチャを設計し、より優れたコードからテキストへの変換を実現すること。
  • 提案された Multi-way Tree-LSTM を基盤とするツリー構造モデルが、標準LSTMなどの順序モデルに比べ、コード要約タスクで優れた性能を示すことを実証すること。
  • 既存の手法、特に人間がアノテートしたコメントを含め、より表現力に富み、正確な自然言語要約を生成すること。

提案手法

  • 従来の Tree-LSTM の変種における主な制限である、子ノード数が任意で順序が保たれるノードを扱えるように、Tree-LSTMアーキテクチャを拡張すること。
  • 子ノードの表現を学習可能なゲートを介して集約することで、隠れ状態を計算する微分可能で、構造的および順序的情報を保持するニューラルユニットを設計すること。
  • ASTを密なベクトル表現にマッピングするエンコーダとして Multi-way Tree-LSTM を使用し、シーケンス・トゥ・シーケンスモデルを構築することで、コード要約に応用すること。
  • 標準的なニューラル機械翻訳の訓練目的関数を用いて、大規模なメソッドコードペアと対応するドキュメンテーションコメントからなるデータセット上で、エンド・トゥ・エンドにモデルを訓練すること。
  • エンコーダ(Multi-way Tree-LSTM)とデコーダ(LSTM)の間でアテンション機構を適用し、コード構造と自然言語出力の間の対応を強化すること。
  • 交差エントロピー損失と構造を介した誤差逆伝播を用いてモデルを最適化し、ツリー構造入力上で勾配ベースの学習を可能にすること。

実験結果

リサーチクエスチョン

  • RQ1任意の数の順序付き子ノードを持つASTを効果的にモデル化できるように、変更された Tree-LSTM アーキテクチャは、実際のプログラミング言語に一般的に見られる構造を扱えるか?
  • RQ2標準LSTMなどの順序モデルと比較して、ツリー構造のエンコーダ(Multi-way Tree-LSTM)を用いることで、コード要約の性能が向上するか?
  • RQ3ノード数や最大ノード次数といったASTの複雑さに応じて、モデルの性能はどのように変化するか?
  • RQ4生成された要約は、訓練データ内の人間が書いたドキュメンテーションよりも表現力が豊かであるか、意味的に豊かであるか?
  • RQ5提案されたモデルは、さまざまなコメント長さや構造的パターンにわたって一般化できるか?

主な発見

  • 提案された Multi-way Tree-LSTM は、特にノード数が多く、または高次ノードを持つ複雑なASTに対して、既存の最先端手法を顕著に上回る性能を示した。
  • 1層構造の Multi-way Tree-LSTM モデルは、ベースラインモデルと比較して、特に大規模または深くネストされたASTを持つコードの要約において、BLEU-4スコアが優れた結果を達成した。
  • モデルは正確な要約を生成するだけでなく、いくつかの事例では元の人の要約よりも表現力に富んだ要約を生成しており、意味的理解の向上を示している。
  • ノード数が多く、最大ノード次数が高いASTに対して性能向上が顕著に現れ、複雑なコード構造の処理におけるモデルの強みが裏付けられた。
  • コメント長にかかわらず一貫した性能を維持したが、特に中程度の長さの要約を生成する際の優位性が顕著に現れた。
  • 定性的な分析から、生成された要約は文法的に自然で意味的に正確であり、場合によっては元のコメントをより自然または情報豊かに再表現していることが確認された。

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

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

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

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