Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TensorFlowでニューラルネットを作って、広告配信の最適化をやってみた

537 views

Published on

第15回Android Bazaar and Conferenceで話したスライドです。以下、概要です。GMOアドマーケテイング社のAkaNeは、国内最大規模(数千万人ユーザー)のアドネットワークです。今回、このサービスの広告配信の最適化モデルを、Tensorflow (Keras) を使ってニューラルネットを構築しました。このモデルを使用することで、クリック率の改善につなげた事例を紹介します。

Published in: Data & Analytics
  • Be the first to comment

TensorFlowでニューラルネットを作って、広告配信の最適化をやってみた

  1. 1. GMOインターネット 次世代システム研究室 勝田 隼一郎 TensorFlowでニューラル ネットを作って、広告配信 の最適化をやってみた 2017/05/28 Android Bazaar and Conference 2017 Spring
  2. 2. 目次 1.自己紹介 2.機械学習 – 準備体操 3.広告配信 – 準備体操 4.アドネットワークAkaNeの広告配信の最適 化の事例
  3. 3. 3 自己紹介 2006: ボートを漕ぎすぎて留年 2011: 東京大学大学院理学系 研究科物理学 修了(博士) 2011-16: Stanford大学と広島大学で ポスドク(日本学術振興会; 高エネルギー宇宙物理学) 2016.4: GMOインターネット 次世代システム研究室 データサイエンティスト兼アーキテクト 超新星残骸 勝田 隼一郎
  4. 4. 4 深層学習全般。というか、専門的な事を語れるほどのレベ ルでない。まだまだまだまだ勉強中です。。。 興味のあること 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! Deep Learningによる株価変動の予想 Deep Q-LearningでFXしてみた Deep LearningをKerasで可視化したい トピックモデル入門:WikipediaをLDAモデル化してみた http://recruit.gmo.jp/engineer/jisedai/blog/topic-model/
  5. 5. 5 機械学習
  6. 6. 6 機械学習とは 教師あり学習 教師なし学習 強化学習
  7. 7. 7 教師あり学習 input data output data 与えられたデータyに合うように パラメータを学習(人のアナロジー) モデル f(x) x f(x) = ax + b f(x) vs y f(x) = 1*x + 7 f(x) = 2.1x + 1.6
  8. 8. 8 教師あり学習 f(x) = a*x + b f(x) = a*sin(b*x) 適切なモデルを考える必要がある → 大変!!! (データが増えるほど) モデル モデル
  9. 9. input data output data モデル f(x) 9 Deep Learning Deep! 複雑な表現 層が が可能input output
  10. 10. 10 input output 人間? ゴリラ? 人間が表現 (e.g., 目、鼻) を考え、モデル化/input 機械 (Deep Learning) にほぼ全ておまかせ = 表現の自動的な学習
  11. 11. 11 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/ 教師あり学習 Deep Learningによる株価変動の予想 Deep Q-LearningでFXしてみた Deep LearningをKerasで可視化したい トピックモデル入門:WikipediaをLDAモデル化してみた http://recruit.gmo.jp/engineer/jisedai/blog/topic-model/ 強化学習 教師あり学習 教師なし学習
  12. 12. 12 教師あり学習
  13. 13. 13 教師あり学習
  14. 14. 14 教師なし学習
  15. 15. 15 強化学習
  16. 16. 16 Keras source: https://keras.io/ja/ Pythonで書かれた、TensorFlowまたはTheano上で実行可能 な高水準のニューラルネットワークライブラリ
  17. 17. 17 source: http://chainer.org Pythonで書かれた、ニューラルネットワークを実装するた めのライブラリ。直観的に、柔軟に、Pythonで書ける。 国産。英語読みたくない人にも優しい。
  18. 18. 18 広告配信
  19. 19. 19 次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/ 1. お客様の笑顔のため 2. No.1 サービスを目指し 3. GMO インターネットグループの重要なプロジェクトの 成功を技術面でサポートする部署
  20. 20. 20 ネット広告
  21. 21. 21
  22. 22. 22 広告主側 メディア側 source: JackMarshall.com Online advertising ecosystem
  23. 23. 23 アドネットワーク AkaNeの配信モデル の最適化
  24. 24. 24User A User CUser B Userごとに、より適切な広告を配信したい! Sponsor 1 Sponsor 2 Rule Sponsor data
  25. 25. 25User A User CUser B 学習Modelの導入 Sponsor 1 Sponsor 2 Rule → 学習Model Sponsor data User data
  26. 26. 26 Model候補1 (オーディエンス拡張) 1. 匿名Userごとに特徴量を作る。 2. 特徴量の空間でclickするUserに近いclusterを見 つけ、拡張Userとして配信ターゲットにする。 有望User A 有望User B
  27. 27. 27 Model候補2 (MLP) 1. 匿名Userごとに特徴量を作る 2. 配信履歴よりclickしたUser、してないUserに分 ける (0/1)。 3. これを教師データとしてMLP(多層パーセプトロ ン)で学習を行い、インプットされた特徴量に対 してclick確率(のようなもの)を求める。 4. 確率の高いUser群を、推薦Userとして配信ター ゲットにする。
  28. 28. システム構成 Google cloud platform
  29. 29. 29 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を配信に用いる
  30. 30. 30 Preprocess IN: 匿名Userのウェブ行動履歴 •どのウェブサイトを見たか •etc. OUT: モデル(MLP)のfeature 生データ: スパースデータ データ加工 Embedding; 圧縮
  31. 31. 31 Embedding by ALS 大量データ(UU: 数千万人)を扱うため、Apache SparkのMLlibのALS (Alternating Least Squares) を用いた。 source: http://ampcamp-ja.readthedocs.io/ja/latest/mllib/ 各Userについての 情報をEmbedding
  32. 32. 32 学習モデル(MLP) Preprocess で加工した User情報 正解データ Userがclick したかどうか (0/1) Feature
  33. 33. モデル学習、パラメータ変更した際にモデルの精度が相対的に上がったか、などを チェック(絶対的な数値は、実配信の値とはあまり関係ない). 青(右スケール):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である確率 モデル評価
  34. 34. 34 メリット・デメリット オーディエンス拡張は使っていないので、かなり主観的な意 見だが、、 メリット • ロジックがシンプル(CTRを上げたいので、clickの有無を 教師データとして使う) • 評価が一元化できる(予測されたclick確率が高い順に推薦 すれば良い) • 特徴量の拡張が容易 (拡張時にパラメータ調整が必要ない) デメリット • 結果についての解釈が難しい
  35. 35. 35 ABテストの結果(実施中) User Discoveryで推薦されたUser群のCTRは、従来通りの配 信User群のCTRに比べ ~2.5倍 (~150%改善) • 全ての配信Userが、推薦Userではない • より多くの広告主様での実証が必要 などの注意点はあるが、 かなり有望!
  36. 36. 36 まとめ 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に書いていただきました!
  37. 37. 37 GMOインターネット次世代システム研究室 http://recruit.gmo.jp/engineer/jisedai/entry/ GMOアドマーケティング https://js01.jposting.net/gmo-ap/u/job.phtml では、ビッグデータ解析プラットホームの設計・開発を 行うアーキテクトとデータサイエンティストを募集して います!
  38. 38. 38 ご清聴ありがとうございました!

×