基于Transformer解决机器翻译问题的思考与总结#Datawhale AI 夏令营

纯小白,整理总结自己这几天学到的知识,以及一些体会

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 位置编码

位置编码是基于每个单词对应的向量所得到另一个向量,它可以反映不同单词之间的相对位置。

位置编码公式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值