SlideShare a Scribd company logo
1 of 25
Download to read offline
Contextual	
  Bandit入門	
  
@TokyoWebMining	
  	
坪坂 正志	
  
m.tsubosaka@gmail.com
本発表の内容	
•  BanditアルゴリズムにContexutalな情報を
使ったContextual	
  Banditに対する解説と簡単
なシミュレーションによる実験結果を紹介する	
  
•  また配信ログがあるときにオフラインで実験
する方法についても紹介する
Banditアルゴリズムについて	
•  報酬がわからない複数のスロットマシンが
あったときに何回か試行することにより最も利
得が高いスロットマシンを発見する	
  
–  Ex:	
  広告のクリエイティブのうち最もクリック率
(Click	
  through	
  rate,	
  CTR)が高いクリエイティブを見
つける	
  

•  参考 Finite-­‐Dme	
  Analysis	
  of	
  mulDarmed	
  
bandit	
  problem,	
  Machine	
  Learning,2002
Bandit	
  アルゴリズムについて	
CTR=20%	
  
Click	
  2000回	
  
Imps	
  10000回	

CTR=12.5%	
  
Click	
  1回	
  
Imps	
  8回	

CTR=13.0%	
  
Click	
  1300回	
  
Imps	
  10000回	

•  単純にCTRが高いクリエイティブを出すだけなら左の広告の方が高
い、しかし真ん中の広告はまだほとんどインプレッションがなくある
程度出してみたら左の広告より高いCTRになる可能性がある、一
方で右の広告を出しても左の広告より高いCTRになりそうにない	
  
–  CTRが高い広告を出しつつ(exploit)	
  
–  CTRが高くなりそうな広告も出す(explore)
モチベーション	
•  下の二つの広告のCTRが以下のようになって
た場合	
  
•  最終的に左の広告を100%打てばCTRは8.2%	
CTR	
  8.2%	

CTR	
  5%
モチベーション	
•  でも実はトラフィックの80%が男性で20%が女性とかで	
  
•  男性全部には左の広告を女性全部に右の広告を打
てば	
  
•  CTRは9%になる	

男性CTR	
  10%	
  
女性CTR	
  1%	
  

男性CTR	
  5%	
  
女性CTR	
  5%	
  
通常のBanditアルゴリズムの問題	
•  各armの報酬が常に同一分布に従うという過
程を置いている	
  
•  最初の例では広告を見ている人が男性か女
性かという区別を行っていない	
  
–  この場合でも男性か女性かのセグメントごとに
Banditアルゴリズムを利用すれば最適な配信は
できるが事前のセグメンテーションが必要
Contextual	
  bandit	
•  各armの選択の際にcontext	
   𝑥が与えられているという
設定	
  
•  context情報が与えられている場合、例えば線形モデ
ルを使って広告のCTRを以下のように予測する	
  
–  代表的なアルゴリズムとしてLinUCBがある	
広告CTR	
  =	
  0.1	
  *	
  男性 +	
  0.01	
  *	
  女性	

広告CTR	
  =	
  0.05	
  *	
  男性 +	
  0.05	
  *	
  女性
LinUCB	
•  WWW	
  2010でYahooの研究者によって提案され
た	
  
–  A	
  contextual-­‐bandit	
  approach	
  to	
  personalized	
  news	
  
arDcle	
  recommendaDon,	
  WWW	
  2010	
  

•  適応されている問題としてはニュースのレコメン
デーション	
  
–  性別、年齢、地域、興味カテゴリなどを使ってユーザ
ごとに適したニュースを配信する	
  

•  論文では提案手法がcontext情報を使わない通
常のBanditと比較してCTRが12.5%高くなったとい
う実験結果になっている	
  
LinUCBアルゴリズム(概要)	
•  リッジ回帰で現在の係数ベクトルを計算して、
contextに対する期待値+Upper	
  confidenceを足し
た値が最大となるものを選択する
特殊な場合の例	
•  x=(1)と常に一定の場合を考えるとUCBとほぼ
同じになっていることが分かる	

CTR=クリック数/インプレッション数	
CTR+α*(1/インプレッション数)^(1/2)	

インプレッション数	
クリック数
シミュレーション	
•  設定	
  
–  トラフィック70%男性,	
  30%女性	
  
–  広告1:	
  男性CTR	
  10%,	
  女性CTR	
  2%	
  
–  広告2:	
  男性CTR	
  2%,	
  女性CTR	
  10%	
  
–  context	
  二次元ベクトルで男性もしくは女性を表
す	
  
•  男性なら(1,0),	
  女性なら(0,1)
シミュレーション結果	
•  1万回の試行を100回シミュレーションした平
均結果	
  
•  期待通り、context情報を使ったLinUCBの方が
CTRが高くなっている	
  
アルゴリズム	

平均CTR	

UCB	

7.56%	

LinUCB	

10.0%
BanditのWebへの応用について	
ここに何を出すかを決める	

• 

2009年	
  Yahoo!	
  Researchの研究者がWebのコンテンツ配信をBanditアルゴリズム
を使ったという論文を発表	
  
