Hybrid Search
ハイブリッド検索がキーワードマッチングとセマンティックAIをどのように融合させるかを探ります。Ultralytics YOLO26のメタデータを使用して、コンテキストを認識する検索パイプラインを構築しましょう。
従来のキーワードマッチングの正確さと、最新のAIによる文脈理解を組み合わせたこの検索手法は、スパースなデータ表現と密なデータ表現の両方を活用して情報を取得およびランク付けします。標準的な検索エンジンが完全なキーワード一致(全文検索として知られています)に依存し、ベクトル検索エンジンが純粋に意味的類似性に依存するのに対し、ハイブリッド検索エンジンはこれら2つのアプローチを統合することで、非常に正確で文脈を意識した結果を提供します。
Link to this section仕組み#
典型的なハイブリッド検索パイプラインは、2つの異なる取得手法を同時に実行し、その出力を単一の最適化されたランキングに統合します。
- レキシカル(スパース)検索: BM25などのアルゴリズムを使用して、用語頻度に基づく正確なキーワード一致をスコアリングします。これは、純粋な意味モデルでは特定が困難な特定のエンティティ、頭字語、製品SKU、または専門用語を検索する際に非常に重要です。
- セマンティック(デンス)検索: AIモデルを使用して数値の高次元配列を生成し、クエリのより深い意味と文脈を理解します。これにより、検索クエリに正確な単語が含まれていない場合でも、システムは関連する結果を見つけることができます。
両方の手法が候補結果を取得すると、融合アルゴリズム(最も一般的なのはReciprocal Rank Fusion (RRF))がリストを統合します。RRFは、それぞれのスパースおよびデンスな結果セット内での各アイテムの順位に基づいて新しいスコアを計算します。これにより、いずれか一方または両方の検索で上位にランク付けされたドキュメントが確実に最上位に浮上し、広範な文脈的な一致とピンポイントのキーワード精度のバランスを取ることができます。
Link to this section現実世界のAIおよびMLアプリケーション#
最新のAIアーキテクチャでは、本番環境で単一の取得手法を使用する場合の限界を克服するために、この技術に大きく依存しています。
- ハイブリッドRAG(検索拡張生成): エンタープライズ知識システムにおいて、大規模言語モデル(LLM)に最も関連性の高い文脈を提供することは、ハルシネーションを防ぐために不可欠です。ハイブリッドRAG構成により、モデルは厳密な技術的制約に一致するドキュメントを取得しつつ、意味的に関連する段落も同時に抽出できるようになります。
- Eコマースとビジュアル製品探索: 小売業者は製品カタログを強化するためにハイブリッド検索を活用しています。ユーザーが「赤いランニングシューズ」と検索した場合、レキシカルエンジンが正確なブランドやカテゴリのキーワードをマッチングさせる一方で、ビジョンAIモデルは画像エンベディングを使用して視覚的に類似したアイテムを提示します。
Today, almost every major vector database—including Pinecone, Qdrant, OpenSearch, and PostgreSQL via pgvector—supports hybrid search natively. This allows developers to index both sparse keywords and dense vectors efficiently in a single infrastructure.
Link to this sectionハイブリッド検索のためのメタデータの生成#
コンピュータビジョンパイプラインでは、画像から意味のあるキーワードを抽出して、ハイブリッドインデックスのスパースコンポーネントを構築できます。Ultralytics YOLO26を使用すると、画像に対して物体検出を自動的に実行し、それらのクラス名をメタデータタグとして使用できます。これらのキーワードタグは、包括的なインデックス作成のために画像の密なベクトルエンベディングと組み合わせることができます。
from ultralytics import YOLO
# Load the recommended Ultralytics YOLO26 object detection model
model = YOLO("yolo26n.pt")
# Run inference to detect objects in an image
results = model("store_aisle.jpg")
# Extract predicted class names to be indexed as keyword metadata (sparse data)
keywords = [model.names[int(box.cls)] for box in results[0].boxes]
print("Sparse keywords for lexical search:", keywords)密な画像エンベディングにAI生成された正確なスパースキーワードを付加することで、開発者はUltralytics Platformとハイブリッド対応のベクトルデータベースを活用し、明示的なテキストタグとデータの暗黙的な視覚的文脈の両方を完璧に理解する堅牢なマルチモーダル検索エンジンを構築できます。






