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

Embeddings

埋め込み表現は、類似したテキスト、画像、アイテムを近くに配置する学習済みベクトルです。埋め込み表現の生成、比較、大規模な検索について解説します。

埋め込みとは、単語、画像、製品、ユーザーなどの項目を表す、学習済みの数値ベクトルです。意味や内容が似ている項目は、ベクトル空間で近くに配置されます。このベクトル空間での距離を類似度の尺度として使うことで、ソフトウェアは生のピクセルや文字列ではなくベクトルを比較して、検索、クラスタリング、推薦、分類を行えます。埋め込みはニューラルネットワーク内部の処理表現としても使われます。大規模言語モデル (LLM)は最初のトランスフォーマー層の前に各トークンを埋め込みに変換し、ビジョンモデルはバックボーンを通して画像を特徴ベクトルに変換します。検索に使う埋め込みは通常、数百から数千の次元を持ち、生の入力の値の数よりも大幅に少なくなります。

埋め込みの生成方法#

埋め込みは、次の2種類の学習済みコンポーネントから得られます。

  • ルックアップテーブル: トークン、商品ID、ユーザーIDなどの離散的な項目では、埋め込みレイヤーが項目ごとに学習可能な行を1つ保存し、項目を検索するとその行を返します。PyTorchのnn.Embeddingは、このようなテーブルです。行の値はランダムに初期化され、モデルの他の部分とともにバックプロパゲーションによって更新されるため、学習タスクで似た役割を果たす項目は、似たベクトルへと近づいていきます。
  • エンコーダー: 画像、音声、自由形式のテキストでは、ネットワークが入力全体を1つのベクトルに変換します。多くの場合、CNNの特徴マップをプーリングするか、Transformerの出力トークンを読み取ります。分類などのタスクで学習したエンコーダーは、副産物として有用な埋め込みを生成します。また、コントラスト学習で学習したエンコーダーは、埋め込み空間を直接形成します。CLIPは、画像とそのキャプションを1つの共有空間に配置することで、これを実現します。

2013年にGoogleのTomas Mikolov氏らが発表したWord2vecは、このような学習がどれほどの構造を捉えるかを示しました。単語ベクトルでは、vector("King") − vector("Man") + vector("Woman")がvector("Queen")に最も近くなります。また、公開されたGoogle Newsの事前学習済みベクトルには、300次元で300万語とフレーズが収録されています。

埋め込みの比較#

コサイン類似度は2つのベクトルの方向を比較し、値は−1から1の範囲になります。内積はベクトルの長さも考慮し、ユークリッド距離はベクトル間の直線距離を測定します。多くのシステムでは埋め込みを単位長に正規化するため、コサイン類似度と内積が同じになり、ユークリッド距離と同じ順序で近傍を順位付けできます。YOLO26モデルは、embed()を通じて画像埋め込みを生成します。この処理では予測ヘッドをスキップし、モデルの最後から2番目のレイヤーの出力を平均プーリングして、画像ごとに1つのベクトルを返します。

import torch.nn.functional as F
from ultralytics import YOLO
from ultralytics.utils import ASSETS

# Load a YOLO26 classification model trained on ImageNet
model = YOLO("yolo26n-cls.pt")

# embed() returns one pooled feature vector per image instead of predictions
bus, zidane = model.embed([ASSETS / "bus.jpg", ASSETS / "zidane.jpg"])
print(f"Embedding length: {bus.shape[0]}")

# Higher cosine similarity means the model sees more similar content
print(f"Cosine similarity: {F.cosine_similarity(bus, zidane, dim=0).item():.3f}")

YOLO26n-clsの埋め込みは256次元ベクトルで、バックボーンの末尾にあるアテンションブロックのプーリング出力です。2行目には、同梱されたサンプル写真2枚のコサイン類似度が表示されます。同じ比較をコレクション全体の保存済み埋め込みに対して実行することで、画像類似検索の結果を順位付けできます。

大規模な埋め込み検索#

数百万個の保存済みベクトルとクエリを1つずつ比較するには時間がかかりすぎるため、ベクトルデータベースは近似最近傍インデックスを構築します。たとえば、グラフベースのHNSWインデックスや転置ファイルインデックスを使い、コレクションのごく一部だけを調べながら近い一致を見つけます。コレクションは一度だけ埋め込みに変換し、各クエリは検索時に同じエンコーダーで埋め込みに変換します。テキストで画像を検索する場合は、対応するテキストエンコーダーを使用します。

精度と同じくらい、ストレージも設計を左右します。Matryoshka表現学習は、先頭の次元だけでも機能する埋め込みを学習するため、ベクトルを切り詰めて容量を節約できます。ベクトル量子化では、各ベクトルを数バイトに圧縮します。ハイブリッド検索は、埋め込みの類似度とキーワードマッチングを組み合わせます。

用途#

  • セマンティック検索と検索拡張生成(RAG): テキスト埋め込みは意味に基づいて文章を検索するため、「自動車保険の請求」に関するクエリから「自動車保険契約」と記載された文書も見つけられます。RAGは、検索した文章をコンテキストとしてLLMに渡します。
  • レコメンデーションシステム: ユーザーとアイテムを同じ空間に埋め込み、ユーザーのベクトルに最も近いアイテムを推薦候補にします。
  • ゼロショット分類: 画像とテキストの共有空間を持つモデルは、画像の埋め込みと、テキストで表現したクラス名の埋め込みを比較して画像を分類します。
  • 物体再識別: 外観の埋め込みを使い、カメラ間やトラッキングの中断を挟んで、同じ人物や車両を対応付けます。
  • データセットの探索: t-SNEまたはUMAPを使って埋め込みを2次元に投影すると、データセット内のクラスター、ほぼ重複するデータ、外れ値を確認できます。Ultralytics Platformのデータセットでは、Clusteringパネルがこれを表示します。
  • 潜在空間: 埋め込みが存在するベクトル空間です。「潜在表現」と「埋め込み」は、しばしば同義語として使われます。
  • 特徴抽出: 生データを特徴量に変換するあらゆる処理です。埋め込みは、ベクトル間の距離が意味を持つように学習された特徴ベクトルです。
  • トークン化: テキストをトークンに分割し、それぞれを整数IDに変換します。その後、埋め込みレイヤーが各IDをベクトルに変換します。
  • One-hotエンコーディング: 語彙内の項目iを、位置iだけが1で他がすべて0のベクトルで表します。そのため、どの項目同士も同じ距離になり、このエンコーディングには類似性の情報が含まれません。one-hotベクトルに埋め込みテーブルの重み行列を乗算すると、ちょうど1行が選択されます。埋め込み検索は、この乗算を実行せずに同じ結果を返します。

ソリューションを見る

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

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

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の未来を一緒に築きましょう!

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