纯小白,整理总结自己这几天学到的知识,以及一些体会
1 Transformer
1.1 结构
Transformer的主要结构包括:编码器输入,编码器(Encoder)嵌入表示层、注意力层、前瞻层,解码器输入,解码器(Decoder)注意力层、编码解码注意力层、前瞻层,其中将编码器的输出作为解码器输入的一部分
在整个Transformer中编码器和解码器数量N是对应相同的(如下图中的“×6”,表示各有6个,共6组),这N个编码器结构相同,N个解码器结构也相同(当然,编码器和解码器的结构不同),但是每一组编码器和解码器参数并不相同(即1~N组的编码器参数不同,1~N组的解码器参数不同给),在训练的时候每组参数也是在独立训练,并最后通过Albert进行处理,最终达到减少参数的效果(具体是什么原理我也没搞明白)
Transformer主要的结构

1.2 功能
1.2.1 嵌入表示层
在机器翻译中我们不仅仅要知道源语言单词和目标语言单词的对应关系,还要知道其对应的位置,这个位置包括词的绝对位置以及词与词之间的相对位置
比如将英语”read good book“翻译成汉语“读好书”,我们不仅要知道“read”的意思是”读“,”good”的意思是“好”,“book”的意思是“书”,还要知道每个对应词汇的位置,否则就会出现“读书好”“好读书”“书好读”等错误翻译
对于RNN来说,因为其在翻译“read good book”的时候的串联运算的,即翻译完“read’再翻译”good“”book“,其结果的呈现已经带有了位置信息,但是Transformer是在进行并行运算,这三个英语的单词是同时被翻译出来的,这虽然提升了运算效率,但是也导致位置信息缺失,所以我们需要加入嵌入表示层
嵌入表示层主要包括两部分:输入嵌入层(Input Embedding)和位置编码(Position Encoding),二者结果的和(两个向量叠加)将被用作模型的输入
1.2.1.1 输入嵌入层
输入嵌入层负责将每个单词转化为其相对应的向量表示,方法包括随机初始化、word2vec等,这个可以理解成该单词的绝对位置
1.2.1.2 位置编码
位置编码是基于每个单词对应的向量所得到另一个向量,它可以反映不同单词之间的相对位置。
位置编码公式

最低0.47元/天 解锁文章
498

被折叠的 条评论
为什么被折叠?



