Transformer结构介绍-1

介绍

在Transformer出现之前,NLP领域中RNN(图1)、LSTM(图2)已经取得较好的效果,但是仍有一些缺点,如RNN、LSTM模型的 t 时刻的输出将会作为(t+1)时刻的输入,因此模型很难并行;再如RNN无法建立长期依赖,而LSTM在一定程度上解决长距离依赖,但对于NLP领域还是不够的。表1列出了目前神经网络的几个常用的基础单元,并进行了优缺点的对比。
图1 RNN结构
图2 LSTM结构
表1 神经网络基础单元对比

模型结构

Transformer是谷歌2017年在 NIPS会议论文"Attention Is All You Need"中最先提出的。模型结构如图3所示,主要由Input、Encoder、Decoder、Output四部分组成。
图3 Transformer结构

Input

图4 Input结构图
Input部分主要有两部分组成:input embedding、 position encoding。input embedding将输入单词转化为输入矢量,position encoding将不同单词出现的实际位置编码到输入中。
position encoding函数需要满足三点:
1)编码应与文本长度有关; 2) 需要反映一定的序列关系; 3) 需要反映出同一个单词在不同位置的差别; 初始的论文中选用了正余弦函数来表达,其中图5中的公式由图4扩展得到。
图4 position encoding-1
图5 position encoding-2
Input部分的输出如图6所示,将input embedding 与 position encoding相加后得到Input部分的输出,即Encoder部分的输入。
图6 ENcoder输入

Encoder

图7 Encoder结构图
图7中,Encoder由 Multi-head Attention、Add & Norm、Linear三部分组成,输入X 经过Encoder之后得到一个隐藏状态的矩阵。
1、Multi-head Attention
首先介绍Multi-head Attention中的基本组件self-attention模块,结构如图8所示。公式表达见图9。
图8 self-attention结构图
图9 self-attention公式计算
整个self-attention的计算过程大致分为5步,如下:
1)将矩阵Q、T相乘得到QKT矩阵; 2) 将QKT矩阵归一化; 3)对归一化后的QKT矩阵进行掩膜运算; 4) 对矩阵的每一行进行soft Max操作得到soft Max矩阵; 5) 将soft Max矩阵与矩阵v相乘得到注意力矩阵。
其中Q、K、V矩阵通过图10 的方式得到,公式表达见图11。
图10 QKV矩阵的计算
图11 QKV矩阵计算公式

图8 Multi-head Attention结构图

Multi-head Attention是整个Transformer里面最重要的部分,结构如图8。公式上的表达如图9所示。
图9 Multi-head Attention公式表达
2、 Feed forward network
图10 Multi-Head Attention层的输出被送入到FFN层中,公式如图11所示:
图11 FFN公式表达
FFN相当于将每个位置的注意结果映射到一个较大维的特征空间,然后利用ReLU引入非线性进行滤波,最后恢复到原始维。
3、Add & Norm
图12 Add & Norm结构图
残差连接、归一化的思路借鉴了Kaiming He大神的CV领域的残差网络。
Add: output= x + F(x)
Norm:
图13 Layer Normalization
插一句:Layer Normalization是归一化样本中的所有数据。

Decoder

Decoder其他部分与Encoder相同,一点区别在于用的是masked Multi-head attention,这是为了防止当前单词的产生依赖于将来的单词,对位置i的预测只依赖于位置i前面的已知输出。因此加入mask.

Output

图14
向量被送入到线性层后经过soft Max层得到对应的概率,概率在0-1之间,并且相加为1。
图15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值