Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文読み会 / Deep Interest Network for Click-Through...

chck
March 15, 2019

論文読み会 / Deep Interest Network for Click-Through Rate Prediction

社内論文読み会、PaperFridayでの発表資料です

chck

March 15, 2019
Tweet

More Decks by chck

Other Decks in Research

Transcript

  1. Authors: Guorui Zhou, Chengru Song, Xiaoqiang Zhu, Ying Fan, Han

    Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, Kun Gai Alibaba, Inc. 2
  2. Motivation ◂ User interests are diverse ◂ Historical user behaviorの中でも

    広告に寄与するbehaviorの組み合わせが CTR予測において特に重要 14
  3. 4. Local Activation Unit ◂ 広告AとUser Uの行動履歴(Visited Goods)との 関連度を表現するAttention機構 ◂

    多様なUser行動と一部の行動履歴のみ Clickに寄与することを表現 User Uの行動履歴(1toH) 広告A 広告Aの Embedding 広告Aと 行動履歴jの 直積 (Attention Weight) 21
  4. RNN(LSTM) shows no improvement ◂ SequentialといえばRNN、試したが改善せず ◂ NLPのように文法的制約もなく、 未来成分が収束していかない ◂

    興味が定まらず、同時に複数の興味も持つため適さない ◂ 文章ほど意味のある連続性が行動履歴にはない ◂ ここの設計は今後の課題 26
  5. Attention vs RNN ◂ (Att.は)構造がシンプル ◂ 基本はFC(全結合)とmatmul(行列積) ◂ 学習が早く高性能 ◂

    RNNは時刻tの計算が終わるまでt+1の計算ができずGPU の恩恵を受け辛い(実際100%使い切らない) ◂ 現在のSoTAの多くがAttentionベース 27
  6. 5.1. Regularization ◂ 学習ついでに最小化させるペナルティ項, 次元爆発防止 ◂ ||W|| 1 とか||W|| 2

    2とか||W|| ∞ とか ◂ over fitを防ぐけどunder fitにもなる ◂ 正則化のないRichな特徴はモデルの性能を著しく低下 (緑線) ◂ Traditional L1 L2-norm arise heavy computation ◂ 本来non zeroなsparse成分だけ注目したいが 全成分からnorm計算しないといけない 29
  7. 5.1. Mini-batch Aware Regularization (proposed) ◂ non zeroなsparse成分だけ計算可能なL2正則化項 ◂ 低頻度な特徴ほど強い正則化をかけて影響を和らげる

    30 低頻度な素性程 ここが大きくなる : batch x内に特徴 jがあるか : 特徴jの全出現回数 : 1epoch中に取りうるサンプル数(ミニバッチサイズ) : 特徴空間の次元数 L2正則化項
  8. 5.2. Activation Function ◂ 入力を非線形変換するNNの肝 ◂ 傾きが学習で使われるため 微分可能なことが大事 ◂ 種類がたくさん

    ◂ ReLU: Rectified Linear Unit ◂ LReLU: Leaky ReLU ◂ PReLU: Parametric ReLU ◂ Regularized PReLU ◂ Dice (proposed) ... 31
  9. 5.2. ReLU: Rectified Linear Unit ◂ max(0, x) ◂ 冗長な特徴成分を

    0で落としてsparse化 ◂ 計算が簡単で高速 ◂ Dying ReLU問題がある ◂ xが負のときに学習が止まる 32
  10. 5.2. LReLU: Leaky ReLU ◂ max(0.3*x, x) ◂ Dying ReLU対策で

    負の勾配を少し考慮 ◂ hyper parameter αを 小さな値(e.g. 0.3)で固定 ◂ 実はあまり効かない 33
  11. 5.2. PReLU: Parametric ReLU ◂ max(α*x, x) ◂ Leaky ReLUのαを

    学習可能なparameter化 ◂ 計算コストを抑えつつ 精度改善を狙える 34
  12. 5.2. Dice (proposed) ◂ PReLUのpos/neg切替を 滑らかにしたやつ ◂ 入力sを標準化してsigmoid ◂ 分布の変化に頑健≒高い汎化性能

    35 : mean of input in each mini-batch : variance of input in each mini-batch : small constant (=10-8 in our practice) 標準化 sigmoid
  13. 6. EXPERIMENTS 1. Model comparison on public datasets 2. Performance

    of regularization 3. Model comparison on alibaba dataset 4. A/B testing 5. Visualization 37
  14. 6.1. Datasets ◂ Amazon ◂ 商品のレビュー x Userのデータ ◂ レビュー数が5以上の家電商品,

    Userに絞って 各Userのreview履歴を元に最後にreviewした商品を予測 ◂ MovieLens ◂ 映画のレビュー x Userのデータ ◂ 0-5 Rating -> 0-3=not Click, 4-5=Click ◂ Randomに選んだ100000Usersで学習, 残り38493UsersでTest ◂ 各Userのrating履歴を元に与えられた映画に 3以上つけるかを予測 ◂ Alibaba ◂ 2週間分20億の広告配信trafficで学習, 翌日の1.4億でTest 38
  15. 6.2. 戦わせるモデル ◂ LR ◂ ロジスティック回帰, 1層のsigmoid ◂ BaseModel ◂

    特徴をシンプルに横に繫げて MLP ◂ Wide&Deep ◂ 特徴を横に繋げてMLPかつ 効きそうなEmbeddingの組を明示的に交差項として混ぜる ◂ Wide部分が線形モデルなので Feature Engineering依存 ◂ PNN ◂ 交互作用として特徴同士の内積や外積を取って横に繋げて MLP ◂ 低次元の交差項を捉えるのが苦手 ◂ DeepFM ◂ GoodsやAd, UserFeatureの交互作用をFMで表現することでPNNの弱点を克服 41
  16. 6.2. 戦わせるモデル ◂ 先程の既存手法たち ◂ 基本的にhistoricalを考慮していない ◂ Proposed DNN ◂

    Proposed DNN w/ Proposed reg. ◂ Proposed DNN w/ Proposed act. ◂ Proposed w/ Proposed reg. & act. 42
  17. 6.7. Online A/B Test ◂ 2017/05 - /06の1ヶ月間実施 ◂ CTR:

    10%↑ ◂ CVR: 3.3%↑ ◂ GPM: 12.6%↑ 46
  18. 6.8. Visualization of DIN ◂ Goods Embedding by t-SNE ◂

    点の形状はCategoryに対応 ◂ Categoryで分かれている ◂ 点の色はCTRに対応 ◂ 赤いと高CTR ◂ Goods表現がうまく学習できた 48
  19. SUMMARY ◂ Userの行動履歴を組み込んだDNNでCTR予測改善 ◂ Ad * Hitorical Behaviorの関連性をAttentionで表現 ◂ Datasetの設計が興味深い

    ◂ Movie Rating -> CTR予測 ◂ RNNで上手くいってるモデルと比較してほしかった ◂ GPU likeで学習コストも比較的軽めな構造 ◂ BehaviorとMeta dataがあればいいので適用しやすそう ◂ Userの行動履歴を持つプロダクトでいかがでしょうか 49
  20. 6.2. BaseModel ◂ Embedding&MLP ◂ User Behaviors ◂ visited goods

    ◂ goods_id ◂ cate_id ◂ shop_id ◂ SUM Pooling ◂ User Profile ◂ Minimize logloss 52
  21. 6.2. Pooling in CNN ◂ Convolution Layerで 畳み込んだ行列をどう Down Samplingするか

    ◂ Max ◂ Sum ◂ Average ◂ Is a pooling layer necessary in CNN? 53