【LLM】位置编码

发布于:2025-06-27 ⋅ 阅读:(19) ⋅ 点赞:(0)

1 绝对位置嵌入

绝对位置嵌入是将每个位置独立编码为一个固定向量,并添加到对应的词嵌入中,使模型能够感知单词在序列中的绝对位置。其公式为:
f t : t ∈ { q , k , v } ( x i , i ) : = W t : t ∈ { q , k , v } ( x i + p i ) f_{t: t \in \{q, k, v\}}\left(x_i, i\right) := W_{t: t \in \{q, k, v\}}\left(x_i + p_i\right) ft:t{q,k,v}(xi,i):=Wt:t{q,k,v}(xi+pi)

其中, p i ∈ R d p_i\in\mathbb{R}^d piRd是依赖于token x i x_i xi所在位置的 d 维向量。例如,Vaswani 等人提出使用正弦函数生成 p i p_i pi
{ p i , 2 t = sin ⁡ ( p o s / 1000 0 2 t / d ) p i , 2 t + 1 = cos ⁡ ( p o s / 1000 0 2 t / d ) \begin{cases} p_{i, 2t} = \sin\left( pos / 10000^{2t / d} \right) \\ p_{i, 2t + 1} = \cos\left( pos / 10000^{2t / d} \right) \end{cases} {pi,2t=sin(pos/100002t/d)pi,2t+1=cos(pos/100002t/d)

式中, pos表示 x i x_i xi在序列中的绝对位置。 p i , 2 t p_{i, 2t} pi,2t 是d维向量 p i p_i pi 的第 2 t 2t 2t 个元素。

为什么用 1000 0 2 t d 10000^{\frac{2t}{d}} 10000d2t?

核心是让不同维度的位置编码有不同的 “频率”,模拟人类对 “绝对位置 + 相对距离” 的感知:
在这里插入图片描述
这种设计能让模型通过三角函数的相位差,隐式学习到 “相对位置”(比如词 A 和词 B 隔 5 个词,它们的位置编码在各维度的正弦 / 余弦值差异,会和 “隔 5 个词” 的模式对应 ),同时用固定公式避免了可学习位置编码的参数开销。

2 相对位置嵌入

传统绝对位置编码给每个位置分配固定编码,难以灵活体现元素间相对关系(比如长序列里 “词 A 与词 B 相隔多远” 的信息)。相对位置编码的目标,是让模型感知 “元素间相对距离” 对语义的影响—— 比如句子里 “苹果” 和 “吃”,不管它们在序列中绝对位置多靠后,“相邻” 或 “间隔 1 个词” 的相对关系,会让注意力权重、语义关联有差异.

在这里插入图片描述

2.1 Shaw等人的方法(2018)

核心思想:对键(Key)和值(Value)添加可训练的相对位置嵌入,并对超出一定范围的相对距离进行截断。

在这里插入图片描述
在这里插入图片描述

2.2 Dai等人的方法(2019)

核心思想:分解查询(Query)与键(Key)的内积,将绝对位置嵌入替换为正弦编码的相对位置嵌入。

在这里插入图片描述
在这里插入图片描述

2.3 Raffel 等人的方法(2020)

核心思想:简化内积为内容项与可训练偏置项的和。

在这里插入图片描述

2.4 He 等人的方法(2020)

核心思想:完全用相对位置嵌入替代绝对位置嵌入,强调相对位置的建模。

在这里插入图片描述

2.4 RoPE(2023)

Rotary position embedding(RoPE)是一种在 Transformer 架构中用于编码位置信息的方法,其核心是利用旋转矩阵对绝对位置进行编码,并在自注意力机制中融入相对位置依赖关系。具体做法如下:

在这里插入图片描述
在这里插入图片描述
我们可以进一步将 f { q , k } f_{\{q,k\}} f{q,k}写成乘法矩阵形式

在这里插入图片描述
具体来说,融入相对位置嵌入的方式非常直接:只需将仿射变换后的词嵌入向量按其位置索引的角度倍数进行旋转,这正是RoPE背后的核心思想。

在这里插入图片描述

为了将我们在二维情况下的结果推广到任意 x i ∈ R d x_i\in\mathbb{R}^d xiRd(其中 d 为偶数)的情形,我们将 d 维空间划分为 d/2 个子空间,并利用内积的线性性质将它们组合起来,使 f { q , k } f_{\{q,k\}} f{q,k}变为

在这里插入图片描述

将我们的 RoPE 应用于 q T k q^Tk qTk的自注意力机制中
在这里插入图片描述
其中
在这里插入图片描述

**与先前工作(即2.1-2.3节)中采用的加法性质位置嵌入方法不同,我们的方法是乘法性质的。**此外,当将 RoPE 应用于自注意力机制时,它通过旋转矩阵乘积自然地融入相对位置信息,而不是在加法位置编码的展开式中修改项。

不过以上的计算方式并非高效。
在这里插入图片描述

遵循Vaswani[2017]的做法,,可以证明RoPE具有长期衰减性,即相对距离较远的一对 tokens 之间的关联应当更弱。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到