transformer中的位置嵌入

本文详细解释了Transformer模型中位置嵌入的作用,它用于弥补模型无循环结构而无法捕捉序列信息的问题。通过sine和cosine函数的线性变换创建位置嵌入,使模型能够学习到位置依赖关系和自然语言的时序特性。位置嵌入的周期性变化在不同维度上产生独特的纹理,帮助模型理解输入序列的顺序。
摘要由CSDN通过智能技术生成

本文为《Attention Is All You Need》精读中的一个拓展

论文- 《Attention Is All You Need》

由于transformer模型没有循环神经网络的迭代操作, 所以我们必须提供每个字的位置信息给transformer, 才能识别出语言中的顺序关系。

现在定义一个位置嵌入的概念,也就是现在定义一个位置嵌入的概念, 也就是𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛𝑎𝑙 𝑒𝑛𝑐𝑜𝑑𝑖𝑛𝑔, 位置嵌入的维度为[𝑚𝑎𝑥 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 𝑙𝑒𝑛𝑔𝑡ℎ, 𝑒𝑚𝑏𝑒𝑑𝑑𝑖𝑛𝑔 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛], 嵌入的维度同词向量的维度, 𝑚𝑎𝑥 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 𝑙𝑒𝑛𝑔𝑡ℎ属于超参数, 指的是限定的最大单个句长.

注意, 我们一般以字为单位训练transformer模型, 也就是说我们不用分词了, 首先我们要初始化字向量为[𝑣𝑜𝑐𝑎𝑏 𝑠𝑖𝑧𝑒, 𝑒𝑚𝑏𝑒𝑑𝑑𝑖𝑛𝑔 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛], 𝑣𝑜𝑐𝑎𝑏 𝑠𝑖𝑧𝑒为总共的字库数量, 𝑒𝑚𝑏𝑒𝑑𝑑𝑖𝑛𝑔 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛为字向量的维度, 也是每个字的数学表达.

好吧,如果这里开始不懂了, 我们就拿我们的例子来看一下子:
在这里插入图片描述
论文里面使用了sine和cosine函数的线性变换来提供给模型的位置信息:
在这里插入图片描述
上式中p o s pospos指的是句中字的位置, 取值范围是[ 0 , m a x s e q u e n c e l e n g t h ) [0, \ max \ sequence \ length)[0, max sequence length), i ii指的是词向量的维度, 取值范围是[ 0 , e m b e d d i n g d i m e n s i o n ) [0, \ embedding \ dimension)[0, embedding dimen

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值