この例では、教師あり類似度メジャーで使用されるエンベディングを生成する方法を示します。
手動類似度メジャーの作成時に使用したのと同じ住宅データセットがあるとします。
機能 | タイプ |
---|---|
Price | 正の整数 |
サイズ | 正の浮動小数点値(平方メートル単位) |
郵便番号 | Integer |
寝室の数 | Integer |
家のタイプ | 「single_family」、「multi-family」、「apartment」、「condo」というテキスト値 |
ガレージ | 「いいえ」または「はい」の場合は 0/1 |
色 | 多価カテゴリ: 標準色「white」、「yellow」、「green」などの 1 つ以上の値。 |
データの前処理
特徴データを入力として使用する前に、データを前処理する必要があります。前処理ステップは、手動類似性メジャーの作成時に行ったステップに基づいています。内容は次のとおりです。
機能 | タイプまたは配信 | アクション |
---|---|---|
Price | ポアソン分布 | 量子化し、[0,1] にスケーリングします。 |
サイズ | ポアソン分布 | 量子化し、[0,1] にスケーリングします。 |
郵便番号 | カテゴリ | 経度と緯度に変換し、量子化して [0,1] にスケーリングします。 |
寝室の数 | Integer | 外れ値をクリップして [0,1] に調整します。 |
家のタイプ | カテゴリ | ワンホット エンコーディングに変換する。 |
ガレージ | 0 または 1 | そのまま使用します。 |
色 | カテゴリ | RGB 値に変換し、数値データとして処理します。 |
ワンホット エンコーディングの詳細については、埋め込み: カテゴリ入力データをご覧ください。
予測子またはオートエンコーダを選択
エンベディングを生成するには、オートエンコーダまたは予測子を選択します。デフォルトの設定はオートエンコーダです。データセット内の特定の特徴が類似性を決定する場合は、予測者を選択します。完全を期すために、両方のケースを見てみましょう。
予測子のトレーニング
これらの特徴は、サンプル間の類似性を判断するうえで重要な DNN のトレーニング ラベルとして選択する必要があります。家間の類似度を判断するうえで、価格が特に重要であるとします。
トレーニング ラベルとして価格を選択し、DNN への入力特徴データから削除します。他のすべての特徴を入力データとして使用して、DNN をトレーニングする。トレーニングの損失関数は、予測価格と実際の価格との MSE にすぎません。DNN をトレーニングする方法については、ニューラル ネットワークのトレーニングをご覧ください。
オートエンコーダのトレーニング
データセットに対してオートエンコーダをトレーニングする手順は次のとおりです。
- オートエンコーダの隠しレイヤが入力レイヤと出力レイヤよりも小さいことを確認します。
- 監視対象類似度の測定の説明に従って、各出力の損失を計算します。
- 各出力の損失を合計して損失関数を作成します。すべての特徴で損失を均等に重み付けします。たとえば、カラーデータは RGB に処理されるため、各 RGB 出力に 1/3 の重みを付けます。
- DNN をトレーニングします。
DNN からの埋め込みの抽出
予測子かオートエンコーダかにかかわらず、DNN をトレーニングした後、DNN からサンプルのエンベディングを抽出します。サンプルの特徴データを入力として使用してエンベディングを抽出し、最終的な隠しレイヤの出力を読み取ります。これらの出力はエンベディング ベクトルを形成します。類似住宅のベクトルは、類似住宅のベクトルよりも近い必要があります。
次に、サンプルの埋め込みベクトルを使用してサンプルの類似性を定量化する方法を学びます。