埋め込みとベクトル検索
埋め込みは、単語・文章・画像などを数値の並びで表す方法です。似た内容を近くに置ければ検索や分類に役立ちますが、距離の意味は学習目標によって変わります。ベクトルの近さを真実や同一性と取り違えないことが重要です。
番号を付けることと特徴を表すこと
単語に1、2、3という番号を付けただけでは、番号の差が意味の近さを表すわけではありません。語彙の各要素に対応する位置だけを1にするone-hot表現でも、異なる語の関係は基本的に同じ距離になります。埋め込みでは、各対象を例えば数百個の実数からなる密なベクトルへ写します。座標ごとに人が意味を指定する必要はなく、学習課題に役立つ配置が調整されます。学習された空間を回転しても距離関係を保てる場合があり、特定の一成分をそのまま一つの概念の強さと読めるとは限りません。
どの課題で近づけるかが大切
単語の周囲の語を予測する学習では、似た文脈に現れる語の表現が似ることがあります。質問と適切な文書を近づける学習なら、検索に役立つ距離を目指せます。画像と説明文を対応させる学習では、異なる種類の入力を比較する空間も作れます。同じ対象でも、モデルや目的が違えばベクトルは異なります。話題が近い文章と、質問への答えを含む文章は必ずしも同じではありません。反対の主張も同じ話題のため近くなることがあり、類似度だけで主張の一致や正しさを判断することはできません。
内積とコサイン類似度を区別する
ベクトルa、bの内積は成分ごとの積の和です。コサイン類似度はa・bを二つの長さの積で割るため、0でないベクトルの方向の近さを表します。仮にa=(1,0)、b=(2,0)、c=(0,1)なら、aとbのコサイン類似度は1、aとcは0です。一方、内積はそれぞれ2と0で、ベクトルの長さにも影響されます。コサイン類似度が1でも文章が一字一句同じとは限りません。ゼロベクトルでは分母が0になるので通常の式は定義できず、検索システムでの取り扱いを決める必要があります。
文章を分けて検索し根拠を戻す
文書検索では、文書を意味のまとまりごとに分けて埋め込みを保存し、質問も対応するモデルで埋め込んで近い部分を探します。見つかった原文を生成モデルへ渡すと、外部資料を参照するRAGの一部になります。分割が細か過ぎると前提や主語が失われ、大き過ぎると余分な話題が混ざります。日付・見出し・出典なども保存すると、結果の確認に役立ちます。異なるモデルのベクトルは、次元数が同じでも同じ意味空間とは限らないため、モデル変更時には保存済み文書の再計算が必要になる場合があります。
検索の精度は実際の質問で測る
正しい文書が上位に出るか、重要な資料を見落としていないかを、実際に調べたい質問で評価します。製品番号や数値など、文字の一致が重要なものにはキーワード検索が強いこともあり、意味検索との併用が有効な場合があります。二次元に縮めた散布図は関係を眺める補助になりますが、元の高次元空間の距離をすべて保つわけではありません。埋め込みには学習データの偏りも反映され得ます。類似度の点数だけを信頼度と呼ばず、上位の原文を読み、必要な答えと根拠が本当にあるかを確かめます。
確認問題
a=(1,0)、b=(2,0)、c=(0,1)のとき、aとb、aとcのコサイン類似度はいくつですか。
解答と考え方を見る
aとbは内積2、長さの積2なので1です。aとcは内積0、長さの積1なので0です。これは仮想のベクトルの計算であり、特定の文章の意味や真偽を数値で保証する例ではありません。
参考資料・次に読む資料
- Google:Embeddings疎な表現と密な埋め込み、類似性、文脈に応じた表現。
- Mikolovほか:Efficient Estimation of Word Representations in Vector Space単語を連続ベクトルで表す手法を提案した原論文。
資料確認日:2026-11-03。