紧接上篇介绍一下Transformer的解码器
一、解码器
1.自回归解码器
以语音识别为例,输入一段声音,输出一串文字。如上图所示,把一段声音(“机器学习”)输入给编码器,输出会变成一排向量。解码器把编码器的输出先“读”进去。要让解码器产生输出,首先要先给它一个代表开始的特殊符号 BOS,即 Begin Of Sequence,这是一个特殊的词元(token)。在词表(vocabulary)里面,在本来解码器可能产生的文字里面多加一个特殊的符号BOS。(就是加一个BOS的维度)
在机器学习里面,假设要处理自然语言的问题,每一个词元都可以用一个独热向量来表示。其中对应维度是 1,其他都是 0,所以 BOS也是用独热向量来表示,其中对应维是 1,其他是 0。
接下来解码器会“吐”出一个向量,该向量的长度跟词表的大小是一样的。在产生这个向量之前,跟其他的分类任务一样,通常会先进行一个 softmax 操作。这个向量里面的分数是一个分布,该向量里面所有维度的值全部加起来,总和是1。
这个向量会给每一个维度对应一个分数,分数最高的维度对应的中文字就是最终的输出。“机”的分数最高,所以“机”就当做是解码器的第一个输出。