Page 25 - 《软件学报》2021年第6期
P. 25
邝砾 等:大粒度 Pull Request 描述自动生成 1599
到 PR 文本中句子的内容信息.具体的,将 PR 词-句异质图作为输入,首先分别对异质图中的节点和边进行特征
提取,随后将特征向量输入图神经网络,进一步学习图结构信息和节点内容信息.最后将图神经网络学习到的句
子节点特征向量经过线性变换后得到的结果作为该句被选为 PR 描述句的概率,并选取概率最大的 k 个句子组
成 PR 描述.此外,我们使用 REINFORCE 算法,通过给生成的 PR 描述加以奖励并将训练目标设置为最小化奖励
负期望的方式,避免了使用人工标注的真实标签指导 PR 描述生成,并且由于直接对生成 PR 描述的评价指标进
行优化,提升了模型表现.
总而言之,本文工作体现在以下 3 个方面.
(1) 专注于解决大粒度的 PR 描述生成问题,将 PR 描述生成任务建模为抽取式文本摘要生成问题,选取
PR 文档中的关键句生成 PR 描述.为了能够有效学习到 PR 文档中的内容信息,构建了 PR 词-句异质
图,建立起 PR 语句间的联系,随后利用图神经网络传递节点间的消息,帮助模型挖掘 PR 语句中更丰富
的内容特征;
(2) 传统的抽取式文本摘要生成模型需要数据集提供人工标注的真实标签进行监督学习,然而 PR 数据集
并不具备这样的条件.因此,我们使用 REINFORCE 算法,为生成的 PR 描述依据评价指标给出奖励,并
将训练的损失函数设计为奖励的负期望.因为损失函数的设计与真实标签无关,所以在训练过程中无
需使用真实标签,直接优化了评价指标,使生成的 PR 描述更加可靠;
(3) 在真实的数据集上进行了实验,实验结果表明:本文提出的方法真实有效,并且其表现优于现有其他
方法.
本文第 1 节介绍相关工作.第 2 节讨论基于图神经网络的 PR 描述生成方法.第 3 节介绍实验设置,第 4 节分
析实验结果.第 5 节对本文进行总结,并对未来工作进行展望.
1 相关工作
本节将介绍有关 PR 的研究、自然语言处理中现有的文本摘要生成方法以及自然语言处理技术在软件工
程领域中的应用.
1.1 Pull Request
Pull Request(PR)是 GitHub 平台上的一种消息通知机制.项目贡献者在对项目作出修改后,可将该修改通过
创建和提交 PR 的形式通知项目持有者;接下来,PR 评审者会对项目贡献者提交的 PR 进行评审;之后,项目持有
者会根据评审结果决定是否将该修改合并到项目中去.目前已有很多的工作围绕着 PR 机制展开,例如何种 PR
更容易被合并以及 PR 机制衍生出的新问题.
项目贡献者创建并提交 PR 的最终目的是希望将其所作出的修改合并到项目中去,因此,大量研究者关注哪
[8]
些因素会影响 PR 的接受度.Soares 等人 提出使用关联规则挖掘哪些因素能够帮助变更被合并到项目中.Chen
[9]
等人 则在前人的基础上使用了更大规模的数据集分析影响项目合并的因素并设计了预测器,该预测器在 f1
指标上达到了 90%的分数.此外,随着近年来对软件歧视关注度逐渐提高,亦有研究者研究了在合并 PR 时是否
也存在歧视现象,例如:Terrell 等人 [10] 就调查了性别因素对贡献接受率的影响;Jiang 等人 [11] 则研究了 PR 评论对
贡献合并的影响,并提出了评论者推荐方法.
同样,亦有研究者对 PR 机制下产生的新问题展开了研究,例如,根据 PR 信息估算项目贡献者的工作量 [12] 、
依据 PR 重要性对 PR 进行优先级排序 [13] 、为 PR 进行标记 [14] 等.此外,还有大量学者研究如何推荐 PR 评审 [15−18] .
[3]
Liu 等人 则提出了一个新的研究方向,即 PR 描述自动生成,其使用加入了注意力机制的编解码模型来解决该
问题.然而,该方法表现易受 PR 粒度影响,无法有效为大粒度的 PR 生成良好的描述.
1.2 文本摘要生成
文本摘要生成是自然语言处理领域中的传统问题,按照生成方法,可以分成抽取式摘要生成方法和抽象式
摘要生成方法.其中,抽取式方法直接在原文中抽取带有关键信息的语句组成摘要;而抽象式方法则是由模型根