一、Transformer结构
Transformer模型,由6个Encoder和6个Decoder组成,输入和输出通过同一个训练好的词嵌入层(Word Embedding)将输入字符转换为维度d的向量。
1、Encoder
Transformer对编码器(Encoder)与解码器(Decoder)两端的序列分别添加位置编码(Positional Encoding)。之后,编码经过含有多头自注意力机制(Multi-head Self-Attention)、位置前向传播网络(Position-wise Feed-Forward Network)、残差连接(Residual Connection)和层归一化(Layer Normalization)的计算单元。
1)Positional Encoding
表示单词在句中的位置与词句的相对位置,在Transformer中与句子的嵌入表示相加,获得输入。
2)Multi-Head Attention
多头自注意力机制。计算输入的表示与输出的表示间的得分score,作为判断输出单词的依据。
同一序列中词的关系直接由socre值计算得到,不会因为传播而造成信息损失,有利于长距离依赖。
3)Position-Wise Feed-Forward Network
是一个全连接前馈网络。
Position-Wise 即以单个位置为单位进行前馈。
4)Layer Normalization
Batch Normalization 对 Batch Size 依赖很大,当Batch Size 过小时,BN 层的均值和标准差计算与整个数据集的实际统计数据相差过大,就使得其丧失了归一化效果。所以出现Layer Normalization
Layer Normalization:即通过对在相同时间步的神经元的输入求其均值与标准差,在这个方向上对输入进行归一化,可以理解为 BN 的转置。
2、Decoder
Transformer 解码器(Decoder)与编码器(Encoder)具有相同的计算单元,不同的是,模型仍是 Seq2Seq 结构,因此,为了令解码器不提前得知未来信息,使用 Masked Multi-head Attention 隐藏下文。