Attention Is All You Need:Transformer论文阅读笔记

本文深入解读Transformer论文,探讨其纯注意力机制如何替代RNN,提升模型性能。Transformer采用编码器-解码器架构,其中自注意力机制、多头注意力和位置编码是关键组件。在深度学习和自然语言处理领域,Transformer已广泛应用,并成为目标检测器DETR的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近打算看一下transformer系列的论文,主要的顺序就是先从最开始的Transformer开始看起,然后是DETR及其的优化。
在这里插入图片描述
论文地址:https://arxiv.org/pdf/1706.03762.pdf
代码地址: https://github.com/tensorflow/tensor2tensor

一、摘要以及简介

在主流的序列转录模型里面,一般使用的是encoder(编码)和decoder(解码)架构,目前性能最好的模型也是通过将注意力机制引入encoder和decoder中来实现的。作者在此提出了一个新的模型–Transformer,通过与现存的机器翻译模型对比来说明了当前模型的优点。
事实证明,transformer不仅仅在语言翻译领域应用,在视觉方面也有了新的应用,后面的DETR就是以Transformer为基础架构得到的目标检测器。
在简介中,作者阐述了当前的序列模型以及其计算过程,由于RNN等网络特性,当前结果的输出依赖于上一时刻的输出,因此整个流程难以并行计算,效率很低。另外,当输入的时序信息很长时,早前的信息可能会丢失,在这一问题在做了很多改进后并没有得到实质性的解决。
最后一段,作者提出了本文的Transformer,不再使用循环神经网络结构,而是使用纯注意力机制,可以做到在比较短的时间内,达到先前模型的效果(甚至更好)。
后续的一些说明这里就不再记录,下面主要分析Transformer架构以及算法

二、Transformer模型架构

在当前比较好的模型结构中,常会是编码器-解码器的结构。编码器会将你的输入(x1~xn),变换为(z1~zn),假设输入的是一个句子,xn就表示当前句子的第n个单词,而zn就表示当前词的向量表示。而解码器则是会将编码器的输出解码,但是一次只会生成一个词汇(假设是翻译),所以解码暗器的输出长度和输入也可以是不同的,这里就是一个自回归的问题,及当前时刻的输出也会作为下一时刻的输入。
Transformer也是使用了这种编码器-解码器的架构,将自注意力、point-wise、全连接层汇聚到一起。Transformer的结构图如下图:
在这里插入图片描述

在上图中,左边的部分就是编码器,右边就是解码器。

2.1 encoder&decoder

作者首先就编码器-解码器的结构分别进行了介绍,但是由于很多的名词还没有做进一步解释(Multi-Head等),这里也是现有一个大概了解后面会逐步的深挖。
encoder:编码器作者使用了6个(N=6)相同的块组成,每一个块的结构如上图左半部分所示,每一层由分为两个子层(sub-layer),第一个子层使用了自注意力机制(Multi-Head Attention),第二个子层使用了全连接层(论文中的 simple, position-wise fully connected feed-forward network),对于每个子层作者都使用了残差连接,然后再进行一步层归一化(layer-normalization)。对于每个子层的输出可以用公式:
L a y e r N o r m ( x + S u b l a y e r ( x ) ) LayerNorm(x+Sublayer(x)) LayerNorm(x+Sublayer(x))
来表示。为了简化残差链接,作者将所有子层的输出长度变为:dmodel=512.
decoder:解码器与编码器相同,同样由N=6个相同的块组合而成,但是解码器块内部的结构与编码器是不同的。在解码器中,每个块含有三个子层,多加了一个层是Masked Multi-Head Attention层。

Alt
其他两层的结构与编码器相同,至于第一个不同的masked层,因为解码器是一个自回归的过程,当前时刻的输入依赖于上一时刻的输出,而注意力机制每次都可以看到完整的输入,这就导致了模型做预测时,看到了未来的结果,为了避免这一情况发生,在训练网络的时候,解码器不应该看见当前时刻后面的输入,masked层的作用就是来屏蔽这些输入。

2.2 Attention注意力机制

注意力机制的基础是注意力函数,通过不同的query,key-value来形成映射关系,通过计算query和key的相似度,可以得到不同的value。在Transformer中,作者使用的注意力函数为:Scaled Dot-Product Attention,要求输入的query和key是等长度的,通过计算query与所有的key的内积,来判断两者之间的相似度。(内积数值越大,表明两向量之间的相似度越高,如果等于0,则两向量正交),最后通过softmax层,可以得到一个加权和为1的概率映射,其具体公式如下:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=so

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值