[論文レビュー] Code Prediction by Feeding Trees to Transformers
この論文は、AST構造を活用するTransformerモデルを用いた次のトークンのコード予測を強化し、SeqTrans、PathTrans、TravTrans、TravTrans+を導入して、Pythonコードデータセットに対する以前の手法より著しい精度向上を達成します。TravTransは最も強い結果を出し、py150で最大約58%の平均再現率(MRR)を達成し、以前の最先端を14–18ポイント上回ります。
We advance the state-of-the-art in the accuracy of code prediction (next token prediction) used in autocomplete systems. First, we report that using the recently proposed Transformer architecture even out-of-the-box outperforms previous neural and non-neural systems for code prediction. We then show that by making the Transformer architecture aware of the syntactic structure of code, we further increase the margin by which a Transformer-based system outperforms previous systems. With this, it outperforms the accuracy of an RNN-based system (similar to Hellendoorn et al. 2018) by 18.3%, the Deep3 system (Raychev et al 2016) by 14.1%, and an adaptation of Code2Seq (Alon et al., 2018) for code prediction by 14.4%. We present in the paper several ways of communicating the code structure to the Transformer, which is fundamentally built for processing sequence data. We provide a comprehensive experimental evaluation of our proposal, along with alternative design choices, on a standard Python dataset, as well as on a Facebook internal Python corpus. Our code and data preparation pipeline will be available in open source.
研究の動機と目的
- IDEの自動補完のための次のトークンコード予測を動機づけ、改善する。
- TransformerモデルにAST構造を組み込むことが予測精度に与える影響を評価する。
- Transformerベースの木構造を意識したモデルを、従来の非TransformerおよびASTベースのアプローチと比較する。
- 標準および社内のPythonデータセットで評価し、一般化を示す。
提案手法
- 部分的なプログラムをトークンの系列として表現する(SeqTrans)またはASTベースの構造として表現する(PathTrans、TravTrans)をTransformerに入力する。
- PathTransを導入:葉ノードから根までのルートパス表現を埋め込み、葉の埋め込みと組み合わせてTransformer入力にする。
- TravTransを導入:ASTのDFS順序トークンをTransformerに供給して構造情報を取り入れる。
- TravTrans+を導入:AttnTreeRelの木関係行列Rを用いた注意機構に、明示的な木の関係パスを追加する。
- 強力なベースライン(SeqRNN、Deep3、Code2Seq)と比較する。対象はpy150およびFacebook内部のPythonデータセット。
- 葉トークンの次のトークン予測に対して評価指標として平均再現率(MRR)を用いる。
実験結果
リサーチクエスチョン
- RQ1Transformerは次のトークンのPythonコード予測においてRNNベースのモデルを上回るか?
- RQ2AST構造を活用するTransformerモデルは、従来のASTベースのアプローチよりコード予測で優れているか?
- RQ3SeqTrans、PathTrans、TravTrans、TravTrans+がデータセット全体でどの程度精度が異なるか?
- RQ4木の関係強化(TravTrans+)はTravTransを超えて有益か?
- RQ5予測時にTravTransが木構造へどのように注意を向けるかについて、顕著性マップがどんな洞察を提供するか?
主な発見
- TravTransは全体的に最高の性能を達成し、py150で58.0%のMRR、従来手法よりも著しく高い精度。
- SeqTrans(基準Transformer)はデータセットとタスクに応じて54.9–50.1%のMRRに達し、SeqRNN(36.6–23.8% MR R)を上回る。
- PathTransおよびTravTransは非TransformerのASTベース(Deep3、Code2Seq)を上回り、py150でTravTransはDeep3とCode2Seqに対してMRRで14.1–14.4ポイントの増分を達成。
- Facebook内部のPythonデータセットでは、Transformerベースのモデルがベースラインに対して同様の相対的利点を示す。
- 顕著性分析は TravTrans が最も関連性の高い木領域に注意を向け、特にトークン予測時には親ノードに焦点を当てることを示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。