tokyowebmining ctr-predict
DESCRIPTION
広告のCTR予測について@TokyoWebMiningTRANSCRIPT
広告領域と機械学習 CTR予測最前線
@TokyoWebMining
坪坂 正志
2014/10/11
TokyoWebMining 1
本日の話
• 広告領域と機械学習における応用例として広告のクリック率(CTR)予測の問題を取り上げる
• 今回の発表ではいくつか出ているクリック率予測の文献のうち、今年の8月に行われたADKDD 2014で発表されたFacebookのCTR予測手法について取り上げる
– Practical lessons from predicting clicks on ads at Facebook, ADKDD 2014
TokyoWebMining 2
広告におけるクリック率の 予測の重要性
• 現在Web会社において広告の売上に関する割合は高い比率を占めている
• そのため多くのネットに関する会社ではCTR予測に関する研究を行っている – Microsoft [Graepel+ 2010] [Yin+ 2014], Google
[McMahan+ 2013], LinkedIn [Agarwal+ 2014], Alibaba [Yan+ 2014], Facebook [He+ 2014], Yahoo, Criteo [Chapelle+ 2014]
TokyoWebMining 3
広告におけるクリック率の 予測の重要性
• CTR率予測が重要な理由としては配信のさいに多くの広告形態でクリックあたりいくらという契約でなされていることが多く、クリック率を予測することにより収益を最大化できる
• また近年はRTB(Real time bidding)という媒体をインプレッション単位で買い付けができるという仕組みができており、この場合インプレッションあたりにいくら払えばよいかの見積にCTR率を予測する必要がでてくる
TokyoWebMining 4
CTR率予測における課題
• データ量が膨大 –一日に数十億のインプレッションが発生するため、扱うデータ量が多くなる
• 特徴量の次元が大きい
–予測の精度をあげようと様々な特徴量を使おうとすると次元が大きくなりモデルサイズが大きくなる
• モデルを常に更新する必要がある
–広告は常に新規が入ってくるため、古いモデルのままでは新規広告の予測などに対応できない
TokyoWebMining 5
評価方法について
• Normalized entropyとCalibrationという二つの方法で評価する
• 具体的な値はConfidentialなため基本は相対誤差で実験の値は表示する
• Normalized entropy : インプレッションごとの対数損失の平均
• Calibration : 予測CTRの平均と実際のCTRの比率 – モデルがうまく予測できていれば1に近くなる
TokyoWebMining 6
線形モデルによる予測
• 広告表示のときの特徴量を𝑥とする、この特徴量に対する重みを定めてそれをスコア関数とする – ここでは特徴量は複数のカテゴリカル変数からなるものとする – たとえば男性だと(1,0)、午前中訪問だと(1,0,0)、広告ID2だと
(0,0,1,...,0) – これらを結合した値(1,0,1,0,0,0,0,1...,0)のような特徴量となる
TokyoWebMining 7
非線形な特徴量について
• 線形モデルだけでは年齢*性別*広告のような相互作用の影響をとらえることができない
• 例えば年齢ベクトル[0,,0,1,0]、性別ベクトル[0,1]から年齢*性別ベクトル[0,0,0,0,0,0,1,0]を
つくるという方法があるがこれだと特徴量の数が膨大となる
• そのためこの論文では決定木を使った特徴量の変換を提案している
TokyoWebMining 8
決定木を使った特徴量の変換
• 入力データを複数の決定木に入力して、どのリーフに至るかで特徴量を作成する
• 例えば右の例で一番目の木で2番目のリーフ、2番目の木で1番目のリーフに行った場合
• 特徴量ベクトルは[0,1,0,1,0]となる
• これによって非線形な変換+モデルサイズの節約が可能
TokyoWebMining 9
決定木を使った特徴量の変換
• 決定木のアンサンブルにはboosted decision treesを採用 – これは新しい決定木の学習に残りの学習済みの木の差分を最適化する方法となっている
• 線形モデルと組み合わせることによって3%程度の精度向上
TokyoWebMining 10
モデルサイズの節約について (その他のアプローチ)
• Feature Hashing[Chapelle+ 2014] – 特徴量を適当なidに変換する – idの方を一定の次元dで剰余をとってモデルをd次元のベクトルとする
– 例えばpage134_ad389のようなクロスの特徴量を普通に持とうとするとpageの数×広告の数だけ次元が必要になるがこれにより上がdで抑えられる
• Encoding values with fewer bits [McMahan+ 2013] – 通常重みベクトルはfloat or doubleなので格納に4-8byte必要
– 実際は係数ベクトルをそこまでの精度で保つ必要が無いため独自のエンコーディングを使って2byteで格納する
• Probablistic Feature inclusion[McMahan+ 2013] – ほとんど現れない特徴量をモデルにいれないため、新規の特徴量がでてきたときに一定確率で採用するということを行う
TokyoWebMining 11
データの鮮度の重要性
• 1週間ほど経つと約1%ほど精度が落ちる
–一方でtreeの再学習には訓練データが数億あるとかなりの時間がかかる
• boosting treeの学習は1/2日に一回行い、線形モデルのところはオンライン学習を行う
TokyoWebMining 12
オンライン学習方法について
• 論文ではBOPR (Bayesian Online leearning scheme for Probit Regression)とSGD(Stocastic Gradient Descent)の二種類を試している
• BOPR [Graepel+ 2010]
– 学習時に分散を保存する必要が有るため倍のメモリが必要
– 予測分布がでるため、Thompson samplingのようなbanditアルゴリズムと相性が良い
• SGD – 更新時は重みベクトルのみを変更する
TokyoWebMining 13
[参考]BOPR
• CTRの分布としてプロビット関数をおいて、重
みベクトルの事前分布に正規分布を仮定する
• 更新式はデータがくるたびに特徴量の非0成分に関する項が更新される
TokyoWebMining 14
オンラインでの学習
• ユーザに表示した広告がクリックされるかどうかのデータを元にオンラインの学習器にデータを追加して、改善されたモデルをもとに配信を行っていく
TokyoWebMining 15
オンラインでのデータのJoin
• 広告配信において広告が表示されてからクリックされるまでには数秒-数分程度のラグが存在する
• そのため一定時間表示データをためておいてクリックデータが入ってきたタイミングでJoinする必要がある
–例えばGoogleではPhotonというオンラインでデータをJoinするためのシステムがある [Ananthanarayanan+ 2013]
TokyoWebMining 16
オンラインでのデータのJoin
• 今回の問題の簡単な解決手段としてHashQueueというデータ構造を使っている – 普通のqueueにclickデータが来た時にimpressionにclickされたかどうかのマークをつけるためにLookupできるようにしたデータ構造
– Queueが一杯になったときにclickが来てなかったらnegative exampleとして扱う
TokyoWebMining 17
request id
request id
request id
request id
HashQueue
impression
learning data
click
有効な特徴量について
• 特徴量については大きく分けてHistoricalとContextualの二種類がある – Historical : ユーザのCTR, 広告のCTRなど – Contextual : 時間帯、曜日など
• 実験の結果Historicalな特徴量がモデルの精度により寄与している – ただしContextualな特徴量は新規ユーザ、新規広告の予測に用いることができるので重要
TokyoWebMining 18
boosting treeの数について
• treeの数については大体500ぐらいで性能の向上が見られなくなる
TokyoWebMining 19
データ数について
• トラフィックが膨大なため、数時間のデータでも数億ある
• そのためデータのサンプリングを行うことが多い
• Uniform Sampling – ランダムにデータの一部のみ使う
• Negative down sampling
–広告ではクリックされないデータのほうが多いのでクリックされないデータの一部のみ使う
TokyoWebMining 20
サンプリングの影響
• Uniform samplingは10%程度のデータを使えば精度的には問題ない
• Negative samplingは今回の実験では2.5%程度のサンプリングが最も精度が良かった
TokyoWebMining 21
Re-calibration
• Negative samplingをすると元々のCTRが0.1%だとpositiveデータを1%サンプリングした場合CTRが10%になる
• そのため以下の式で補正してやる
• 𝑞 =𝑝
𝑝+ 1−𝑝 ∗𝑤 (pは予測CTR, wはダウンサンプリ
ング率)
• 別の研究では予測CTRと実績CTRについてポアソン回帰でfittingを行っている [McMahan+ 2013]
TokyoWebMining 22
まとめ
• データの鮮度の重要性
–少なくとも一日以内にはモデルの再学習を行う必要がある
• モデルの複雑さとメモリの節約
–モデルの精度を上げるには相互作用のような非線形な要素が必要
–今回の論文のようにBoosting treeを使うほかにFeatureのHashing, バイト数の圧縮などの方法がある
TokyoWebMining 23
参考文献
• [Agarwal+ 2014] LASER: A scalable response prediction platform for online advertising, WSDM 2014
• [Ananthanarayanan+ 2013] Photon: Fault-tolerant and scalable joining of continuous data streams, SIGMOD 2013
• [Chapelle+ 2014] Simple and scalable response prediction for display advertising, TIST 2014
• [Graepel+ 2010] Web-scale bayesian click-through rate prediction for sponsored search advertising, ICML 2010
• [He+ 2014] Practical lessons from predicting clicks on ads at Facebook, ADKDD 2014
• [McMahan+ 2013] Ad click prediction : a view from the trenches, KDD 2013
• [Yan+ 2014] Coupled group lasso for web-scale CTR prediction in display advertising, ICML 2014
• [Yin+ 2014] Estimating ad group performance in sponsored search, WSDM 2014
TokyoWebMining 24