119
Аналитика данных в RTB

Data Mining in RTB

Embed Size (px)

DESCRIPTION

Слайды к лекции для студентов Data Mining Labs http://vk.com/datamininglabs 7 апреля 2014

Citation preview

Page 1: Data Mining in RTB

Аналитика данных в RTB

Page 2: Data Mining in RTB
Page 3: Data Mining in RTB

Павел Калайдин @facultyofwonderМарат Зайнутдинов @tsundokum

Ян ЛеКун* @ylecun

* на самом деле нет

Page 4: Data Mining in RTB

<скриншот нашей рекламы в ретаргетинге>

Page 5: Data Mining in RTB

http://cmsummit.com/behindthebanner/credits: http://cmsummit.com/behindthebanner/

Page 6: Data Mining in RTB

RTB - аукцион рекламных показов в реальном времени

A CIKM '13 Tutorial: Real-time Bidding: A New Frontier of Computational Advertising Researchhttp://tutorial.computational-advertising.org/

Computational AdvertisingStanford University MS&E 239: Introduction to Computational Advertising

https://www.stanford.edu/class/msande239/

Page 7: Data Mining in RTB

Фундаментальные задачи:

Page 8: Data Mining in RTB

Best match: кому что когда показывать?

Page 9: Data Mining in RTB

Campaign performance: как достичь максимальных показателей в рамках

бюджета рекламной кампании?

Page 10: Data Mining in RTB

Most revenue: как получить максимум прибыли при текущем трафике?

Page 11: Data Mining in RTB
Page 12: Data Mining in RTB

не раздражая пользователя (healthy environment)?

http://www.slideshare.net/shuaiyuancn/cikm-2013-tutorial

Page 13: Data Mining in RTB

А также:

Page 14: Data Mining in RTB

Как найти похожую аудиторию (Look-alike)?

улучшение эффективности системы пресказания целевых действий за счёт использования данных о переходах таргетирование на похожую аудиторию за счёт использования информации о переходах (увеличение охвата).

Обзор метрик, позволяющих сравнивать, насколько пользователи похожи на друг друга, основываясь на их физическом передвижении (что в нашем случае посещенные сайты).

http://www.barabasilab.com/pubs/CCNR-ALB_Publications/201108-21_KDD-HumanSocialTies/201108-21_KDD-HumanSocialTies.pdf

Page 15: Data Mining in RTB

Подсчет статистики

Page 16: Data Mining in RTB

Map-reduce задачиСкетчи

Page 17: Data Mining in RTB

A/B тестыDOE (design of experiment)

Page 18: Data Mining in RTB
Page 19: Data Mining in RTB

Медиапланирование, прогнозы,оценка хода кампании

Page 20: Data Mining in RTB

Мониторинг: как понять, когда что-то идет не так?

Page 21: Data Mining in RTB

Рекомендации: что показать на баннере?

Page 22: Data Mining in RTB

Предсказание стоимости покупкиCPA ~ чек

Page 23: Data Mining in RTB

Поиск закономерностей и аномалий

Page 24: Data Mining in RTB
Page 25: Data Mining in RTB

и так далее.Это все задачи отдела Data Science

Page 26: Data Mining in RTB

Но вернемся к аукционам

Page 27: Data Mining in RTB

Голландский (цена вверх)

Page 28: Data Mining in RTB

Английский (цена вниз)

Page 29: Data Mining in RTB

Закрытый первой цены

Page 30: Data Mining in RTB

Закрытый второй цены

Page 31: Data Mining in RTB

Закрытый первой цены = английскийЗакрытый второй цены = голландский

Page 32: Data Mining in RTB

RTB - закрытый аукцион второй цены

Page 33: Data Mining in RTB

Еще бывают:все платят (архитектурный тендер)обобщенный второй цены (adwords)

Page 34: Data Mining in RTB

Как рассчитать ставку?

Page 35: Data Mining in RTB

Credits: http://www.cs.cornell.edu/home/kleinber/networks-book/networks-book-ch09.pdf

Page 36: Data Mining in RTB

Истинная ценность?

Page 37: Data Mining in RTB
Page 38: Data Mining in RTB

