[論文レビュー] Language-Agnostic Representation Learning of Source Code from Structure and Context
本論文は Code Transformer を提案し、ソースコード(Context)とその AST(Structure)を言語に依存しない特徴量を用いて共同学習させ、最先端のコード要約を達成するとともに多言語トレーニングを可能にする。
Source code (Context) and its parsed abstract syntax tree (AST; Structure) are two complementary representations of the same computer program. Traditionally, designers of machine learning models have relied predominantly either on Structure or Context. We propose a new model, which jointly learns on Context and Structure of source code. In contrast to previous approaches, our model uses only language-agnostic features, i.e., source code and features that can be computed directly from the AST. Besides obtaining state-of-the-art on monolingual code summarization on all five programming languages considered in this work, we propose the first multilingual code summarization model. We show that jointly training on non-parallel data from multiple programming languages improves results on all individual languages, where the strongest gains are on low-resource languages. Remarkably, multilingual training only from Context does not lead to the same improvements, highlighting the benefits of combining Structure and Context for representation learning on code.
研究の動機と目的
- プログラムの意味ある表現の学習を動機づける:コードをテキストとして捉える(Context)とその抽象構文木(Structure)で捉える。
- 言語特有の前処理を必要とせず、Context と Structure を統合する言語に依存しないトランスフォーマーモデルを開発する。
- 5つの言語にわたるモノリンガルなコード要約で最先端の性能を示す。
- 共有語彙と言語埋め込みを用いて複数言語でトレーニングされた多言語コード要約モデルを導入・評価する。
提案手法
- 絶対的位置ではなく相対距離を用いる注意機構を採用したトランスフォーマーべースのアーキテクチャ。
- AST からの multipleRelation 距離(最短経路、祖先、同胞、Personalized PageRank)を計算し、注意機構に組み込む。
- 各関係ごとのキー射影行列を用いて、Context と Structure の寄与を attention スコアに加算する。
- 各トークンを、トークン埋め込み、割り当てられた AST ノードタイプの埋め込み、およびトークナイザーからのトークンタイプを連結して表現する。
- 構造を意識したグラフ上の注意を可能にするため、相対距離に対して訓練不能なサイン波エンコードを採用する。
- 改善されたトークン予測のために、デコーダが入力位置を指示できるポインタネットワークで訓練する。
実験結果
リサーチクエスチョン
- RQ1単一のモデルで、言語に依存しない特徴を用いて Context(コードトークン)と Structure(AST)の両方から学習できるだろうか?
- RQ2複数のプログラミング言語を共同訓練することは、特にリソースが限られた言語においてコード要約の性能を改善するか?
- RQ3モノリンガルおよびマルチリンガルなコード要約において、Structure を含めることと Context のみの場合の影響はどうか?
- RQ4異なる AST 距離尺度(最短経路、祖先、同胞、PageRank)は性能にどう寄与するか?
- RQ5言語に依存しない機能のみを使用した場合、さまざまな言語でのマルチリンガルトレーニングはモノリンガルトレーニングを上回るか?
主な発見
- Code Transformer はモノリンガル設定で5言語全てにおいて最先端のコード要約を達成する。
- 多言語トレーニングはすべての言語の性能を大幅に向上させ、特にリソースが少ない言語で最も大きな利益をもたらす。
- Context のみの多言語トレーニングは、Structure と Context を組み合わせる場合と同じ改善をもたらさない。
- アブレーション解析は、Structure と Context の両方が性能に寄与すること、そしてポインタネットワークが結果をさらに強化することを示す。
- 複数の AST 距離尺度を組み合わせて使用すると、いずれか1つの距離だけを用いる場合よりも良い結果が得られる。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。