基于深度强化学习改进自动源代码摘要生成
软件工程
2018-11-20 v1 计算与语言
机器学习
摘要
代码摘要提供代码所执行功能的高层自然语言描述,因其有益于软件维护、代码分类与检索。据我们所知,多数最优方法遵循编码器-解码器框架,将代码编码至隐藏空间再解码至自然语言空间,存在两主要缺陷:a) 其编码器仅考虑代码的序列内容,忽略了同样对该任务至关重要的树结构;b) 其解码器通常训练为在给定前一真实词时通过最大化下一真实词似然来预测下一词。然而,测试时预期从头生成整个序列。此差异会导致所谓的曝光偏差问题,使所学解码器次优。本文中,我们将抽象语法树结构及代码片段的序列内容纳入深度强化学习框架(即 actor-critic 网络)。actor 网络根据当前状态提供预测下一词的置信度。另一方面,critic 网络评估当前状态所有可行扩展的奖励值,并能为探索提供全局指导。我们采用由 BLEU 度量构成的优势奖励来训练两网络。在真实数据集上的综合实验显示了所提模型相较若干最优方法的有效性。
引用
@article{arxiv.1811.07234,
title = {Improving Automatic Source Code Summarization via Deep Reinforcement Learning},
author = {Yao Wan and Zhou Zhao and Min Yang and Guandong Xu and Haochao Ying and Jian Wu and Philip S. Yu},
journal= {arXiv preprint arXiv:1811.07234},
year = {2018}
}