この回のゴール
- トークン ID を 密ベクトル に変換することで、意味の構造を扱えるようにする
- コサイン類似度 で単語・文の近さを測る
- 「王 - 男 + 女 ≈ 女王」のような ベクトル演算 が成り立つ理由を理解する
- 第 5 章の RAG への直接的な橋渡し
1. なぜベクトル空間にマップするのか
前回のトークン ID (例: 1234, 5678) は ただの番号 でした。
- ID 1234 ("天気") と ID 5678 ("気象") は意味が近い
- でも数値 1234 と 5678 は数学的に近くない
- コンピュータにとって ID は カテゴリ変数 に過ぎない
そこで、意味的に近い単語が 空間的に近い点 になるように射影する:
$$ \text{embed} : \text{トークン} \to \mathbb{R}^d $$
典型的には $d = 256, 768, 1536, 3072$ 次元(モデルによる)。
2. 直感: 「王 - 男 + 女 = 女王」
Word2Vec (2013) で有名になった現象。
$$ \vec{v}{\text{王}} - \vec{v}{\text{男}} + \vec{v}{\text{女}} \approx \vec{v}{\text{女王}} $$
これは偶然ではなく、「意味の関係性」が ベクトルの差 として表現されるよう学習されているから。
- 王 → 女王: 「性別を逆転」する方向
- パリ → フランス: 「首都 → 国」の方向
- 走る → 走った: 「時制を過去に」する方向
3. どうやって学習するのか: 分布仮説
「似た文脈に現れる単語は似た意味を持つ」(Firth, 1957)
例えば:
- 「今日は___が美味しい」の空欄に入るのは: りんご、ラーメン、寿司、コーヒー...
- 「今日は___が良い」の空欄に入るのは: 天気、気分、体調...
空欄に入り得る単語同士は意味が近い。この仮説をコードにしたのが Word2Vec (skip-gram) です:
$$ L = -\sum_{(w_c, w_t)} \log p(w_c \mid w_t) $$
「対象単語 $w_t$ から 周辺単語 $w_c$ を予測」できるように埋め込みを学習する。
現代の LLM (Transformer) は 次単語予測 を通じて同じ効果が得られます。
4. 近さの測り方: コサイン類似度
2 つのベクトル $\vec{a}, \vec{b}$ の近さを測るには:
$$ \cos(\vec{a}, \vec{b}) = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}| |\vec{b}|} $$
- 値域: $[-1, 1]$
- 1: 完全同方向(= ほぼ同じ意味)
- 0: 無関係
- -1: 反対
ユークリッド距離ではなく コサイン を使う理由: ベクトルの長さではなく 方向 が意味に対応しているから。
5. 単語埋め込み vs 文埋め込み
| 単語埋め込み | 文埋め込み | |
|---|---|---|
| 例 | Word2Vec, GloVe | Sentence-BERT |
| 入力 | 1 単語 | 1 文 or 1 段落 |
| 用途 | 単語類推 | 意味検索・RAG |
文埋め込みは 第 5 章の RAG で中心的 な役割を果たします。
6. 現代 LLM との関係
LLM 内部では、各トークンが:
- まず 埋め込み層 で $d$ 次元ベクトルになる
- Transformer の各層で 文脈に応じて変化 する(contextual embedding)
- 最後の層で 次トークン確率 を出すために使われる
つまり、埋め込みは LLM の 入口と内部表現 の両方に関わります。
まとめ
- トークン ID → 密ベクトル にすると意味的近さを計算できる
- コサイン類似度で 2 ベクトルの近さを測る
- ベクトル演算で「王-男+女=女王」のような意味の代数が成り立つ
- 分布仮説(似た文脈に現れる単語は意味が近い)が背景理論
- RAG で文埋め込みが中心的に使われる
この回の限界(次への動機)
埋め込みは「単語ごとに 1 つのベクトル」を当てる(静的)。でも「銀行」は文脈で意味が変わる(川岸 vs 金融機関)。 👉 次回「Attention 機構」では、各単語の表現を 文脈に応じて動的に作り変える 仕組みを学びます。
参考文献
- Mikolov et al. (2013) Efficient Estimation of Word Representations in Vector Space — Word2Vec
- Reimers & Gurevych (2019) Sentence-BERT
- sentence-transformers 公式