知识来源:12.【李宏毅机器学习2021】Transformer (上)_哔哩哔哩_bilibili
Transformer其实就是一个Sequence-to-sequence(Seq2seq)的模型。该模型输出是由机器自己决定。
一、Seq2seq的应用
主要包括语音辨识、机器翻译、语音翻译等等。
各式各样的NLP的问题往往都可以看做QA的问题,QA的问题都是可以用Seq2seq来解。
强调重点:对多数NLP相关的任务/语音相关的任务,为这些任务客制化模型往往会得到更高的效果。对于各种任务还可以通过使用seq2seq模型来硬解。
二、Seq2seq到Transformer
1、Encoder详解(按照原始论文架构)
其中的Encoder并不只是简单的一层layer,而是多个layer叠加起来的。如下图左侧所示,其中一个block如右侧所示:
事实上,Transformer做的事情更加复杂,在Self-attention和FC上都加入了residual connection,并在后面还加上了Layer Norm:
2、Decoder详解
对比Encoder和Decoder,发现除了遮盖的地方,结构相差不大,但Decoder的Attention存在masked。
存在的Masked的意思是,只考虑左侧的信息,不考虑右侧的信息。
为什么要masked呢?因为在Decoder里面,只有左边输出之后,才会有右边的输入值。感觉有些类似于单向的RNN。
在Decoder中还存在NAT这个东西(仅作了解)
接下来,Encoder和Decoder是怎么传递信息的呢?