“The best minds of my generation are thinking about how to make people click ads…That sucks.” - Jeff Hammerbacher, co-founder and chief scientist, Cloudera (source)

Page 39: Data Mining in RTB

Common-value аукционЦенность одна и та же, но участники имеют разные

оценки

Page 40: Data Mining in RTB

Например, несколько ретаргетеров на одном магазине

Page 42: Data Mining in RTB

Предсказание второй цены

Page 43: Data Mining in RTB
Page 44: Data Mining in RTB

Т.е. так называемая задача distribution fitting

Page 45: Data Mining in RTB

Управление скоростью кампании

Page 46: Data Mining in RTB

Предиктор

Page 47: Data Mining in RTB
Page 48: Data Mining in RTB
Page 49: Data Mining in RTB
Page 50: Data Mining in RTB

Что делать?

Page 51: Data Mining in RTB
Page 52: Data Mining in RTB

то же самое для data mining

Page 53: Data Mining in RTB
Page 54: Data Mining in RTB

posterior

likelihood evidence

prior

Page 55: Data Mining in RTB

Для чего нам нужен posterior?

Page 56: Data Mining in RTB
Page 57: Data Mining in RTB

Чтобы найти

Page 58: Data Mining in RTB

likelihood (binomial distribution)

для одного наблюдения:

для нескольких наблюдений:

Page 59: Data Mining in RTB

prior (beta distribution)

Page 60: Data Mining in RTB

можно использовать данные, чтобы найти параметры бета-распределения

Page 61: Data Mining in RTB

Используем данные дважды? Переобучаем?

Page 62: Data Mining in RTB

empirical bayes: с удовольствием!

Page 63: Data Mining in RTB

pseudosample size

Page 64: Data Mining in RTB

evidence (???)

Page 65: Data Mining in RTB
Page 66: Data Mining in RTB

posterior

analytical solutiongrid methodsimulations

Page 67: Data Mining in RTB
Page 68: Data Mining in RTB

Бета-распределение любит биномиальное

Page 69: Data Mining in RTB

это называется conjugate priors

Page 70: Data Mining in RTB

А ещё бета-распределение “любит” бета-распределение, а нормальное - нормальное.

Page 71: Data Mining in RTB

Что делать с результатом?

Page 72: Data Mining in RTB
Page 73: Data Mining in RTB

Правильный подсчёт CTR

Page 74: Data Mining in RTB
Page 75: Data Mining in RTB

Задача

Найдите формулу для подсчёта CTR по adhost:bannerPlacement (с prior по adhost)

Page 76: Data Mining in RTB

Пусть sa - величина псевдовыборки, тогда

где

Page 77: Data Mining in RTB

Задача

Найдите формулу для подсчёта adhost:banner_id (с независимыми prior по adhost и banner_id)

Page 78: Data Mining in RTB

Перерыв,после которого мы обсудим решение задачи

Page 79: Data Mining in RTB
Page 80: Data Mining in RTB

Нужны данные для экспериментов?7.5Gb

аукционы, показы, клики, конверсии: https://www.dropbox.com/sh/xolf5thu8jsbmfu/kBrAsSxtAN

thanks to: Global Bidding Algorithm Competition, Apr-Dec, 2013.http://contest.ipinyou.com/

Page 81: Data Mining in RTB

Коснемся архитектуры

Page 83: Data Mining in RTB

детерминированная машина

Презентация функциональной базы данных от создателя языка Clojure и одного из ключевых разработчиков Datomic https://www.youtube.com/watch?v=Cym4TZwTCNU

Page 84: Data Mining in RTB

потоки логов

Page 85: Data Mining in RTB

Storm, Samza, S4, Akka

Видео с создателем Storm, на котором он очень кратко рассказывает про своё видение архитектуры для bid data http://www.infoq.com/interviews/marz-lambda-architecture

Page 86: Data Mining in RTB

Couchbase, Redis

Page 87: Data Mining in RTB

программисты не знают характер работ по анализу данных

Page 88: Data Mining in RTB

поэтому доставайте архитектора

Page 89: Data Mining in RTB

каждый день

Page 90: Data Mining in RTB

пробуйте разные способы для одной и той же задачи

Page 91: Data Mining in RTB

инвестируйте в свои инструменты

