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

CTR=12.5%	
  
Click	
  1回	
  
Imps	
  8回	

CTR=13.0%...
モチベーション	
•  下の二つの広告のCTRが以下のようになって
た場合	
  
•  最終的に左の広告を100%打てばCTRは8.2%	
CTR	
  8.2%	

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

男性CTR	
  10%	
  
女性CTR	
  1%	
...
通常のBanditアルゴリズムの問題	
•  各armの報酬が常に同一分布に従うという過
程を置いている	
  
•  最初の例では広告を見ている人が男性か女
性かという区別を行っていない	
  
–  この場合でも男性か女性かのセグメントごと...
Contextual	
  bandit	
•  各armの選択の際にcontext	
   𝑥が与えられているという
設定	
  
•  context情報が与えられている場合、例えば線形モデ
ルを使って広告のCTRを以下のように予測する	
...
LinUCB	
•  WWW	
  2010でYahooの研究者によって提案され
た	
  
–  A	
  contextual-­‐bandit	
  approach	
  to	
  personalized	
  news	
  
a...
LinUCBアルゴリズム(概要)	
•  リッジ回帰で現在の係数ベクトルを計算して、
contextに対する期待値+Upper	
  confidenceを足し
た値が最大となるものを選択する
特殊な場合の例	
•  x=(1)と常に一定の場合を考えるとUCBとほぼ
同じになっていることが分かる	

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

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

平均CTR	

UCB	

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

• 

2009年	
  Yahoo!	
  Researchの研究者がWebのコンテンツ配信をBanditアルゴリズム
を使ったという論文を発表	
  
–  実際にオンラ...
アルゴリズムの評価について	
•  実際にBanditアルゴリズムをシステムに導入す
る場合、事前にCTRがどの程度上がるかを知り
たいことが多い	
  
•  今までの配信ログからオフラインでロジックの評
価が行えることが望ましい	
  
•...
オフラインの評価での課題	
•  アクセスログからでは実際に表示した物に対
する反応しかなく、例えばBanditアルゴリズム
が表示されなかったものを配信すると決めた
ときに結果が観測できない	
  
アクセスログ	
2014/1/1,ユーザA...
オフラインでの評価方法	
•  簡単にいうとBanditアルゴリズムの出力とロ
グの出力があったときのみ、データとして出
力し、他は飛ばすということを行えばよい
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
評価方法(例)	
2014/1/1,ユーザA,クリエイティブB表示,クリックせず	
  
2014/1/2,ユーザA,クリエイティブA表示,クリックせず	
2014/1/3,ユーザB,クリエイティブB表示,クリック	
2014/1/4,ユーザC...
リソースについて	
•  収束性や性能についてのBandit問題の理論
的な話題はNIPS,	
  ICMLのような会議の論文を
みるとよくある	
  
•  実応用についてはWWW,	
  KDD,	
  WSDMみたい
な会議でよくある
Upcoming SlideShare
Loading in …5
×

Contexual bandit @TokyoWebMining

6,827 views

Published on

  • Be the first to comment

