Skip to main content
Embedding Projector
埋め込みとは、人、画像、投稿、単語などのオブジェクトを数値のリスト (ベクトル と呼ばれることもあります) で表現したものです。機械学習やデータサイエンスでは、さまざまなアプリケーションで多様な手法を使用して埋め込みを生成できます。このページは、埋め込みについての基本的な知識があり、W&B 内で埋め込みを視覚的に分析したい方を対象としています。 このガイドでは、埋め込みを W&B にログし、Embedding Projector を使用して PCA、UMAP、t-SNE などの次元削減アルゴリズムで 2D 平面上にプロットする方法を説明します。埋め込みをこのように可視化すると、クラスターを探索したり、データポイント間の関係を調べたり、埋め込みが想定どおりの構造を取得できているかを検証したりできます。

埋め込みのサンプル

実際に試す前に、以下のリソースで Embedding Projector の動作を確認できます。

Hello world

この最小構成の例では、埋め込みをログしてプロジェクターで表示するのに必要な最小限のコードを紹介します。W&B では、wandb.Table クラスを使用して埋め込みをログできます。次の例では、それぞれ 5 次元からなる 3 つの埋め込みを使用します。
前述のコードを実行すると、W&B のダッシュボードに、データを含む新しい Table が追加されます。右上のパネルセレクターから 2D Projection を選択すると、埋め込みが 2 次元にプロットされます。W&B は適切なデフォルト値を自動で選択しますが、歯車アイコンをクリックして開く設定メニューで上書きできます。この例では、W&B は使用可能な 5 つの数値次元をすべて使用しています。
2D 射影の例

Digits MNIST

次の例では、より高次元のデータとより豊富なオーバーレイを使用した、より実践的なワークフローを紹介します。前の例では埋め込みをログする基本的な仕組みを示しましたが、実際にはさらに多くの次元やサンプルを扱うのが一般的です。ここでは、SciKit-Learn で提供されている MNIST Digits データセット (UCI ML hand-written digits dataset) を例に取り上げます。このデータセットには 1,797 件のレコードが含まれ、各レコードは 64 次元です。これは 10 クラス分類のユースケースです。入力データを画像に変換して可視化することもできます。
上記のコードを実行すると、UI に再び Table が表示されます。2D Projection を選択すると、埋め込みの定義、色分け、アルゴリズム (PCA、UMAP、t-SNE) 、アルゴリズムのパラメーター、オーバーレイを設定できます。この例では、ポイントにカーソルを合わせると、W&B によってその画像が表示されます。これらにはすべて適切なデフォルトが設定されているため、2D Projection を 1 回クリックするだけで同様の結果が表示されます。この埋め込みチュートリアルの例を実際に操作してみましょう。
MNIST の数字の射影

ログのオプション

以下のセクションでは、埋め込みデータを W&B にログする際にサポートされるデータ構造について説明します。埋め込みは、次のいくつかの形式でログできます。
  • 単一の埋め込み列: データがすでにマトリクスのような形式になっている場合がよくあります。その場合は、単一の埋め込み列を作成できます。セルの値のデータタイプには list[int]、list[float]、np.ndarray のいずれかを使用できます。
  • 複数の数値列: 前述の 2 つのサンプルではこの方法を使用しており、次元ごとに列を作成しています。W&B は、セルの値として Python の int または float を受け入れます。
単一の埋め込み列
複数の数値列
他の表と同様に、表はいくつかの方法で作成できます。
  • wandb.Table(dataframe=df) を使用して、データフレームから直接作成します。
  • wandb.Table(data=[...], columns=[...]) を使用して、データのリストから直接作成します。
  • 表を 1 行ずつ段階的に構築します (コード内でループを使用している場合に便利です)。table.add_data(...) を使用して表に行を追加します。
  • 表に埋め込み列を追加します (埋め込み形式の予測のリストがある場合に便利です): table.add_col("col_name", ...)。
  • 計算列を追加します (表の各行に適用したい関数やモデルがある場合に便利です): table.add_computed_columns(lambda row, ndx: {"embedding": model.predict(row)})。

プロットのオプション

埋め込みをログした後、その射影方法とレンダリング方法を調整できます。2D Projection を選択したら、歯車アイコンをクリックしてレンダリング設定を編集します。対象の列の選択 (前のセクションを参照) に加えて、使用するアルゴリズムとそのパラメーターも選択できます。次の画像は、UMAP と t-SNE のパラメーターを示しています。
UMAP のパラメーター
t-SNE のパラメーター
3 つのアルゴリズムのいずれでも、W&B はデータを 1,000 行・50 次元のランダムなサブセットにダウンサンプリングします。
最終更新日 2026年9月30日