言語モデルは12,000次元に数十億個の概念をどう収めるのか
(nickyoder.com)- 高次元埋め込み空間では、完全な直交性の代わりに 準直交(quasi-orthogonality) を活用することで、非常に多くの概念表現が可能になる
- Johnson-Lindenstrauss補題は、任意の高次元データをほとんど情報損失なく低次元へ射影できることを保証する
- 最適化の過程では 損失関数 の設計が重要であり、基本的な損失関数のせいで非効率または偏ったベクトル配置が生じうる
- 実験結果として、埋め込み空間の実際の容量は理論的に推測されていたよりはるかに大きく、数百万〜数十億個の概念が自然に共存できる
- こうした発見は、自然言語処理や埋め込み設計など 機械学習の実務 において、データ表現や次元削減に大きな実用的意義を持つ
序論: 言語モデルの埋め込み空間の容量に関する問い
最近の3Blue1Brownによるトランスフォーマーモデルの動画シリーズで、Grant Sanderson は GPT-3の12,288次元埋め込み空間に、どうやって数百万個もの現実世界の概念を収められるのか という興味深い問いを提起した
この疑問は 高次元幾何学 と Johnson-Lindenstrauss(JL)補題 という数学的結果につながっている
これを探る過程で、ベクトル空間の根本的な性質と最適化に関する新たな洞察が得られ、Grantとの協業にもつながった
ベクトルの準直交性と埋め込み空間の容量
- N次元空間には、完全に直交するベクトルはN個しか存在しない
- しかし実際には、90度から少しずれた 準直交(quasi-orthogonal) な関係(例: 85〜95度の角度)を許容すると、同じ空間で表現可能なベクトル数は幾何級数的に増加する
- Grantの動画では、100次元空間に1万個の単位ベクトルがほぼ直交に近い形で配置される可視化が示されている
- ただし同じ実験を再現する過程で、最適化損失関数 の設計に潜む微妙な落とし穴が見つかった
損失関数の問題点とパターン
- 基本の損失関数:
loss = (dot_products.abs()).relu().sum() - 実際のユニットスフィア上では、この損失関数には2つの問題がある
- Gradient Trap: ベクトル角度が90度に近づくと勾配は強く働くが、0度や180度付近では勾配がほぼ0になり、改善が止まる
- 99%解: 最適化手法は、1万個のベクトルのうち各ベクトルが9,900個とはきちんと直交する一方で、99個とはほぼ平行になる配置(つまり基準ベクトルの複製)によって全体損失を最小化してしまう
- この解法は全体として見ると期待していたものと本質的に異なり、より精巧な損失関数が必要になる
- そこで指数ペナルティを適用した損失関数へ変更する: loss = exp(20*dot_products.abs()**2).sum()
- この方法は望ましい分布により近い結果を生み出す(最大ペア角は約76.5度)
Johnson-Lindenstrauss(JL)補題: 幾何学的保証
- JL補題 は、任意の高次元データ点集合を低次元へランダム射影しても、ユークリッド距離がほぼ保存されることを保証する
- 1〜N個の点、誤差因子 ε、射影次元 k に対して
(1-ε)||u-v||² ≤ ||f(u)-f(v)||² ≤ (1+ε)||u-v||² - 最低限必要な次元 k は次の通り:
k ≥ (C/ε²) * log(N)
ここで C は成功確率を調整する定数である - 一般には C の値を保守的に4〜8と置くが、特殊な射影方式(例: Hadamard matrix、最適化手法)ではより小さな C に到達できる
実用的な適用分野
- 次元削減:
- 例: EC顧客の嗜好を、数万商品の次元から数千次元へ効率よく変換する
- 高次元データのリアルタイム分析や推薦などに活用できる
- 埋め込み空間の容量限界の分析:
- 完全直交ではなく、概念間の類似性と差異のスペクトラム を空間内で自然に表現できる
- 実際の単語の例として、"archery"、"fire"、"gelatinous"、"green" などの物理的・抽象的意味が高次元空間に重なり合って表現される
埋め込み容量の実験的分析
- Hadamard matrix 変換などで最適化した結果、C の値は 2.5〜4 で、GPUベースの最適化ではさらに低くなる可能性がある
- 実験方法: N個の標準基底ベクトルを k次元空間へ順番に射影し、5万回の反復最適化を行う
- 観察結果:
- C の値は N が増えると最大値(約0.9)に達した後、徐々に低下する
- N/k 比が高くなるほど C は 0.2 以下まで下がる
- これは 高次元空間における sphere packing の効率性に起因する
- 実際には、理論上の上限より多くの概念を表現できる余地があることを示唆している
言語モデル埋め込みの実際的な意味
- 埋め込み次元数 k、近似直交角 F(90°-実際の角度)、そして C 値に応じて収められる概念数は
Vectors ≈ 10^(k * F² / 1500)
- k=12,288, F=1(89°) → 10^8
- F=2(88°) → 10^32
- F=3(87°) → 10^73
- F=5(85°) → 10^200 を超えるベクトルを格納可能
- 86°だけでも、観測可能な宇宙内の原子数(10^80)を上回る
- つまり実際の言語モデルは、比較的少ない次元でも数百万個の意味を豊かに保持できる
実務的応用と今後の方向性
- 効率的な次元削減:
- Hadamard変換、BCHコーディングなどと組み合わせたランダム射影ベースの手法により、複雑な最適化なしでも大規模データの次元削減と高速計算が可能になる
- 埋め込み空間設計:
- 空間容量に関する洞察は、トランスフォーマーのような大規模言語モデルが "Canadian" や "Muppet-like" のような繊細な概念まで意味関係を同時に保持できる理由を説明する
- 結論として、現在の埋め込みの基準(1,000〜20,000次元)は人間の知識表現に十分であり、鍵となるのはその空間内での 理想的な配置の学習 である
結論
- 損失関数に潜む微妙な最適化問題の探究から出発し、高次元幾何学と機械学習の基盤構造に対する深い洞察へとつながっていく
- 1984年に発表された JL補題 は、現在の機械学習における埋め込み、情報表現、次元削減の原理に中核的な役割を果たしている
- Grant Sanderson、3Blue1Brownチャンネル、Suman Dev との協力への謝意が述べられ、今回の研究と執筆経験の楽しさが共有されている
追加の読み物
- Sphere Packings, Lattices and Groups – Conway & Sloane
- Database-friendly random projections: Johnson-Lindenstrauss with binary coins – Achlioptas
- Hadamard Matrices, Sequences, and Block Designs – Seberry & Yamada
まだコメントはありません。