–  実際にオンラインで評価した結果も含んでいる	
  
–  Explore/Exploit	
  Schemes	
  for	
  web	
  content	
  opDmizaDon,	
  ICDM	
  2009	
  (Best	
  Paper)	
  

• 

2010-­‐2011年ぐらいまでYahoo!	
  ResearchからいくつかBandit関連の論文が発表さ
れた	
  
–  A	
  contextual-­‐bandit	
  approach	
  to	
  personalized	
  news	
  recommendaDon,	
  WWW	
  2010	
  
–  Unbiased	
  offline	
  evaluaDon	
  of	
  contextual-­‐bandit-­‐based	
  news	
  arDcle	
  recommendaDon,	
  WSDM	
  
2011	
  (Best	
  Paper)	
  
–  An	
  empirical	
  evaluaDon	
  of	
  Thompson	
  sampling,	
  NIPS	
  2011	
  

• 

先端的なWeb企業は4-­‐5年前からBanditアルゴリズムやContextual-­‐Banditアルゴ
リズムを実世界で導入している
アルゴリズムの評価について	
•  実際にBanditアルゴリズムをシステムに導入す
る場合、事前にCTRがどの程度上がるかを知り
たいことが多い	
  
•  今までの配信ログからオフラインでロジックの評
価が行えることが望ましい	
  
•  オフラインでの評価方法についてはLinUCBの論
文と同じ著者らが提案している	
  
–  Unbiased	
  offline	
  evaluaDon	
  of	
  contextual-­‐bandit-­‐
based	
  news	
  arDcle	
  recommendaDon	
  algorithms,	
  
WSDM	
  2011
オフラインの評価での課題	
•  アクセスログからでは実際に表示した物に対
する反応しかなく、例えばBanditアルゴリズム
が表示されなかったものを配信すると決めた
ときに結果が観測できない	
  
アクセスログ	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	

ここでユーザBにクリエイ
ティブAを表示したらどう
なったかの情報がない
オフラインでの評価方法	
•  簡単にいうとBanditアルゴリズムの出力とロ
グの出力があったときのみ、データとして出
力し、他は飛ばすということを行えばよい
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	

ユーザA,クリエイティブB表示,クリックせず	

クリエイティブB
を選択
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	

ユーザA,クリエイティブB表示,クリックせず	

クリエイティブB
を選択	
ログではクリエイティブAがでて
るため履歴には追加しない
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	
クリエイティブB
を選択	

ユーザA,クリエイティブB表示,クリックせず	
  
ユーザB,クリエイティブB表示,クリック
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	
クリエイティブB
を選択	

ユーザA,クリエイティブB表示,クリックせず	
  
ユーザB,クリエイティブB表示,クリック	

ログではクリエイティブAがでて
るため履歴には追加しない
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	
クリエイティブA
を選択	

ユーザA,クリエイティブB表示,クリックせず	
  
ユーザB,クリエイティブB表示,クリック	
  
ユーザD,クリエイティブA表示,クリック
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
履歴	

バンディットアルゴリズム	
クリエイティブA
を選択	

ユーザA,クリエイティブB表示,クリックせず	
  
ユーザB,クリエイティブB表示,クリック	
  
ユーザD,クリエイティブA表示,クリック	

ログではクリエイティブBがでて
るため履歴には追加しない
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC,クリエイティブA表示,クリックせず	
2014/1/5,ユーザD,クリエイティブA表示,クリック	
2014/1/6,ユーザA,クリエイティブB表示,クリックせず	
  
…	
バンディットアルゴリズム	

履歴	
ユーザA,クリエイティブB表示,クリックせず	
  
ユーザB,クリエイティブB表示,クリック	
  
ユーザD,クリエイティブA表示,クリック	

履歴において、バンディットアルゴリズムで
は3回表示されて、2回クリックなので
CTR=66.6%
リソースについて	
•  収束性や性能についてのBandit問題の理論
的な話題はNIPS,	
  ICMLのような会議の論文を
みるとよくある	
  
•  実応用についてはWWW,	
  KDD,	
  WSDMみたい
な会議でよくある

More Related Content

What's hot

強化学習入門
強化学習入門強化学習入門
強化学習入門
Shunta Saito
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
Shintaro Fukushima
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
 

What's hot (20)

強化学習入門
強化学習入門強化学習入門
強化学習入門
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
新しい推薦方式 知識ベース型推薦についての解説
新しい推薦方式 知識ベース型推薦についての解説新しい推薦方式 知識ベース型推薦についての解説
新しい推薦方式 知識ベース型推薦についての解説
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
効果のあるクリエイティブ広告の見つけ方(Contextual Bandit + TS or UCB)
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
 
探索と活用の戦略 ベイズ最適化と多腕バンディット
探索と活用の戦略 ベイズ最適化と多腕バンディット探索と活用の戦略 ベイズ最適化と多腕バンディット
探索と活用の戦略 ベイズ最適化と多腕バンディット
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験
 
強化学習における好奇心
強化学習における好奇心強化学習における好奇心
強化学習における好奇心
 
レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展
 

Similar to Contexual bandit @TokyoWebMining

