Positional Encoding(位置符号化)

article technology high #positional-encoding#rope#alibi#sinusoidal#transformer#attention-mechanism#llm#context-length
Created: 2026-05-22 Updated:

位置符号化は並べ替え不変な自己注意にトークン順序を注入する仕組み。正弦波(Vaswani 2017)、学習済み絶対、相対バイアス(Shaw / T5)、RoPE(Su 2021)、ALiBi、YaRN などの長文脈拡張までを比較整理する。

Positional Encoding(位置符号化)

Transformer の自己注意は並べ替え不変で、追加信号なしには「犬が猫を追う」と「猫が犬を追う」を区別できない。位置符号化はこの欠落を補う機構で、正弦波絶対(Vaswani 2017)、学習済み絶対、相対バイアス、RoPE、ALiBi、長文脈拡張(YaRN / LongRoPE)へと進化した。本稿は各方式の数式と設計思想、選択指針を整理する。

位置情報がなぜ必要か

自己注意は Attention(Q,K,V)=softmax(QK/dk)V\text{Attention}(Q, K, V) = \text{softmax}(Q K^\top / \sqrt{d_k}) V と定義される。任意の置換行列 PP について Attention(PXWQ,PXWK,PXWV)=PAttention(Q,K,V)\text{Attention}(P X W_Q, P X W_K, P X W_V) = P \cdot \text{Attention}(Q, K, V) が成立し、自己注意は**並べ替え不変(permutation invariant)**である。

「犬が猫を追う」と「猫が犬を追う」は単語集合として同一で、注意行列も行・列が置換されただけになる。主語・目的語の区別や語順依存の意味は位置情報を要し、別経路で位置を注入しなければ「トークンの袋」となる。

正弦波絶対位置符号化(Vaswani 2017)

オリジナル Transformer (Vaswani et al. 2017, arXiv:1706.03762) は学習しない正弦波符号化を採用した。位置 pospos、次元 ii、モデル次元 dmodeld_{\text{model}} に対し、

PE(pos,2i)=sin ⁣(pos/100002i/dmodel)PE(pos,2i+1)=cos ⁣(pos/100002i/dmodel)\begin{aligned} \text{PE}(pos, 2i) &= \sin\!\left(pos / 10000^{2i / d_{\text{model}}}\right) \\ \text{PE}(pos, 2i+1) &= \cos\!\left(pos / 10000^{2i / d_{\text{model}}}\right) \end{aligned}

PE(pos)\text{PE}(pos) はトークン埋め込み e(pos)e(pos)加算される。連結でなく加算なのは、内積展開で内容項と位置項のクロス項が生じ両者に基づく注意が同時に成立するためである。

相対位置の線形性: 任意のオフセット kk について PE(pos+k)\text{PE}(pos+k)PE(pos)\text{PE}(pos) の線形関数で書ける。周波数 ω=1/100002i/dmodel\omega = 1 / 10000^{2i/d_{\text{model}}} に三角関数の加法定理を適用すると、

[PE(pos+k,2i)PE(pos+k,2i+1)]=[cos(kω)sin(kω)sin(kω)cos(kω)][PE(pos,2i)PE(pos,2i+1)]\begin{bmatrix} \text{PE}(pos+k, 2i) \\ \text{PE}(pos+k, 2i+1) \end{bmatrix} = \begin{bmatrix} \cos(k\omega) & \sin(k\omega) \\ -\sin(k\omega) & \cos(k\omega) \end{bmatrix} \begin{bmatrix} \text{PE}(pos, 2i) \\ \text{PE}(pos, 2i+1) \end{bmatrix}

全次元では PE(pos+k)=MkPE(pos)\text{PE}(pos+k) = M_k \cdot \text{PE}(pos) という 2D 回転のブロック対角行列となる。モデルは線形層で逆回転を学習して相対オフセット kk を取り出せる。これを Q / K に直接適用したのが後述の RoPE である。

底 10000: 波長 λi=2π100002i/dmodel\lambda_i = 2\pi \cdot 10000^{2i/d_{\text{model}}}2π2\pi から 2π×1042\pi \times 10^4 までの 4 桁分の幾何進行となる。当時想定の最大系列長 512 に対し最低周波数が 1 周期未満で収まる経験則的選択。

外挿の弱さ: 形式上は任意の pospos で定義可能だが、注意層は訓練範囲の PE\text{PE} 分布に最適化されており、訓練長を超えると分布シフトで劣化する。これが ALiBi / RoPE 系長文脈拡張の動機である。

学習済み絶対位置埋め込み

