Skip to main content
QUICK REVIEW

[論文レビュー] TBCNN: A Tree-Based Convolutional Neural Network for Programming Language Processing.

Lili Mou, Ge Li|arXiv (Cornell University)|Sep 18, 2014
Topic Modeling参考文献 22被引用数 63
ひとこと要約

本稿では、プログラミング言語処理のためのプログラムのベクトル表現を学習するために抽象構文木(AST)を活用する、木構造に基づく畳み込みニューラルネットワーク(TBCNN)を提案する。木構造に基づく畳み込みおよびプーリング機構を適用することで、TBCNNはコードの構造的特徴を効果的に捉え、ベースラインと比較してプログラム分類において優れた性能を達成し、深層学習をプログラミング言語解析に応用する基盤的段階を示している。

ABSTRACT

Deep neural networks have made significant breakthroughs in many fields of artificial intelligence. However, it has not been applied in the field of programming language processing. In this paper, we propose the tree-based convolutional neural network (TBCNN) to model programming languages, which contain rich and explicit structural information. In our model, program vector representations are learned by the pretraining criterion based on abstract syntax trees (ASTs); the convolutional layer explicitly captures neighboring features on the tree; with the binary continuous tree and 3-way pooling, our model can deal with ASTs of different shapes and sizes.We evaluate the program vector representations empirically, showing that the coding criterion successfully captures underlying features of AST nodes, and that program vector representations significantly speed up supervised learning. We also compare TBCNN to baseline methods; our model achieves better accuracy in the task of program classification. To our best knowledge, this paper is the first to analyze programs with deep neural networks; we extend the scope of deep learning to the field of programming language processing. The experimental results validate its feasibility; they also show a promising future of this new research area.

研究の動機と目的

  • プログラミング言語処理における深層学習の応用が不足しているという問題に応えるために、新たなニューラルネットワークアーキテクチャを導入すること。
  • 特に抽象構文木(AST)を用いて、言語固有の構造的情報をモデル化すること。ASTは豊富な構文的関係を符号化している。
  • ASTの構造に基づく事前学習基準を用いて、効果的なプログラムベクトル表現を学習すること。
  • コンactで情報豊富なプログラム埋め込みを学習することで、コードにおける効率的かつ正確な教師あり学習を可能にすること。
  • 深層ニューラルネットワークがプログラミング言語の解析に適用可能で効果的であることを実証し、深層学習を新たな分野に拡張すること。

提案手法

  • TBCNNは、抽象構文木(AST)を入力として処理する木構造に基づく畳み込みアーキテクチャを採用しており、木のノード上で畳み込み操作を用いて局所的な構造的パターンを捉えている。
  • モデルは、その構文的文脈と階層的構造を活用することで、ASTノードに対する意味のあるベクトル表現を学習するための事前学習基準を用いている。
  • 異なる形状やサイズのASTを一貫して処理できるように、バイナリ連続木構造が使用されており、これにより処理の一貫性が保たれる。
  • サブツリー全体の特徴を集約するために3方向プーリングが適用されており、構造的情報を保持するとともに次元削減が実現されている。
  • 畳み込み層は木上の隣接する特徴を明示的にモデル化しており、プログラム理解に不可欠な局所的構文的パターンを捉えている。
  • 最終的な表現は階層的プーリングによって得られ、全プログラムの構造的および意味的特徴を符号化した固定サイズのベクトルを生成している。

実験結果

リサーチクエスチョン

  • RQ1抽象構文木(AST)を用いることで、深層ニューラルネットワークはプログラミング言語の構造的および意味的特徴を効果的にモデル化できるか?
  • RQ2従来の手法と比較して、木構造ベースの畳み込みネットワークはASTから意味的なプログラムベクトル表現をどれほど効果的に学習できるか?
  • RQ3提案されたTBCNNアーキテクチャは、ベースラインモデルと比較して、プログラム分類などの下流タスクで性能を向上させるか?
  • RQ4AST構造に基づく事前学習が、学習されたプログラム埋め込みの質をどの程度向上させるか?
  • RQ5木構造に基づく深層学習モデルは、サイズや構文的複雑性が異なるプログラムに一般化できるか?

主な発見

  • 事前学習基準は、ASTノードの潜在的な構造的および意味的特徴を効果的に捉えており、より情報豊富なプログラムベクトル表現をもたらしている。
  • TBCNNが学習したプログラムベクトル表現は、コンactで情報豊富な埋め込みを提供することで、教師あり学習タスクの高速化を著しく実現している。
  • TBCNNは、ベースライン手法と比較して、プログラム分類タスクでより高い分類精度を達成しており、その有効性が示されている。
  • バイナリ連続木と3方向プーリングの使用により、TBCNNは形状やサイズが異なるASTを性能劣化を伴わずに処理できる。
  • 実証的評価により、TBCNNがプログラミング言語処理において実現可能で効果的であることが確認され、今後の研究分野における有望な基盤を確立している。

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

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

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

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