"Matching Auctions

for Search and Native Ads"

ACM EC’18

Cavallo, Sviridenko, Wilkens

slabod@

MEM-seminar, 02-09.04.2019

Анонс

  1. Аукционы рекламы
    • allocation
    • pricing
  2. Separability нереалистично
  3. Allocation curves
  4. SGP- и VCG-цены
  5. Эффективные алгоритмы
  6. Две части доклада

Часть 1,

мотивационная

slabod@

MEM-seminar, 02.04.2019

Введение

\ge
\ge
\ge

$$1$$

$$3$$

$$2$$

$$4$$

$$,p_{i_1}$$

$$,p_{i_2}$$

$$,p_{i_3}$$

$$,p_{i_4}$$

i_1, b_{i_1}, v_{i_1}
i_2, b_{i_2}, v_{i_2}
i_3, b_{i_3}, v_{i_3}
i_4, b_{i_4}, v_{i_4}

$$p_k \le b_k$$

Формализация

  1. Участники $$i \in $$
  2. Слоты $$j \in$$
  3. Вероятность клика
     
  4. Utility
     
  5. Ожидаемая польза
,n \ge m
I
J
1
1
n
m
j
i

Задача платформы

  1. Принять ставки   \( b_i \longleftrightarrow v_i \)
  2. Разместить биддеров по слотам
     
  3. Максимизировать SW по \(\sigma:\)   
    \(\sum\limits_j v_{i, j} \;=\; \sum\limits_j b_{\sigma(j)} \pi_{\sigma(j), j}\)
  4. Определить цены

\(\sigma: J \to I \)

\(\sigma(j) = i \)

Separability

\(\sum_j  \pi_{\sigma(j), j}  b_{\sigma(j)} \;=\)

\(\sum_i  x_i  y_i \;\to\; \max\)

x_1 \ge x_2 \ge \ldots \ge x_n
y_1 \ge y_2 \ge \ldots \ge y_n
b_1\beta_1 \ge b_2\beta_2 \ge \ldots \ge b_n\beta_n

ранжирование:

GSP — generalized second price auction

b_1\beta_1 \ge b_2\beta_2 \ge \ldots \ge b_n\beta_n

ранжирование:

минимальная возможная для \(\sigma(j)\) для слота \(j\):

b_{\sigma(j)}\beta_{\sigma(j)} \ge b_{\sigma(j + 1)}\beta_{\sigma(j + 1)}
p_{\sigma(j)}

GSP — generalized second price auction

  1. Существование равновесия
  2. Легко анализируется и вычисляется
  3. Separability критична

Нереалистичность separability: native ads

  • Внутри контента
  • 1 – 2 рекламы на экране
  • \(\alpha_j\) — вероятность увидеть слот \(j\)
    — уменьшается
  • \(\beta_i\) зависит от типа рекламы:
    • CPM — per-impression, \(\beta_i = 1\)
    • CPC — per click, \(\beta_i = Pr[click | view]\)
    • conversion / app-installation, \(\beta_i = \,?\)

модель CPM сепарабельна:

\(\pi_{i, j} = \alpha_j\)

Нереалистичность separability: CPC

вероятность клика при условии просмотра: Yahoo Native Ads, 17m просмотров

другой смысл \(\alpha_i\), чем для CPM

Нереалистичность separability

  1. Разные векторы \(\alpha\) для разных моделей?
  2. Не работает для смешанных моделей
  3. Реклама в поиске по разному привлекает пользователя в зависимости от слота

Основные вопросы: allocation

I
J
1
1
n
m
j
i

Как определить соответствие bidder — slot без отделимости?

\(\sigma(.):\)      \(\sum_j  \pi_{\sigma(j), j}  b_{\sigma(j)} \; \to \max\)

Hungarian method: \(O(nm^2)\)

time \(\le 1ms\)

Yahoo Native Ads:

Паросочетания!

