🧭

ベクトル検索とセマンティック検索の違いを整理してみた

に公開

はじめに

RAGの検索手法を調べている際によく、「ベクトル検索」「セマンティック検索」といった用語を見かけますが、概念が似ていて、ごちゃっとしてしまうことがよくあります。

この記事では、ざっくりベクトル検索とセマンティック検索の違いや特徴を整理しています。

ベクトル検索とは

ベクトル検索は、テキストや画像などのデータをベクトル(数値の並び)に変換して、その類似度を計算する検索手法です。Embedding や特徴量抽出といった前処理があって初めて機能します。一般的には以下のような流れです。

  1. テキストをEmbeddingモデルでベクトルに変換する。
  2. 検索対象のコレクションも同じモデルでベクトル化しておく。
  3. クエリベクトルとコレクションのベクトルを類似度(コサイン類似度や内積など)で比較して、スコアの高い順に並べる。

ベクトル検索自体は「数値として近いものを探す」ことが本質で、意味の理解はモデルや特徴量の設計に依存します。扱うデータの意味を理解しているのは Embedding モデルの部分で、検索エンジン自体はあくまでベクトルを高速に扱うインフラというイメージです。

セマンティック検索とは

セマンティック検索は、「ユーザーの意図」や「文の意味」をくみ取って検索するアプローチを指します。単語一致ではなく意味的な関連性を重視する点がポイントです。代表例としては、大規模言語モデルや埋め込みモデルを活用してクエリと文書の意味距離を測るやり方があります。

  • クエリの意図を理解する:例として「アップルのイベント」で製品発表会の情報を期待しているかもしれない。
  • 文脈や類義語も拾う:単純なキーワードマッチでは拾えないニュアンスをカバーする。
  • LLMや知識グラフ、再ランキングモデルなど幅広い技術が使われる。

セマンティック検索は手法というより「意味を考慮した検索手法」の総称で、ベクトル検索はその中でよく使われる実装要素の1つ、というイメージですかね。

混同されやすい点

両者が混ざって見える理由は、近年のセマンティック検索がベクトル検索を使うケースが多いからです。

  • 呼び方の違い:ベクトル検索はデータ構造・アルゴリズム寄りの言葉。セマンティック検索はユーザー体験・意味理解寄りの言葉。
  • 役割の違い:ベクトル検索は「どう検索するか」の仕組み。セマンティック検索は「どんな体験を提供するか」という観点。
  • 構成要素の違い:セマンティック検索はベクトル検索だけでなく、LLMによる再ランキング、メタデータフィルタ、ルールベースな補正など多段のパイプラインで構成されることが多い。

個人的には「セマンティック検索を実現するためにベクトル検索が採用される」くらいの関係で捉えるとスッキリしました。

まとめ

  • ベクトル検索はベクトル同士の類似度を高速に比較する仕組み。
  • セマンティック検索は意味理解を重視した検索体験の総称。
  • 近年はセマンティック検索の実装手段としてベクトル検索がよく使われるため、言葉が混ざりがち。

Discussion