Contexual bandit @TokyoWebMining

  1. 1. Contextual  Bandit入門   @TokyoWebMining   坪坂 正志   m.tsubosaka@gmail.com
  2. 2. 本発表の内容 •  BanditアルゴリズムにContexutalな情報を 使ったContextual  Banditに対する解説と簡単 なシミュレーションによる実験結果を紹介する   •  また配信ログがあるときにオフラインで実験 する方法についても紹介する
  3. 3. Banditアルゴリズムについて •  報酬がわからない複数のスロットマシンが あったときに何回か試行することにより最も利 得が高いスロットマシンを発見する   –  Ex:  広告のクリエイティブのうち最もクリック率 (Click  through  rate,  CTR)が高いクリエイティブを見 つける   •  参考 Finite-­‐Dme  Analysis  of  mulDarmed   bandit  problem,  Machine  Learning,2002
  4. 4. 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)
  5. 5. モチベーション •  下の二つの広告のCTRが以下のようになって た場合   •  最終的に左の広告を100%打てばCTRは8.2% CTR  8.2% CTR  5%
  6. 6. モチベーション •  でも実はトラフィックの80%が男性で20%が女性とかで   •  男性全部には左の広告を女性全部に右の広告を打 てば   •  CTRは9%になる 男性CTR  10%   女性CTR  1%   男性CTR  5%   女性CTR  5%  
  7. 7. 通常のBanditアルゴリズムの問題 •  各armの報酬が常に同一分布に従うという過 程を置いている   •  最初の例では広告を見ている人が男性か女 性かという区別を行っていない   –  この場合でも男性か女性かのセグメントごとに Banditアルゴリズムを利用すれば最適な配信は できるが事前のセグメンテーションが必要
  8. 8. Contextual  bandit •  各armの選択の際にcontext   𝑥が与えられているという 設定   •  context情報が与えられている場合、例えば線形モデ ルを使って広告のCTRを以下のように予測する   –  代表的なアルゴリズムとしてLinUCBがある 広告CTR  =  0.1  *  男性 +  0.01  *  女性 広告CTR  =  0.05  *  男性 +  0.05  *  女性
  9. 9. LinUCB •  WWW  2010でYahooの研究者によって提案され た   –  A  contextual-­‐bandit  approach  to  personalized  news   arDcle  recommendaDon,  WWW  2010   •  適応されている問題としてはニュースのレコメン デーション   –  性別、年齢、地域、興味カテゴリなどを使ってユーザ ごとに適したニュースを配信する   •  論文では提案手法がcontext情報を使わない通 常のBanditと比較してCTRが12.5%高くなったとい う実験結果になっている  
  10. 10. LinUCBアルゴリズム(概要) •  リッジ回帰で現在の係数ベクトルを計算して、 contextに対する期待値+Upper  confidenceを足し た値が最大となるものを選択する
  11. 11. 特殊な場合の例 •  x=(1)と常に一定の場合を考えるとUCBとほぼ 同じになっていることが分かる CTR=クリック数/インプレッション数 CTR+α*(1/インプレッション数)^(1/2) インプレッション数 クリック数
  12. 12. シミュレーション •  設定   –  トラフィック70%男性,  30%女性   –  広告1:  男性CTR  10%,  女性CTR  2%   –  広告2:  男性CTR  2%,  女性CTR  10%   –  context  二次元ベクトルで男性もしくは女性を表 す   •  男性なら(1,0),  女性なら(0,1)
  13. 13. シミュレーション結果 •  1万回の試行を100回シミュレーションした平 均結果   •  期待通り、context情報を使ったLinUCBの方が CTRが高くなっている   アルゴリズム 平均CTR UCB 7.56% LinUCB 10.0%
  14. 14. 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アルゴ リズムを実世界で導入している
  15. 15. アルゴリズムの評価について •  実際にBanditアルゴリズムをシステムに導入す る場合、事前にCTRがどの程度上がるかを知り たいことが多い   •  今までの配信ログからオフラインでロジックの評 価が行えることが望ましい   •  オフラインでの評価方法についてはLinUCBの論 文と同じ著者らが提案している   –  Unbiased  offline  evaluaDon  of  contextual-­‐bandit-­‐ based  news  arDcle  recommendaDon  algorithms,   WSDM  2011
  16. 16. オフラインの評価での課題 •  アクセスログからでは実際に表示した物に対 する反応しかなく、例えば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を表示したらどう なったかの情報がない
  17. 17. オフラインでの評価方法 •  簡単にいうとBanditアルゴリズムの出力とロ グの出力があったときのみ、データとして出 力し、他は飛ばすということを行えばよい
  18. 18. 評価方法(例) 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 を選択
  19. 19. 評価方法(例) 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がでて るため履歴には追加しない
  20. 20. 評価方法(例) 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表示,クリック
  21. 21. 評価方法(例) 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がでて るため履歴には追加しない
  22. 22. 評価方法(例) 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表示,クリック
  23. 23. 評価方法(例) 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がでて るため履歴には追加しない
  24. 24. 評価方法(例) 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%
  25. 25. リソースについて •  収束性や性能についてのBandit問題の理論 的な話題はNIPS,  ICMLのような会議の論文を みるとよくある   •  実応用についてはWWW,  KDD,  WSDMみたい な会議でよくある

×