- Transformer里最为核心的机制是Self-attention.
- 输入为句子的矩阵,先分别通过三个全连接矩阵将输入矩阵变化为三个矩阵,分别为Q, K和V,然后通过Q和K的计算得到一些权值,将这些权值加权求和到V矩阵上,便可以得到一个新的矩阵表示。
- Self-attention机制中的多头机制便是将这样的操作分别进行多次,这样能让句子的表征充分学习到不同的侧重点,最终将这些多头学习出来的表征concat到一起,然后再同一个全连接网络,便可以得到这个句子的最终Self-attention下新的表示。
- 正是因为Self-attention的存在,才使得Transformer在做类似翻译问题的时候,可以让其Encoder不用做序列输入,而是将整个序列一次全输入,并且超长序列的输入也变得可能。
- Self-attention和普通的attention机制主要区别在于在自我输入上计算attention权值大小。对于普通的attention机制,输入可能有多个。
- 在Transformer的Encoder中,还有一些其他的设计,比如加入position embedding(因为Transformer的Encoder中不是时序输入词序列,因此position embedding也是主要的位置信息);Residual结构,使得模型的训练过程更为平稳,此外还有normalization层,接着便是feed forward层(本质上是一个两层的全连接网络,中间加一个ReLu的激活函数)。Decoder的结构与此类似,只不过在进行decode的时候,会将Encoder这边的输出作为Decoder中Self-attention时候的K和V。
Transformer
最新推荐文章于 2023-05-19 11:53:52 发布