文献基本信息:
Encoder-Decoder:
Transformer的结构:
- 输入
- 编码器
- 解码器
- 输出
Transformer的工作流程:
- 获取输入句子的每一个单词的表示向量X,X由单词的embedding(embedding是一种将高维特征映射到低维的技术)和单词位置的embedding相加得到
- 将得到的单词表示向量矩阵(如下图所示),每一行是一个单词的表示,传入Encoder中,经过6个Encoder block后可以得到句子所有单词的编码信息矩阵C(如下图所示);单词向量矩阵用X_n*d表示,n是句子中单词的个数,d是表示向量的维度(论文中d=512);每一个Encoder block输出的矩阵维度与输入维度一致
- 将Encoder输出的编码信息矩阵C传递到Decoder中,Decoder依次会根据当前翻译过的单词1~i翻译下一个单词i+1(如下图所示);在使用的过程中,翻译到单词i+1的时候需要通过Mask(掩盖)操作遮盖住i+1之后的单词
编码器结构:
如图,红色框是编码器结构;N表示这一层有几个编码器;编码器由一个多头注意力机制、一个残差网络、LayerNorm(层归一化)和前馈神经网络组成。
信息进入的完整流程:
- 多头注意力机制:处理输入特征的全局关系
- 输出加上输入经过:残差连接
- 结果经过LayerNorm:进行归一化
- 进入前馈神经网络:进行非线性特征变换
- 再次经过残差连接+ LayerNorm
论文信息:
从论文来读是Encoder有N=6层,每层包含两个子层(sub-layers)且都有多头自注意力机制,允许模型在处理序列时同时关注序列的不同部分和全连接前馈网络,对每个位置的向量进行相同的操作。