Skip to content

Position Embedding

1. 绝对位置编码

直接对word embedding和position embedding相加送入到模型

1.1 三角位置编码(早期Transformer)

  • 具体公式:

    P2ik=sin(k100002i/dmodel)P^k_{2i} = sin(\frac{k}{10000^{2i/d_{model}}})

    P2i+1k=cos(k100002i/dmodel)P^k_{2i+1} = cos(\frac{k}{10000^{2i/d_{model}}})

  • 其中:

    kk表示第kk个token,2i2i2i+12i+1表示token对应的embedding(第奇数个和偶数个分别采用cos和sin)

1.2 可学习的位置编码(LPE)

Bert、GPT-2等采用的就是这种方法

初始化一个position embedding,与word embedding进行相加得到,后续进行参数更新

2. 相对位置编码

2.1 T5的相对位置编码

最终结果是对Attention加上了一个偏置项

在Attention时候进行位置编码,而不是在最初

3 旋转位置编码——RoPE(大模型常用)

数学推导较为难理解

同相对位置编码一样,在Attention时候进行位置编码,只对q和k做位置编码,对value不做,value是结果或者说是token本身的特征信息

image-20250328102841239image-20250328102744334

直观理解:

RoPE理解

RoPE的远程衰减性