nn.Embedding(max_seq_len, d_model) で位置埋め込みを学習する方式。BERT (Devlin et al. 2019, arXiv:1810.04805)、GPT-2 (Radford et al. 2019)、ViT (Dosovitskiy et al. 2020, arXiv:2010.11929) が採用。利点はタスクに最適な位置表現を学べる点、欠点は max_seq_len という硬い天井(BERT-base 512、GPT-2 1024)を持ち学習範囲外への外挿性能が事実上ゼロな点。

相対位置符号化

絶対位置でなくトークン間の相対オフセット iji - j を直接注入する系統。「動詞は主語と一致する」のような構文現象は相対位置の関数なので、相対符号化はタスクの帰納バイアスに整合する。

Shaw et al. 2018 (arXiv:1803.02155): クリップした相対オフセット clip(ij,k,k)\text{clip}(i-j, -k, k) をキーとして学習可能ベクトル aijKa^K_{ij} をキーに加算: eij=(xiWQ)(xjWK+aijK)/dke_{ij} = (x_i W_Q)(x_j W_K + a^K_{ij})^\top / \sqrt{d_k}

T5 (Raffel et al. 2020, arXiv:1910.10683): 相対オフセットを 32 個の対数ビンに割り当て、各ビン・各ヘッドごとにスカラーバイアス b(bucket(ij))b(\text{bucket}(i-j)) を学習し注意ロジットに加算: eij=(QiKj)/dk+b(bucket(ij))e_{ij} = (Q_i K_j^\top)/\sqrt{d_k} + b(\text{bucket}(i-j))。近距離は 1 オフセットごとに別ビン、遠距離は対数間隔で粗くまとめる設計で、限られたパラメータで長距離依存もカバーでき、最遠ビンが極大オフセットを吸収するため学習範囲外でも極端に発散しない。T5 系 encoder-decoder では今もデフォルト級の選択肢である。

RoPE(Rotary Position Embedding)

Su et al. 2021 (arXiv:2104.09864) の RoPE は、トークン埋め込みに PE を加算せず、自己注意の Q と K を位置依存の回転行列で直接回転させる。内積が相対位置のみの関数になるという相対符号化の理想形を、追加パラメータゼロで達成する。

dheadd_{\text{head}} を 2 次元ペアに分割し、tt 番目のペアに周波数 θt=1/base2t/dhead\theta_t = 1 / \text{base}^{2t / d_{\text{head}}}(base\text{base} は通常 10000)を割り当てる。位置 mm のクエリには次のブロック対角回転 R(m)R(m) を作用させる。

Rt(m)=[cos(mθt)sin(mθt)sin(mθt)cos(mθt)]R_t(m) = \begin{bmatrix} \cos(m \theta_t) & -\sin(m \theta_t) \\ \sin(m \theta_t) & \cos(m \theta_t) \end{bmatrix}

位置 m,nm, n で回転後の Q と K の内積は、回転行列の合成性 R(m)R(n)=R(nm)R(m)^\top R(n) = R(n-m) から

R(m)qm,  R(n)kn=qmR(m)R(n)kn=qmR(nm)kn\langle R(m) q_m,\; R(n) k_n \rangle = q_m^\top R(m)^\top R(n) k_n = q_m^\top R(n-m) k_n

となり、内積は q,kq, k と相対オフセット nmn-m のみの関数である。Shaw らが学習バイアスで近似した相対性を、回転行列の代数で完全に実現したものに等しい。実装は要素積で O(dhead)O(d_{\text{head}})、KV キャッシュ推論でも新規 Q と K にだけ作用させればよい。

採用モデル: LLaMA / LLaMA 2 / LLaMA 3、Mistral、Qwen / Qwen2 / Qwen2.5、Gemma、GPT-NeoX、Falcon の一部、PaLM(部分 RoPE)など 2023 年以降のデコーダ LLM の事実上の標準。LLaMA 2 は底 10000・dhead=128d_{\text{head}} = 128 で文脈 4096、LLaMA 3 は底 500000 に引き上げ文脈 8192(後続 128k へ拡張)。底を上げると周期長が伸び長い位置範囲を扱える。

ALiBi(Attention with Linear Biases)

Press et al. 2021 (arXiv:2108.12409, ICLR 2022) の ALiBi は位置埋め込みを一切使わず、注意ロジットにヘッド固有の線形ペナルティを加える。

softmax ⁣(QK/dk+mM)\text{softmax}\!\left(Q K^\top / \sqrt{d_k} + m \cdot M\right)

ここで Mij=(ij)M_{ij} = -(i - j)mm はヘッド固有スカラ傾きでヘッド数 HH について幾何級数 mh=28h/Hm_h = 2^{-8h/H} で決める(学習しない)。傾き大は強い最近性バイアス、小は遠距離まで均一に見る。

