Contexual bandit @TokyoWebMining
-
Upload
masashi-tsubosaka -
Category
Documents
-
view
4.979 -
download
0
Transcript of Contexual bandit @TokyoWebMining
Contextual Bandit入門 @TokyoWebMining
坪坂 正志 [email protected]
本発表の内容
• BanditアルゴリズムにContexutalな情報を使ったContextual Banditに対する解説と簡単なシミュレーションによる実験結果を紹介する
• また配信ログがあるときにオフラインで実験する方法についても紹介する
Banditアルゴリズムについて
• 報酬がわからない複数のスロットマシンがあったときに何回か試行することにより最も利得が高いスロットマシンを発見する – Ex: 広告のクリエイティブのうち最もクリック率(Click through rate, CTR)が高いクリエイティブを見つける
• 参考 Finite-‐Dme Analysis of mulDarmed bandit problem, Machine Learning,2002
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回
モチベーション
• 下の二つの広告の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
オフラインの評価での課題
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を表示したらどうなったかの情報がない
オフラインでの評価方法
• 簡単にいうと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,クリエイティブ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表示,クリックせず
ログではクリエイティブ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みたいな会議でよくある