【べくとるけんさく】

ベクトル検索 とは?

最終更新:
💡 データをベクトルにして、近いものを探す検索

データを数値の並びであるベクトルとして表し、問い合わせのベクトルに近いものを距離や類似度で探す手法。埋め込みモデルを使うと、テキストや画像の意味的な類似性を検索に利用できる。

📌 このページのポイント
問い合わせに近いベクトルを探す 問い合わせ 犬の飼い方 埋め込み 数値へ ベクトル空間 問い合わせ 近い候補を取得 ① 犬のお世話 ② 犬のしつけ
配置と候補は模式例。実際の検索結果は埋め込みモデル・尺度・検索方式に依存する。
ひよこ ひよこ
キーワード検索と何が違うの?
ペンギン先生 ペンギン先生
キーワード検索が語句を手掛かりにするのに対し、ベクトル検索は数値で表したデータの近さを使うよ。意味を捉える埋め込みなら、表現が違う文書を見つけるのに役立つ。ただし『犬』から必ず『ペット』が返るという保証ではないんだ。
ひよこ ひよこ
どうやってベクトルを用意するの?
ペンギン先生 ペンギン先生
テキストや画像を埋め込みモデルで数値の並びへ変換する方法があるよ。検索対象と問い合わせは、同じモデルなど比較可能な方法で表す必要がある。別々のモデルの座標を、そのまま混ぜて比較できるとは考えないでね。
ひよこ ひよこ
近さはどう測るの?
ペンギン先生 ペンギン先生
コサイン距離、ユークリッド距離、内積などがあるよ。コサイン類似度はゼロでないベクトル同士の向きの近さを表すけれど、0だから文章の意味が無関係、負だから文章が反対の意味とは限らない。距離やスコアの意味はモデルと尺度に合わせて確認しよう。
ひよこ ひよこ
近いものは全部見つかる?
ペンギン先生 ペンギン先生
厳密な検索は指定した尺度で近いものを求め、近似検索は速度と引き換えに候補を取りこぼすことがあるよ。pgvectorでは既定が厳密な近傍検索で、HNSWやIVFFlatの索引を使うと近似になる。どちらでも、数値上の近さが利用者にとって役立つかは評価が必要だね。
ひよこ ひよこ
どんな用途で使い、どう選べばいい?
ペンギン先生 ペンギン先生
RAGの文書検索やレコメンドなどに使えるよ。pgvectorはPostgreSQLの拡張で、専用DBそのものではない。件数だけで製品を決めず、精度・待ち時間・更新・フィルタ・運用を比べよう。注文番号の一致などは通常の条件検索も使い、キーワードと組み合わせるハイブリッド検索も候補になるね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ベクトル検索」って出てきたら「数値で表したデータ同士の近さを使う検索」と思えばだいたいOK!
📖 おまけ:英語の意味
「Vector Search」 = ベクトルによる検索
💬 数学の「ベクトル(方向と大きさを持つ量)」を使って類似性を計算するから、この名前なんだよ

参考資料

← 用語集にもどる