Skip to main content
QUICK REVIEW

[论文解读] Code Summarization with Structure-induced Transformer

Hongqiu Wu, Hai Zhao|arXiv (Cornell University)|Dec 29, 2020
Software Engineering Research参考文献 52被引用 5
一句话总结

本文提出结构诱导Transformer(SiT),一种新颖的Transformer架构,通过结构诱导自注意力机制,从代码的抽象语法树(AST)中整合多视角结构线索,显著提升代码摘要性能。SiT在Java和Python基准测试中达到最先进水平,优于先前的模型(包括使用SBT和GNN的Transformer),同时保持更快的推理速度。

ABSTRACT

Code summarization (CS) is becoming a promising area in recent language understanding, which aims to generate sensible human language automatically for programming language in the format of source code, serving in the most convenience of programmer developing. It is well known that programming languages are highly structured. Thus previous works attempt to apply structure-based traversal (SBT) or non-sequential models like Tree-LSTM and graph neural network (GNN) to learn structural program semantics. However, it is surprising that incorporating SBT into advanced encoder like Transformer instead of LSTM has been shown no performance gain, which lets GNN become the only rest means modeling such necessary structural clue in source code. To release such inconvenience, we propose structure-induced Transformer, which encodes sequential code inputs with multi-view structural clues in terms of a newly-proposed structure-induced self-attention mechanism. Extensive experiments show that our proposed structure-induced Transformer helps achieve new state-of-the-art results on benchmarks.

研究动机与目标

  • 为解决Transformer在有效利用源代码结构信息方面的局限性,尽管其在序列建模方面已取得成功。
  • 克服基于结构的遍历(SBT)在提升Transformer方面失败的问题,而其在LSTM中却表现成功。
  • 设计一种原生集成AST结构的自注意力机制,无需依赖序列展平或基于图的编码。
  • 通过在统一且高效的架构中融合全局自注意力与结构诱导注意力,提升代码摘要性能。
  • 在不同模型规模和参数共享策略下,验证SiT的有效性,尤其是在低资源设置下。

提出的方法

  • 提出一种结构诱导自注意力机制,将多视角AST遍历路径(如中序、前序、后序)注入Transformer编码器的注意力计算中。
  • 引入一种双注意力机制,结合标准自注意力与结构诱导注意力,使模型能够同时关注序列依赖和结构依赖。
  • 采用多头注意力机制,其中每个头基于不同的结构遍历路径进行条件控制,使模型能够学习多样化的结构视角。
  • 设计残差连接与前馈网络结构,以在各层间保留全局与结构表征。
  • 使用与结构遍历路径对齐的可学习位置编码,避免依赖绝对位置嵌入。
  • 在编码器层之间应用参数共享,以提升效率与泛化能力,尤其在低资源设置下。

实验结果

研究问题

  • RQ1与标准自注意力相比,结构诱导自注意力是否能有效增强基于Transformer的代码摘要模型?
  • RQ2为何基于结构的遍历(SBT)在提升Transformer方面失败,却在LSTM中成功?这一问题能否通过架构重构解决?
  • RQ3能否设计一种统一的注意力机制,在不依赖图神经网络或序列展平的前提下,同时整合全局序列与结构依赖?
  • RQ4与标准Transformer相比,所提出的SiT模型在不同模型规模和参数共享策略下的表现如何?
  • RQ5SiT是否在实现最先进性能的同时保持高效率,尤其在推理速度方面?

主要发现

  • SiT在Java和Python代码摘要基准测试中均达到新的最先进水平,优于先前的SOTA模型,包括增强型Transformer和基于GNN的模型。
  • 在Java和Python数据集上,当模型规模扩大时,SiT相比标准Transformer的BLEU分数提升0.42–0.54分。
  • SiT的推理速度比使用SBT的Transformer快1.5倍,证明其在引入结构信息的同时仍具备优越的推理效率。
  • 在参数共享设置下,SiT仅需一组编码器参数即可保持强劲性能,而标准Transformer在相同条件下性能显著下降。
  • 消融研究证实,全局自注意力与结构诱导注意力均对最终性能有显著贡献,融合机制是成功的关键。
  • 该模型在不同架构与规模下均表现出鲁棒性,表明结构归纳偏置对代码表征学习至关重要。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。