Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Semantic Search

セマンティック検索は、クエリの正確な単語ではなく意味に基づいて文書や画像を順位付けします。埋め込み、近傍検索、リランカーを使用します。

セマンティック検索は、クエリに含まれる語句との一致ではなく、クエリの意味とどれほど一致するかに基づいて、ドキュメント、画像などの項目をランキングします。「うちの猫がお腹を空かせている」という検索で、「新しく迎えた子猫の給餌スケジュール」というタイトルのページが返されることがあります。両者には共通する単語がありません。最新のシステムでは埋め込みを使います。ニューラルエンコーダーがクエリと項目をベクトルに変換し、意味が似ている場合はベクトル同士が近くなります。ベクトル検索で最も近い項目を見つけます。Web検索は2019年にこの方向へ進み始めました。Googleが検索クエリの理解にBERTを適用し、米国の英語検索の10件に1件に影響したと発表した年です。

セマンティック検索の仕組み#

セマンティック検索システムの多くは、バイエンコーダーで検索し、リランカーで結果を調整します。バイエンコーダーはすべてのドキュメントを事前に一度ずつ埋め込みに変換し、ベクトルをベクトルデータベースに保存します。クエリ時にはクエリだけを埋め込みに変換し、近似最近傍インデックスがコサイン類似度に基づいて上位候補を返します。Sentence-BERT(2019年)によって、文に対してこの手法を実用化できました。1万文から最も類似するペアを見つけるのに、BERTのクロスエンコーダーでは約65時間かかったのに対し、文の埋め込みを使うと約5秒で済みました。続いてDense Passage Retrieval(2020年)は、オープンドメインの質問応答において、学習した埋め込みがBM25キーワードランキングを、上位20件の文章検索精度で9~19ポイント上回ることを示しました。最後に、クロスエンコーダーのリランカーがクエリと各候補をまとめて読み、短い候補リストをより正確に並べ替えます。

この例では、Sentence Transformersライブラリを使い、単語の重複と埋め込み類似度を比較します。

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")

documents = [
    "How to reset a forgotten account password",
    "Feeding schedule for a new kitten",
    "Quarterly sales report for the retail division",
    "Best hiking trails near Denver",
]
query = "my cat is hungry"

# Keyword search: documents sharing at least one word with the query
query_words = set(query.lower().split())
print("Keyword matches:", [d for d in documents if query_words & set(d.lower().split())])

# Semantic search: rank documents by cosine similarity of their embeddings
doc_embeddings = model.encode(documents)
query_embedding = model.encode(query)
scores = model.similarity(query_embedding, doc_embeddings)[0]
best = int(scores.argmax())
print(f"Semantic match: {documents[best]!r} (cosine {scores[best]:.2f})")

どのドキュメントにも「my」「cat」「is」「hungry」が含まれないため、キーワード照合では空のリストが返されます。セマンティック検索では、意味が最も近いドキュメントとして、子猫の給餌スケジュールがコサイン類似度0.56で返されます。

  • キーワード検索: BM25などの計算式を使い、完全一致する語句に基づいてドキュメントをランキングします。名前、型番、埋め込みでは区別しにくい希少語句には適していますが、同義語や言い換えは見落とします。
  • ハイブリッド検索: キーワード検索とセマンティック検索を併用して結果を統合する手法です。本番の検索システムやRAGシステムでよく使われます。
  • セマンティックセグメンテーション: 画像内のすべてのピクセルにクラスを付与する、無関係なコンピュータービジョンタスクです。「セマンティック」という単語を共有するだけです。
  • セマンティックキャッシュ: 同じ意味に基づく照合をLLMリクエストに適用し、新しいプロンプトが以前のものと同じ意味なら、保存済みの回答を再利用します。

実際のアプリケーション#

  • 検索拡張生成(RAG): ユーザーの表現がドキュメントの表現と異なる場合でも、言語モデルに必要な文章を見つけます。
  • 特許検索: 異なる用語で同じ発明を説明している先行技術を提示します。
  • 小売の商品検索: 「雨の日の通勤に履く靴」のようなクエリを、商品情報にその語句が使われていない防水スニーカーと照合します。
  • レコメンデーションシステム: ユーザーがすでに選択した項目の近くに埋め込みが配置される記事や商品を推薦します。

意味による画像検索#

対照学習で画像とキャプションのペアを使って学習したモデル(CLIPなど)は、テキストと画像を同じ空間に埋め込みます。そのため、タグやキャプションのない写真もテキストクエリでランキングできます。Ultralyticsのセマンティック画像検索ソリューションもこの方法で構築されています。そのVisualAISearchクラスは、フォルダー内のすべての画像をCLIPで一度埋め込みに変換し、各テキストクエリも同じ空間に埋め込みます。そして、クエリとのコサイン類似度がしきい値を超える画像を最大30枚返し、類似度の高い順に並べます。「ベンチに座っている犬」のようなクエリで、ラベルのないコレクションから一致する写真を見つけられます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう