使い方・開発 初級
セマンティック検索
Semantic Search
言葉の一致ではなく、文章の意味の近さをもとに探す検索方式です。「車」で「自動車」の文書が見つかるなど、言い換えや曖昧な質問にも対応しやすいのが特徴です。ただし型番など完全一致が必要な検索は苦手です。
別の呼び方意味検索、ベクトル検索
例「返品したい」と入力しても、「返金・交換の手続き」のページが検索結果に出てきた。
詳しく
セマンティック検索とは、入力された語が文書に含まれているかどうかではなく、文章の意味が近いかどうかで探す検索方式です。「セマンティック」は「意味の」という意味です。AIによる文章のベクトル化が実用的になったことで、広く使われるようになりました。
従来のキーワード検索との違い
従来の検索は、「返品」という語を含む文書を探します。そのため、「返金」「交換」「キャンセル」と書かれたページは、「返品」を含んでいなければ見つかりません。利用者の側が、文書で使われている言葉を推測して入力する必要がありました。
セマンティック検索は、質問も文書も意味を表す数値の並び(ベクトル)に変換し、近いものを探します。「返品したい」と「返金・交換の手続き」は意味が近いため、語が一致しなくても、関連する文書として見つかります。
しくみ
- 検索対象の文書を、埋め込みモデルでベクトルに変換して、ベクトルデータベースに保存しておく。
- 利用者の質問も、同じモデルでベクトルに変換する。
- 質問のベクトルに近い順(コサイン類似度などで測る)に、文書を取り出す。
意味の近い文章は、ベクトル空間でも近い位置に置かれる、という性質を利用しています。多言語に対応した埋め込みモデルなら、日本語の質問で英語の文書を探すことも可能です。
具体例
- 社内文書の検索で、「リモートワークの申請方法」と聞いて、「在宅勤務規程」を見つける。
- ECサイトで、「雨の日に使える通勤用の靴」のような曖昧な表現から、防水の革靴を提案する。
- RAGで、質問に関連する資料を取り出して、回答の根拠としてモデルに渡す。
使うときの注意・よくある誤解
- 万能ではありません。 型番、固有名詞、エラーコードのような「その文字列そのもの」を探す場面では、キーワード検索のほうが確実なことが多くあります。そのため、両方を併用するハイブリッド検索がよく選ばれます。
- 「意味が近い」は、必ずしも「正解」ではありません。 否定の文や、条件の細かな違い(「5日以内」と「5日以降」)は、ベクトルでは近い位置に置かれることがあります。重要な場面では、リランキングや人による確認を加えます。
- 埋め込みモデルの選択が精度を左右します。 日本語や専門分野での性能は、モデルによって差があります。自分のデータで試して選びましょう。
- 文書の更新に合わせた再処理が必要です。 文書が変わったら、ベクトルも作り直さなければなりません。
関連する考え方
ベクトル化の技術は埋め込みで、保存・検索の基盤がベクトルデータベースです。文書を適切な大きさに分けるチャンク分割も、検索の精度に大きく影響します。
あわせて知りたい言葉
- 埋め込み文章や画像などを、意味の近さが距離として表れる数値の並び(ベクトル)に変換したものです。言葉が違っても意味の近い文書を探す検索や、分類、RAG の土台に使われます。
- ベクトルデータベース文章や画像を数値の並び(埋め込み)にして保存し、意味の近いものを高速に探せるデータベースです。RAG で関連する文書を探す部分に、とてもよく使われています。仕組みを知ると選びやすくなります。
- ハイブリッド検索キーワード検索とベクトル検索(意味検索)を組み合わせて、両方の長所を生かす検索方式です。固有名詞や型番にも言い換えにも強くなり、RAGの検索精度が安定します。どちらか一方より取りこぼしが減ります。
- RAG(検索拡張生成)質問に関係する文書を検索で取り出し、それを LLM に渡してから回答させる仕組みです。モデルが学習していない社内資料や、最新の情報にもとづいた回答ができるようになります。
- リランキング検索で取り出した候補を、質問との関連度でもう一度精密に並べ替える処理のことです。RAGで本当に役立つ資料を上位に残し、最終的な回答の質を高めるために使われます。