25
Contextual Bandit入門 @TokyoWebMining 坪坂 正志 [email protected]

Contexual bandit @TokyoWebMining

Embed Size (px)

Citation preview

Page 1: Contexual bandit @TokyoWebMining

Contextual  Bandit入門  @TokyoWebMining  

坪坂 正志  [email protected]

Page 2: Contexual bandit @TokyoWebMining

本発表の内容

•  BanditアルゴリズムにContexutalな情報を使ったContextual  Banditに対する解説と簡単なシミュレーションによる実験結果を紹介する  

•  また配信ログがあるときにオフラインで実験する方法についても紹介する

Page 3: Contexual bandit @TokyoWebMining

Banditアルゴリズムについて

•  報酬がわからない複数のスロットマシンがあったときに何回か試行することにより最も利得が高いスロットマシンを発見する  – Ex:  広告のクリエイティブのうち最もクリック率(Click  through  rate,  CTR)が高いクリエイティブを見つける  

•  参考 Finite-­‐Dme  Analysis  of  mulDarmed  bandit  problem,  Machine  Learning,2002

Page 4: Contexual bandit @TokyoWebMining

Bandit  アルゴリズムについて

•  単純にCTRが高いクリエイティブを出すだけなら左の広告の方が高い、しかし真ん中の広告はまだほとんどインプレッションがなくある程度出してみたら左の広告より高いCTRになる可能性がある、一方で右の広告を出しても左の広告より高いCTRになりそうにない  –  CTRが高い広告を出しつつ(exploit)  –  CTRが高くなりそうな広告も出す(explore)

CTR=20%  Click  2000回  Imps  10000回

CTR=12.5%  Click  1回  Imps  8回

CTR=13.0%  Click  1300回  Imps  10000回

Page 5: Contexual bandit @TokyoWebMining

モチベーション

•  下の二つの広告のCTRが以下のようになってた場合  

•  最終的に左の広告を100%打てばCTRは8.2%

CTR  8.2% CTR  5%

Page 6: Contexual bandit @TokyoWebMining

モチベーション

•  でも実はトラフィックの80%が男性で20%が女性とかで  •  男性全部には左の広告を女性全部に右の広告を打

てば  •  CTRは9%になる

男性CTR  10%  女性CTR  1%  

男性CTR  5%  女性CTR  5%  

Page 7: Contexual bandit @TokyoWebMining

通常のBanditアルゴリズムの問題

•  各armの報酬が常に同一分布に従うという過程を置いている  

•  最初の例では広告を見ている人が男性か女性かという区別を行っていない  – この場合でも男性か女性かのセグメントごとにBanditアルゴリズムを利用すれば最適な配信はできるが事前のセグメンテーションが必要

Page 8: Contexual bandit @TokyoWebMining

Contextual  bandit •  各armの選択の際にcontext  𝑥が与えられているという

設定  •  context情報が与えられている場合、例えば線形モデ

ルを使って広告のCTRを以下のように予測する  –  代表的なアルゴリズムとしてLinUCBがある

広告CTR  =  0.1  *  男性 +  0.01  *  女性 広告CTR  =  0.05  *  男性 +  0.05  *  女性

Page 9: Contexual bandit @TokyoWebMining

LinUCB

•  WWW  2010でYahooの研究者によって提案された  – A  contextual-­‐bandit  approach  to  personalized  news  arDcle  recommendaDon,  WWW  2010  

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

ごとに適したニュースを配信する  •  論文では提案手法がcontext情報を使わない通

常のBanditと比較してCTRが12.5%高くなったという実験結果になっている  

Page 10: Contexual bandit @TokyoWebMining

LinUCBアルゴリズム(概要) •  リッジ回帰で現在の係数ベクトルを計算して、contextに対する期待値+Upper  confidenceを足した値が最大となるものを選択する

Page 11: Contexual bandit @TokyoWebMining

特殊な場合の例

•  x=(1)と常に一定の場合を考えるとUCBとほぼ同じになっていることが分かる

CTR=クリック数/インプレッション数

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

クリック数

インプレッション数

Page 12: Contexual bandit @TokyoWebMining

シミュレーション

•  設定  – トラフィック70%男性,  30%女性  – 広告1:  男性CTR  10%,  女性CTR  2%  – 広告2:  男性CTR  2%,  女性CTR  10%  – context  二次元ベクトルで男性もしくは女性を表

す  •  男性なら(1,0),  女性なら(0,1)

Page 13: Contexual bandit @TokyoWebMining

シミュレーション結果

•  1万回の試行を100回シミュレーションした平均結果  

•  期待通り、context情報を使ったLinUCBの方がCTRが高くなっている  

アルゴリズム 平均CTR

UCB 7.56%

LinUCB 10.0%

Page 14: Contexual bandit @TokyoWebMining

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アルゴリズムを実世界で導入している

ここに何を出すかを決める

Page 15: Contexual bandit @TokyoWebMining

アルゴリズムの評価について

•  実際にBanditアルゴリズムをシステムに導入する場合、事前にCTRがどの程度上がるかを知りたいことが多い  

•  今までの配信ログからオフラインでロジックの評価が行えることが望ましい  

•  オフラインでの評価方法についてはLinUCBの論文と同じ著者らが提案している  – Unbiased  offline  evaluaDon  of  contextual-­‐bandit-­‐based  news  arDcle  recommendaDon  algorithms,  WSDM  2011

Page 16: Contexual bandit @TokyoWebMining

オフラインの評価での課題

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表示,クリックせず  …

アクセスログ

•  アクセスログからでは実際に表示した物に対する反応しかなく、例えばBanditアルゴリズムが表示されなかったものを配信すると決めたときに結果が観測できない  

ここでユーザBにクリエイティブAを表示したらどうなったかの情報がない

Page 17: Contexual bandit @TokyoWebMining

オフラインでの評価方法

•  簡単にいうとBanditアルゴリズムの出力とログの出力があったときのみ、データとして出力し、他は飛ばすということを行えばよい

Page 18: Contexual bandit @TokyoWebMining

評価方法(例) 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表示,クリックせず

Page 19: Contexual bandit @TokyoWebMining

評価方法(例) 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表示,クリックせず

ログではクリエイティブAがでてるため履歴には追加しない

Page 20: Contexual bandit @TokyoWebMining

評価方法(例) 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表示,クリック

Page 21: Contexual bandit @TokyoWebMining

評価方法(例) 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がでてるため履歴には追加しない

Page 22: Contexual bandit @TokyoWebMining

評価方法(例) 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表示,クリック

Page 23: Contexual bandit @TokyoWebMining

評価方法(例) 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がでてるため履歴には追加しない

Page 24: Contexual bandit @TokyoWebMining

評価方法(例) 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%

Page 25: Contexual bandit @TokyoWebMining

リソースについて

•  収束性や性能についてのBandit問題の理論的な話題はNIPS,  ICMLのような会議の論文をみるとよくある  

•  実応用についてはWWW,  KDD,  WSDMみたいな会議でよくある