GN-Transformer: Fusing Sequence and Graph Representation for Improved Code Summarization
arXiv:2111.08874
Abstract
As opposed to natural languages, source code understanding is influenced by grammatical relationships between tokens regardless of their identifier name. Graph representations of source code such as Abstract Syntax Tree (AST) can capture relationships between tokens that are not obvious from the source code. We propose a novel method, GN-Transformer to learn end-to-end on a fused sequence and graph modality we call Syntax-Code-Graph (SCG). GN-Transformer expands on Graph Networks (GN) framework using a self-attention mechanism. SCG is the result of the early fusion between a source code snippet and the AST representation. We perform experiments on the structure of SCG, an ablation study on the model design, and the hyper-parameters to conclude that the performance advantage is from the fused representation. The proposed methods achieve state-of-the-art performance in two code summarization datasets and across three automatic code summarization metrics (BLEU, METEOR, ROUGE-L). We further evaluate the human perceived quality of our model and previous work with an expert-user study. Our model outperforms the state-of-the-art in human perceived quality and accuracy.
References in corpus (7)
- An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
- Semi-Supervised Classification with Graph Convolutional Networks
- A Compositional Object-Based Approach to Learning Physical Dynamics
- Code Generation as a Dual Task of Code Summarization
- A parallel corpus of Python functions and documentation strings for automated code documentation and code generation
- Detecting Code Clones with Graph Neural Networkand Flow-Augmented Abstract Syntax Tree
- Tree-structured Attention with Hierarchical Accumulation