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