TFUG#3 - NNで広告配信のユーザー最適化をやってみた。

TFUG#3 - NNで広告配信のユーザー最適化をやってみた。

TensorFlow User Group (TFUG) のMeetup#3の発表スライドです。数千万人ユーザー規模のアドネットワークAkaNeの広告配信の最適化モデルを、ニューラルネットで構築した事例を紹介します。

F37594f354141209ae47f5127a1e64fd?s=128

Junichiro Katsuta

February 22, 2017
Tweet

Transcript

  1. GMOインターネット 次世代システム研究室 勝田 隼一郎 NNで広告配信のユーザー 最適化をやってみた 2017/02/22 TensorFlow User Group #3

  2. 2 自己紹介 2006: ボートを漕ぎすぎて留年 2011: 東京大学大学院理学系 研究科物理学 修了(博士) 2011-16: Stanford大学と広島大学で

    ポスドク(日本学術振興会; 高エネルギー宇宙物理学) 2016.4: GMOインターネット 次世代システム研究室 データサイエンティスト兼アーキテクト 超新星残骸 勝田 隼一郎
  3. 3 深層学習全般。というか、専門的な事を語れるほどのレベ ルでない。まだまだまだまだ勉強中です。。。 Deep Learningによる株価変動の予想 Deep Q-LearningでFXしてみた Deep LearningをKerasで可視化したい 興味のあること

    http://recruit.gmo.jp/engineer/jisedai/blog/deep-learning/ http://recruit.gmo.jp/engineer/jisedai/blog/deep-q-learning/ http://recruit.gmo.jp/engineer/jisedai/blog/deep-learning-keras/ はてブ >100!
  4. 4 次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/ 1. お客様の笑顔のため 2. No.1 サービスを目指し 3. GMO

    インターネットグループの重要なプロジェクトの 成功を技術面でサポートする部署
  5. 5

  6. 6 ޿ࠂओଆ ϝσΟΞଆ source: JackMarshall.com Online advertising ecosystem

  7. 7 今回やったこと

  8. 8 User A User C User B Userごとに、より適切な広告を配信したい! Sponsor 1

    Sponsor 2 Rule Sponsor data
  9. 9 User A User C User B 学習Modelの導入 Sponsor 1

    Sponsor 2 Rule → 学習Model Sponsor data User data
  10. 10 Model候補1 (オーディエンス拡張) 1. 匿名Userごとに特徴量を作る。 2. 特徴量の空間でclickするUserに近いclusterを見 つけ、拡張Userとして配信ターゲットにする。 有望User A

    有望User B
  11. 11 Model候補2 (MLP) 1. 匿名Userごとに特徴量を作る 2. 配信履歴よりclickしたUser、してないUserに分 ける (0/1)。 3.

    これを教師データとしてMLP(多層パーセプトロ ン)で学習を行い、インプットされた特徴量に対 してclick確率(のようなもの)を求める。 4. 確率の高いUser群を、推薦Userとして配信ター ゲットにする。
  12. 12 User Discovery User data Pre-process Feature Model training Trained

    model Prediction p_click data 1. Pre-process 1.1 配信データから、各ユーザーごとに特徴量(ウェブ 行動履歴)を抽出 1.2 学習用データ(Clickの有り無し)をラベル付け 2. モデルの学習 1で加工した学習データを用いて、MLP (multi layer perceptron)モデルを学習 3. 予測 3.1 1で加工した予測用データを、2で学習したモデルに インプットして、クリック確率(のようなもの)を計算 3.2 user x p_clickテーブルを作成 3.3 このうち、p_clickの高いUserを配信に用いる
  13. 13 Preprocess IN: 匿名Userのウェブ行動履歴 •どのウェブサイトを見たか •etc. OUT: モデル(MLP)のfeature 生データ: スパースデータ

    データ加工 Embedding; 圧縮
  14. 14 Embedding by ALS 大量データ(UU: 数千万人)を扱うため、Apache SparkのMLlibのALS (Alternating Least Squares)

    を用いた。 source: http://ampcamp-ja.readthedocs.io/ja/latest/mllib/ 各Userについての 情報をEmbedding
  15. 15 学習モデル(MLP) Preprocess で加工した User情報 正解データ Userがclick したかどうか (0/1) Feature

  16. 16 Keras source: https://keras.io/ja/ Pythonで書かれた、TensorFlowまたはTheano上で実行可能 な高水準のニューラルネットワークライブラリ

  17. モデル学習、パラメータ変更した際にモデルの精度が相対的に上がったか、などを チェック(絶対的な数値は、実配信の値とはあまり関係ない). 青(右スケール):coverage (全test userの何%を含むか) 赤(左スケール):click精度 (横軸のthresholdで区切った ときにclickしていると判断されたuserのうち、実際にclick したuserの割合) recall=0.5で固定したときのprecision(=精度)

    * recall = (正しくclickしたと予想されたuser数) / (実際に clickしているuser数) p_clickのヒストグラム(分布) 縦軸log scale randomに選んだ時のclick userである確率 モデル評価
  18. 18 メリット・デメリット オーディエンス拡張は使っていないので、かなり主観的な意 見だが、、 メリット • ロジックがシンプル(CTRを上げたいので、clickの有無を 教師データとして使う) • 評価が一元化できる(予測されたclick確率が高い順に推薦

    すれば良い) • 特徴量の拡張が容易 (拡張時にパラメータ調整が必要ない) デメリット • 結果についての解釈が難しい
  19. 19 ABテストの結果(実施中) User Discoveryで推薦されたUser群のCTRは、従来通りの配 信User群のCTRに比べ ~2.5倍 (~150%改善) • 全ての配信Userが、推薦Userではない •

    より多くの広告主様での実証が必要 などの注意点はあるが、 かなり有望!
  20. 20 まとめ https://cloudplatform-jp.googleblog.com/2017/02/gmo-bigquery-tensorflow- google-cloud-platform.html • アドネットワークAkaNeのユーザー(数千万人)への広 告配信の最適化を行った。 • データ前処理にはSpark MLlibのALSを使用してデータ

    圧縮&embeddingをした。 • 学習モデルには多層パーセプトロンを使い、深層学習ラ イブラリKeras(バックエンドTensorFlow)で実装した。 • 実配信によるABテストで、推薦User群が従来のUser群 に比べCTRが2.5倍に向上したことを確認した。 Google Cloud Platform Japan Blogに書いていただきました!
  21. 21 GMOインターネット次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/entry/ GMOアドマーケティング https://js01.jposting.net/gmo-ap/u/job.phtml では、ビッグデータ解析プラットホームの設計・開発を 行うアーキテクトとデータサイエンティストを募集して います!

  22. 22 ご清聴ありがとうございました!