ベクトルとは何か
方向と大きさを持つ数値の束 — 次元が上がると意味を持つ
ベクトルは数値を順番に並べたものだ。
2Dベクトル — 平面上の矢印
[3, 4]はx方向に3、y方向に4移動する矢印だ。地図で「東に3km、北に4km」と言うのと同じ。
2つのベクトル間の距離を求めれば「どれだけ離れているか」、角度を求めれば「どれだけ似た方向か」がわかる。この角度ベースの類似度がコサイン類似度だ。
3Dベクトル — 空間の中の点
[3, 4, 2]は3次元空間の点だ。x、yにz軸(高さ)が加わっただけで、距離と角度の計算は2Dと同じ。
ここまでは人間の目で直接見える。2Dは紙の上に、3DはThree.jsのようなツールで回転させながら見れる。
高次元ベクトル — 意味の空間
[0.023, -0.15, 0.41, ..., -0.33] — 数値が1536個。もう目では見えない。
しかし数学は変わらない。2Dで2点間の距離を求める公式が1536Dでもそのまま動く。次元が増えただけで、「近いものは似ていて、遠いものは違う」という原理は同じだ。
AIの埋め込みが1536次元な理由は単純 — 2〜3次元では「猫と犬は似ている」程度しか表現できず、「ペルシャ猫は高級で野良猫は荒々しい」のようなニュアンスを入れるには次元がたくさん必要だ。
高次元を視覚化する方法
1536次元を直接見ることはできないが、2D/3Dに「圧縮」して見る方法がある。
t-SNE: 近い点は近く、遠い点は遠く保ちながら2Dに投影する。クラスター構造の把握に良い。
UMAP: t-SNEより速く、全体構造をよく保存する。大量データに適している。
PCA: 情報量が最も多い軸2〜3本だけ残して残りを捨てる。最速だが情報損失が大きい。
この圧縮可視化で「似た画像同士が固まっている」のが見えれば、埋め込みが正しく機能している証拠だ。
なぜ推薦システムに重要か
推薦システムのほぼ全ての手法は結局「ユーザーベクトルとアイテムベクトルの距離を求めること」だ。ベクトルを理解すれば、Matrix Factorization、Two-Tower、埋め込みベースの検索が全て同じ原理の上にあることが見える。
2D 벡터 — 인터랙티브
화살표 끝(●)을 드래그해서 벡터를 움직여보세요. 코사인 유사도가 실시간으로 변합니다.
3D 벡터 — 회전해서 보기
마우스 드래그로 공간을 회전, 스크롤로 줌. 3개 벡터의 관계를 3차원에서 확인할 수 있습니다.
고차원 → 2D 압축 (시뮬레이션)
1536차원 벡터를 2D로 압축하면 이런 느낌입니다. 의미가 비슷한 단어끼리 뭉칩니다.
動作原理
数値を並べるとベクトル(例: [3, 4])
次元 = 数値の個数(2D, 3D, 1536D...)
ベクトル間の距離/角度で類似度を測定(コサイン類似度)
高次元はt-SNE/UMAPで2D/3Dに圧縮して可視化
メリット
- ✓ 数学が次元に関係なく同じように動く — 2Dを理解すれば1536Dも同じ原理
- ✓ コサイン類似度一つでテキスト、画像、ユーザーの好みまで比較可能
デメリット
- ✗ 次元が高いほど直感的理解が不可能 — 可視化は常に情報損失を伴う
- ✗ 次元の呪い — 高次元では全ての点が同じように遠い距離に位置する現象