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

邝砾  等:大粒度 Pull Request 描述自动生成                                                    1601


             PR 描述自动生成是近年来由 Liu 等人提出的新问题,可以看作是 NLP 技术在软件工程领域中的一个新应
                                                                                      [3]
         用.Liu 等人发现,在 GitHub 平台中有大量的 PR 缺少描述,这将不利于 PR 在评审中取得好的结果 .为此,Liu 等
         人将 PR 描述自动生成建模为抽象式文档摘要生成问题,将 PR 中的文本信息看作源文档,将 PR 描述看作摘要,
         利用带有注意力机制的编解码模型生成 PR 描述.在此基础上,生成 PR 描述还需要解决两个关键问题,即未登录
         词问题以及训练目标和评价指标不一致的问题,因此,其又引入了指针生成网络                            [22] 和强化学习来提升模型表现,
         并在评价指标和人工评审方面都取得了不错的成绩.然而,该方法却没有考虑到 PR 粒度对结果的影响,并不能
         为大粒度的 PR 生成良好的描述.
         2    基于图神经网络的 PR 描述生成方法

                      [3]
             与 Liu 等人 的思路类似,本文将 PR 描述生成问题建模为摘要生成问题,将 PR 中的 commit message 和 code
         comment 等文本信息看作是源文档,将 PR 描述看作摘要.然而,与之不同的是,为了避免生成结果出现逻辑错误,
         我们使用抽取式摘要生成模型,采用序列标注的思路进行 PR 描述生成.为了能够学习到 PR 语句中更为丰富的
         内容信息,我们构建了词-句异质图,建立起 PR 语句间的联系,利用图神经网络进行节点间的消息传递,进一步挖
         掘 PR 语句节点的内容特征.
             PR 描述生成问题形式化定义如下:对于给定的 PR 描述源文档 S,其包含一系列的句子(s 1 ,s 2 ,…,s n ).PR 描述
         生成器的目标是在文档 S 中抽取 k 个句子,使其组成一条 PR 描述 D.对于源文档中 S 中的每一个句子 s n 而言,
         生成器预测其标签 y n ∈{0,1},其中,0 代表该句未被选为描述句,1 代表该句被选为描述句.基于图神经网络的 PR
         描述生成方法总体结构如图 2 所示.我们首先对 PR 描述文档进行预处理,建立与之对应的词-句异质图;然后将
         异质图作为 PR 描述生成器的输入,利用生成器生成 PR 描述.此外,由于 PR 数据集缺少人工标注的真实标签,
         难以进行监督训练,我们使用强化学习方法对模型进行训练.具体的,将 PR 描述生成器看作智能体,PR 源文档看
         作状态,生成器选择哪几个句子组成 PR 描述看作智能体作出的策略,生成的 PR 描述看作新的状态.在将 PR 源
         文档输入进生成器后,生成器会作出相应策略生成 PR 描述,模型利用奖励函数对 PR 描述进行评价,并根据结果
         调整生成器的相关参数,从而使模型得到训练.本节主要对基于图神经网络的 PR 描述生成方法进行详细描述.





















                                     Fig.2    Structure of PR description method
                                          图 2   PR 描述生成方法结构

         2.1   图的构成
             本文将 PR 源文档建模为以词节点、句子节点及其对应的边组成的带权异质图,其结构如图 3 所示.
   22   23   24   25   26   27   28   29   30   31   32