Data mining in RTB

84247b5c51d02231a10848ab98ec7d67?s=47 Pavel
April 07, 2014

Data mining in RTB

84247b5c51d02231a10848ab98ec7d67?s=128

Pavel

April 07, 2014
Tweet

Transcript

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

  2. None
  3. Павел Калайдин @facultyofwonder Марат Зайнутдинов @tsundokum Ян ЛеКун* @ylecun *

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

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

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

    '13 Tutorial: Real-time Bidding: A New Frontier of Computational Advertising Research http://tutorial.computational-advertising.org/ Computational Advertising Stanford University MS&E 239: Introduction to Computational Advertising https://www.stanford.edu/class/msande239/
  7. Фундаментальные задачи:

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

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

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

  11. None
  12. не раздражая пользователя (healthy environment)? http://www.slideshare.net/shuaiyuancn/cikm-2013-tutorial

  13. А также:

  14. Как найти похожую аудиторию (Look-alike)? улучшение эффективности системы пресказания целевых

    действий за счёт использования данных о переходах таргетирование на похожую аудиторию за счёт использования информации о переходах (увеличение охвата). Обзор метрик, позволяющих сравнивать, насколько пользователи похожи на друг друга, основываясь на их физическом передвижении (что в нашем случае посещенные сайты). http://www.barabasilab.com/pubs/CCNR-ALB_Publications/201108-21_KDD-HumanSocialTies/201108-21_KDD-HumanSocialTies.pdf
  15. Подсчет статистики

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  37. None
  38. “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)
  39. Common-value аукцион Ценность одна и та же, но участники имеют

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

  41. Больше информации про аукционы: http://www.cs.cornell. edu/home/kleinber/networks-book/networks- book-ch09.pdf

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

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

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

  46. Предиктор

  47. None
  48. None
  49. None
  50. Что делать?

  51. None
  52. то же самое для data mining

  53. None
  54. posterior likelihood evidence prior

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

  56. None
  57. Чтобы найти

  58. likelihood (binomial distribution) для одного наблюдения: для нескольких наблюдений:

  59. prior (beta distribution)

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

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

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

  63. pseudosample size

  64. evidence (???)

  65. None
  66. posterior analytical solution grid method simulations

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

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

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

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

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

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

    по adhost)
  76. Пусть s a - величина псевдовыборки, тогда где

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

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

  79. None
  80. Нужны данные для экспериментов? 7.5Gb аукционы, показы, клики, конверсии: https://www.dropbox.com/sh/xolf5thu8jsbmfu/kBrAsSxtAN

    thanks to: Global Bidding Algorithm Competition, Apr-Dec, 2013. http://contest.ipinyou.com/
  81. Коснемся архитектуры

  82. логи, логи, логи Крутая статья сотрудника LinkedIn о том, что

    всё логи http://engineering. linkedin.com/distributed-systems/log-what-every-software-engineer-should-know- about-real-time-datas-unifying
  83. детерминированная машина Презентация функциональной базы данных от создателя языка Clojure

    и одного из ключевых разработчиков Datomic https://www. youtube.com/watch?v=Cym4TZwTCNU
  84. потоки логов

  85. Storm, Samza, S4, Akka Видео с создателем Storm, на котором

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

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

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

  89. каждый день

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

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

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

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

  94. Примеры запросов - выдайте персентили числа показов на человека -

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

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

  97. Память versus ошибка в оценке

  98. - проверка на вхождение в множество - сколько различных элементов

    в потоке (мощность) - какие элементы встречаются чаще всего (heavy-hitters) и как часто? (частоты) - сколько элементов попадает в заданный интервал (интервалы) Исправленная и дополненная версия картинки, опубликованной в этом посте
  99. 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/
  100. Посчитаем медиану

  101. 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
  102. А персентили?

  103. 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
  104. Частоты: Count-Min sketch An Improved Data Stream Summary: The Count-Min

    Sketch and its Applications
  105. w i +1 +1 +1 h 1 h 4 h

    d d Оценка - возьмем минимум из d значений.
  106. Мощность множества (количество уникальных элементов): LogLogCounter&Co

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

    максимальное число раз подряд выпала решка
  108. Что если я скажу, что это число 2?

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

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

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

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

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

    R Оригинальная статья: LogLog Counter http://algo.inria.fr/flajolet/Publications/DuFl03-LNCS.pdf
  114. None
  115. HyperLogLog - среднее гармоническое R по корзинам Оригинальная статья: HyperLogLog

    Counter http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf Серия постов на тему HLL в блоге AggregateKnowledge: http://blog.aggregateknowledge.com/tag/hll/
  116. Проверка на вхождение: старый добрый фильтр Блума Bloom Filters: How

    I learned to stop worrying about errors and love memory efficient data structures 3 Rules of thumb for Bloom Filters (оценка ошибки) Попробуйте погуглить фото Бертона Говарда Блума - его не найти!
  117. i h 1 h 2 h k 1 1 1

    0 0 0 0 0 0 0 0 0 0 0 0 0
  118. Вопросы и ответы

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