Transformer
本文章参考以下博客,如有不懂,可看原博客
参考文章1
参考文章2
整体架构
Transformer其实是一个Seq2Seq模型,左边一个encoder把输入读进去,右边一个decoder得到输出
Encoder(N=6层,每层包括2个layers)
主要是由self-attention和前馈神经网络构成
全连接有两层,第一层的**函数是ReLU,第二层是一个线性**函数,可以表示为:
Transformer框架因为为了解决深度网络带来的退化问题,引入了残差网络部分(Residuals)如下所示:
在transformer机制中加入位置信息主要是为了增加捕捉顺序序列的能力
Decoder(N=6层,每层包括3个layers)
Decoder部分和Encoder部分非常接近,但是多了一个Encoder-Decoder Attention单元
两个Attention分别用于计算输入和输出的权值:
Self-Attention:当前翻译和已经翻译的前文之间的关系;
Encoder-Decnoder Attention:当前翻译和编码的特征向量之间的关系
在encoder-decoder attention中, Q来自于解码器的上一个输出,K和V则来自于于编码器的输出,计算方式和self attention的计算方式是一致的