2024/3/17周报

摘要

本周阅读了Transformer的开山之作《Attention Is All You Need》。Transformer完全基于注意力机制,完全免除了递归和卷积。在两个机器翻译任务上的实验表明,Transformer模型在质量上是上级的,同时具有更好的并行性,并且训练时间也更少。此外,还对Transformer模型的原理进行了深入学习和研究。

Abstract

Transformer’s pioneering work , Attention Is All You Need is readed this week. Transformer is completely based on attention mechanism, which completely eliminates recursion and convolution. Experiments on two machine translation tasks show that the Transformer model is superior in quality, with better parallelism and less training time. In addition, the principle of Transformer model is deeply studied.

文献阅读

题目

Attention Is All You Need

引言

递归神经网络LSTM和GRU一直是序列建模和转导问题(如语言建模和机器翻译)的最新方法。这些递归模型生成隐藏状态ht的序列,作为前一个隐藏状态ht-1和位置t的输入的函数,从而导致缺少并行化。虽然最新的相关技术提高了一定程度的并行化,但顺序计算的基本约束仍然存在。

注意力机制已经成为各种任务中引人注目的序列建模和转导模型的组成部分,作者提出的Transformer模型架构能避免复发,完全依赖于注意力机制,以绘制输入和输出之间的全局依赖关系。Transformer支持更高的并行化,在8个P100 GPU上训练12小时后,翻译质量就能达到LSTM和GRU的最新水平。

模型架构

Transformer也是由编码器和解码器的结构组成。编码器将符号表示的输入序列(x1,.,xn)转换为连续表示序列z =(z1,…,Zn)。给定z,解码器然后生成输出序列(y1,…,ym)中的每一个。在每一步,该模型是自回归的,在生成下一个符号时,消耗先前生成的符号作为附加输入。

Transformer遵循这种整体架构,编码器和解码器均使用堆叠的自注意和逐点全连接层,分别如下图的左半部分和右半部分所示:
在这里插入图片描述

编码器和解码器堆栈

编码器:编码器由N = 6个相同层的堆栈组成。每层有两个子层。第一个是多头自注意机制,第二个是一个简单的全连接前馈网络。两个子层中都使用残差连接,然后进行层归一化。即,每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层本身实现的函数。为了促进这些残差连接,模型中的所有子层以及嵌入层都产生维度dmodel = 512的输出。
解码器:解码器也是由一个堆栈的N = 6相同的层。除了每个编码器层中的两个子层之外,解码器还插入第三子层,该第三子层对编码器堆栈的输出执行多头注意。与编码器类似,作者在每个子层周围使用残差连接,然后进行层归一化。作者还修改了解码器堆栈中的自注意子层,以防止模型关注后续位置进行作弊。

Attention

注意力函数可以被描述为将查询和一组键值对映射到输出,其中查询、键、值和输出都是向量,输出计算为值的加权和。其中分配给每个值的权重由查询与对应键的compatibility函数计算。
下图为Scaled Dot-Product Attention(标度点积注意力):
在这里插入图片描述

在实际中,同时计算一组查询的注意力函数,这些查询被打包到一个矩阵Q中。键和值被打包到矩阵K和V中。计算的输出矩阵为:
在这里插入图片描述

Multi-Head Attention(多头注意):
使用不同的学习线性投影将查询、键和值分别线性投影h次到dk、dk和dv维。并行执行注意力函数,产生dv维度的输出结果,这些数据被连接起来并再次投影,从而得到最终值,如下图所示:
在这里插入图片描述

多头注意允许模型在不同的位置联合注意来自不同表示子空间的信息。对于一个单一的注意力头,平均化抑制了这一点。
在这里插入图片描述

其中投影是参数矩阵WQi ∈ Rdmodel×dk,WKi ∈ Rdmodel×dk,WVi ∈ Rdmodel×dv和WO ∈ Rdv ×dmodel。

在这项工作中,作者采用h = 8平行注意层(或称为头)。对于其中每一个,作者使用dk = dv = dmodel/h = 64。由于每个头的维数降低,总的计算成本类似于具有全维度的单头注意。

Position-wise Feed-Forward Networks

该层包括两个线性变换,中间有一个ReLU激活:
在这里插入图片描述

Embeddings and Softmax

与其他序列转换模型类似,该处使用学习的嵌入将输入令牌和输出令牌转换为维度dmodel的向量。作者还使用常用的学习线性变换和softmax函数将解码器输出转换为预测的下一个令牌概率。在该模型中,作者在两个嵌入层和pre-softmax线性变换之间共享相同的权重矩阵,并将这些权重乘以嵌入模型。

