ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarization

2024年07月01日
  • 简介
    代码摘要旨在自动生成给定代码片段的简明自然语言摘要。这样的摘要在促进开发人员理解和维护代码方面发挥着重要作用。深度学习代码摘要技术受神经机器翻译的启发,广泛采用编码器-解码器框架,其中编码器将给定的代码片段转换为上下文向量,解码器将上下文向量解码为摘要。最近,针对源代码的大规模预训练模型配备了能够生成一般上下文向量的编码器,并在代码摘要方面取得了实质性的改进。然而,虽然它们通常主要在代码相关任务上进行训练并且可以捕捉一般的代码特征,但它们仍然无法捕捉需要摘要的特定特征。 本文提出了一种基于摘要任务的代码摘要改进方法。具体而言,我们利用多任务学习范式来训练编码器在三个摘要任务上,以增强其学习代码摘要对齐的能力,包括单向语言建模(ULM)、掩码语言建模(MLM)和动作词预测(AWP)。与主要预测代码片段中的掩码标记的预训练模型不同,我们设计ULM和MLM来预测摘要中的掩码词。直观地说,基于给定的代码片段预测单词将有助于学习代码摘要对齐。此外,我们引入了领域特定任务AWP,以增强编码器学习动作词和代码片段之间的对齐能力。在四个数据集上的广泛实验表明,我们的方法ESALES在所有三个广泛使用的指标(包括BLEU、METEOR和ROUGE-L)上显著优于基线。
  • 图表
  • 解决问题
    本文旨在通过多任务学习范式来提高代码摘要的性能,特别是通过面向摘要的任务来增强编码器的学习能力,以提高其学习代码-摘要对齐的能力。
  • 关键思路
    本文提出了一种名为ESALE的方法,利用三个面向摘要的任务(ULM、MLM和AWP)对编码器进行训练,以增强其学习代码-摘要对齐的能力。与预训练模型不同的是,ULM和MLM是预测摘要中的掩码词,而AWP旨在增强编码器学习动作词与代码片段之间的对齐能力。
  • 其它亮点
    本文的实验结果表明,ESALE方法在四个数据集上的性能均优于基线模型,并在BLEU、METEOR和ROUGE-L等三个常用指标上取得了显著的提高。此外,本文还开源了代码和数据集,值得进一步研究。
  • 相关研究
    最近的相关研究包括:1. CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing;2. Deep Code Comment Generation;3. CodeNN: Predicting Large-Scale Non-Functional Properties from Source Code。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论