RAG(検索拡張生成)の中身を理解するには、その手前にある二つの技術——埋め込み(embedding)とベクトル検索——を押さえておくと一気に見通しが良くなります。ざっくり言えば、文章を「意味を表す数値の列」に変換し(埋め込み)、その数値の近さで似た文章を探す(ベクトル検索)。本記事は、この二つを具体例と図で、初めての人でも読めるように整理します。
01埋め込みとは「文章を座標に置く」こと
埋め込みとは、文章や単語を数百〜数千個の数値が並んだベクトルに変換する技術です。鍵になる性質は一つだけ。意味が近い文章どうしは、変換後のベクトルも近い場所に来る——これだけです。
イメージしやすいよう、まず 3 つの数値(3 次元)に縮めた例で説明します。各単語が空間上の一点(座標)になると考えてください。
| 単語 | ベクトル(3次元の例) |
|---|---|
| 犬 | [0.8, 0.1, -0.5] |
| 猫 | [0.7, 0.2, -0.4] ← 犬に近い |
| 自動車 | [-0.3, 0.6, 0.9] ← 犬から遠い |
「犬」と「猫」は座標が近く、「自動車」は離れています。実際の埋め込みモデルが作るベクトルは 3 次元ではなく、1024〜3072 次元といった高次元です。たとえば OpenAI の text-embedding-3-small は 1536 次元、text-embedding-3-large は 3072 次元のベクトルを返します。人間には絵に描けない次元数ですが、「意味が近ければ座標も近い」という原理は 3 次元の例とまったく同じです。
FIG.1 埋め込みモデルが文章を高次元ベクトル=意味空間の一点に変換する。意味が近い語は近くに集まる
02キーワード検索とどう違うのか
従来のキーワード検索は文字が一致するかを見ます。一方ベクトル検索は意味が近いかを見ます。この違いが、検索の取りこぼしを大きく左右します。