Introduction to contexual bandit
Introduction to contexual banditIntroduction to contexual bandit
Introduction to contexual bandit
正志 坪坂
 
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
Tatsuro Hisamori
 
30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
Daisuke Yamazaki
 
TokyowebminingInferNet
TokyowebminingInferNetTokyowebminingInferNet
TokyowebminingInferNet
正志 坪坂
 
スマートフォンCPI広告でマネタイズする方法
スマートフォンCPI広告でマネタイズする方法スマートフォンCPI広告でマネタイズする方法
スマートフォンCPI広告でマネタイズする方法
Hiromitsu Ishimori
 

Similar to Contexual bandit @TokyoWebMining (13)

Introduction to contexual bandit
Introduction to contexual banditIntroduction to contexual bandit
Introduction to contexual bandit
 
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
 
30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
 
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
 
L 05 bandit with causality-公開版
L 05 bandit with causality-公開版L 05 bandit with causality-公開版
L 05 bandit with causality-公開版
 
MMDs 8.1 - 8.3
MMDs 8.1 - 8.3MMDs 8.1 - 8.3
MMDs 8.1 - 8.3
 
システムトレード構築セミナー
システムトレード構築セミナーシステムトレード構築セミナー
システムトレード構築セミナー
 
ネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについてネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについて
 
TokyowebminingInferNet
TokyowebminingInferNetTokyowebminingInferNet
TokyowebminingInferNet
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
 
20210707 ut triz発明9画面slideshare
20210707 ut triz発明9画面slideshare20210707 ut triz発明9画面slideshare
20210707 ut triz発明9画面slideshare
 
Dynamic+arms+fx091111
Dynamic+arms+fx091111Dynamic+arms+fx091111
Dynamic+arms+fx091111
 
スマートフォンCPI広告でマネタイズする方法
スマートフォンCPI広告でマネタイズする方法スマートフォンCPI広告でマネタイズする方法
スマートフォンCPI広告でマネタイズする方法
 

More from 正志 坪坂

Riak Search 2.0を使ったデータ集計
Riak Search 2.0を使ったデータ集計Riak Search 2.0を使ったデータ集計
Riak Search 2.0を使ったデータ集計
正志 坪坂
 
確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング
正志 坪坂
 
Big Data Bootstrap (ICML読み会)
Big Data Bootstrap (ICML読み会)Big Data Bootstrap (ICML読み会)
Big Data Bootstrap (ICML読み会)
正志 坪坂
 
static index pruningについて
static index pruningについてstatic index pruningについて
static index pruningについて
正志 坪坂
 

More from 正志 坪坂 (20)

Recsys2018 unbiased
Recsys2018 unbiasedRecsys2018 unbiased
Recsys2018 unbiased
 
WSDM2018Study
WSDM2018StudyWSDM2018Study
WSDM2018Study
 
Recsys2016勉強会
Recsys2016勉強会Recsys2016勉強会
Recsys2016勉強会
 
KDD 2016勉強会 Deep crossing
KDD 2016勉強会 Deep crossingKDD 2016勉強会 Deep crossing
KDD 2016勉強会 Deep crossing
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
WSDM 2016勉強会 Geographic Segmentation via latent factor model
WSDM 2016勉強会 Geographic Segmentation via latent factor modelWSDM 2016勉強会 Geographic Segmentation via latent factor model
WSDM 2016勉強会 Geographic Segmentation via latent factor model
 
Deeplearning勉強会20160220
Deeplearning勉強会20160220Deeplearning勉強会20160220
Deeplearning勉強会20160220
 
OnlineMatching勉強会第一回
OnlineMatching勉強会第一回OnlineMatching勉強会第一回
OnlineMatching勉強会第一回
 
Recsys2015
Recsys2015Recsys2015
Recsys2015
 
KDD 2015読み会
KDD 2015読み会KDD 2015読み会
KDD 2015読み会
 
Recsys2014 recruit
Recsys2014 recruitRecsys2014 recruit
Recsys2014 recruit
 
EMNLP2014_reading
EMNLP2014_readingEMNLP2014_reading
EMNLP2014_reading
 
Tokyowebmining ctr-predict
Tokyowebmining ctr-predictTokyowebmining ctr-predict
Tokyowebmining ctr-predict
 
KDD2014_study
KDD2014_study KDD2014_study
KDD2014_study
 
Riak Search 2.0を使ったデータ集計
Riak Search 2.0を使ったデータ集計Riak Search 2.0を使ったデータ集計
Riak Search 2.0を使ったデータ集計
 
確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング
 
Big Data Bootstrap (ICML読み会)
Big Data Bootstrap (ICML読み会)Big Data Bootstrap (ICML読み会)
Big Data Bootstrap (ICML読み会)
 
Tokyowebmining2012
Tokyowebmining2012Tokyowebmining2012
Tokyowebmining2012
 
static index pruningについて
static index pruningについてstatic index pruningについて
static index pruningについて
 
NIPS 2012 読む会
NIPS 2012 読む会NIPS 2012 読む会
NIPS 2012 読む会
 

Contexual bandit @TokyoWebMining