魅力は自然な外挿で、線形ペナルティが任意距離で連続的に伸びるため訓練長を 5〜10 倍超えても PPL が崩れない。MPT、BLOOM (arXiv:2211.05100)、Falcon の一部が採用。絶対位置情報を持たず、RoPE + YaRN 系が台頭した 2024 年以降は新規大規模 LLM での採用は減っている。

文脈長拡張(Position Interpolation / NTK / YaRN)

訓練長 LL の RoPE モデルでそれを超える位置を扱うと、高周波次元の回転角が 2π2\pi を超えてエイリアシングを起こし性能が崩壊する。これを補正するのが文脈長拡張手法である。

Position Interpolation (Chen et al. 2023, arXiv:2306.15595): pos=pos×(Ltrain/Ltarget)pos' = pos \times (L_{\text{train}} / L_{\text{target}}) で全位置を圧縮。学習済み分布範囲内に収められるが高周波が潰れ、軽微な FT(~1000 ステップ)が前提。

NTK-aware scaling(bloc97 / 2023 年コミュニティ発): 位置でなく**底 θ\theta**を θnew=θold×(Ltarget/Ltrain)dhead/(dhead2)\theta_{\text{new}} = \theta_{\text{old}} \times (L_{\text{target}} / L_{\text{train}})^{d_{\text{head}} / (d_{\text{head}} - 2)} でスケール。高周波精度を保ちつつ低周波を伸ばせる。FT なしで 2〜4 倍拡張が可能。NTK は Neural Tangent Kernel 由来。

YaRN (Peng et al. 2023, arXiv:2309.00071): 周波数次元ごとに異なる戦略を適用する非一様スケーリング。高周波はそのまま、中周波は NTK 式、低周波は PI 式とし、さらに温度補正 1/1+0.1log(scale)1 / \sqrt{1 + 0.1 \log(\text{scale})} を掛けて softmax 分布シフトを補償。400〜1000 ステップの FT で PI / NTK 単独より良い PPL を達成。

LongRoPE (Ding et al. 2024, arXiv:2402.13753): 進化的探索で次元ごとの最適スケーリング係数を見つけ、LLaMA-2 / Mistral を 200 万トークンへ拡張。

手法スケール対象FT 要否適用範囲
Position Interpolation位置 pospos必要2-4 倍
NTK-awareθ\theta不要〜軽微2-4 倍
YaRN周波数別 + 温度軽微4-32 倍
LongRoPE進化探索必要32 倍超〜 200 万

多モーダル拡張

2D RoPE(EVA / InternViT 系): dheadd_{\text{head}} を 2 等分し、前半に行 mrowm_{\text{row}}、後半に列 mcolm_{\text{col}} の RoPE を独立適用して 2D 構造を保つ。

M-RoPE(Multimodal RoPE): Qwen2-VL (2024) の 3D RoPE。dheadd_{\text{head}} を 3 等分し時間・高さ・幅に独立な回転を割り当てる。動画トークン (t,h,w)(t, h, w) には対応する 3 軸回転、テキストには 1 種類の系列インデックスを 3 軸すべてに割り当て、視覚・テキストを単一の自己注意で扱う。

2026 年の選択指針

  • 新規デコーダ LLM: RoPE がデフォルト。底 θ\theta は最低 500000、文脈 8k 超なら最初から YaRN 視野。FlashAttention は RoPE をネイティブ対応。
  • 長文脈優先: 既存 RoPE 拡張は NTK(2〜4 倍は単独で可)または YaRN(それ以上は長文書 FT 併用)。ゼロから設計なら ALiBi も候補。
  • Encoder-Decoder: T5 系バケット化相対バイアスが安定。長系列にも粗外挿が効く。
  • Encoder-Only / 埋め込み: 学習済み絶対 PE で十分(bge-m3 などは固定上限で動く)。
  • Vision Transformer: 固定解像度なら学習済み 2D 絶対 PE、可変解像度なら 2D RoPE。
  • 動画・マルチモーダル: M-RoPE(Qwen2-VL)が最良解。

二言語用語対照表

日本語English
位置符号化Positional encoding
絶対 / 相対位置符号化Absolute / Relative PE
正弦波位置符号化Sinusoidal PE
学習済み位置埋め込みLearned PE
回転位置埋め込みRotary Position Embedding (RoPE)
自己注意Self-attention
並べ替え不変性Permutation invariance
相対オフセットRelative offset
文脈長Context length
外挿 / 内挿Extrapolation / Interpolation
線形バイアスLinear bias
バケット化Bucketing
波長 / 周波数Wavelength / Frequency
回転行列Rotation matrix
温度スケーリングTemperature

参考文献

Local graph