Closed nogawanogawa closed 2 years ago
特徴量エンジニアリングは予測モデルにおいて非常に重要なポイントであるも、珍しい交差特徴量を探す必要もあったりする。これらには手動で特徴量を作成したり、網羅的な探索が必要になったりする。
タスク固有のfeature engineeringを回避する
主な構造は3つに分けられており、
で構成されている。
webスケールのCTR予測においては、ほとんどの特徴量はsparseになる。 これが特徴の種類が多い場合には高次元の特徴量空間になってしまう。
次元数を削減するために、sparseでvocablaryの大きなバイナリの特徴量をdenseでサイズの小さなembeddingに変換することを考える。
このとき、x_iは[0,1,0,...]のようなバイナリ特徴量、Wは何かしらの行列、x0は変換されたembeddingを表す。 これをすべての特徴に対して適用し、正規化されたdense vectorと合わせて最終的にNNのimputとして下記のような形式を使用する。
(これ、ベクトルがめちゃくちゃ長そう…)
Cross Networkの主なアイデアは、明示的に特徴量クロスを適用することとしている。 構造を式で記述すると下記のようになる。
概念図で表すと下記の様になる。
xはNNの各層の出力、x0は上記で求めたembedding、bはバイアス、wは重みベクトルを表す。 これにより、特徴量を明示的に組み合わせる計算がなされることになる。
Deep Networkは全結合層飲みからなるNNで、各層は下記のような計算によってなされる。
hは隠れ層を表していて、bはバイアス、Wは重み行列を表している。
Cross NetworkとDeep Networkの出力を組み合わせて、最終的な出力を得る。 2クラス分類の場合は
xとhをconcatして、wは重みベクトルを表わしている。
σは下記の式を表す。
このときのロス関数は下記のように設定されている。
FMは次数2のパラメータの関係性を表現するのが限界な一方、DCNは単一の層から、複数の層や高次関係性にまで拡張したものであるとみなすことができるから。
-> 要するに、NNの構造をうまいこと使って、特徴量クロスの複雑さをよしなにNNで近似表現するからうまくいくらしい。FMだとパラメータは次数を増やそうとすると爆発するが、NNでは入力次元に対して線形にしか増加しないので、現実的な計算量に収まるらしい。
Criteo Display Adsデータセットを使用して、CTRを予測することに関して評価を行う。 このときのCTRに関するloglossを評価指標とする。
an improvement of 0.001 in logloss is considered as practically significant.
loglossが0.001減少すると、現実的に優位だとみなすことができることがわかっているデータセットらしい。
DCNは最もloglossが低い。さらにDNNモデルよりもメモリ使用量が40%に抑えられている。
これは10回の独立した試行でも同様の傾向を示し、
DCN: 0.4422 ± 9 × 10−5, DNN: 0.4430 ± 3.7 × 10−4, DC: 0.4430 ± 4.3 × 10−4.
のような結果になっている。
同じloglossを達成するために必要なメモリ量はDNNと比較しても1桁小さい。
同様に、同じパラメータ数の制約を入れたとき、達成できるloglossはDCNのほうが優れている。
論文URL
https://arxiv.org/abs/1708.05123
著者
Ruoxi Wang, Bin Fu, Gang Fu, Mingliang Wang
会議
AdKDD 2017
背景
広告配信の世界では、広告のCTRを正確に予測することは収益にインパクトのあるタスクとなっている。 この予測には、多くのカテゴリ変数が使用されることになるが、これらの交差特徴量は、現状直接手動で作成したり、網羅的に探索する必要があることもあり、特徴量エンジニアリングが大変という問題がある。
目的
タスク固有のfeature engineeringを回避する
アプローチ