本発表の内容
• BanditアルゴリズムにContexutalな情報を使ったContextual Banditに対する解説と簡単なシミュレーションによる実験結果を紹介する
Banditアルゴリズムについて
• 報酬がわからない複数のスロットマシンがあったときに何回か試行することにより最も利得が高いスロットマシンを発見する
–広告のクリエイティブのうち最も高いCTRを見つける
• 参考 Finite-time Analysis of multiarmed bandit problem, Machine Learning,2002
モチベーション
• 下の二つの広告の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アルゴリズム(概要)
• リッジ回帰で現在の係数ベクトルを計算して、contextに対する期待値+Upper confidenceを足した値が最大となるものを選択する
シミュレーション
• 設定
– トラフィック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%
参考資料
• A contextual-bandit approach to personalized news article recommendation, WWW 2010
– LinUCBに関する論文
• An empirical evaluation of thompson sampling, NIPS 2011
• Content recommendation on web portal, CACM 2013