Embeddings
エンベディングが人間のデータと機械のロジックをどのようにつなぐかをご確認ください。Ultralytics YOLO26を使用してAIタスク向けのベクトル表現を生成する方法を学び、Ultralytics Platformをご覧ください。
エンベディングは、離散変数を表す高密度で低次元の連続ベクトル表現であり、人間のデータと機械のロジックをつなぐ基本的な翻訳機として機能します。人工知能 (AI)の領域では、コンピュータはテキスト、画像、音声などの扱いが難しい非構造化データを直感的に理解できません。エンベディングは、これらの入力をベクトルと呼ばれる実数のリストに変換することで、この問題を解決します。ベクトルは高次元の数学空間に存在します。オブジェクトにランダムなIDを割り当てるだけの従来のエンコーディングとは異なり、エンベディングはトレーニングを通じて学習されるため、「king」と「queen」という単語や、異なる2匹の猫の画像のように、意味的に類似した項目がベクトル空間内で近くに配置されます。
エンベディングの仕組み#
エンベディングの作成では、特徴抽出用に設計されたニューラルネットワークに生データを入力します。トレーニング中、モデルは入力の重要な特性をコンパクトな数値形式に圧縮する方法を学習します。たとえば、写真を分析するコンピュータビジョン (CV)モデルは、単にピクセルを見るのではなく、形状、テクスチャ、色を多次元グラフ上の特定の座標にマッピングします。類似度を測定する際、システムはコサイン類似度やユークリッド距離などの指標を使用して、これらの座標間の距離を計算します。この数学的な近さにより、アルゴリズムは分類やクラスタリングなどの複雑なタスクを高い効率で実行できます。
実世界での利用例#
エンベディングは、現代のソフトウェア製品で使用される多くのインテリジェントな機能のエンジンとして機能します。
- セマンティック検索: 従来の検索エンジンは、正確なキーワードマッチングに依存することが多く、ユーザーが「auto」と検索したのに、ドキュメントには「car」と記載されている場合などには機能しません。エンベディングは、単語の背後にある意味を捉えます。検索クエリとデータベース内のドキュメントをベクトルとして表現することで、具体的な単語が異なっていても、システムはユーザーの意図に一致する結果を取得できます。
- レコメンデーションシステム: ストリーミングサービスやEコマースサイトは、エンベディングを使用してユーザー体験をパーソナライズします。ユーザーがSF映画を視聴すると、システムはその映画のエンベディングベクトルを特定し、データベース内で近いベクトルを持つ他の映画を検索します。これにより、単なる手動のタグやカテゴリーではなく、コンテンツの類似性に基づいた正確な提案が可能になります。
- ゼロショット学習: 高度なモデルは、テキストや画像などの異なるモダリティを関連付けるために、ジョイントエンベディングを使用します。これにより、画像のエンベディングとオブジェクト名のテキストエンベディングを関連付けることで、トレーニング中に明示的に見たことのないオブジェクトをシステムが認識できるようになります。
Pythonでエンベディングを生成する#
YOLO26などの最先端モデルを使用すると、堅牢な画像エンベディングを効率的に生成できます。次の例では、ultralytics Pythonパッケージを使用して、画像から特徴ベクトルを抽出する方法を示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate embeddings for an image
# The embed() method returns the feature vector representing the image content
embedding_vector = model.embed("https://ultralytics.com/images/bus.jpg")
# Print the shape of the embedding (e.g., a vector of length 1280)
print(f"Embedding shape: {embedding_vector[0].shape}")エンベディングと関連概念の比較#
AIソリューションを効果的に実装するには、エンベディングと密接に関連する技術用語を区別することが役立ちます。
- エンベディングとベクトル検索の比較: エンベディングはデータ表現そのもの(数値のリスト)です。ベクトル検索は、そのエンベディングに最も近い近傍を見つけるためにデータベースをクエリする、その後のプロセスです。ベクトルデータベースと呼ばれる専用ツールは、大規模なエンベディングの保存と検索によく使用されます。
- エンベディングとトークン化の比較: 自然言語処理 (NLP)では、トークン化はテキストをより小さなチャンク(トークン)に分割する準備段階です。次に、これらのトークンがエンベディングにマッピングされます。したがって、トークン化はデータを準備し、エンベディングはデータの意味を表します。
- エンベディングとディープラーニングの比較: ディープラーニングは、ニューラルネットワークを基盤とする機械学習のより広範な分野です。エンベディングはディープラーニングアーキテクチャ内の特定の出力またはレイヤーであり、生の入力とモデルの意思決定レイヤーの間をつなぐ役割を果たすことがよくあります。
カスタムエンベディングの生成に向けたアノテーションやモデルのトレーニングなど、データセットのライフサイクルを管理したい開発者は、Ultralytics Platformを利用できます。この包括的なツールは、データ管理からデプロイまでのワークフローを簡素化し、アプリケーションを支えるエンベディングが高品質で適切にキュレーションされたデータから生成されるようにします。PyTorchやTensorFlowなどのフレームワークを使用する場合でも、エンベディングを習得することは、高度なパターン認識システムを構築するための重要なステップです。









