Transformer: https://zhuanlan.zhihu.com/p/59629215
Self-attention: 编码器对特定单词编码时查看输入序列的其他单词
解码器中 Encoder-Decoder Attention 帮解码器注意输入句子的相关部分
多头注意力机制
这篇文章通过增加一种称为“多头”注意力的机制完善了self-attention层。这通过两种方式改善了注意力层的性能:
- 它扩展了模型关注不同位置的能力。在上面的例子中,Z1包含了每个其他编码的一点,但它可能由实际的单词本身支配。翻译句子:“The animal didn’t cross the street because it was too tired”,我们很想知道这里的“it”指代什么? 这时候会很有帮助。
- 它给予attention层多个“表达子空间”。接下来会看到多头注意力有多组Query/ Key /Value权重矩阵(Transformer使用了8组注意力头,所以这里我们为每个编码器/解码器设置了8组),而不是简单的一组。每组集合都是随机初始化。之后在训练中每组用于将词嵌入(或来自较低层编码器/解码器的输出)映射到不同的表达子空间。
位置编码
这是因为左边的值是由一个函数(正弦)产生的,右边的值是由另一个函数(余弦)产生的。然后将它们连接起来形成每个位置编码向量
残差连接