Transformer¶
约 525 个字 预计阅读时间 2 分钟
提出于论文《Attention is all you nedd》
Seq2Seq 问题——Input a sequence,output a sequence
框架解读 ¶
基于翻译的背景下提出架构,主要是由编码器 (Emcoders) 和解码器 (Decoders) 组成,其中编码器和解码器分别由六个结构完全相同 ( 参数不相同,分开训练 ) 的小编码器 ( 解码器组成 )

详细的结构如下所示

Encoder¶

输入部分 ¶
- 词嵌入 (Word Embedding):将输入的单词转换为向量表示。
- 位置编码 (Positional Encoding):由于 Transformer 没有循环结构,需要添加位置信息来捕捉单词的顺序关系。
这里文章中给出这样的位置编码公式 , 其中 \(2i\) 和 \(2i+1\) 代表这句话中的奇数和偶数位置:
获得 Pos 信息后,与原向量相加,引入位置信息。

为什么引入位置嵌入是有用的
后面的字可以用前面的字表达出来。 但是这种相对位置信息会在注意力机制那里消失。
#### 注意力机制
在进行 Self-attention 之后,Transfomer 还引入了残差 ( 把输入向量与 self-attention 加起来作为最后的输出 )
Layernorm 和 batchnorm 的区别
batchnorm 是对一个 batch 中的不同样本,在特征维度进行求残差 layernorm是以样本维度进行求残差 
Encoder 的总体的计算逻辑如下 
Decoder¶
Masker Multi-Head Attention¶
Decoder 过去的输出会作为下一时刻的输入
Decoder 最开始的输入是一个 Special Token

Encoder 与 Decoder 的通讯 ¶

Encoder 传来 \(K\) 和 \(V\) 两个参数,Decoder 提供 \(Q\)
详细的步骤如下

下面以此类推得到剩下的结果
模型训练过程 ¶
Teacher Forcing : using the ground truth as input
在训练时,Decoder 的输入就是我们的目标结果,比如下图中的,Decoder 的输入不再是上一阶段 Decoder 的输出和输入,而是直接把正确答案当作输入,把输出的结果与真实值求误差