Positional Encoding

在编码器和解码器堆栈的底部向输入嵌入添加“位置编码”。位置编码与嵌入具有相同的维度dmodel,因此两者可以相加。
在这里插入图片描述

其中pos是位置,i是尺寸。即,位置编码的每个维度对应于正弦曲线。波长形成从2π到10000 · 2π的几何级数。选择正弦版本,因为它可以允许模型外推到比训练期间遇到的更长的序列长度。

实验数据

在标准的WMT 2014英语-德语数据集上进行了训练,该数据集由大约450万个句子对组成。句子使用字节对编码[3]进行编码,它具有大约37000个标记的共享源目标词汇表。对于英语-法语,作者使用了更大的WMT 2014英语-法语数据集,其中包含3600万个句子,并将标记拆分为32000个单词。句子对按近似序列长度分批在一起。每个训练批次包含一组句子对,其中包含大约25000个源标记和25000个目标标记。

使用Adam优化器[20],其中β1 = 0.9,β2 = 0.98,β 2 = 10^−9。根据以下公式在训练过程中改变学习率:
在这里插入图片描述

实验结果

机器翻译:
在WMT 2014英语到德语的翻译任务中,大Transformer模型(表2中的Transformer(大))比之前报道的最佳模型(包括集成)的BLEU高出2.0以上,建立了28.4的新的最先进的BLEU分数。
在WMT 2014英语到法语的翻译任务中,我们的大模型达到了41.0的BLEU分数,超过了之前发布的所有单个模型,而训练成本不到之前最先进模型的1/4。
英语选区分析:
在这里插入图片描述

表中的结果表明,尽管缺乏特定于任务的调整,Transformer模型表现得令人惊讶地好,产生的结果比所有先前模型都要好,即使只在WSJ训练集的40K句子上训练,Transformer也优于BerkeleyParser。

深度学习

Transformer

Transformer模型是在《Attention is All You Need》中提出的,最初是为了提高机器翻译的效率,它的 Self-Attention 机制和 Position Encoding 可以替代 RNN。因为 RNN 是顺序执行的,t 时刻没有处理完成就不能处理 t+1 时刻,因此很难并行。

Encoder

Encoder组件是由N = 6个同样的Encoder堆叠而成,每一个encoder由一个Multihead attention层和feed forward层(2层前馈网络)组成,同时这两个层都包含残差连接(Residual (short-circuit)connection)和LayerNorm,如下图:
在这里插入图片描述

每一个encoder层如下:
在这里插入图片描述

作为第一个encoder的输出,还是记为X,作为第二个encoder的输入。
文中设置了6个encoder堆叠,重复上述过程6次,记最后即最上层的encoder为X,作为encoder的输入。

Decoder

Decoder组件也是由6个一样的decoder组成,decoder也有Mutihead attention层和feed forward层,但是在两个子层之间增加了attention层,该层有助于解码器能够关注到输入句子的相关部分,与seq2seq model的Attention作用相似。
在这里插入图片描述

在inference阶段,在每个时刻,decoder有两个输入:
在这里插入图片描述

3.位置编码

接下来介绍decoder的详细流程。在模型训练过程中,输出结果即要翻译的结果,仍然记为 在这里插入图片描述,虽然记号和encoder一样,但参数并不共享,不是同一个X。
在这里插入图片描述

在这里插入图片描述在decoder中用Mask矩阵抹去未来信息。矩阵在这里插入图片描述的每个元素aij代表了第i个词与第j个词的内积相似度。用下图所示的下三角矩阵作Mask,黄色部分的值是1,紫色部分的值为0,第0时刻(第0行)只有此时词自己跟自己的相似度,1时刻有和0时刻和1时刻的相似度。
在这里插入图片描述
在这里插入图片描述

不断重复上述过程,直到输出特殊字符停止。
在这里插入图片描述

Transformer的损失函数为交叉熵损失,采用梯度下降法求解参数。

总结

Transformer的优势在于它能够并行计算,从而大大提高了训练和推理的效率。由于自注意力机制的引入,模型能够同时计算每个位置的表示,而不需要像RNN那样逐步处理序列。这使得Transformer能够处理更长的序列,从而在机器翻译等任务中取得了更好的效果。
但Transformer有着较高计算成本和优化难度,模型的复杂性导致在训练和推理过程中需要大量的计算资源,尤其是在处理大规模数据集时,需要大规模并行计算能力。此外,还需要仔细调整学习率、批量大小等超参数,以获得较好的性能。

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值