使い方・開発 初級

セマンティック検索

Semantic Search

言葉の一致ではなく、文章の意味の近さをもとに探す検索方式です。「車」で「自動車」の文書が見つかるなど、言い換えや曖昧な質問にも対応しやすいのが特徴です。ただし型番など完全一致が必要な検索は苦手です。

別の呼び方意味検索、ベクトル検索

例「返品したい」と入力しても、「返金・交換の手続き」のページが検索結果に出てきた。

詳しく

セマンティック検索とは、入力された語が文書に含まれているかどうかではなく、文章の意味が近いかどうかで探す検索方式です。「セマンティック」は「意味の」という意味です。AIによる文章のベクトル化が実用的になったことで、広く使われるようになりました。

従来のキーワード検索との違い

従来の検索は、「返品」という語を含む文書を探します。そのため、「返金」「交換」「キャンセル」と書かれたページは、「返品」を含んでいなければ見つかりません。利用者の側が、文書で使われている言葉を推測して入力する必要がありました。

セマンティック検索は、質問も文書も意味を表す数値の並び(ベクトル)に変換し、近いものを探します。「返品したい」と「返金・交換の手続き」は意味が近いため、語が一致しなくても、関連する文書として見つかります。

しくみ

  1. 検索対象の文書を、埋め込みモデルでベクトルに変換して、ベクトルデータベースに保存しておく。
  2. 利用者の質問も、同じモデルでベクトルに変換する。
  3. 質問のベクトルに近い順(コサイン類似度などで測る)に、文書を取り出す。

意味の近い文章は、ベクトル空間でも近い位置に置かれる、という性質を利用しています。多言語に対応した埋め込みモデルなら、日本語の質問で英語の文書を探すことも可能です。

具体例

  • 社内文書の検索で、「リモートワークの申請方法」と聞いて、「在宅勤務規程」を見つける。
  • ECサイトで、「雨の日に使える通勤用の靴」のような曖昧な表現から、防水の革靴を提案する。
  • RAGで、質問に関連する資料を取り出して、回答の根拠としてモデルに渡す。

使うときの注意・よくある誤解

  • 万能ではありません。 型番、固有名詞、エラーコードのような「その文字列そのもの」を探す場面では、キーワード検索のほうが確実なことが多くあります。そのため、両方を併用するハイブリッド検索がよく選ばれます。
  • 「意味が近い」は、必ずしも「正解」ではありません。 否定の文や、条件の細かな違い(「5日以内」と「5日以降」)は、ベクトルでは近い位置に置かれることがあります。重要な場面では、リランキングや人による確認を加えます。
  • 埋め込みモデルの選択が精度を左右します。 日本語や専門分野での性能は、モデルによって差があります。自分のデータで試して選びましょう。
  • 文書の更新に合わせた再処理が必要です。 文書が変わったら、ベクトルも作り直さなければなりません。

関連する考え方

ベクトル化の技術は埋め込みで、保存・検索の基盤がベクトルデータベースです。文書を適切な大きさに分けるチャンク分割も、検索の精度に大きく影響します。

あわせて知りたい言葉

「使い方・開発」の言葉をすべて見る