Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 自己紹介 2006: ボートを漕ぎすぎて留年 2011: 東京大学大学院理学系 研究科物理学 修了(博士) 2011-16: Stanford大学と広島大学で ポスドク(日本学術振興会; 高エネルギー宇宙物理学) 2016.4: GMOインターネット 次世代システム研究室 データサイエンティスト兼アーキテクト 超新星残骸 勝田 隼一郎

Slide 3

Slide 3 text

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!

Slide 4

Slide 4 text

4 次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/ 1. お客様の笑顔のため 2. No.1 サービスを目指し 3. GMO インターネットグループの重要なプロジェクトの 成功を技術面でサポートする部署

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

7 今回やったこと

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

11 Model候補2 (MLP) 1. 匿名Userごとに特徴量を作る 2. 配信履歴よりclickしたUser、してないUserに分 ける (0/1)。 3. これを教師データとしてMLP(多層パーセプトロ ン)で学習を行い、インプットされた特徴量に対 してclick確率(のようなもの)を求める。 4. 確率の高いUser群を、推薦Userとして配信ター ゲットにする。

Slide 12

Slide 12 text

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を配信に用いる

Slide 13

Slide 13 text

13 Preprocess IN: 匿名Userのウェブ行動履歴 •どのウェブサイトを見たか •etc. OUT: モデル(MLP)のfeature 生データ: スパースデータ データ加工 Embedding; 圧縮

Slide 14

Slide 14 text

14 Embedding by ALS 大量データ(UU: 数千万人)を扱うため、Apache SparkのMLlibのALS (Alternating Least Squares) を用いた。 source: http://ampcamp-ja.readthedocs.io/ja/latest/mllib/ 各Userについての 情報をEmbedding

Slide 15

Slide 15 text

15 学習モデル(MLP) Preprocess で加工した User情報 正解データ Userがclick したかどうか (0/1) Feature

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

モデル学習、パラメータ変更した際にモデルの精度が相対的に上がったか、などを チェック(絶対的な数値は、実配信の値とはあまり関係ない). 青(右スケール):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である確率 モデル評価

Slide 18

Slide 18 text

18 メリット・デメリット オーディエンス拡張は使っていないので、かなり主観的な意 見だが、、 メリット • ロジックがシンプル(CTRを上げたいので、clickの有無を 教師データとして使う) • 評価が一元化できる(予測されたclick確率が高い順に推薦 すれば良い) • 特徴量の拡張が容易 (拡張時にパラメータ調整が必要ない) デメリット • 結果についての解釈が難しい

Slide 19

Slide 19 text

19 ABテストの結果(実施中) User Discoveryで推薦されたUser群のCTRは、従来通りの配 信User群のCTRに比べ ~2.5倍 (~150%改善) • 全ての配信Userが、推薦Userではない • より多くの広告主様での実証が必要 などの注意点はあるが、 かなり有望!

Slide 20

Slide 20 text

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に書いていただきました!

Slide 21

Slide 21 text

21 GMOインターネット次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/entry/ GMOアドマーケティング https://js01.jposting.net/gmo-ap/u/job.phtml では、ビッグデータ解析プラットホームの設計・開発を 行うアーキテクトとデータサイエンティストを募集して います!

Slide 22

Slide 22 text

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