首页 > 其他分享 >Transformer中的Position Embedding和RNN/CNN中的Position Encoding的区别

Transformer中的Position Embedding和RNN/CNN中的Position Encoding的区别

时间:2022-09-07 17:44:34浏览次数:68  
标签:编码 Transformer RNN Encoding Embedding Position

区别:Position Embedding是学习式,Position Encoding是固定式

Transformer的结构是基于Self-Attention的,与RNN/CNN不同,不包含序列信息,但是序列信息又极其重要,为了融合序列信息,就需要位置编码了

Transformer的论文提出了两种编码方式:学习式和固定式

学习式

定义:当做可训练参数随机初始化,比如最长512,编码维度768,则随机初始化一个512x768矩阵,让其随训练进行更新,目前的BERT、GPT等预训练模型都是通过这种方式获得位置编码

缺点:不可扩展,即如果预训练最大长度为512,则最多能处理512长度的句子

固定式

通过公式直接计算,例如Transformer通过三角函数直接计算得到

使用周期函数表示位置编码有两个理由,一个是参考二进制,二是可以轻松学到相对位置(任意位置的编码都可以通过前面某个位置编码的线性表示得到,可以通过cos加法和sin加法规则证明,这也是PE同时使用cos和sin的原因)

三角函数中使用10000的原因,确保循环周期足够大,以便于编码足够长的文本(其实就是这样做实验效果更好)

标签:编码,Transformer,RNN,Encoding,Embedding,Position
From: https://www.cnblogs.com/WMT-Azura/p/16666660.html

相关文章