Attention is all you need -- 阅读笔记

        这篇文章是2017年发表在NIPS会议上的论文,也是Transformer的开山之作。最先应用是在NLP领域的机器翻译任务上,由于其简单的结构、强悍的表现,经过几年的发展,越来越多的领域开始使用基于Transformer的深度学习网络。下面是我自己的一点学习笔记,记录下来方便以后复习。(中间有很多是在原文的基础上进行翻译的,有不准确的地方希望大家见谅,也希望大家不吝指正)

论文链接:Attention is All you Need (nips.cc)

模型代码:https://github.com/ tensorflow/tensor2tensor(代码链接在原文的第7个章节)

Abstract

        目前主流(2017年以前)主流的序列转换模型基于复杂的循环或卷积神经网络,其中包含编码器和解码器。性能表现最好的模型还通过使用注意力机制将编码器和解码器连接起来。我们提出一种新的简单的网络架构——Transformer,仅仅使用注意力机制,完全抛弃了循环和卷积结构。在两个机器学习任务上的实验表明,这些模型在质量上优于其他模型,同时具有更强的并行性更少的训练时间。我们的模型在2014年的WMT中英语转法语的翻译任务中达到了28.4的BLEU分数,比现有的最好的结果提高了2BLEU分数。在WMT 2014英法翻译任务中,我们的模型在8个gpu上进行3.5天的训练后,建立了新的单模型最先进的BLEU得分为41.8,这只是文献中最佳模型训练成本的一小部分。我们通过将Transformer成功地应用于具有大量和有限训练数据的英语选区解析,证明了Transformer可以很好地推广到其他任务。

Introduction

        在引言这一部分,作者介绍的很简单,主要是说明了传统的循环模型在处理序列数据时的缺点以及Transformer在处理序列数据的优点。

        循环模型的缺点:循环模型在处理序列时根据输入和输出序列的符号位置进行运算,根据时间序列一步一步的进行运算,每一步的隐藏状态h_t都是上一步隐藏状态h_{t-1}和位置信息的函数。简单来说,就是循环模型每进行一步都需要对上一步计算完成,这样影响了序列信息处理的并行性,也因此产生了一个问题:无法解决长时依赖。

        Transformer的优点:Transformer完全基于注意力机制,构建了一种多头注意力机制(Multi-Head Attention)层,注意力机制在允许建模依赖性,不考虑元素在序列中的距离,即可以实现全局的依赖检测,解决了传统循环模型的长时依赖问题。

Model Architecture

        下图是Transformer的架构图,包含两个部分:Encoder和Decoder。

图1  Transformer的结构示意
图1 Transformer的结构图

        上图中的Encoder和Decoder旁边都有一个N\times的标记,这个N代表的是Encoder和Decoder块的个数,原文中给的是N=6,即Encoder和Decoder以完全相同的方式堆叠6次。

Encoder

        首先是Encoder Block。它的输入是一个一个的单词,使用Input Embedding将输入词向量转换成一维的词向量表示(这里不做过多解释了,本身不是做NLP方向的,读这篇文章是为了了解Transformer的基本结构)。经过Embedding后,为输入向量添加位置编码(Positional Encoding),在原文中,使用sincos函数进行位置编码,公式如下所示:

PE_{(pos,2i)}=sin(pos/10000^{2i/model})

PE_{(pos,2i+1)}=cos(pos/10000^{2i/model})

其中i表示维度,pos表示位置。也就是说,位置编码的每个维度都对应一个正弦信号(这一段是直接翻译的)。

        进入到Transformer的Encoder模块,从图中可以看到,它主要有两个子层:Multi-Head Attention和Feed Forward层,辅以Layer Norm以及残差网络的跳跃连接。其中,最核心的是文章中使用了多头注意力(Multi-Head Attention)机制。

Dot-Product Attention

        多头注意力机制是将单个注意力层(Head)经过堆叠得到的,在Transformer中,这里借计算机视觉中关于Transformer中Self-Attention解释的一张图片进行说明。假设将输入序列X经过Input Embedding转换成维度为n*d的向量集合(x_1,x_2,...,x_n),其中n表示序列中元素的个数,d表示每一个元素经过Embedding后的向量长度。自注意的目标是通过编码每个实体的全局上下文信息来捕获n个实体之间的交互关系。为了得到n个元素之间的关系

 

多模态的自注意力机制是指在多模态数据中,每个模态内部使用自注意力机制来提取模态内部的信息,并使用跨模态的注意力机制来融合不同模态之间的信息。通过将多模态融合推迟到模型的后期,可以更充分地提取单个模态内部的信息,因为不同模态的数据结构和分布差异很大,使用相同的处理方式可能不合理。在单个模态内部,仍然使用原始的自注意力机制,但在跨模态的融合中,使用各个模态的部分信息来进行跨注意力。除此之外,还可以限制层内不同模态注意力的流动,通过引入一组潜在的融合单元,形成"注意力瓶颈",跨模态的交互必须通过这些单元进行。这样既可以降低计算量,处理部分冗余信息,也可以使模型集中处理每个模态中最相关的输入,并只与其他模态共享必要的输入。因此,多模态自注意力机制在模型中起到了重要的作用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记](https://blog.csdn.net/qq_36643449/article/details/124968439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【论文阅读Attention Bottlenecks for Multimodal Fusion---多模态融合,音视频分类,注意力机制](https://blog.csdn.net/me_yundou/article/details/121070837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Attention is all you need:关于transformer中的self-attention](https://blog.csdn.net/hands_up_down/article/details/122022802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值