Skip to main content
QUICK REVIEW

[論文レビュー] HELoC: Hierarchical Contrastive Learning of Source Code Representation

Xiao Wang, Qiong Wu|arXiv (Cornell University)|Mar 27, 2022
Software Engineering Research被引用数 4
ひとこと要約

HELoCは、局所的およびグローバルなAST構造を捉えるために、新たな残差自己注意グラフニューラルネットワーク(RSGNN)を活用する自己教師あり階層的対照的学習フレームワークを提案する。ASTノードのレベル予測と対照的学習による階層的関係最適化を通じて、複数のデータセットにおいてコード分類、クローン検出、クラスタリングの分野で最先端の性能を達成する。

ABSTRACT

Abstract syntax trees (ASTs) play a crucial role in source code representation. However, due to the large number of nodes in an AST and the typically deep AST hierarchy, it is challenging to learn the hierarchical structure of an AST effectively. In this paper, we propose HELoC, a hierarchical contrastive learning model for source code representation. To effectively learn the AST hierarchy, we use contrastive learning to allow the network to predict the AST node level and learn the hierarchical relationships between nodes in a self-supervised manner, which makes the representation vectors of nodes with greater differences in AST levels farther apart in the embedding space. By using such vectors, the structural similarities between code snippets can be measured more precisely. In the learning process, a novel GNN (called Residual Self-attention Graph Neural Network, RSGNN) is designed, which enables HELoC to focus on embedding the local structure of an AST while capturing its overall structure. HELoC is self-supervised and can be applied to many source code related downstream tasks such as code classification, code clone detection, and code clustering after pre-training. Our extensive experiments demonstrate that HELoC outperforms the state-of-the-art source code representation models.

研究の動機と目的

  • ソースコード表現における深い複雑なAST階層を効果的に学習する課題に対処すること。
  • ASTノード間の隣接および非隣接な階層的関係を明示的にモデル化することで、コード表現を向上させること。
  • ラベル付きデータに依存せずに構造的意味を捉える自己教師ありフレームワークを設計すること。
  • ASTにおける局所的構造符号化と長距離のグローバル依存関係モデリングの両立を可能にするGNNアーキテクチャを開発すること。
  • コード分類、クローン検出、クラスタリングなどの下流ソフトウェア工学タスクにおいて優れた性能を示すこと。

提案手法

  • HELoCは、埋め込み空間における階層的構造を保持するために、ASTノードのレベル予測をプロキシタスクとする新しい階層的対照的学習目的を採用する。
  • 局所的構造にグラフ畳み込みネットワーク、グローバル構造に自己注意メカニズムを組み合わせた、残差自己注意グラフニューラルネットワーク(RSGNN)を導入する。
  • 内部および外部の残差接続を統合することで、深く構造化されたASTにおける学習の安定性と特徴伝達の向上を実現する。
  • ノード表現はASTにおけるメッセージパッシングにより学習され、親子関係からの経路表現がRSGNNの入力として使用される。
  • 自己教師ありで事前学習を行い、対照的損失を用いて異なるASTレベルのノード間の距離を最大化し、類似した構造的文脈のノード間の距離を最小化する。
  • 事前学習後、コード分類、クローン検出、クラスタリングなどの下流タスクでRSGNNエンコーダーをファインチューニングする。

実験結果

リサーチクエスチョン

  • RQ1自己教師あり対照的学習アプローチは、コード表現におけるAST階層を効果的に保持できるか?
  • RQ2隣接および非隣接な階層的関係をモデル化することで、コード表現はどのように向上するか?
  • RQ3RSGNNアーキテクチャは、標準的なGNNに比べて、局所的およびグローバルなAST構造を捉える点でどの程度優れているか?
  • RQ4HELoCは多様な下流コード理解タスクにおいて、最先端の性能を達成するか?
  • RQ5ノードレベル予測や自己注意メカニズムといった、HELoCの個々の構成要素は、全体の性能にどの程度寄与しているか?

主な発見

  • コード分類(GCJデータセット)では97.2%のF1スコアを達成し、前回のSOTAを9.0ポイント上回った。
  • コードクローン検出(OJClone)では99.6%のF1スコアを達成し、前回のSOTAから10.9ポイントの改善を示した。
  • コードクラスタリング(BCB-ALL)では98.0%のF1スコアを達成し、最も強力なベースラインを11.3ポイント上回った。
  • アブレーションスタディの結果、ノードレベル予測や関係性最適化、自己注意メカニズムを削除すると性能が著しく低下することが確認された。
  • RSGNNは中心的な役割を果たしており、これを削除するとコード分類のF1スコアが78.2%に低下し、表現学習におけるその重要性が示された。
  • HELoCは、すべての3つのタスクおよびデータセットで一貫した優位性を示し、階層的AST構造を効果的に捉えられることを裏付けた。

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

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

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

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