前言
20年给自己立了一个阅读论文数量的flag,但有些论文读完后没有实践,过一阵子又会忘记论文中的一些细节,所以2020开一个新的论文研读系列,记录一下自己读过的论文吧。
第一篇论文,《Summarizing Source Code with Transferred API Knowledge》,这篇论文的2018年发表于IJCAI,目前为代码摘要生成的SOTA。主要的创新点为归纳出代码中的 API 方法,首先搭建一个 seq2seq 的模型对 API 进行预训练,并将预训练模型的 encoder 部分加入最终的代码摘要生成模型,实现 encoder 部分的结合。最后通过 decoder 部分生成代码摘要。
论文原文:《Summarizing Source Code with Transferred API Knowledge》
模型结构
上图为整个代码摘要生成的模型结构, 整个模型分为两部分,上面一行为本篇论文创新性的提出的 API 预训练模型,使用 seq2seq 模型,输入代码片段中使用的 API 函数序列(有可能一个代码片段中依次使用了多个 API ),输出为代码摘要。
下面一行的模型为 seq2seq 的代码摘要生成模型,类似于code-nn 的结构(code-nn 为之前次领域的 SOTA 模型),而不同于不普通模型之处在于:整个网络更改为双输入(API sequence 和 code Corpora)。API sequence 进入之前预训练好的模型,生成其 encoder 好的特征向量,并于 code Corpora 部分的 encoder 组合,