Embeddings

食品レコメンデーション アプリケーションを開発しているとします。 ユーザーが好みの食事の情報を入力すると、類似のメニューが提案される 目を向けます機械学習(ML)モデルを開発したい 食品の類似度を予測して、 おすすめ情報(「パンケーキが好きなので、クレープがおすすめ」)。

モデルをトレーニングするために、あなたは 食事用品(ボルシチを含む) ホットドッグ サラダ ピザshawarma

図 1. 5 つの食品のイラストのセット。から時計回り
       左上: ボルシチ、ホットドッグ、サラダ、ピザ、シャワルマ。
図 1. 食品データセットに含まれる食事アイテムのサンプリング。

次の値を含む meal 特徴を作成するとします。 ワンホット エンコード ラベルが生成されます。

図 2. 上: ボルシチのワンホット エンコーディングの可視化。
       ベクトル [1, 0, 0, 0, ..., 0] が 6 つのボックスの上に表示されている。
       左から順に並べます
       ベクトル数で表します。左から右にボックス
       次の画像が含まれている: ボルシチ、ホットドッグ、サラダ、ピザ、[空]、
       Shawarma。中間: ホットドッグのワンホット エンコーディングの可視化。
       ベクトル [0, 1, 0, 0, ..., 0] が、それぞれ 6 つのボックスの上に表示されている
       ベクトル番号のいずれかで左から右に揃えられます。箱には
       Borscht の可視化と同じ画像を左から右に配置しました。
       ご覧ください。下: シャワルマのワンホット エンコーディングの可視化。「
       ベクトル [0, 0, 0, 0, ..., 1] が 6 つのボックスの上に表示され、それぞれが配置されている
       いずれかのベクトル番号で表します。箱には
       左から右にボルシチとホットドッグと同じ画像
       可視化です。
図 2. ボルシチ、ホットドッグ、シャワルマのワンホット エンコーディング。 各ワンホット エンコード ベクトルの長さは 5,000 です( メニュー項目)をクリックします。図中の省略記号は、 4,995 件のエントリが表示されていません。

スパースデータ表現の注意点

これらのワンホット エンコーディングを確認すると、このエンコーディングには 2 つの大きな問題があることに データの表現です。

  • 重みの数。入力ベクトルが大きいと、入力ベクトルが 重みニューラル ネットワークの場合) ワンホット エンコーディングに M エントリ、 最初のレイヤに配置されるため、モデルはトレーニングと そのレイヤの重みを M×N とします。重みが多数あると、さらに問題が発生します。
    • データポイントの数。モデルの重みが大きいほど、より多くのデータが 必要があります。
    • 計算の量。重みが大きいほど、必要な計算量が多くなる モデルをトレーニングして使用します組織の能力を あります。
    • メモリ容量。モデルの重みが大きいほど、処理できるメモリも多くなります。 トレーニングおよびサービングするアクセラレータに 必要ですこれをスケールアップして 効率的に行うのは困難です
    • サポートが困難 オンデバイス機械学習(ODML) ML モデルを(サービス提供ではなく)ローカル デバイスで実行したい場合 モデルのサイズを小さくすることに重点を置く必要があり、 重みの数を減らします。
  • ベクトル間に意味のある関係がない。モデルのベクトル値には、 食品のワンホット エンコーディングでは、食品の 類似しています。数学的に、インデックス 1(「ホットドッグ」)は インデックス 4999(「shawarma」)よりもインデックス 2(「salad」)に近い 犬は、サラダというよりもシャワルマ(肉とパンの両方を含む)に似ています。

このモジュールでは、低次元のエンベディングを作成する方法について学習します。 スパースデータを表現することで、これらの問題の両方に対処します。