📏

ベクトルとは何か

方向と大きさを持つ数値の束 — 次元が上がると意味を持つ

ベクトルは数値を順番に並べたものだ。

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 벡터 — 인터랙티브

화살표 끝(●)을 드래그해서 벡터를 움직여보세요. 코사인 유사도가 실시간으로 변합니다.

A = [3, 4]
B = [4, 1]
코사인 유사도 0.00

3D 벡터 — 회전해서 보기

마우스 드래그로 공간을 회전, 스크롤로 줌. 3개 벡터의 관계를 3차원에서 확인할 수 있습니다.

고양이 [0.8, 0.6, 0.3]
강아지 [0.7, 0.5, 0.4]
자동차 [-0.3, 0.9, -0.2]
고양이↔강아지: 0.97 | 고양이↔자동차: 0.12

고차원 → 2D 압축 (시뮬레이션)

1536차원 벡터를 2D로 압축하면 이런 느낌입니다. 의미가 비슷한 단어끼리 뭉칩니다.

동물
탈것
음식
감정

動作原理

1

数値を並べるとベクトル(例: [3, 4])

2

次元 = 数値の個数(2D, 3D, 1536D...)

3

ベクトル間の距離/角度で類似度を測定(コサイン類似度)

4

高次元はt-SNE/UMAPで2D/3Dに圧縮して可視化

メリット

  • 数学が次元に関係なく同じように動く — 2Dを理解すれば1536Dも同じ原理
  • コサイン類似度一つでテキスト、画像、ユーザーの好みまで比較可能

デメリット

  • 次元が高いほど直感的理解が不可能 — 可視化は常に情報損失を伴う
  • 次元の呪い — 高次元では全ての点が同じように遠い距離に位置する現象

ユースケース

2D/3D — 物理シミュレーション、ゲーム、地図 高次元 — AI埋め込み、推薦、検索 可視化 — 埋め込み品質検証、クラスター分析