More Related Content More from Maruyama Tetsutaro (15) Online Matching and Ad Allocaton 8章&9章半分4. 8. Online Submodular Welfare Maximization
• そもそもこの論文の最初に立ち戻る
• 「オンライン利潤最大化問題」について議論してるんだった
• ユーザーの集合 V 、広告主(プレイヤー)の集合 U(広告主は n 個)
• ある広告主 u の評価関数は、fu : 2V
→ R+
• ユーザー V の全部分集合 2V に対して、(正の実数の)利益なり価値なりが
発生することを表した関数
• オンラインで割り当てられたユーザー(ユーザーに対して表示された広
告)は取り戻しが出来ない
• 一通りの stream(一連の広告表示)が終わった後、広告主 u には Vu ⊆ V
のユーザーが割り当てられている(u の広告が表示されている)
3/ 30
6. 【余談】劣モジュラ
• 私が見た中で一番分かりやすい劣モジュラの解説
• プリキュアで学ぶ劣モジュラ関数
• 式が違う・・・
• 前ページ:∀X, Y : f(X ∪ Y ) + f(X ∩ Y ) ≤ f(X) + f(Y )
• 上記サイト:X ⊆ Y, i /∈ Y : f(X ∪ {i}) − f(X) ≥ f(Y ∪ {i}) − f(Y )
• 前ページの式で、以下のようにしても ∀X, Y は成り立つはず
• X ∩ Y = Z, X = Z ∪ {x} (x /∈ Y )
• 前ページの式に代入していく
• f(Z) + f(Y ∪ {x}) ≤ f(Z ∪ {x}) + f(Y )
• f(Y ∪ {x}) − f(Y ) ≤ f(Z ∪ {x}) − f(Z)
• Z ⊆ Y, x /∈ Z, x /∈ Y は明らかなので、同じでしたね
5/ 30
7. 【余談】劣モジュラ (Cont.)
• 劣モジュラの意味を「プリキュア・・・」から引用すると
• f を集合の中のプリキュアの色を数える関数とする
• 集合が大きくなればなるほど、色が増え方が鈍っていく
• この場合(広告の場合)は、
• 既に割り当てられたユーザーが多いほど、新しいユーザー v ∈ V に対して、
• 中身は同じ人間かもしれないので、広告をクリックしなくなる
• クリック課金がユニークユーザー単位だった
• いっぱい広告を出すと、だんだん飽きられてくる
• ので、価値の増え方が鈍っていく
• ことに相当すると思われ
6/ 30
8. 【余談】
• ま、すぐ次に
• ∀S ⊆ T ⊆ V, x /∈ T : f(S + x) − f(S) ≥ f(T + x) − f(T)
• って載っているんですが。。。
7/ 30
9. 劣モジュラに対する貪欲法
• 単調劣モジュラな評価関数 f を用いるオンライン利潤最大化問題
• これに対する最もシンプルな解法は、GREEDY なやり方である
• GREEDY = marginal gain を最大化する
劣モジュラに対する貪欲法
Vu を既に各 u ∈ U に割り当てられたユーザーだとすると、
次のユーザー v ∈ V には fu(Vu ∪ {v}) − fu(Vu) が最大になる u に割り当てる
8/ 30
11. もっと良いもの無いんだっけ?
• 4.2 章でやった、marginal gain に ψ(ru) = 1 − eru−1
(ru は [0, 1] の乱数)
の重みをつけた Perturbed Greedy アルゴリズム(Algorithm 7)は、競合比
1 − 1
e
• 5.2 章の後半でやった、marginal gain に ψ(xu) = 1 − exu−1
の減衰項をつ
けた MSVV アルゴリズム(Algorithm 10)も、競合比 1 − 1
e
• 6 章では、それぞれの双対問題の形式を示した(Algorithm 13 と
Algorithm 11)
• 枝に重みのついた2部グラフマッチングを、前者は重みにランダムな荷
重を加える方法、後者は決定論的な荷重を付ける方法だが
• small bit assamption が必要な所まで、よく似ている
10/ 30
12. 【余談】Display Ad の場合はどうだったっけ
• 前ページの2つのアルゴリズムは、Adwords に関するもの
• Display Ad の場合は、6 章の Free Disposal を使った FKMMP09
(Algorithm 17)が、やはり競合比 1 − 1
e
• 予算が無限大(cu → ∞)という条件もついた上で
11/ 30
14. そんなこと言うなよ問題
Open Question 10
small bit assamption 無しで競合比が良い Adwords のアルゴリズム、
free disposal を(あんまり)使わない Display Ad のアルゴリズム、
君も考えてみないかい?
Open Question 11
多項式時間云々を考えなければ、最大の競合比はいくつか興味無い?
13/ 30
16. 9.Applications
• 9.1 章では、bid-scaling アルゴリズム(small bit assumption を仮定したア
ルゴリズム)を実際に運用するときのノウハウを示す
• 9.2 章では、実際に運用するときの様々な指標について述べる
• 9.3 章では、企業が発表した bid-scaling アルゴリズムについてまとめる
• (本日はここまでの予定。秋庭くんに良い所を残してやる親心)
• 9.4 章では、ヒューリスティックな方法について述べる
• 9.5 章では、Throttling という手法について述べる
15/ 30
17. 9.1 A Unified View: Bid-Scaling Algorithms
• 今まで扱ってきたアルゴリズム群を”Bid-Scaling Algorighms” と呼ぼう
• 一番大きい重みの枝を選ぶ方法
• その中でも以下のように分類できるよ
• それに更にウェイトを付ける方式
• 決定論的:MSVV 等
• ランダム:Perturbed Greedy 等
• 何に対して重みを付けるのか
• 予算:MSVV 等
• キャパシティ:FKMMP09 等
• 重みの更新は?
• 乱数で:Perturbed Greedy 等
• 指数的に:MSVV 等
• 追加してく:FKMMP09
16/ 30
18. システム負荷的に見て
• とは言っても、こいつらは GREEDY と大して違わないよ
• GREEDY はメモリ全然要らないよね
• 強いて言えば、広告主毎に予算消費を覚えておくぐらい
• CPU も全然使わないよね
• 各 bid に対して処理するぐらい
• CPU 間の通信もほぼ無いよね
• 予算を同期するぐらい
• だから、凄い使いやすいよね
17/ 30
20. 9.2 Objective Functions Used in Practice
• 今まで、「2部グラフの最大マッチで、枝の重みの総和=”efficiency”」と
して、これを最大化する目的でやってきた
• この “efficiency” を最大化するってことは、広告主にとっての価値を最大
化することに繋がる
• しかし、その他の指標も考えてみようじゃないか
• ユーザーから見た広告の価値
• “Return on Investment”(ROI)
• 広告主にとっての直近の利潤
• 指標を変えることによって、違うやり方が生まれるかもしれないし
19/ 30
21. 3つの指標
• Quality =
∑
i∈I qi/|I|(ユーザーから見た広告の価値)
• I はインプレッション
• qi はインプレッション i 毎の quality score(例えば、CTRi とか)
• (qi が CTR だとすると色々おかしいが・・・)
• CTR を予測する機械学習とか、良いんじゃないかな
• ROI =
∑
i∈I CTRiCVRiVi
∑
i∈I CTRiCPCi
• Vi はコンバージョン当たりの価格
• どれだけお金を掛けたかに対する、どれだけ効果があったか
• 分子を利益にするならば、ROI =
∑
i∈I CTRiCVRi(Vi−CPCi)
∑
i∈I CTRiCPCi
• Revenue =
∑
i∈I CTRiCPCi
20/ 30
23. 9.3 Published Results from the Industry
• bid-scaling algorithm の研究は主に Display Ad が対象だよ
• Display Ad ってこんな状況だよね
• 配信主は、広告主の配信対象となるウェブサイト(リタゲ)・デモグラ・ジ
オ等のターゲッティングをする
• 広告主に X 回の impression を保証し、Y の報酬をもらう
• なので、impression が稼げなかったらヤバイ(補償問題になる)
• これは7章での議論に capacity の下限という束縛条件が付くことになる
22/ 30
24. Google の場合
• Adwords Problem: Online Keyword Matching with Budgeted Bidders under
Random Permutations を Display Ad に応用した
• 5 章で棚橋くんが読み飛ばした箇所にあり
• MSVV と似ているが、双対問題を解く上で出てきた
argminα
{∑
u∈U αuϵBu +
∑
v∈V maxu xuv(1 − αu)
}
を考え、xuv(1 − αu) を最大にする u に貼る(Bu は u の予算)
• (Adwords なのに)Display Ad のように free disposal をする
• 1 ∼ ϵm まで適当に張り、ϵm ∼ m まで上記で頑張る
• Efficiency は GREEDY より 10%ほど良くなった
• fairness という指標も導入した
23/ 30
25. Google の論文
• Online Stochastic Packing applied to Display Ad Allocation
• 双対問題を解くところは、そこそこ同じなので省略
• “fairness” について
• 広告主の利潤 νu(x) =
∑
v∈V wuvxuv、V (x) =
∑
u∈U νu(x)
• offline で全データをマッチングして得られた最適解を x∗ とする
• fairness =
∑
u∈U
V (x∗)
V (x) νu(x) − νu(x∗)
• online での解が、offline で得られる最適解(Efficiency 最大)より利潤が少
なくなるのは仕方ないにせよ、各広告主毎に依怙贔屓されてないか
• fairness は少ないほど良い
• 各広告主毎の最適解の場合の Efficiency と online の場合の Efficiency の割合
が、全ての広告主において一致するならば、fairness は 0
24/ 30
28. Microsoft の場合
• Display Ad の impression 補償(capacity の下限)条件のために、Waterlevel
アルゴリズムを導入した
• これも 5 章で棚橋くんが読み飛ばした箇所
• Balance アルゴリズムの、各広告主毎に bid 価格が異なる場合のもの
• Fast Algorithms for Finding Matchings in Lopsided Bipartite Graphs with
Applications to Display Ads
• 上記も Microsoft で、劣モジュラな性質を利用して定式化
• これに対し、CTR*CPC を最大化する双対問題を解く
• Waterlevel よりも向上した
27/ 30
29. Microsoft の論文
• Real-Time Bidding Algorithms for Performance-Based Display Ad Allocation
• すでに解説が SlideShare に上がってた
• CyberAgent の Tatsuki Sugio さんの SlideShare
• RTB でのユーザーの bid 価格に対して、今までの CTR や予算(impression
補償)から適正価格になるような補正項 α を双対問題を解いて出す
• 補正項で補正した bid 価格に対して、GREEDY に imp する広告を決める
• α は随時アップデートかけていく
28/ 30
30. Yahoo! の場合
• Optimal Online Assignment with Forecasts
• 基本的には 6 章の双対問題をベースとしているが、特徴が3点
• 評価関数を2階微分可能な凸関数であるとし、(2階微分は 0 だけど)
• その Lagrangian からラグランシュの未定乗数法を用いて最適解をだして
いる
• その KKT 条件と、双対問題(とそこに出てくるスラック変数)との関係を
定義している(ラグランジュ緩和した双対問題)
• どっちかというと、6 章の元になっているのがこの論文じゃないの?
• free disposal (サンプリング)する個数を、双対問題の条件から影響を見積
もって出している
• 元論文のここ、難しくて追えなかったです・・・
29/ 30