チャプター 03 · 埋め込み · 10 min

意味の空間

幾何学的空間の中の言葉。王 − 男 + 女 = 女王、そして他のベクトルの奇跡。

成り立ちそうにない等式

次の演算を考えてみよう:

王 − 男 + 女 ≈ 女王

5 − 2 + 4 = 7のような算術等式だ。ただし、単語についての話だ。

そして、これは機能する。誰かが「王」と「女王」を似せるようにプログラムしたわけではない。各単語が数字のリスト——ベクトル——に変換され、意味の代数が通常の代数になるからだ。

これがLLMで最も直感に反するアイデアであり、最も強力なものだ。

トークンから位置へ

前章では、テキストがトークンIDの列——523491のような整数——になることを学んだ。しかし、裸の整数には構造がない。トークン5234はトークン5235と「近い」でも「遠い」でもない。ただ番号が付いているだけだ。

モデルが単語を計算するには、より豊かな表現が必要だ。解決策:各トークンに約768、1024、4096個の実数からなるベクトルを関連付けること。これを埋め込みと呼ぶ。

訓練開始時、これらのベクトルはランダムだ。何百万もの次の単語を予測することを通じて、モデルは類似した意味を持つ単語が類似したベクトルを持つように配置することを学ぶ。

誰もこのルールを書いたわけではない。予測タスクから出現してくるのだ。

なぜうまくいくのか

王は自分の……に告げた」の後の単語を正確に予測することが何を意味するか考えてみよう。良い答えは王女女王——エンジンアルゴリズムではない。これらの続きをうまく予測するモデルは、これらの単語がこの文脈で互換性があることを知っていなければならない

何十億ものパラメータと何十億もの文章があるとき、この等価性を記憶する最も経済的な方法は、「王女」、「妻」、「母」、「女王」をベクトル空間の同じ領域にグループ化することだ。勾配は各反復でその方向に押し進め、誰も何にもラベルを付ける必要がない。

埋め込みは設計されない。予測タスクの幾何学的な痕跡だ。

空間を探索する

以下の空間は2次元のカートゥーン——実際の埋め込みは数百次元ある。しかし本質的な特性はここにある:意味クラスター、近傍、ベクトル算術。

各点は、意味空間に射影された単語である。近くにある点はテーマを共有しており、綴りを共有しているわけではない。矢印は 王 − 男 + 女 = 女王 を成り立たせるベクトル演算を示している。

注目すべき3つのこと:

  • クラスターは名前なしに現れる。にホバーするとマウスライオンが見える。喜びにホバーすると恐れ悲しみが見える。カテゴリはデータに存在しない——幾何学に存在する。
  • 特定の方向が意味を持つ。からへのベクトルは、から女王へ、からへのベクトルとほぼ同じだ。この規則性が算術を機能させる。
  • 距離は相対的であり、絶対的ではない。から距離0.32にあること自体は意味がない。重要なのは、パン怒りよりも近いということだ。

2Dという幻想

実際のモデルでは、埋め込みは通常768から4096次元ある。なぜこんなに多いのか?

2Dでは妥協を余儀なくされるからだ。(ペット)、マウス(哺乳類)、トラ(ネコ科)、(動物)に近くなければならない。これらの「近さ」はすべて異なる方向に引っ張られ——2Dでは衝突する。

768次元なら、意味の各側面が独自の方向を持てる。は「ペット」軸ではに近く、「ネコ科」軸ではトラに近く、「小型哺乳類」軸ではマウスに近くなれる。空間はこれらすべての関係が衝突せずに共存できるほど広い。

人間は768次元を可視化できないと思っている。埋め込みはそれを求めていない——ただ次元を使って、衝突なしにカテゴリを格納するだけだ。

近さを測る:コサイン類似度

埋め込み空間で2つの単語が「近い」と言うとき、それを具体的にどう測るのか?通常のユークリッド距離ではない。コサイン類似度を使う。

アイデアはこうだ:2つのベクトルの長さではなく、角度を見る。同じ方向を向いている2つのベクトルは、振幅に関わらずコサイン類似度が1になる。直交する2つのベクトルは0。反対方向を向く2つは−1。

cos(u, v) = (u · v) / (||u|| × ||v||)

なぜこの尺度なのか?埋め込みのノルム(その長さ)は意味とは無関係な理由——単語の頻度、層の深さ——で変動するからだ。一方で方向が意味をエンコードする。コサイン類似度は重要なものだけを切り出す。

これが現代のセマンティック検索すべてを駆動している尺度でもある:ベクトルデータベース(Pinecone、pgvector、Chroma……)は数百万のベクトルをインデックス化し、クエリに最も近いものを瞬時に見つける。第10章(RAG)でまた取り上げる。

影響

この幾何学的表現には驚くべき効果がある:

  • スペルミスに強い。helloheloは非常に近い埋め込みを持つため、モデルはトークンレベルでは全く異なっていても、ほぼ同じように「理解」する。
  • **バイアスが埋め込まれる。**訓練コーパスで看護師が女性形で、医師が男性形でより多く出現すれば、埋め込みの算術がそれを反映する。医師 − 男 + 女看護師になることもある。これらのバイアスを修正するための多くの研究があり——第8章で再訪する。
  • **すべてが計算可能になる。**意味がベクトルになれば、足し算、射影、角度の測定ができる。それがまさに次のメカニズムがすることだ。

次へ

単語がベクトルになった。隣の単語もなった。その前の単語も。このベクトルの列から、モデルはどうやって「医師は看護師を解雇した。なぜなら彼女は……」という文の代名詞彼女が医師ではなく看護師を指すと判断するのか?

次の章での答え:アテンション——各トークンが自分が何者かを決める前に他のすべてのトークンを見ることができるメカニズム。

更新日

Embeddings:意味の幾何学的空間 · Step by Token