real time bid optimization with smooth budget delivery in online advertising
DESCRIPTION
TRANSCRIPT
Real Time Bid Optimization with
Smooth Budget Delivery in Online
Advertising
Kuang-chin Lee, Ali Jalali, Ali DasdanTurn Inc., Redwood City, CA, USA
(2013)
モチベーション
・広告出稿の入札をする側
- millisecondオーダーでの入札の実現 - その上でターゲットユーザへのリーチを可能にする - ターゲットは広くしておきたい - 予算の最適化とパフォーマンスの最適化を同時に実現 ⇒ 質の高いimpと入札金額の最適化を実現するアルゴリズムの作成
・課題
- トラフィックに応じたバランスの良い投資 ・・・ 一様投資では解決できない - 滑らかな予算配分の実現 ・・・ CPC,CPA,CTR,ARなどが高い時間帯で多くの投資を行いがち 機会の喪失
⇒ 予算をタイムスロット毎に分割する
本論文ではこの課題を解決する予算最適化法を提案本論文ではこの課題を解決する予算最適化法を提案本論文ではこの課題を解決する予算最適化法を提案本論文ではこの課題を解決する予算最適化法を提案
(基本は線形計画問題)(基本は線形計画問題)(基本は線形計画問題)(基本は線形計画問題)
Overview of Ad Call Flow
・本論文の貢献
- 予算とパフォーマンス(CPC,CTR etc)の両面の最適化を実現できる - トラフィックに応じた予算最適化を実現できる(滑らかな予算投資の実現)
Problem Setup and Formulation
(smooth delivery of budget)・タイムスロット別の予算的課題
・ゴールとなる指標と制約条件
(1)
(2)
タイムスロット毎タイムスロット毎タイムスロット毎タイムスロット毎
の予算の予算の予算の予算
タイムスロット毎タイムスロット毎タイムスロット毎タイムスロット毎
の予算の予算の予算の予算
dailyの予算の予算の予算の予算dailyの予算の予算の予算の予算
獲得した価値獲得した価値獲得した価値獲得した価値獲得した価値獲得した価値獲得した価値獲得した価値
広告主のコスト広告主のコスト広告主のコスト広告主のコスト広告主のコスト広告主のコスト広告主のコスト広告主のコスト
time slot tで消で消で消で消費された予算費された予算費された予算費された予算
time slot tで消で消で消で消費された予算費された予算費された予算費された予算
eCPMの上限値の上限値の上限値の上限値eCPMの上限値の上限値の上限値の上限値
time slotは個々のキャンペーンの個別のimpの価格の分散が最小になるように設定する
入札回数入札回数入札回数入札回数入札回数入札回数入札回数入札回数
Problem Setup and Formulation
(smooth delivery of budget)・消費予算の因数分解(予算制約(1)式からの導出)
・各time slotでの投資率の更新式
(3)win_rate(t)win_rate(t)
pacing_rate(t)pacing_rate(t)
slot tで得られる全で得られる全で得られる全で得られる全
ての広告リクエストての広告リクエストての広告リクエストての広告リクエスト
ののののindex一式一式一式一式
slot tで得られる全で得られる全で得られる全で得られる全
ての広告リクエストての広告リクエストての広告リクエストての広告リクエスト
ののののindex一式一式一式一式
(4)
slot tで得られる広告リクエストの総数で得られる広告リクエストの総数で得られる広告リクエストの総数で得られる広告リクエストの総数slot tで得られる広告リクエストの総数で得られる広告リクエストの総数で得られる広告リクエストの総数で得られる広告リクエストの総数
予測値予測値予測値予測値予測値予測値予測値予測値
※(4)が滑らかな予算投資のためのシンプルなフィードバックコントロールを実現する
Problem Setup and Formulation
(smooth delivery of budget)・time slot tの1期先の予算bt+1の算出
(7)
Click or CVの予測確率の予測確率の予測確率の予測確率Click or CVの予測確率の予測確率の予測確率の予測確率
(8)
time slot tの時間的長さの時間的長さの時間的長さの時間的長さ(sec etc)time slot tの時間的長さの時間的長さの時間的長さの時間的長さ(sec etc)
L(t)ががががtによって異なる場合によって異なる場合によって異なる場合によって異なる場合L(t)ががががtによって異なる場合によって異なる場合によって異なる場合によって異なる場合
予算一様配分の場合予算一様配分の場合予算一様配分の場合予算一様配分の場合予算一様配分の場合予算一様配分の場合予算一様配分の場合予算一様配分の場合 一様配分でない場合一様配分でない場合一様配分でない場合一様配分でない場合一様配分でない場合一様配分でない場合一様配分でない場合一様配分でない場合
L(t)が各が各が各が各tで一様な場合で一様な場合で一様な場合で一様な場合L(t)が各が各が各が各tで一様な場合で一様な場合で一様な場合で一様な場合
(5)
(6)
※※※※pj=0の場合、の場合、の場合、の場合、slot tで広告を全く出さないことになってしまうので、一様配分と混ぜることでそれを防ぐで広告を全く出さないことになってしまうので、一様配分と混ぜることでそれを防ぐで広告を全く出さないことになってしまうので、一様配分と混ぜることでそれを防ぐで広告を全く出さないことになってしまうので、一様配分と混ぜることでそれを防ぐ
Problem Setup and Formulation(selection High Quality Ad Requests –Flat CPM)
・imp, bids, reqsの算出 - goalは単純に 現在のslotのpacing rateを考慮した投資すべきリクエストを選択すること
固定された入札価格固定された入札価格固定された入札価格固定された入札価格 = 各各各各time slot のののの ciの統計量を計算するために使用するの統計量を計算するために使用するの統計量を計算するために使用するの統計量を計算するために使用する
データの日数での平均値データの日数での平均値データの日数での平均値データの日数での平均値
固定された入札価格固定された入札価格固定された入札価格固定された入札価格 = 各各各各time slot のののの ciの統計量を計算するために使用するの統計量を計算するために使用するの統計量を計算するために使用するの統計量を計算するために使用する
データの日数での平均値データの日数での平均値データの日数での平均値データの日数での平均値
ヒストリカルデータから算出した値
Problem Setup and Formulation(selection High Quality Ad Requests –Flat CPM)
・CTR,ARによるフィルター
CTRまたはまたはまたはまたはARに基づいたに基づいたに基づいたに基づいた
time slot tにおけるリクエスト数(の分布)におけるリクエスト数(の分布)におけるリクエスト数(の分布)におけるリクエスト数(の分布)
CTRまたはまたはまたはまたはARに基づいたに基づいたに基づいたに基づいた
time slot tにおけるリクエスト数(の分布)におけるリクエスト数(の分布)におけるリクエスト数(の分布)におけるリクエスト数(の分布)
q(s)がヒストリカルデータから算出されるため、現状を正確に反映したデータとならないがヒストリカルデータから算出されるため、現状を正確に反映したデータとならないがヒストリカルデータから算出されるため、現状を正確に反映したデータとならないがヒストリカルデータから算出されるため、現状を正確に反映したデータとならない
⇒⇒⇒⇒ adリクエストとかけ離れている場合リクエストとかけ離れている場合リクエストとかけ離れている場合リクエストとかけ離れている場合ττττ(t)に不安定さを招くことがあるに不安定さを招くことがあるに不安定さを招くことがあるに不安定さを招くことがある
当該フィルタがかかえる課題当該フィルタがかかえる課題
これを解決するためにこれを解決するためにこれを解決するためにこれを解決するためにττττ(t)に信頼区間を設けるに信頼区間を設けるに信頼区間を設けるに信頼区間を設ける
CTRまたはまたはまたはまたはARCTRまたはまたはまたはまたはAR
(9)
Problem Setup and Formulation(selection High Quality Ad Requests –Flat CPM)
・τ(t)の信頼区間(閾値)計算
※τ(t)はガウス分布を仮定
Adリクエスト採択下限Adリクエスト不採択上限
統計量を計算するために使用す
るデータの日数
統計量を計算するために使用す
るデータの日数
※閾値はslot毎に計算される
※※※※ττττ(t)の値が上限と下限の間であればの値が上限と下限の間であればの値が上限と下限の間であればの値が上限と下限の間であればpacing_rate(t)の確率で入札を行うの確率で入札を行うの確率で入札を行うの確率で入札を行う
→→→→ v*の計算に移るの計算に移るの計算に移るの計算に移る
(10)
Problem Setup and Formulation(selection High Quality Ad Requests –Dynamic CPM)
計算手順
1) c*の計算 2) baseとなる入札価格の算出
ui = AR×G
適切な入札価格で入札するために適切な入札価格で入札するために適切な入札価格で入札するために適切な入札価格で入札するためにpacing_rateをををを3つの領域つの領域つの領域つの領域に分けに分けに分けに分け
るるるる 0≦≦≦≦ββββ1 ≦≦≦≦ ββββ2≦≦≦≦1(a) safe region::::pacing_rate(t) ≦≦≦≦ ββββ1 問題なく勝てる 問題なく勝てる 問題なく勝てる 問題なく勝てる
(b) Critical region::::ββββ1≦≦≦≦pacing_rate(t)≦≦≦≦ββββ2 普通に勝てる 普通に勝てる 普通に勝てる 普通に勝てる
base bid pricebase bid price3) pacing_rate(t)によって入札価格を調整し決定する
予測値予測値予測値予測値予測値予測値予測値予測値
(c) Danger region::::ββββ2≦≦≦≦pacing_rate(t) 十分な十分な十分な十分なimpは獲得できは獲得できは獲得できは獲得でき
ないないないない
目標とする目標とする目標とする目標とするCPA値値値値目標とする目標とする目標とする目標とするCPA値値値値
※※※※式式式式(3),(4)よりよりよりよりpacing_rate(t)の予測値はの予測値はの予測値はの予測値はwin_rate(t+1)の逆数に比例するため、の逆数に比例するため、の逆数に比例するため、の逆数に比例するため、
勝率が低いと大きくなる(?)勝率が低いと大きくなる(?)勝率が低いと大きくなる(?)勝率が低いと大きくなる(?)
Problem Setup and Formulation(selection High Quality Ad Requests –Dynamic CPM)
(b) Critical region::::ββββ1≦≦≦≦pricing_rate(t)≦≦≦≦ββββ2の場合の場合の場合の場合
(c) Danger region::::ββββ2≦≦≦≦pacing_rate(t)の場合の場合の場合の場合
- - - - まずこの領域にいる理由を考えるまずこの領域にいる理由を考えるまずこの領域にいる理由を考えるまずこの領域にいる理由を考える
1) リクエストをリジェクトしすぎているリクエストをリジェクトしすぎているリクエストをリジェクトしすぎているリクエストをリジェクトしすぎている
⇒⇒⇒⇒ オーディエンスターゲティングの縛りがきつ過ぎるオーディエンスターゲティングの縛りがきつ過ぎるオーディエンスターゲティングの縛りがきつ過ぎるオーディエンスターゲティングの縛りがきつ過ぎる
2) 入札価格が低すぎる入札価格が低すぎる入札価格が低すぎる入札価格が低すぎる
⇒⇒⇒⇒ 次の式を適用次の式を適用次の式を適用次の式を適用
---- ベストな入札価格の学習を行うベストな入札価格の学習を行うベストな入札価格の学習を行うベストな入札価格の学習を行う
(a) safe region::::pacing_rate(t) ≦≦≦≦ ββββ1の場合の場合の場合の場合
入札価格入札価格入札価格入札価格入札価格入札価格入札価格入札価格
落札価格落札価格落札価格落札価格落札価格落札価格落札価格落札価格ヒストグラムヒストグラムヒストグラムヒストグラムθθθθの下の下の下の下1~~~~2パーセンタイル値(経験的パーセンタイル値(経験的パーセンタイル値(経験的パーセンタイル値(経験的
に選択?)に選択?)に選択?)に選択?)
ヒストグラムヒストグラムヒストグラムヒストグラムθθθθの下の下の下の下1~~~~2パーセンタイル値(経験的パーセンタイル値(経験的パーセンタイル値(経験的パーセンタイル値(経験的
に選択?)に選択?)に選択?)に選択?)
データを蓄積しヒストデータを蓄積しヒストデータを蓄積しヒストデータを蓄積しヒスト
グラムを作成グラムを作成グラムを作成グラムを作成
データを蓄積しヒストデータを蓄積しヒストデータを蓄積しヒストデータを蓄積しヒスト
グラムを作成グラムを作成グラムを作成グラムを作成
(11)
入札価格の上限入札価格の上限入札価格の上限入札価格の上限入札価格の上限入札価格の上限入札価格の上限入札価格の上限
Practical Issues
(Cold Start Problem)
・コールドスタート問題をどのように解決するか
- 既存の似たようなキャンペーンのデータを使用する (高い質のwebサイト/オーディエンスグループ) - - - - Contextual-Epsilon-greedy strategy(多腕バンデッドアルゴリズムの(多腕バンデッドアルゴリズムの(多腕バンデッドアルゴリズムの(多腕バンデッドアルゴリズムの
一種)を使う 一種)を使う 一種)を使う 一種)を使う
※詳細不明
Practical Issues
(Prevention of Overspending)
・予算の枯渇の防止策
- 各time slotの予算bt+δを超えた場合は次のtime slotまで入札を中止
Practical Issues
(Distributed Architecture)
前出の前出の前出の前出のCVR算出アルゴリズムを使用算出アルゴリズムを使用算出アルゴリズムを使用算出アルゴリズムを使用
本稿で提案されたアルゴリズムは本稿で提案されたアルゴリズムは本稿で提案されたアルゴリズムは本稿で提案されたアルゴリズムは
分散処理環境とよく馴染むらしい分散処理環境とよく馴染むらしい分散処理環境とよく馴染むらしい分散処理環境とよく馴染むらしい
Comparison of Pacing Strategies
・理想値との乖離(予算の一様配分を理想とした場合)
-dailyの誤差は約1%に収まった
Comparison of Pacing Strategies
・理想値との乖離(time slotによって投入予算が異なる場合)
-理想の投資配分
Comparison of Pacing Strategies
・理想値との乖離(time slotによって投入予算が異なる場合)
-理想の投資配分との乖離
-dailyの誤差は約2.3%
Evaluation of Real Campaign Performance
・flat CPM campainの場合 - CTRを最大化する事を目指す・dynamic CPM campainの場合 - CPCの最小化およびCPAの最大化を目指す
Evaluation of Real Campaign Performance
・実験条件
- 異なるカテゴリの広告主のキャンペーンについて1週間稼働後、 2週間分のデータを使って比較
Evaluation of Real Campaign Performance
・vs baseline model(in flat CPM campains) - baselineはτ(t)をpacing rateを元に単純に算出する既存のモデル
※baselineの詳細不明
- 平均して123%パフォーマンスが改善
Evaluation of Real Campaign Performance
・vs baseline model(in dynamic CPM campains) - baselineはpacing rateを一様にした既存のモデル
※baselineの詳細不明
- 平均CPCは19.02%、CPAは30.87%のliftとなった
Conclusion
・結論
- パフォーマンスと滑らかな予算配分の最適化をリアルタイムで行う 一般化された単純な手法を提案した
- 予算のunderpacingもoverpacingもないアルゴリズムを提案した - 大量データを処理できるモデルを提案した - 将来はもっと多くのデータをオンライン処理できるモノを完成させたい
・感想
- 価値vについての記載がない(購買額とかCTRとかでいいのか?) - win_rate(t)は過去データから単純に算出しているのか? - ε、δ、βに関しても過去データから人間が決定? - 詳細が書いて無い部分があり残念 - やっている事は単純 - 理論的背景がかっちりした手法との比較結果を見たい