【LLM】位置編碼
- 1 絕對位置嵌入
- 2 相對位置嵌入
- 2.1 Shaw等人的方法(2018)
- 2.2 Dai等人的方法(2019)
- 2.3 Raffel 等人的方法(2020)
- 2.4 He 等人的方法(2020)
- 2.4 RoPE(2023)
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 pi?∈Rd是依賴于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 xi?∈Rd(其中 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 之間的關聯應當更弱。