[论文解读] A Transformer-based Approach for Source Code Summarization
该论文表明,采用相对位置表示和复制注意力的 Transformer 在代码摘要方面显著优于现有方法,在 Java 和 Python 数据集上超过基线。
Generating a readable summary that describes the functionality of a program is known as source code summarization. In this task, learning code representation by modeling the pairwise relationship between code tokens to capture their long-range dependencies is crucial. To learn code representation for summarization, we explore the Transformer model that uses a self-attention mechanism and has shown to be effective in capturing long-range dependencies. In this work, we show that despite the approach is simple, it outperforms the state-of-the-art techniques by a significant margin. We perform extensive analysis and ablation studies that reveal several important findings, e.g., the absolute encoding of source code tokens' position hinders, while relative encoding significantly improves the summarization performance. We have made our code publicly available to facilitate future research.
研究动机与目标
- 推动自动生成源代码自然语言摘要以帮助程序理解。
- 研究基于 Transformer 的模型是否比 RNN 更能捕捉代码中的长程依赖。
- 评估相对位置表示和复制注意力以改进代码到文本生成。
- 评估绝对与相对定位以及基于 AST 的结构对摘要性能的影响。
- 提供消融分析和实际指南,帮助在代码摘要中实现有效的 Transformer 配置。
提出的方法
- 应用 Transformer 编码器-解码器从代码令牌生成自然语言摘要。
- 纳入复制注意力机制,从输入中复制稀有的代码令牌(如标识符)。
- 在绝对与相对位置表示之间进行代码令牌顺序的实验。
- 评估忽略方向信息的相对位置表示,并与带方向的变体进行比较。
- 将 CamelCase 和 snake_case 令牌分解为子令牌,以降低词汇表大小并提高性能。
- 对模型大小、深度以及使用 AST(SBT)表示进行广泛的消融,以评估其影响。
实验结果
研究问题
- RQ1基于 Transformer 的模型是否在 Java 和 Python 数据集上超越现有神经方法的代码摘要?
- RQ2相对位置编码是否比绝对位置编码更能提升摘要?
- RQ3包含复制注意力机制对摘要质量有何影响?
- RQ4模型大小和深度如何影响代码摘要的性能?
- RQ5在使用 Transformer 进行代码摘要时,结合 SBT 的 AST 结构是否有帮助?
主要发现
| Model | BLEU (Java) | METEOR (Java) | ROUGE-L (Java) | BLEU (Python) | METEOR (Python) | ROUGE-L (Python) |
|---|---|---|---|---|---|---|
| Base Model | 43.41 | 25.91 | 52.71 | 31.08 | 18.57 | 44.31 |
| Full Model | 44.58 | 26.43 | 54.76 | 32.52 | 19.77 | 46.73 |
| Full Model w/o Relative Position | 44.26 | 26.23 | 53.58 | 31.38 | 18.69 | 44.68 |
| Full Model w/o Copy Attention | 44.14 | 26.34 | 53.95 | 31.64 | 19.17 | 45.42 |
- 具备相对位置表示和复制注意力的完整模型在两个数据集上均优于基线和基础模型。
- 复制注意力相较基础 Transformer 提供稳定的增益(Java +0.44 BLEU,Python +0.88 BLEU)。
- 相对位置表示(忽略方向信息)相较绝对定位和带方向的变体提升了性能。
- 更深的模型(更多层)在代码摘要方面带来比更宽的模型更大增益。
- 在所使用的 Transformer 设置中,基于 AST 的扩展(SBT)未提升性能。
- 代码令牌的绝对定位并不有利;相对成对关系是有利的。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。