Attention Is All You Need笔记

Transformer 与 RNN 不同,可以比较好地并行训练。RNN缺点是顺序执行,导致无法并行,很慢。Transformer可以有很深的深度,还可以快速并行训练。
Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。
Transformer 的重点是 Self-Attention 结构,其中用到的 Q, K, V矩阵通过输出进行线性变换得到。
Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

上述是transformer的网络结构图。

Embeding

Embedding层,在某种程度上,就是用来降维的,降维的原理就是矩阵乘法,也叫嵌入层,将输入变成向量。

Positional Encoding

因为 Transformer 不采用 RNN 的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于 NLP 来说非常重要。所以 Transformer 中使用位置 Embedding 保存单词在序列中的相对或绝对位置。

最简单的方法是顺序的依次给每个词中每个维度的位置分配一个数字,比如1、2、3、4.....来标记位置,但是弊端有三:数值很大、训练句子可能比实际应用的短、看不到有具体特定长度的样本

最终采用的方式如下,把上面三个弊端都解决了:

Attention

形象一点的理解:key相当于名字,value是分数,query表示我想看谁的分数,所以通过query去查key对应的value,获得最终的结果

value是具体信息,key是索引,query是查询

Feed-Forward

feedforward是前馈神经网络,也是MLP,多层感知机,具体实现是两层全连接层,中间有一个ReLU激活。具体维度论文给出了,512-2048-512

Add&Norm

其实就是层归一化和残差结构的结合

Add 表示残差连接 (Residual Connection) 用于防止网络退化,LayerNorm就是网络图中的Add&Norm中的Norm,层归一化

具体跟BatchNorm对比:后者为批归一化,前者是对每个样本做归一化,后者是对每个特征做归一化

对于序列来说,有可能每个样本长度不一致,采用batchnorm会有抖动,不太好用

LayerNormal不用存均值和方差,只是一个样本(句子)做归一化

以上是layernorm作者当年的解释,目前的解释是layernorm可以提升利普希茨常数加快收敛速度

feature是一个词的向量表示(512),seq是你这一句话里有多少个词,batch是一共几句话。蓝色截面表示batch norm,是对特征的归一化,也叫批归一化;黄色截面表示layer norm,是对样本的归一化,也叫层归一化。对谁的归一化就垂直谁去切。

每个seq长度不一,很有可能不一样,如果采用batchnorm,即蓝色面积,很有可能抖动比较大,切出来的部分不整齐,需要用0补充,但是黄色部分,即layernorm不会。

感觉是,LayerNormalization关注于样本自身结构之间的关系,学习内部结构的特征;而,BatchNormalization是关注于突出样本之间的不同,学习样本之间的差异。

Multi-Head Attention

相当于卷积可以通过多个卷积核产生多个通道,现在不采用卷积,就没有这样的功能,于是采用多头来弥补。

图中有多处使用Multi-Head Attention的,其中encoder部分属于普通正常使用,decoder部分的第一个Multi-Head Attention属于是加了一个mask掩码,第二个Multi-Head Attention如下图所示:

这里进行了跨语言的交互起到了翻译作用,
这部分不需要mask,是因为encoder传进来的内容对decoder是已知的,是都可见的,比如中翻英,encoder传进来的是中文,是需要被翻译的内容,decoder产生的东西就是英文,是翻译的结果。

第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵C进行计算,而Q使用上一个 Decoder block 的输出计算。

Masked Multi-Head Attention

解码器的生成属于自回归,过去的输出也作为新时刻的输入。

Masked是因为解码器是自回归的,它需要前一时刻的输出作为这一时刻的输入,所以它不可以看到这一时刻后面时刻的输出,所以这里使用mask。

mask作用是为了不看到这一时刻后面的内容,因为在注意力机制中可以看到全局,所以加一个mask掩码解决这个问题。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值