使い方・開発 中級

ハイブリッド検索

Hybrid Search

キーワード検索とベクトル検索(意味検索)を組み合わせて、両方の長所を生かす検索方式です。固有名詞や型番にも言い換えにも強くなり、RAGの検索精度が安定します。どちらか一方より取りこぼしが減ります。

別の呼び方ハイブリッドサーチ

例型番の完全一致はキーワード検索、言い換えは意味検索で拾うハイブリッド検索に切り替えた。

詳しく

ハイブリッド検索とは、従来型のキーワード検索と、ベクトルを使った意味検索(セマンティック検索)を組み合わせ、両方の結果を統合する検索方式です。それぞれの弱点を補い合えるため、RAGの検索部分で広く採用されています。

2つの検索の得意・不得意

  • キーワード検索(BM25などの語の一致にもとづく方式):型番、人名、社名、エラーコード、法律の条番号のような、表記が決まっている語に強い方式です。ただし「車」と「自動車」のような言い換えや、質問と文書で言葉が異なる場合には弱くなります。
  • ベクトル検索:意味の近さで探すため、言い換えや曖昧な質問に強い一方、「ABC-1234」のような記号的な語の完全一致が苦手で、似たものが上位に出てしまうことがあります。

両方を使えば、「型番はキーワードで確実に拾い、説明の言い換えは意味で拾う」という動きができます。

結果の統合のしかた

2つの検索はスコアの尺度が異なるため、単純に足し算はできません。よく使われる方法は次のとおりです。

  • 順位で統合する:各検索の順位をもとに点数を付けて合算します。RRF(Reciprocal Rank Fusion)と呼ばれる方法が代表的で、スコアの調整が不要で扱いやすい手法です。
  • 重み付きで合算する:スコアを正規化して、重みをかけて足します。キーワード寄りか意味寄りかを調整できます。

統合した候補に対して、さらにリランキングをかけ、上位の数件を生成モデルへ渡す構成もよく使われます。

具体例

製品サポートのFAQ検索を考えます。ユーザーが「ERR-4021が出て印刷できない」と入力しました。ベクトル検索だけでは、印刷トラブル全般の記事が並び、ERR-4021の専用記事が埋もれるかもしれません。キーワード検索は、ERR-4021を含む記事を確実に見つけます。反対に「プリンターが急に反応しなくなった」のような曖昧な入力では、意味検索が関連記事を拾います。両方を使うことで、どちらのタイプの質問にも対応できます。

使うときの注意

  • 日本語ではキーワード検索の下ごしらえが重要です。 日本語は単語の区切りがないため、形態素解析やN-gramの設定によって、キーワード検索の精度が変わります。
  • 対応状況を確認します。 一部のベクトルデータベースや検索エンジンは、ハイブリッド検索を標準機能として提供していますが、対応の仕方は製品ごとに違います。
  • 重みや候補数の調整は実測で行います。 実際の質問のサンプルを用意し、正しい文書が上位に入る割合を測りながら調整します。
  • 構成が複雑になります。 2つの検索基盤の運用と、更新時の整合性を保つ手間が増えます。小規模なら、まず片方で始めて、問題が出てから追加するのも現実的です。

関連する考え方

意味で探す仕組みはセマンティック検索、そのもとになる数値化は埋め込みです。RAGの精度を高める工夫として、チャンク分割の見直しやリランキングと組み合わせて検討されます。

あわせて知りたい言葉

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