\(\sigma: J \to I \)

\(\sigma(j) = i \)

Основные вопросы: pricing

Как назначать цены для максимального паросочетания?

  • равновесны
  • вычислимы

VCG: Vickrey-Clarke-Groves mechanism

b \in B_1 \times B_2 \times \ldots \times B_n
x: B_1 \times \ldots \times B_n \to \Sigma
x(b) = \sigma = \argmax\limits_{\sigma}(SW)
z \in Z
SW(z) = \sum\limits_b r_b(z) =

VCG: prices

p_a(z) =
-
u_a(z) - (
-
)

цена

SW(z) =

выигрыш \(a:\)

VCG: truthfulness

1. Честный вариант

=

2. Нечестный вариант

сообщили \(r_a(.) = u_a(.)\)

сообщили \(r'_a(.) \neq u_a(.)\)

u_a(z') + \sum\limits_{b \neq a} r_b(z') \,\le\, r_a(z) + \sum\limits_{b \neq a} r_b(z)
= \max\limits_{x} \, \{\, u_a(x) + \sum\limits_{b \neq a} r_b(x) \,\}

VCG

  • Популярное решение без separability
  • Тяжело перейти с GSP

  • Yahoo: 20% ожидаемое падение выручки

  • Google Adwords

Allocation curves

Обобщения GSP?

(b_i, b_{-i}) \, \to \, Pr[\text{click on ad i}]
t_1
t_2
t_3
t_4
0
1
0
Pr
b_i

фиксируем \(b_{-i}\)

Allocation curves: преимущества

  1. Гибкость:
    • подходит для разных механизмов цен
    • можно вычислить GSP-пороги
    • можно вычислить VCG-цены
  2. Прозрачность:
    • прогнозы и проверки
    • информация для биддеров
    • анализ цен
t_1
t_2
t_3
t_4
0
1
0
Pr
b_i

Allocation curves: separability

t_1
t_2
t_3
t_4
0
1
0
Pr
b_i
b_1\beta_1 \ge b_2\beta_2 \ge \ldots \ge b_n\beta_n

\(\sum_j  \pi_{\sigma(j), j}  b_{\sigma(j)} \;=\)

\(\max \; SW \)

\Leftrightarrow

Allocation curves: separability

Allocation curves: non-separability

SW =
b_2 = 1\$

Наивный алгоритм

Пусть ставки сделаны с точностью до цента

Для фиксированного \(i \in I\) найдём

  1. Для каждого слота \(j \in J\)
  2. Бинпоиск ставки за \(O(\log(100b_i))\)
  3. Поиск max паросочетания за \(O(nm^2)\)

Мы найдём все \(a_i(.)\) за \(O(nm^2)\) !

Multi-dimensional bidding

Думаем про конверсии:

  1. Покупка

  2. Загрузка приложения

  3. Создание аккаунта

  4. Чтение сайта долгое время

Multi-dimensional bidding

Multi-dimensional bidding

:\; f_i(b_i) = j

ожидаемая польза:

Мы снова найдём все \(f_i(.)\) за \(O(nm^2)\) !

Структура \(a_i(.)\)

Утверждение
\(a_i(b) = p_i\) возрастает с увеличением \(b\)

b_1 < b_2
p_1 > p_2
V_1 < V_2
V_1 + p_1(b_2 - b_1) \le V_2
I
J
1
1
n
m
j
i
p_1
p_2

пусть не так:

V_2 - p_2(b_2 - b_1) \le V_1
p_1(b_2 - b_1) \le p_2(b_2 - b_1)
p_1 \le p_2
?!

Часть 2,

алгоритмическая

slabod@

MEM-seminar, 09.04.2019

Напоминание

I
J
1
1
n
m
j
i
p_1
p_2
n - m
\subseteq J'
0

\(\sigma(.):\)      \(V^{\sigma} \,= \, \sum_j  \pi_{\sigma(j), j}  b_{\sigma(j)} \; \to \max\)

\(\sigma: J' \to I \)

\(\sigma(j) = i \)

n
(b_i, b_{-i}) \, \to \, Pr[\text{click on ad i}]

Напоминание

I
J
1
1
n
m
j
j
p_1
p_2
n - m
\subseteq J'

\(\sigma^* = \argmax(V^{\sigma})\)

\(\sigma^*(j) = j \)

n

\(\sigma^*\)

План

= \, Pr[\text{click on ad i}]
  1. Венгерский метод для максимального паросочетания
  2. Max паросочетание с \(\sigma(j) = i\)
    min путь в \(G\) между вершинами \(i, j\)
  3. Floyd–Warshall  \(\Rightarrow\)  все пути  \(\Rightarrow\)  allocation curves
  4. Алгоритм 1 за \(O(n^3)\)
  5. Алгоритм 2 за \(O(nm^2)\)

Граф возможностей (augmentation graph)

1
1
j
j
i

Граф изменений (augmentating subgraph)

1
1
j
t
i
\sigma \to \sigma'
\sigma'
\sigma

\(t\) единственно

Свойства \(H^{\sigma \to \sigma'}\): структура

1
1
j
t
i
\sigma'
\sigma

все входящие и исходящие степени

в \(H^{\sigma \to \sigma'}\) равны \(1\)

Свойства \(H^{\sigma \to \sigma'}\): циклы

очевидно

\Rightarrow
\Rightarrow

\(H\) разбивается на циклы

Фиксирование \(\sigma(x) = y\)

Фиксирование \(\sigma(x) = y\)

(i, j) \in C_0
(x, y) \in C_0
\sigma^* \cup C_0

Фиксирование \(\sigma(x) = y\)

\Rightarrow
\Rightarrow

\(\sigma'\) не оптимально

отрицательный цикл в \(G_v\)

\Rightarrow
\Rightarrow

\(\sigma^*\) не оптимально

\sigma^* \cup C_0
\sigma^* \cup C_0

Фиксирование \(\sigma(x) = y\)

Кратчайшие пути

*
+

Обратная \(\sigma\)

\(\sigma: J' \to I \)

\(\sigma(j) = i \)

\(\sigma^{-1}: I \to J' \)

\(\sigma^{-1}(i) = j \)

\(V^{\sigma}_{-i} \,= \, V^{\sigma} - \pi_{i, \sigma^{-1}(i)} b_i\)

\(\pi_{\sigma(j), j}  b_{\sigma(j)} \,=\, \pi_{i, \sigma^{-1}(i)} b_i\)

\(V^{\sigma} \,= \, V^{\sigma}_{-i} + \pi_{i, \sigma^{-1}(i)} b_i\)

для произвольной ставки \(b_i:\)

1
1
i
j
b_i
\sigma

Configuration line

(b_i, b_{-i}) \, \to \, Pr[\text{click on ad i}]
t_1
t_2
t_3
t_4
0
1
0
Pr
b_i
a_i(b_i)

(здесь докладчик рисует картинки

и машет руками)

Нужные configuration line

\Rightarrow

коэффициент \(\pi_{x, y}\) постоянен

\Rightarrow

максимизируем \(V^{\sigma}_{-x}\) по \(\sigma\)

O(n^3)
O(n^3)
O(n^3)?
O(nm^2)
O(nm^2)
O(nm^2)

Upper envelope для \(m\) прямых за \(O(m^2)\)

  1. Пусть даны \(m\) прямых вида \(y = a_i x + b_i\)
  2. Добавляем прямые по очереди
  3. Для каждой сохраняем её отрезки максимальности
  4. При добавлени:
    • ищем \(\le m\) точек пересечения,
    • \(\le 2\) из них максимальны
    • Изменяем \(\le m\) отрезков максимальности

Спасибо за внимание!

Made with Slides.com