Skip to main content
QUICK REVIEW

[論文レビュー] Automatically Generating Commit Messages from Diffs using Neural Machine Translation

Siyuan Jiang, Ameer Armaly|arXiv (Cornell University)|Aug 30, 2017
Software Engineering Research参考文献 45被引用数 6
ひとこと要約

本論文では、トップGitHubプロジェクトの200万件のコミットメッセージペアから構成されるフィルタリング済みコーパスを用いて学習することで、コード差分から要約的で高水準のコミットメッセージを自動生成するためにニューラル機械翻訳(NMT)を提案する。この手法は一般的な変更パターンに対して優れた性能を示すが、新しい変更に対しては低品質な出力を生成する。品質保証フィルタにより、予測が信頼できない場合にユーザーに警告を発するよう対処し、出力の信頼性を顕著に向上させる。

ABSTRACT

Commit messages are a valuable resource in comprehension of software evolution, since they provide a record of changes such as feature additions and bug repairs. Unfortunately, programmers often neglect to write good commit messages. Different techniques have been proposed to help programmers by automatically writing these messages. These techniques are effective at describing what changed, but are often verbose and lack context for understanding the rationale behind a change. In contrast, humans write messages that are short and summarize the high level rationale. In this paper, we adapt Neural Machine Translation (NMT) to automatically "translate" diffs into commit messages. We trained an NMT algorithm using a corpus of diffs and human-written commit messages from the top 1k Github projects. We designed a filter to help ensure that we only trained the algorithm on higher-quality commit messages. Our evaluation uncovered a pattern in which the messages we generate tend to be either very high or very low quality. Therefore, we created a quality-assurance filter to detect cases in which we are unable to produce good messages, and return a warning instead.

研究の動機と目的

  • 低レベルの変更記述ではなく、高水準で根拠に基づいたコミットメッセージを自動生成するツールの不足に対処すること。
  • コード差分から要約的で人間らしく自然なコミットメッセージを自動生成することで、ソフトウェアの保守性を向上させること。
  • 繰り返しやパターン化された変更に対して特に、開発者の負担を軽減するため、コミットメッセージ作成を自動化すること。
  • 学習段階で低品質なコミットメッセージを特定・除外することで、モデルの信頼性を向上させること。
  • モデルが信頼できるメッセージを生成できない場合に検出する品質保証メカニズムを開発すること。

提案手法

  • トップ1,000個のGitHubプロジェクトから得たコード差分と人間が書いたコミットメッセージのペairを用いて、ニューラル機械翻訳(NMT)モデルを学習する。
  • 動詞+目的語(V-DO)パターンを適用して、高品質で文法的に整ったコミットメッセージのみを学習用に選別する。
  • アテンション機構を備えたエンコーダ・デコーダ型NMTアーキテクチャを用い、コード差分を自然言語のコミットメッセージにマッピングする。
  • モデルの信頼度を評価し、低信頼度の予測を人間のレビュー用にマークする品質保証フィルタを実装する。
  • 自動評価指標(例:BLEU、METEOR)と代表的なサンプルの人工評価を用いて、モデルの性能を評価する。
  • 研究の再現性と今後の研究を支援するため、完全なデータセットと実装を公開する。

実験結果

リサーチクエスチョン

  • RQ1ニューラル機械翻訳は、コード差分から要約的で根拠に基づいた高水準のコミットメッセージを効果的に生成できるか?
  • RQ2学習データの品質が、正確で要約的なコミットメッセージの生成能力にどのように影響するか?
  • RQ3モデルは、特に新しいあるいは繰り返しのない変更に対して、どの程度一般化できるか?
  • RQ4品質保証フィルタは、低信頼度の予測を効果的に検出し、誤った出力のリスクを低減できるか?
  • RQ5自動評価指標と人間によるメッセージ品質および関連性の判断の間には、どの程度相関があるか?

主な発見

  • NMTモデルは一般的で繰り返しのある変更パターンに対して優れた性能を示し、人間が書いた基準となるメッセージと非常に類似した出力を生成しており、人間による評価でも確認されている。
  • 生成されたメッセージの顕著な割合が低品質であり、特に新しいあるいは繰り返しのない変更に対して顕著で、学習済みパターンを超えた一般化能力に限界があることが示された。
  • 品質保証フィルタは、低品質な予測の数を著しく削減し、評価における極めて悪いメッセージ(スコア0)の割合を減少させた。
  • 人間の評価者により、多数の生成メッセージが基準となるメッセージと非常に近いと評価された(類似度が非常に高い)ため、一般的なケースでは優れた性能を示している。
  • 新しいインサイトを要する変更に対しては、モデルがメッセージを生成するのに苦労しており、これは過去のデータからのパターン学習の範囲を超えるためである。
  • 200万件のフィルタリング済みコミットメッセージペアと完全な実装が、研究の再現性と今後の研究を支援するために公開された。

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

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

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

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