Embeddings
埋め込みがどのように人間のデータと機械の論理を橋渡しするか解説します。Ultralytics YOLO26を使用してAIタスク用のベクトル表現を生成し、Ultralytics Platformについて探求しましょう。
埋め込み(Embeddings)は、離散変数を高次元の数学的空間に存在する連続的な数値のリスト(ベクトル)へと変換する低次元の表現であり、人間のデータと機械の論理の間をつなぐ基本的な翻訳機として機能します。人工知能 (AI)の領域において、コンピュータはテキスト、画像、音声といった複雑な非構造化データを直感的に理解することができません。埋め込みは、これらの入力を実数のリスト(ベクトル)に変換することでこの問題を解決します。オブジェクトに対して単にランダムなIDを割り当てるだけの従来のエンコーディングとは異なり、埋め込みはトレーニングを通じて学習されるため、「王」と「女王」という単語や、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などのフレームワークを使用する場合でも、埋め込みを習得することは、高度なパター認識システムを構築するための重要なステップです。






