nogawanogawa / paper_memo

4 stars 0 forks source link

Deep & Cross Network for Ad Click Predictions #23

Closed nogawanogawa closed 2 years ago

nogawanogawa commented 2 years ago

論文URL

https://arxiv.org/abs/1708.05123

著者

Ruoxi Wang, Bin Fu, Gang Fu, Mingliang Wang

会議

AdKDD 2017

背景

広告配信の世界では、広告のCTRを正確に予測することは収益にインパクトのあるタスクとなっている。 この予測には、多くのカテゴリ変数が使用されることになるが、これらの交差特徴量は、現状直接手動で作成したり、網羅的に探索する必要があることもあり、特徴量エンジニアリングが大変という問題がある。

目的

タスク固有のfeature engineeringを回避する

アプローチ

nogawanogawa commented 2 years ago

背景

特徴量エンジニアリングは予測モデルにおいて非常に重要なポイントであるも、珍しい交差特徴量を探す必要もあったりする。これらには手動で特徴量を作成したり、網羅的な探索が必要になったりする。

nogawanogawa commented 2 years ago

目的とアプローチ

目的

タスク固有のfeature engineeringを回避する

アプローチ

nogawanogawa commented 2 years ago

DEEP & CROSS NETWORK (DCN)

主な構造は3つに分けられており、

で構成されている。

スクリーンショット 2021-12-26 23 17 27

Embedding and Stacking Layer

webスケールのCTR予測においては、ほとんどの特徴量はsparseになる。 これが特徴の種類が多い場合には高次元の特徴量空間になってしまう。

次元数を削減するために、sparseでvocablaryの大きなバイナリの特徴量をdenseでサイズの小さなembeddingに変換することを考える。

スクリーンショット 2021-12-27 0 10 55

このとき、x_iは[0,1,0,...]のようなバイナリ特徴量、Wは何かしらの行列、x0は変換されたembeddingを表す。 これをすべての特徴に対して適用し、正規化されたdense vectorと合わせて最終的にNNのimputとして下記のような形式を使用する。

スクリーンショット 2021-12-27 0 14 35

(これ、ベクトルがめちゃくちゃ長そう…)

Cross Network

Cross Networkの主なアイデアは、明示的に特徴量クロスを適用することとしている。 構造を式で記述すると下記のようになる。

スクリーンショット 2021-12-27 0 23 36

概念図で表すと下記の様になる。

スクリーンショット 2021-12-27 0 24 08

xはNNの各層の出力、x0は上記で求めたembedding、bはバイアス、wは重みベクトルを表す。 これにより、特徴量を明示的に組み合わせる計算がなされることになる。

Deep Network

Deep Networkは全結合層飲みからなるNNで、各層は下記のような計算によってなされる。

スクリーンショット 2021-12-27 0 32 09

hは隠れ層を表していて、bはバイアス、Wは重み行列を表している。

Combination Layer

Cross NetworkとDeep Networkの出力を組み合わせて、最終的な出力を得る。 2クラス分類の場合は

スクリーンショット 2021-12-27 0 35 52

xとhをconcatして、wは重みベクトルを表わしている。

σは下記の式を表す。

スクリーンショット 2021-12-27 0 51 11

このときのロス関数は下記のように設定されている。

スクリーンショット 2021-12-27 0 51 46

nogawanogawa commented 2 years ago

なんでこれでうまくいくか?(あんまり良くわかっていない)

FMは次数2のパラメータの関係性を表現するのが限界な一方、DCNは単一の層から、複数の層や高次関係性にまで拡張したものであるとみなすことができるから。

-> 要するに、NNの構造をうまいこと使って、特徴量クロスの複雑さをよしなにNNで近似表現するからうまくいくらしい。FMだとパラメータは次数を増やそうとすると爆発するが、NNでは入力次元に対して線形にしか増加しないので、現実的な計算量に収まるらしい。

nogawanogawa commented 2 years ago

評価

Criteo Display Adsデータセットを使用して、CTRを予測することに関して評価を行う。 このときのCTRに関するloglossを評価指標とする。

an improvement of 0.001 in logloss is considered as practically significant.

loglossが0.001減少すると、現実的に優位だとみなすことができることがわかっているデータセットらしい。

他のモデルとの比較

スクリーンショット 2021-12-28 12 56 37

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.

のような結果になっている。

DNNとのメモリ効率の比較

スクリーンショット 2021-12-28 13 03 32

同じloglossを達成するために必要なメモリ量はDNNと比較しても1桁小さい。

同様に、同じパラメータ数の制約を入れたとき、達成できるloglossはDCNのほうが優れている。

スクリーンショット 2021-12-28 13 04 36