ハイブリッド検索
ハイブリッド検索は、密ベクトル検索(意味的)と疎なキーワード検索(BM25)を並列で実行し、その結果を単一のランク付けされたリストへと融合する検索技術です。「意味の類似性」と「正確なトークンの一致」の両方を、1つのクエリで捉えます。
ハイブリッド検索は、密ベクトル検索(意味的)と疎なキーワード検索(BM25)を並列で実行し、その結果を単一のランク付けされたリストへと融合する検索技術です。「意味の類似性」と「正確なトークンの一致」の両方を、1つのクエリで捉えます。
なぜ重要なのか
密ベクトル検索は意味的な一致(「手頃なノートパソコン」≈「低価格のノートブック」)に優れていますが、製品コード、SKU、固有名詞のような希少なトークンには対応できません。キーワード検索は正確なトークンを的確に捉えますが、言い換えを取りこぼします。ハイブリッド検索は両方で勝ります。Anthropic、OpenAI、Elasticの本番RAGシステムはいずれも、ハイブリッドがどちらか一方だけを一貫して上回り、実世界の検索ベンチマークで通常10〜30%の再現率の向上を示すと報告しています。
仕組み
1. デュアル検索: 同じクエリが両方のインデックス、つまりベクトルインデックス(密な埋め込み)と転置インデックス(BM25またはTF-IDF)を通して実行されます。
2. スコアの正規化: 密なスコアと疎なスコアは異なるスケール上にあります。それらは正規化されます。min-max、zスコア、またはランクベースの手法です。
3. 融合(フュージョン): スコアが単一のランキングへと統合されます。最も一般的な手法は次のとおりです。
- Reciprocal Rank Fusion(RRF):
score = Σ 1/(k + rank_i)。ランクベースで、チューニング不要、きわめて頑健です。 - 加重和:
α * dense + (1-α) * sparse。ドメインごとにαのチューニングが必要です。 - 学習型の融合: 小型のモデルがクエリごとに最適な重みを予測します。
4. 任意のリランキング: クロスエンコーダが、融合された上位kの候補を最終的な精度のためにリランクします。
いつ使うべきか
ドメイン固有の語彙: 医療コード、法的な引用、部品番号。
混在するクエリの種類: ユーザーが自然言語と正確な文字列の両方で検索する場合。
ロングテールの再現率が重要な場合: BM25が依然として活躍する希少なクエリ。
ベクトルだけでは結果がゼロになる場合: 多くは正確一致の失敗です。ハイブリッドがこれを解決します。
トレードオフ
レイテンシ: 2つのインデックスは2つのクエリを意味します。並列実行によって緩和されます。
インデックスのストレージ: ベクトルインデックスと転置インデックスの両方を維持する必要があります。
チューニングの複雑さ: 加重融合はチューニングのためにラベル付きデータを必要とします。RRFはこれを回避します。
常に勝つとは限らない: 埋め込みが非常に強力なドメイン(純粋な言い換えタスク)では、密検索だけでハイブリッドに匹敵することがあります。
ハイブリッド検索 vs 純粋なベクトル検索
| 観点 | 純粋なベクトル | ハイブリッド |
|---|---|---|
| 意味的な一致 | 強い | 強い |
| 正確なトークンの一致 | 弱い | 強い |
| 希少なトークン、SKU | 弱い | 強い |
| インフラ | シンプル | 2つのインデックス |
| 典型的な再現率の向上 | ベースライン | +10〜30% |
最新のベクトルデータベース(Pinecone、Weaviate、Qdrant、Elasticsearch)は、ハイブリッド検索を第一級の機能として提供しているため、運用コストは低く抑えられます。
Sources: