GMOインターネット
次世代システム研究室
勝田 隼一郎
NNで広告配信のユーザー
最適化をやってみた
2017/02/22 TensorFlow User Group #3
2
自己紹介
2006: ボートを漕ぎすぎて留年
2011: 東京大学大学院理学系
研究科物理学 修了(博士)
2011-16: Stanford大学と広島大学で
ポスドク(日本学術振興会;
高エネルギー宇宙物理学)
2016.4: GMOインターネット
次世代システム研究室
データサイエンティスト兼アーキテクト 超新星残骸
勝田 隼一郎
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
次世代システム研究室
http://recruit.gmo.jp/engineer/jisedai/
1. お客様の笑顔のため
2. No.1 サービスを目指し
3. GMO インターネットグループの重要なプロジェクトの
成功を技術面でサポートする部署
5
6
広告主側 メディア側
source: JackMarshall.com
Online advertising ecosystem
7
今回やったこと
8User A User CUser B
Userごとに、より適切な広告を配信したい!
Sponsor 1 Sponsor 2
Rule
Sponsor data
9User A User CUser B
学習Modelの導入
Sponsor 1 Sponsor 2
Rule → 学習Model
Sponsor
data
User
data
10
Model候補1 (オーディエンス拡張)
1. 匿名Userごとに特徴量を作る。
2. 特徴量の空間でclickするUserに近いclusterを見
つけ、拡張Userとして配信ターゲットにする。
有望User A
有望User B
11
Model候補2 (MLP)
1. 匿名Userごとに特徴量を作る
2. 配信履歴よりclickしたUser、してないUserに分
ける (0/1)。
3. これを教師データとしてMLP(多層パーセプトロ
ン)で学習を行い、インプットされた特徴量に対
してclick確率(のようなもの)を求める。
4. 確率の高いUser群を、推薦Userとして配信ター
ゲットにする。
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
Preprocess
IN: 匿名Userのウェブ行動履歴
•どのウェブサイトを見たか
•etc.
OUT: モデル(MLP)のfeature
生データ:
スパースデータ
データ加工
Embedding; 圧縮
14
Embedding by ALS
大量データ(UU: 数千万人)を扱うため、Apache
SparkのMLlibのALS (Alternating Least Squares)
を用いた。
source: http://ampcamp-ja.readthedocs.io/ja/latest/mllib/
各Userについての
情報をEmbedding
15
学習モデル(MLP)
Preprocess
で加工した
User情報
正解データ
Userがclick
したかどうか
(0/1)
Feature
16
Keras source: https://keras.io/ja/
Pythonで書かれた、TensorFlowまたはTheano上で実行可能
な高水準のニューラルネットワークライブラリ
モデル学習、パラメータ変更した際にモデルの精度が相対的に上がったか、などを
チェック(絶対的な数値は、実配信の値とはあまり関係ない).
青(右スケール):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
メリット・デメリット
オーディエンス拡張は使っていないので、かなり主観的な意
見だが、、
メリット
• ロジックがシンプル(CTRを上げたいので、clickの有無を
教師データとして使う)
• 評価が一元化できる(予測されたclick確率が高い順に推薦
すれば良い)
• 特徴量の拡張が容易 (拡張時にパラメータ調整が必要ない)
デメリット
• 結果についての解釈が難しい
19
ABテストの結果(実施中)
User Discoveryで推薦されたUser群のCTRは、従来通りの配
信User群のCTRに比べ
~2.5倍 (~150%改善)
• 全ての配信Userが、推薦Userではない
• より多くの広告主様での実証が必要
などの注意点はあるが、
かなり有望!
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
GMOインターネット次世代システム研究室
http://recruit.gmo.jp/engineer/jisedai/entry/
GMOアドマーケティング
https://js01.jposting.net/gmo-ap/u/job.phtml
では、ビッグデータ解析プラットホームの設計・開発を
行うアーキテクトとデータサイエンティストを募集して
います!
22
ご清聴ありがとうございました!

More Related Content

PDF
Deep Q-LearningでFXしてみた
PDF
TensorFlowでニューラルネットを作って、広告配信の最適化をやってみた
PDF
Deep Learningによる株価変動の予想
PDF
深層強化学習の self-playで、複雑な行動を機械に学習させたい!
PDF
深層強化学習でマルチエージェント学習(前篇)
PDF
深層強化学習でマルチエージェント学習(後篇)
PPT
資格取得に向けての活動記録
PPTX
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
Deep Q-LearningでFXしてみた
TensorFlowでニューラルネットを作って、広告配信の最適化をやってみた
Deep Learningによる株価変動の予想
深層強化学習の self-playで、複雑な行動を機械に学習させたい!
深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(後篇)
資格取得に向けての活動記録
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
Ad

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