Page 92: Data Mining in RTB

</архитектура>

Page 93: Data Mining in RTB

Вернемся к подсчету статистики

Page 94: Data Mining in RTB

Примеры запросов

- выдайте персентили числа показов на человека- какое число уникальных пользователей по сайтам?- рассчитываемся с SSP за месяц. Нужна выгрузка трат за весь март

Page 95: Data Mining in RTB

В большинстве случаев нас устроит примерная оценка

Page 96: Data Mining in RTB

Вероятностные структуры данных (скетчи)

Page 97: Data Mining in RTB

Памятьversus

ошибка в оценке

Page 98: Data Mining in RTB

- проверка на вхождение в множество - сколько различных элементов в потоке (мощность) - какие элементы встречаются чаще всего (heavy-hitters) и как часто? (частоты) - сколько элементов попадает в заданный интервал (интервалы)

Исправленная и дополненная версия картинки, опубликованной в этом посте

Page 99: Data Mining in RTB

Frugal streaming: обработка по мере поступления,

требуется супер мало памяти

Свежая статья (2013 г.) http://link.springer.com/chapter/10.1007/978-3-642-40273-9_7 ($)Обсуждение: http://blog.aggregateknowledge.com/2013/09/16/sketch-of-the-day-frugal-streaming/

Page 100: Data Mining in RTB

Посчитаем медиану

Page 101: Data Mining in RTB

frugal <- function(stream) {

m <- 0

for (val in stream) {

if (val > m)

m = m + 1

else if (val < m)

m = m - 1

}

return(m)

}

Требование по памяти: 1 int

Page 102: Data Mining in RTB

А персентили?

Page 103: Data Mining in RTB

frugal_1u <- function(stream, m = 0, q = 0.5) {

m <- 0

for (val in stream) {

if (val > m && runif(1) > 1 - q)

m = m + 1

else if (val < m && runif(1) > q)

m = m - 1

}

return(m)

} Есть еще улучшенный frugal_2u с переменным шагомКод на R: https://gist.github.com/kalaidin/9974919

IPython notebook: http://nbviewer.ipython.org/gist/kalaidin/9976120

Page 104: Data Mining in RTB

Частоты: Count-Min sketch

An Improved Data Stream Summary: The Count-Min Sketch and its Applications

Page 105: Data Mining in RTB

w

i

+1

+1

+1

h1 h

4

hd

d

Оценка - возьмем минимум из d значений.

Page 106: Data Mining in RTB

Мощность множества (количество уникальных элементов):

LogLogCounter&Co

Page 107: Data Mining in RTB

Представьте, что сегодня утром я бросал монетку и записал, какое максимальное

число раз подряд выпала решка

Page 108: Data Mining in RTB

Что если я скажу, что это число 2?

Page 109: Data Mining in RTB

А если это число 100?

Page 110: Data Mining in RTB

В каком случае я бросал дольше?

Page 111: Data Mining in RTB

Нас интересуют паттерны в хешах (число 0 = решек в начале)

Page 112: Data Mining in RTB

оценка - 2R, где R - максимальное число лидирующих нулей

Page 113: Data Mining in RTB

LogLog: используем M корзин, в каждой из которой храним свой R

Оригинальная статья: LogLog Counterhttp://algo.inria.fr/flajolet/Publications/DuFl03-LNCS.pdf

Page 114: Data Mining in RTB
Page 115: Data Mining in RTB

HyperLogLog - среднее гармоническое R по корзинам

Оригинальная статья: HyperLogLog Counterhttp://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf

Серия постов на тему HLL в блоге AggregateKnowledge:http://blog.aggregateknowledge.com/tag/hll/

Page 116: Data Mining in RTB

Проверка на вхождение: старый добрый фильтр Блума

Bloom Filters: How I learned to stop worrying about errors and love memory efficient data structures3 Rules of thumb for Bloom Filters (оценка ошибки)

Попробуйте погуглить фото Бертона Говарда Блума - его не найти!

Page 117: Data Mining in RTB

ih1

h2

hk

1 1 10 0 0 0 0 0 0 0 0 0 0 0 0

Page 118: Data Mining in RTB

Вопросы и ответы

Page 119: Data Mining in RTB

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