Semantic Search
意味検索がAIと埋め込みを使用してユーザーの意図を理解する仕組みを解説します。Ultralytics YOLO26と当社のPlatformでビジュアル検索システムを構築する方法を学びます。
セマンティック検索は、特定の単語を単純に照合するのではなく、ユーザーのクエリの意図と文脈上の意味を理解することを目指す、高度な情報検索技術です。自然言語処理 (NLP)と機械学習 (ML)の進歩を活用することで、この技術はシステムが人間の言語をよりきめ細かく解釈できるようにします。これは現代の人工知能 (AI)アプリケーションの基盤であり、曖昧なユーザークエリと関連データの隔たりを埋めることで、人間と機械のより直感的なインタラクションを可能にします。
セマンティック検索の仕組み#
セマンティック検索は、文字列を文字どおり照合するだけでなく、概念間の関係を分析します。従来の検索エンジンでは、ユーザーが「feline」と検索した際に、ドキュメント内に「cat」という単語しか含まれていないと、適切に検索できない場合があります。セマンティック検索では、テキスト、画像、音声などの非構造化データを埋め込みと呼ばれる数学的表現に変換することで、この問題を解決します。
これらの埋め込みは、「セマンティック空間」に配置された高次元ベクトルです。この空間では、意味が類似する項目同士が近くに配置されます。例えば、「car」のベクトルは、「banana」よりも「automobile」や「road」に数学的に近くなります。ユーザーがクエリを送信すると、システムはそのクエリをベクトルに変換し、ベクトルデータベース内で最も近いデータポイントを見つけます。この処理では、深層学習モデルを使用して特徴抽出を行い、データの重要な特性を特定します。
次のPythonコードでは、視覚的なセマンティック検索を可能にするための基礎となる手順として、Ultralytics YOLO26モデルを使用してこれらの埋め込みを生成する方法を示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate feature embeddings for an image
# This converts the visual content into a numerical vector
results = model.embed("https://ultralytics.com/images/bus.jpg")
# Output the shape of the embedding vector (e.g., length 1280)
print(f"Embedding vector shape: {results[0].shape}")実世界での利用例#
セマンティック検索は、さまざまな分野でユーザーが情報を見つける方法に革新をもたらし、システムをよりスマートで効率的なものにしました。
- Eコマースとビジュアルディスカバリー: 小売におけるAIの分野では、セマンティック検索が「shop the look」機能を支えています。顧客はスニーカーの写真をアップロードしたり、「vintage summer vibes」と検索したりできます。システムはコンピュータービジョンを使用してビジュアルスタイルを理解し、商品説明にその正確なキーワードが含まれていない場合でも、雰囲気に合った商品を取得します。これには、テキストと画像の両方の入力を理解できるマルチモーダルモデルが使用されることがよくあります。
- ナレッジマネジメントとRAG: 大規模な組織では、従業員が社内ドキュメントを見つけられるようにセマンティック検索を利用しています。正確なファイル名を覚えていなくても、従業員は「How do I reset the server?」のような質問をすることができます。システムは検索拡張生成 (RAG)を使用して意味に基づき最も関連性の高いポリシードキュメントを見つけ、それらを大規模言語モデル (LLM)に入力して正確な回答を生成します。
- コンテンツレコメンデーション: ストリーミングプラットフォームは、レコメンデーションシステムを改善するためにセマンティックな理解を活用しています。ユーザーが好む映画のあらすじと視覚的な特徴マップを分析することで、プラットフォームは似たテーマや雰囲気を持つ他の作品を提案し、ユーザーの利用をより長く維持できます。
セマンティック検索と関連概念の比較#
セマンティック検索の有用性を十分に理解するには、データサイエンスの分野における関連用語との違いを明確にすることが役立ちます。
- ベクトル検索: これらは同じ意味で使われることが多いものの、技術的には違いがあります。ベクトル検索は、ベクトル間の距離を計算する数学的な手法です(多くの場合、コサイン類似度を使用します)。セマンティック検索は、ユーザーの意図を理解するという目的を達成するためにベクトル検索を使用する、より広い意味でのアプリケーションです。
- キーワード検索: これは、文字列を完全一致させる従来の手法です。計算コストは低い一方で柔軟性に乏しく、同義語や多義性(複数の意味を持つ単語)の処理が苦手です。セマンティック検索はより多くの計算リソースを必要としますが、関連性を大幅に高められます。
- ゼロショット学習: これは、モデルがトレーニング中に一度も見たことのないデータを分類する能力を指します。セマンティック検索エンジンは、再トレーニングを行わずに、未知の新しいクエリを埋め込み空間内の既知の概念の既存クラスタにマッピングできるため、ゼロショット能力を示すことがよくあります。
セマンティック検索の実装には通常、データセットとモデルのトレーニングを管理するための堅牢なパイプラインが必要です。Ultralytics Platformは、データへのアノテーション付与、モデルのトレーニング、効率的なデプロイに役立つツールを提供することで、この作業を簡素化します。これらのシステムの構築を検討している開発者にとって、Ultralyticsの類似検索ガイドでは、これらの強力な機能をアプリケーションに統合するための実践的な手順を確認できます。









