線形アテンションと効率的アテンションの系統
長文でアテンションが二乗で重くなる壁を、線形・低ランク・疎の三系統がどう崩すかを整理。各手法の近似の出どころと精度の代償を見極め、用途に合う一手を選べるようになる。
- 1.softmax を分離不可能にしている指数核を、カーネル特徴写像 φ で内積近似に置き換えると、計算順序を (φ(Q)φ(K)ᵀ)V から φ(Q)(φ(K)ᵀV) へ組み替えられ、系列長 n に対し O(n²) を O(n) に落とせる。Performer の FAVOR+ はこの φ を不偏な乱択特徴で構成する。
- 2.Linformer は K・V を系列方向に固定次元 k へ低ランク射影し、n×n のスコア行列を n×k にして O(n) 化する。BigBird・Longformer は注目を局所窓+大域トークン+乱択に限る疎パターンで O(n) に近づける。
- 3.三系統は近似の出どころが異なる。線形カーネルは softmax の非線形性を犠牲にし、低ランクは系列の相関構造に賭け、疎は到達性を窓設計に依存する。厳密等価な FlashAttention とは別レイヤーの最適化で、精度の代償と引き換えに漸近計算量そのものを下げる。
二乗の壁はどこから来るのか
Self-Attention の計算 の核は次の式です。
Attention(Q, K, V) = softmax(QKᵀ / √d) · V
系列長 n、ヘッド次元 d のとき、QKᵀ は n × n のスコア行列になります。これに行方向 softmax をかけ、V を掛けて出力 n × d を得ます。計算量は O(n²·d)、メモリは中間行列ぶんの O(n²)。d が定数なら、二乗の主因は系列長 n です。
問題の本質は softmax が Q と K を分離できない形 にあることです。もし出力が (QKᵀ)V という素の積なら、行列積の結合則で Q(KᵀV) と組み替えられます。KᵀV は d × d なので、系列長について線形になります。ところが間に softmax の指数 exp(qᵢ·kⱼ) が挟まると行ごとの正規化が絡み、この組み替えができません。効率的アテンションの全系統は、この一点をどう回避するかで分類できます。
効率化の方向は大きく3つです。(1) softmax の指数核を分離可能な特徴写像で近似する 線形アテンション(Performer 等)、(2) スコア行列そのものを低ランクと見なして潰す 低ランク射影(Linformer)、(3) 注目先を間引く 疎アテンション(Longformer・BigBird)。いずれも O(n²) を O(n)(または近似的に)へ落とします。
線形アテンション:カーネル特徴写像で結合則を取り戻す
softmax アテンションの各出力行は次のように書けます。sim(q, k) = exp(q·k / √d) という類似度を重みにした V の加重平均です。
outᵢ = Σⱼ sim(qᵢ, kⱼ) · vⱼ / Σⱼ sim(qᵢ, kⱼ)
ここで指数核 sim(q, k) を、ある特徴写像 φ の内積 φ(q)·φ(k) で置き換えられたとします。すると分子は次のように変形できます。
分子 = Σⱼ (φ(qᵢ)·φ(kⱼ)) vⱼ = φ(qᵢ) · ( Σⱼ φ(kⱼ) vⱼᵀ )
右辺の Σⱼ φ(kⱼ) vⱼᵀ は 全クエリで共通の m × d 行列(m は特徴次元)で、n 本のクエリそれぞれで作り直す必要がありません。分母の Σⱼ φ(kⱼ) も同様に一度だけ計算すれば済みます。計算量は (φ(Q)φ(K)ᵀ)V の O(n²) から φ(Q)(φ(K)ᵀV) の O(n·m·d) へ落ち、n について 線形 になります。これは SVM のカーネルトリック と逆向きの発想で、明示的な特徴写像を与えてカーネルを内積に戻すものです。
標準: (Q Kᵀ) V → n×n を作る → O(n²·d)
線形: φ(Q) (φ(K)ᵀ V) → m×d 状態を作る → O(n·m·d)
単純に φ(x) = elu(x) + 1(Katharopoulos らの線形 Transformer)のような正値写像を使う手もありますが、これは exp(q·k) の近似精度が粗く、softmax の鋭いピークを再現しきれません。注目分布が平坦化し、特定トークンを強く選ぶ能力が落ちます。φ の質が線形アテンションの精度そのものを左右します。
Performer の FAVOR+:指数核を不偏に乱択近似する
Performer はこの φ を 乱択特徴(random features) で構成します。FAVOR+(Fast Attention Via positive Orthogonal Random features)は、exp(q·k) を満たす φ を確率的に作る点が肝です。要点は2つあります。
第一に 正値性(positive features)。素朴な三角関数ベースの乱択特徴は内積の推定値が負になり得て、softmax 重みが負になると数値が破綻します。FAVOR+ は指数関数ベースの正値特徴を使い、推定が常に非負になるよう設計します。これにより exp(q·k) の 不偏推定(期待値が真値に一致)を、分散を抑えつつ得られます。
第二に 直交性(orthogonal features)。乱択射影に使う行をランダムな直交行列から取ると、推定の分散が下がり、少ない特徴次元 m で精度が出ます。m を d·log d 程度に取れば実用的な近似になるとされます。
| 観点 | 標準 softmax | 線形 (elu+1) | Performer (FAVOR+) |
|---|---|---|---|
| 核の扱い | exp を厳密計算 | 正値写像で粗く近似 | 乱択特徴で不偏近似 |
| 計算量 | O(n²·d) | O(n·d) | O(n·m·d) |
| 近似誤差 | なし | 大きめ・分布が平坦化 | 推定分散ぶん・制御可能 |
| 弱点 | 長文で二乗 | 鋭い注目を再現しにくい | m を増やすと精度向上だが計算増 |
線形アテンションには副産物があります。Σⱼ φ(kⱼ) vⱼᵀ という m × d 状態を逐次更新していけば、自己回帰生成を再帰(RNN 的な定数メモリ)で回せる ことです。各ステップで n 個の過去 K/V を見直す代わりに、固定サイズの状態を更新するだけで済みます。この「線形アテンション ≒ 状態を持つ再帰」という等価性は、状態空間モデル / Mamba の系譜と深くつながります。
Linformer:スコア行列を低ランクと見なす
別の攻め方が 低ランク射影 です。Linformer は経験的観察に立脚します。学習済み Transformer のアテンション行列 softmax(QKᵀ) は、特異値の大半が小さく 実効ランクが系列長よりずっと低い という観察です。ならば n × n をまるごと持つ必要はありません。
具体的には、K と V を系列方向に 固定次元 k へ線形射影 します(k は n に依存しない定数)。
K' = E·K (n×d → k×d、E は学習する k×n の射影行列)
V' = F·V (同上)
out = softmax(Q K'ᵀ / √d) · V' ← スコア行列は n×k になる
スコア行列が n × k に縮むため、計算量・メモリとも O(n·k·d)、k が定数なら n について 線形 です。softmax 自体は厳密に計算する点が Performer と異なります。近似が入るのは「K・V の系列情報を k 次元に圧縮しても本質を失わない」という低ランク仮定の側です。
Linformer の射影行列 E・F は系列長 n に依存して固定サイズで学習されるため、学習時と異なる系列長へ素直に一般化しにくい 弱点があります。また、注目が本質的に高ランク(多数のトークンを満遍なく参照する)なタスクでは、k 次元への圧縮が情報を落とします。低ランク性が成り立つ前提に賭けた手法である点を忘れてはいけません。
疎アテンション:注目先を構造で間引く
三つ目は 疎アテンション。softmax も核近似も変えず、n × n のうち 計算するエントリ自体を限定 します。鍵は「実用上、各トークンが本当に全トークンを見る必要はめったにない」という観察です。
Longformer は3種の注目を組み合わせます。(1) 局所窓:各トークンは前後 w トークンのみ参照(畳み込み的)。(2) 拡張窓(dilated):窓に飛び飛びの穴を空け、層を重ねて受容野を広げる。(3) 大域トークン:[CLS] など少数の特別トークンだけは全トークンと相互に注目する。局所だけだと遠距離依存が伝わらないため、大域トークンが情報のハブになります。
BigBird はこれに 乱択注目 を加え、(局所窓 + 大域トークン + ランダムな少数リンク) の3点セットにします。乱択リンクを足す理由は理論的で、ランダムグラフは少数の辺で全頂点間の到達距離を短く保てる(小世界性)ため、任意の2トークンが数ホップで届く ことが保証しやすくなります。BigBird はこの構成で、疎アテンションでも完全アテンションと同じ表現能力(チューリング完全性)を理論的に持つことが示されています。
| 手法 | 近似の出どころ | 計算量 | 向く状況 | 弱点 |
|---|---|---|---|---|
| Performer | 指数核を乱択特徴で近似 | O(n·m·d) | 超長文・自己回帰生成 | 鋭い注目で分散が乗る |
| Linformer | K/V を低ランク射影 | O(n·k·d) | 固定長・低ランクなタスク | 可変長に弱い |
| Longformer | 局所窓+大域で疎化 | O(n·w) | 文書 QA・分類 | 窓外の依存は大域頼み |
| BigBird | 局所+大域+乱択 | O(n) 近似 | 長文書・ゲノム配列 | 実装が複雑・乱択ぶれ |
疎アテンションの良し悪しは「窓の幅」より、情報が何ホップで全トークンに行き渡るか(到達性) で評価すると見通しが良くなります。純粋な局所窓は遠距離で到達に多層を要しますが、大域トークンや乱択リンクを足すと到達距離が一気に縮みます。Longformer の大域トークンも BigBird の乱択リンクも、本質はこの到達性の確保です。
FlashAttention との違い:近似か、等価か
混同を避けるべきが FlashAttention との違いです。FlashAttention はタイル化とオンライン softmax で 計算順序と置き場所だけ を変え、出力は標準 softmax と 数学的に厳密に等価 です。漸近計算量は O(n²) のまま(メモリは O(n) に下げる)で、定数倍とメモリ往復を削ります。
対して本稿の3系統は、漸近計算量そのものを O(n)(近似)へ下げる代わりに、出力が標準と一致しません。レイヤーが違うため両者は競合せず、線形/疎アテンションの内部 softmax を FlashAttention 流に実装する、といった併用も可能です。
| 観点 | FlashAttention | 効率的アテンション3系統 |
|---|---|---|
| 変えるもの | 計算の順序・配置 | 計算する内容(近似) |
| 漸近計算量 | O(n²) のまま | O(n) へ低減(近似) |
| 出力の値 | 標準と厳密等価 | 標準とは異なる(誤差あり) |
| 差し替えリスク | なし(無改造可) | 精度劣化を要検証・再学習も |
まとめ:どの仮定に賭けるかで選ぶ
効率的アテンションの3系統は、いずれも「全トークンの厳密な総当たり softmax」を諦める代わりに線形コストを得ます。違いは 何を犠牲にするか です。
| 系統 | 賭ける仮定 | 崩れると何が起きるか |
|---|---|---|
| 線形カーネル (Performer) | 指数核は特徴写像で近似できる | 鋭い注目が鈍り、選択性が落ちる |
| 低ランク (Linformer) | スコア行列は実効ランクが低い | 高ランクな依存で情報が欠落 |
| 疎 (Longformer/BigBird) | 重要な注目先は局所+少数に集約 | 窓設計から漏れた長距離依存を取り逃す |
実務では、まず厳密等価な FlashAttention で定数倍を削り切り、それでも系列長が手に負えない領域で初めて近似系を検討するのが安全です。近似を入れるなら、対象タスクの注目が 鋭いのか平坦か・低ランクか高ランクか・局所か大域か を見極め、賭ける仮定が成り立つ系統を選ぶこと。アテンションの数理的な土台は Self-Attention の計算 と Multi-Head Attention、線形アテンションの再帰的等価物は 状態空間モデル / Mamba で押さえると、長文モデリングの選択肢が一枚の地図につながります。
AI/機械学習 Article
線形アテンションと効率的アテンションの系統を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アテンション
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
Linformer は K・V を系列方向に固定次元 k へ低ランク射影し、n×n のスコア行列を n×k にして O(n) 化する。BigBird・Longformer は注目を局所窓+大域トークン+乱択に限る疎パターンで O(n) に近づける。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「アテンション / Transformer」に近いか確認する。
- 強みである「softmax を分離不可能にしている指数核を、カーネル特徴写像 φ で内積近似に置き換えると、計算順序を (φ(Q)φ(K)ᵀ)V から φ(Q)(φ(K)ᵀV) へ組み替えられ、系列長 n に対し O(n²) を O(n) に落とせる。Performer の FAVOR+ はこの φ を不偏な乱択特徴で構成する。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。