Hybrid Search
ハイブリッド検索がキーワードマッチングとセマンティックAIをどのように融合させるかを探ります。Ultralytics YOLO26のメタデータを使用して、コンテキストを認識する検索パイプラインを構築しましょう。
従来のキーワード一致の精度と、最新のAIによる文脈理解を組み合わせたこの検索手法は、スパースおよびデンスの両方のデータ表現を活用して情報を抽出し、ランク付けします。標準的なsearch engineが完全なキーワード一致(lexical searchとして知られています)に完全に依存し、vector search enginesがsemantic similarityのみに依存するのに対し、ハイブリッド検索エンジンはこれら2つのアプローチを統合して、極めて正確で文脈を考慮した結果を提供します。
仕組み#
典型的なハイブリッド検索パイプラインは、2つの異なる取得手法を同時に実行し、その出力を単一の最適化されたランキングに統合します。
- Lexical (Sparse) Search: BM25などのアルゴリズムを使用して、用語頻度に基づいて正確なキーワード一致をスコア化します。これは、純粋なセマンティックモデルでは識別が難しい特定のエンティティ、頭字語、製品SKU、または専門的な専門用語を抽出するために非常に重要です。
- Semantic (Dense) Search: AIモデルを使用して高次元の数値配列を生成し、クエリのより深い意味と文脈を理解します。これにより、検索クエリに正確な単語が含まれていない場合でも、システムに関連する結果を見つけることができます。
両方の方法がそれぞれの候補結果を抽出すると、fusion algorithm(最も一般的なものはReciprocal Rank Fusion (RRF))がそれらのリストを結合します。RRFは、それぞれのスパースおよびデンスの結果セットにおける各アイテムのランクに基づいて新しいスコアを計算します。これにより、いずれかまたは両方の検索で上位にランクされたドキュメントが確実に上位に押し上げられ、幅広い文脈的な一致と正確なキーワードの精度が両立されます。
現実世界のAIおよびMLアプリケーション#
最新のAIアーキテクチャでは、本番環境で単一の取得手法を使用する場合の限界を克服するために、この技術に大きく依存しています。
- Hybrid RAG (Retrieval-Augmented Generation): エンタープライズ知識システムにおいては、Large Language Model (LLM)に最も関連性の高い文脈を提供することが、hallucinationsを防ぐ上で極めて重要です。ハイブリッドRAG構成により、モデルは正確な技術的制約に一致するドキュメントを抽出すると同時に、セマンティックに関連する段落も取り込むことができます。
- E-Commerce and Visual Product Discovery: 小売業者はハイブリッド検索を使用して製品カタログを強化しています。ユーザーが「赤色のランニングシューズ」を検索する場合、レキシカルエンジンが正確なブランドやカテゴリのキーワードに一致させ、vision AI modelが画像埋め込みを使用して視覚的に類似したアイテムを表面化させます。
現在、Pinecone、Qdrant、OpenSearch、およびpgvector経由のPostgreSQLを含む、ほとんどの主要なvector databaseがハイブリッド検索をネイティブでサポートしています。これにより、開発者は単一のインフラストラクチャ内で、スパースキーワードとデンスベクトルの両方を効率的にインデックス化できます。
ハイブリッド検索のためのメタデータの生成#
In computer vision pipelines, you can extract meaningful keywords from images to build the sparse component of a hybrid index. Using Ultralytics YOLO26, you can automatically perform object detection on an image and use those class names as metadata tags. These keyword tags can then be paired with the image's dense vector embeddings for comprehensive indexing.
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とハイブリッド互換のベクトルデータベースを活用して、データの明示的なテキストタグと暗黙的な視覚的文脈の両方を完全に理解する堅牢なmultimodal search enginesを構築できます。






