選択-多くのカテゴリ機能:ワンホットエンコーディングの代替?

Nov 21 2020

クライアントのリレーショナルデータに基づいて、クライアントのライフタイムバリューを予測するモデルを構築しています。ユーザーテーブルには、予測可能な1対多の子テーブルが多数あります。大幅に簡略化された子機能は、次のように要約されます。

  • 過去に購入したアイテムカテゴリのリスト
  • クリックした広告の主な色のリスト
  • などなど

いずれの場合も、明らかな機能は、カテゴリ変数からの0〜10個の選択肢のリストで構成されます。私はこれらの機能をいくつか持っていますが、そのうちのいくつかは最大10,000の離散値を持っているので、ワンホットエンコーディングは非常に広く、非常に高速になります。

余談ですが、私が「多くのカテゴリを選択する」と呼んでいるこの種の「タグのリスト機能」の芸術用語がある場合は、教えてください。

質問:多くのカテゴリ機能を選択して機能する高密度のエンコーディングスキームはありますか?

回答

4 noe Nov 22 2020 at 01:19

アルゴリズムが最急降下法の最適化に基づいている場合は、離散要素の密な表現空間である埋め込みを使用できます。

埋め込みは、pytorchやtensorflowなどのほとんどのディープラーニングフレームワークでサポートされています。

更新:複数の離散値が必要であるという事実は、埋め込みを使用する可能性を妨げるものではありません。すべてのベクトルを1つの値に追加するだけです。このための最も簡単なアプローチは、リストの長さを一定にして(すべてのリストの要素の最大数、または適切な最大値に等しい)、不要な位置に「パディング」アイテムを入力することです。要素の連続的な外観を考慮に入れたい場合は、ベクトルを一緒に追加する代わりに、埋め込まれたベクトルに畳み込み層またはLSTMを適用できます。

2 CarlosMougan Nov 22 2020 at 00:37

カテゴリエンコーダライブラリでカテゴリ機能をエンコードする方法はたくさんありますが、それらの多くを見つけることができます。

あなたのデータを考えるとより有望と思われるのはターゲットエンコディンクです