Skip to main content
QUICK REVIEW

[論文レビュー] Code Generation as a Dual Task of Code Summarization

Bolin Wei, Ge Li|arXiv (Cornell University)|Oct 14, 2019
Software Engineering Research被引用数 64
ひとこと要約

この論文は、コード要約(CS)とコード生成(CG)モデルを共同訓練するデュアル学習フレームワークを提案し、確率的二重性とアテンション重みの対称性を課すことで、JavaとPythonのデータセット全体で両タスクの性能を向上させる。

ABSTRACT

Code summarization (CS) and code generation (CG) are two crucial tasks in the field of automatic software development. Various neural network-based approaches are proposed to solve these two tasks separately. However, there exists a specific intuitive correlation between CS and CG, which have not been exploited in previous work. In this paper, we apply the relations between two tasks to improve the performance of both tasks. In other words, exploiting the duality between the two tasks, we propose a dual training framework to train the two tasks simultaneously. In this framework, we consider the dualities on probability and attention weights, and design corresponding regularization terms to constrain the duality. We evaluate our approach on two datasets collected from GitHub, and experimental results show that our dual framework can improve the performance of CS and CG tasks over baselines.

研究の動機と目的

  • CSとCGの内在的な二重性を活用して、両方のタスクを改善する動機づけ。
  • 確率的およびアテンションベースの制約を介してCSとCGを結合する共同訓練フレームワークを開発する。
  • 複数のデータセットでデュアル訓練が最先端のベースラインより改善をもたらすことを実証する。

提案手法

  • CS(コードからコメントへ)とCG(コメントからコードへ)のために、エンコーダ–デコーダとアテンションを用いたSeq2Seqを使用する。
  • 確率的二重性に基づくデュアル損失項を導入する:l_dualはP(x|y)とP(y|x)およびそれらの周辺分布に基づく。
  • トークンごとの注意分布間のJensen–Shannonダイバージェンスを用いてCSとCGのアテンションを整列させることで、アテンション二重性制約を課す。
  • CSとCGモデルの個別パラメータを持ちながら、共通のデュアル制約を用いてウォームスタートしたモデルで訓練する、結合最適化を適用する。
  • JavaとPythonデータセットで、CSに対してBLEU、METEOR、ROUGE-L、CGにはBLEU(および有効コードの割合)を用いて評価する。

実験結果

リサーチクエスチョン

  • RQ1CS↔CG二重性を活用したデュアル訓練フレームワークは、生成されるコメントとコードの品質を向上させることができるか?
  • RQ2確率的二重性とアテンションベースの制約は、CSとCGの性能向上に寄与するか?
  • RQ3独立訓練と比較して、結合訓練はコードの有効性とアテンション分布にどのような影響を与えるか?
  • RQ4JavaおよびPythonデータセットにおけるCSおよびCGタスクの実証的向上はどれくらいか?

主な発見

手法Java BLEUJava METEORJava ROUGE-LPython BLEUPython METEORPython ROUGE-L
CODE-NN27.6012.6141.1017.369.28837.81
DeepCom39.7523.0652.679.97937.35
Tree2Seq37.8822.5551.508.95735.64
RL+Hybrid2Seq38.2222.7551.919.75239.34
API+CODE41.3123.7352.2515.3633.65
Basic Model41.0123.2651.6420.4738.77
Dual Model42.3925.7753.6121.8039.45
  • デュアルモデルは、JavaとPythonの両方についてCS指標(BLEU、METEOR、ROUGE-L)で一貫してすべてのベースラインを上回る。
  • JavaおよびPythonのCSで、デュアルモデルは比較対象手法の中で最高のBLEU、METEOR、ROUGE-Lスコアを達成。
  • CGでは、デュアルモデルはBLEUと有効コードの割合を基本モデルより改善。
  • 結合訓練はJavaとPythonのデータセットの有効コード割合を増加させる。
  • アブレーションでは、確率的二重性とアテンション二重性の双方がCSの利得に寄与し、アテンション二重性は単独で使用する場合や確率的二重性と併用した場合により大きな利得を提供する。
  • 定性的例は、より滑らかなアテンション分布と人手作成出力への高い意味的類似性を示す。

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

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

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

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