【论文阅读】A Transformer

编程入门 行业动态 更新时间:2024-10-28 02:33:31

【<a href=https://www.elefans.com/category/jswz/34/1770125.html style=论文阅读】A Transformer"/>

【论文阅读】A Transformer

目录

  • 一、简介
  • 二、方法
  • 三、实验

发表于 ACL 2020
地址:.00653.pdf
代码:

一、简介

利用transformer模型来进行代码摘要生成,通过对代码token之间的成对关系建模以捕获其长期依赖来学习代码表示。实验部分和其他一些baselines作了对比,验证了模型达到了最优性能。并通过实验证明了,使用相对位置表示对源代码token之间的成对关系进行建模,相对于使用绝对位置表示的学习代码token的序列信息,可以实现重大改进。并在transformer中整合了复制注意力机制,其能够从源代码复制稀有标记(如:函数名称,变量名称),从而显著提高摘要性能。

二、方法

整体基于transformer方法,但除了transformer里的自注意力机制,还整合了复制注意力机制,并使用相对位置表示对源代码token之间的成对关系进行建模。

  • 复制注意力:文章在Transformer中整合了copying mechanism复制机制,以允许既根据词汇生成单词又根据输入源代码进行复制。使用额外的注意力层来学习解码器堆栈顶部的复制分布。Copy Attention使Transformer能够从源代码复制稀有标记(例如,函数名称,变量名称),从而显著提高摘要性能。
  • Encoding pairwise relationship:代码的语义表示不依赖于其token的绝对位置。相反,它们之间的相互影响会影响源代码的含义。例如,表达式a + b a + ba+b和b + a b + ab+a的语义相同。为了对输入元素之间的成对关系进行编码,将自我注意机制进行了扩展:(第j个token位于第i个token的左侧还是右侧的信息将被忽略)(位置编码部分还没有看的很明白)

数据预处理:论文将CamelCase和snake_case形式的源代码token拆分为相应的sub-tokens(CamelCase和snake_case token化显著减少了词汇量。例如,Java源代码中唯一token的数量从292,626减少到66,650)。证明了这样的代码token拆分可以提高摘要性能。

评价指标:BLEU、METEOR、ROUGE-L

三、实验

更多推荐

【论文阅读】A Transformer

本文发布于:2024-03-08 04:34:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719845.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:论文   Transformer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!