【NLP】第十章:Transformer论文解读

八、补充:Transformer论文解读

Transformer的论文名称是《Attention Is All You Need》,这篇论文是深度学习史上最重要的论文之一,因为Transformer是继MLP、CNN、RNN之后的第四大深度学习基础架构,所以原始论文非常有必要认真读一读。本篇整理了我精读过程的关注点,当然核心的内容都在前面5个篇章展开详细写过了。本篇展示的是前面没有涉及到的边角知识点,算是对前面篇章的一个补充。

我本人是不擅长翻译的,尤其是这种专业论文,背后有大量的背景知识,所以看不懂的同学还是建议从MLP开始一点点,每个细节都扎实学透后,再来理解这篇文章。此时你再看,即使有些单词或者语法不是很明白,你也可以猜的七七八八了。

transformer是google于2017年提出的模型架构,论文地址:[1706.03762] Attention Is All You Need ,大家可自行下载阅读。

1、论文作者及作者的贡献的描述

2、摘要部分

3、结论部分

4、引言部分

5、背景部分

扩展神经GPU(Extended Neural GPU, ENGPU)是一种基于卷积神经网络的神经网络模型,专门设计用于高效地处理长序列的任务。它旨在减少传统循环神经网络在处理长序列时的计算开销,通过并行化计算来加速训练和推理过程。 "GPU" 表示模型的设计灵感来源于 GPU 的并行计算能力,但它并不指代实际的硬件。模型本身仍然是一种神经网络模型。

ByteNet是一种用于序列建模的神经网络架构,主要用于NLP任务。它是基于卷积神经网络(CNN)设计的,它结合了卷积操作和残差连接,使用卷积层来处理序列数据,并且通过残差连接帮助在训练时保持梯度稳定,从而捕捉长距离的依赖。

卷积网络中有一个重要的概念就是感受野,在我专门讲卷积层时,画了几个非常通俗的图,给大家展示了感受野的概念。所以清楚感受野的同学,自然也就知道,感受野再大,也不可能覆盖全部序列。因为感受野就像一个滑窗的效果,有的窗口大点,有的窗口小点,但是不管大小,它的本质都是窗口。那既然是窗口,你就别想通过窗口看到序列的全部了,因为上一个窗口的信息是不传递到小一个窗口的。也所以卷积网络是很难处理长序列数据的。

但是注意力机制,是一个注意力层就计算了一个序列中的全部样本!所以注意力层天然就适合处理长序列数据。但同时这也是注意力模型的代价所在!代价就是计算量啊!假如你一个序列是10000个样本,你的注意力层是不是得学一个10000x10000的注意力矩阵啊!

这是一个理解维度。另外一个理解维度是:卷积网络虽然是独立的小滑窗看序列的,但它是可以有一系列的卷积核组成,就是卷积是多通道看这个序列,那不同通道就会看到不同的数据模式,这是卷积的强大之处。所以Transformer为了也能有卷积的这种效果,Transformer就加入了多头的概念,就是多头注意力机制。所以多头其实就是为了模拟卷积层的多通道的效果。

6、模型架构

上面的架构图基本就是Transformer的全部内容了。但是你只看图,只看3.1的两段英文,你是完全理解不了Transformer的,因为这张图背后后非常多的知识点,但凡你有思维断点,你就串不起来。所以建议回看我前面写的七、八万字的Transfomer解读,再回看论文,你就可以踏实体会论文的内容了。

所以,本文并不是再重复写前面已经写过的内容。本部分是结合论文,补齐前面没有提到的点。所以后面我就自己挑点内容写了,算是对之前写的一个点对点的补齐:

7、两个embedding层和最后的linear层共享参数

意思就是数据集WMT2014,这个英德数据集,中的源文本source(英文语句)和目标文本target(德文语句)经过bpe编码后,最小的单元是subword,而这些subword中有很多是可以共享语义的。因为英语和德语同属日耳曼语族,所以这些subword很多是可以共享语义的。

也就是使用bpe生成的词表是一个大的共享词表,做词嵌入时只有对应语言的embeeding被激活。这样做的意义是当目标语言和源语言有相同subword的时候可以共享语义信息。所以Transformer论文中的两个embedding层是共享参数的。但对于中英翻译来说的话可能意义不大因为没有相同的subword,权重共享会在做softmax时加大计算量,所以实际中是否使用还要权衡。

至于softmax前面的linear层,因为这个linear层的输出是tgt字典的长度。或者说这个linear层是把embedding后的词向量再映射会到标签编码,所以这个linear层和权重结构和embedding层的权重结构是一样的,而且功能是互逆的,所以,这两个层也是可以共享参数的。当然linear的bias就无法共享了。

共享参数的好处就是减少参数量了,模型会好训练一点。

8、Transformer的计算效率

所以架构的设计,是综合你的数据、硬件、效果来综合评估和抉择的。

9、训练部分

10、模型超参数的设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宝贝儿好

6元以上者可私信获PDF原文档

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值