中文

HELoC:源代码表示的层次化对比学习

软件工程 2022-03-29 v1

摘要

抽象语法树(ASTs)在源代码表示中起着关键作用。然而,由于 AST 中节点数量庞大且通常层次较深,有效学习 AST 的层次结构具有挑战性。本文中,我们提出 HELoC,一种用于源代码表示的层次化对比学习模型。为有效学习 AST 层次,我们使用对比学习使网络能够以自监督方式预测 AST 节点层级并学习节点间的层次关系,这使得 AST 层级差异较大的节点其表示向量在嵌入空间中相距更远。利用此类向量,可以更精确地度量代码片段之间的结构相似性。在学习过程中,我们设计了一种新颖的 GNN(称为残差自注意力图神经网络,RSGNN),使 HELoC 能够专注于嵌入 AST 的局部结构同时捕捉其整体结构。HELoC 是自监督的,预训练后可应用于诸多源代码相关下游任务,如代码分类、代码克隆检测与代码聚类。我们的大量实验表明 HELoC 优于当前最优的源代码表示模型。

关键词

引用

@article{arxiv.2203.14285,
  title  = {HELoC: Hierarchical Contrastive Learning of Source Code Representation},
  author = {Xiao Wang and Qiong Wu and Hongyu Zhang and Chen Lyu and Xue Jiang and Zhuoran Zheng and Lei Lyu and Songlin Hu},
  journal= {arXiv preprint arXiv:2203.14285},
  year   = {2022}
}

备注

Accepted by ICPC 2022