Page 24 - 《软件学报》2021年第6期
P. 24

1598                                     Journal of Software  软件学报 Vol.32, No.6,  June 2021

         with key information are selected to form a PR description. In addition, the supervised learning method cannot be used for training due to
         the lack of manually labeled tags in the dataset, therefore, reinforcement learning is used to guide the generation of PR descriptions. The
         goal of model training is minimizing the negative expectation of rewards, which does not require the ground truth and directly improves
         the performance of the results. The experiments are conducted on real dataset and the experimental results show that the proposed method
         is superior to existing methods in F1 and readability.
         Key words:   Pull  Request description; heterogeneous graph neural  network; reinforcement learning;  unstructured document;
                   summarization generation


             GitHub 是主流的面向开源及私有软件项目的托管平台,目前在世界范围内已有超过 5 百万的用户在该平
                                   [1]
         台上托管了 1 千多万个开源项目 .Pull Request(PR)是该平台上的消息通知机制,通过 Pull Request,项目贡献者
         将其对项目作出的变更通知给项目持有者.当 PR 经过评审后,项目持有者可根据评审结果决定是否将贡献者作
                                                                            [2]
         出的变更合并到项目中.有研究表明,好的 PR 描述能够提高项目变更被合并的概率 .然而,目前该平台上大量
                                   [3]
         的 PR 缺少描述,或描述过于简单 ,这将不利于 PR 的合并.因此,为 PR 自动生成描述是非常有必要的.
             已有研究者将 Pull Request 描述自动生成任务建模成文本摘要生成问题,其将 PR 中的 commit message 和
         code comment 等文本信息看作原始文档,PR 描述看作摘要,利用带有注意力机制的编解码模型来生成 PR 描述,
                                              [3]
         并得到了不错的 ROUGE 分数和人工评价分数 .但是经研究发现,该模型的表现受 PR 的粒度影响非常大.一条
         PR 会包含一条或多条 commit,commit 是项目贡献者对项目做出的具体改动,本文将一条 PR 包含的 commit 数
         目称为 PR 的粒度.在文献[3]使用的 PR 数据集中,有将近一半的 PR 仅包含 2 条 commit.生成小粒度 PR 的描述
         非常简单,即使将两条 commit 的文本信息简单罗列出来,也可以获得简短且准确的 PR 描述.如图 1 所示,我们移
         除了数据集中粒度为 2 的 PR,按照该方法重新训练了模型,并进行了测试,结果发现,模型性能有所下降.当利用
         其方法尝试为粒度为 5 及以上的大粒度 PR 生成描述时,该方法的表现在 F1 和召回率上的下降幅度更大.因此
         本文认为:该方法不适用于生成大粒度 PR 的描述,需要进一步探索能够为大粒度 PR 生成 PR 描述的方法.













                       (a) F1                              (b)  召回率                        (c)  准确率

                    Fig.1    Performance of Liu et al.’s method on the PR data sets at different granularities
                              图 1  Liu 等人的方法在不同粒度下的 PR 数据集上的表现
             为了解决上述问题,我们将 PR 描述生成问题建模为文本摘要生成问题.由于使用抽象式文本摘要生成模型
         生成的句子不具备良好的可读性,易出现逻辑错误,因此本文建立了抽取式文本摘要生成模型,选取 PR 文档中
         带有关键信息的句子组成 PR 描述.然而由文献[4]可知:目前主流的抽取式文本摘要模型学习到的大多是句子
                                                           [5]
                                                                            [6]
         的位置信息而非内容信息,因此这些模型在新闻等结构性文档 数据集上表现良好 .结构性文档中的句子重
         要程度往往与句子的位置有很大关系,例如在新闻文档常使用的倒三角结构中,位置越靠前的句子越为重要,越
         容易出现在摘要中.但是在 PR 文档中,句子的重要程度与句子所在位置并没有很强的关联性,因此需要模型有
                                                                                      [4]
                                                                         [7]
         很强的学习文档内容的能力,能够通过句子内容判断句子的重要程度.Wang 等人 在 Zhong 等人 的工作基础
         上假设图神经网络更有利于帮助模型学习到文档内容信息,并使用其来完成摘要生成任务,取得了良好的结果,
         从而验证了该假设.在上述工作的启发下,我们将 PR 文本信息建模为词-句异质图,利用图神经网络进一步学习
   19   20   21   22   23   24   25   26   27   28   29