Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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

Contexual bandit @TokyoWebMining