Александр Куликов — segmento — icbda2016
TRANSCRIPT
Александр Куликов
Применение потоковых алгоритмов для составления портрета аудитории
2
RTB
• Ход аукциона• Терминология
3
Нагрузка на железо4
• 30k RPS (2.5 млрд запросов в день)• > 250 млн профилей• > 1 млн сайтов
• Несколько десятков серверов• Hadoop-кластер
Что хотят заказчики?5
• Показы• Посещения сайтов• Хорошие поведенческие характеристики— большое
количество посещённых страниц, долгие сессии, ...• Конверсии — покупки, заполнения формы обратной
связи, тест-драйвы,…
Данные6
• Базовая доступная информация: OS, браузер, ...
• Прочая информация
Всё, что научимся добывать сами
… или найдем, где достать
Потоковые алгоритмы – что?
7
Позволяют что-то посчитать в условиях ограниченной памяти <<объёма обрабатываемых данных
Потоковые алгоритмы – зачем?
8
Хотим отслеживать показатели здоровья системы:
• качество прогнозов
• характеристики пользовательского трафика
• … и другие
Хотим прямо сейчас
Что будем оценивать?9
Медианы и распределения характеристик трафика
Распределение
11 01
12
0.00
0.02
0.04
0.06
0.08
0.10
0.12
0.14
150 155 160 165 165 175 180 185 190 (На самом деле плотность)
Распределение
13
Это среднее
0.00
0.02
0.04
0.06
0.08
0.10
0.12
0.14
150 155 160 165 170 175 180 185 190
Среднее против медианы
14 Среднее против медианы
А это — медиана
0.00
0.02
0.04
0.06
0.08
0.10
0.12
0.14
150 155 160 165 170 175 180
Какая разница?!
185 190
15
Time Bandits (1981, Monty Python)
Среднее против медианы
16
0.00
0.02
0.04
0.06
0.08
0.10
0.12
0.14
130 140 150 160 170 180 190
L
Среднее против медианы
Мотивирующий пример – интересы трафика
17 02
Мотивирующий пример –интересы трафика
• Умеем определять интересы пользователей• Хотим составить портрет ЦА
18
Мотивирующий пример –интересы трафика
19
Интересы
20 03
Интересы21
Пётр
«Спортивные автомобили»: очень интересно
«Бары и рестораны»: интересно
«Детская одежда»: неинтересно
Интересы22
«Спортивные автомобили»: очень интересно, неинтересно
«Бары и рестораны»: интересно, интересно
«Детская одежда»: неинтересно, очень интересно
Василий
Интересы23
«Спортивные автомобили»: очень интересно, неинтересно
«Бары и рестораны»: интересно, интересно
«Детская одежда»: неинтересно, очень интересно
1.0
0.7
0.0
0.0
0.7
0.9
Интересы трафика
24 04
Интересы трафика25
• Удобно рассматривать распределение• Должно выглядеть примерно так
Бары и рестораны
Неинтересно Интересно
26 Интересы трафика
Весь траффик
Бары и рестораныТовары для детей Спортивные авто
Интересы трафика27
Оставим только хороший
траффик —пользователей,
совершивших покупки
28 Интересы трафика
«Хороший» траффик
Бары и рестораныТовары для детей Спортивные авто
Что можно получить?29
Эффективный тул для визуализации, сравнения,
и анализа предпочтений ЦА
Алгоритмы оценки распределения
30
• Автоматически подключать/отключать сегменты
• Исследовать трафик с различных площадок
Сортировка31
Все умеютРаботает точно
Затратна по памяти
+
-
АлгоритмМанро-Патерсона
32 05
33
34 Алгоритм Манро-Патерсона
Требует больше одного проходаТребует знаний о размере выборки
За разрешённое количество проходов даёт точное решение+
-
35 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 0
36 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01
37 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01 3
38 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01 2 3
39 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
1 02 2 3
+1
40 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
1 12 2 3
+1
41 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 12 2 3
+1
42 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 31 2 2
+1
43 Алгоритм Манро-Патерсона
1, 2, 3, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 31 2 2
+1
44 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
3 32 2 2
+1
45 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
3 32 2 2
АлгоритмКанна-Гринвальда
47 05
48
49 Алгоритм Канна-Гринвальда
• Использует более сложную структуру данных, хранящую их в агрегированной форме
• Отфильтровывает значения, поддерживая заданную точность
50 Алгоритм Канна-Гринвальда
Неточный, но даёт ответ с заданной погрешностью
Работает за 1 проход+-
51Статьи
Selection and sorting with limited storage, Манро Дж., Патерсон М. (1980) —://polylogblog.files.wordpress.com/2009/08/80munro-median.pdf
Space-Efficient Online Computation of Quantile Summaries, Канна С., Гринвальд М. (2001)http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf
52 Реализация и железо
Python, Hadoop
HBase, Kafka, Spark
Спасибо!