Download - Александр Куликов — Segmento — ICBDA2016
![Page 1: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/1.jpg)
Александр Куликов
Применение потоковых алгоритмов для составления портрета аудитории
![Page 2: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/2.jpg)
2
![Page 3: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/3.jpg)
RTB
• Ход аукциона• Терминология
3
![Page 4: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/4.jpg)
Нагрузка на железо4
• 30k RPS (2.5 млрд запросов в день)• > 250 млн профилей• > 1 млн сайтов
• Несколько десятков серверов• Hadoop-кластер
![Page 5: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/5.jpg)
Что хотят заказчики?5
• Показы• Посещения сайтов• Хорошие поведенческие характеристики— большое
количество посещённых страниц, долгие сессии, ...• Конверсии — покупки, заполнения формы обратной
связи, тест-драйвы,…
![Page 6: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/6.jpg)
Данные6
• Базовая доступная информация: OS, браузер, ...
• Прочая информация
Всё, что научимся добывать сами
… или найдем, где достать
![Page 7: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/7.jpg)
Потоковые алгоритмы – что?
7
Позволяют что-то посчитать в условиях ограниченной памяти <<объёма обрабатываемых данных
![Page 8: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/8.jpg)
Потоковые алгоритмы – зачем?
8
Хотим отслеживать показатели здоровья системы:
• качество прогнозов
• характеристики пользовательского трафика
• … и другие
Хотим прямо сейчас
![Page 9: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/9.jpg)
Что будем оценивать?9
Медианы и распределения характеристик трафика
![Page 10: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/10.jpg)
![Page 11: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/11.jpg)
Распределение
11 01
![Page 12: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/12.jpg)
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 (На самом деле плотность)
Распределение
![Page 13: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/13.jpg)
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
Среднее против медианы
![Page 14: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/14.jpg)
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
![Page 15: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/15.jpg)
15
Time Bandits (1981, Monty Python)
Среднее против медианы
![Page 16: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/16.jpg)
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
Среднее против медианы
![Page 17: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/17.jpg)
Мотивирующий пример – интересы трафика
17 02
![Page 18: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/18.jpg)
Мотивирующий пример –интересы трафика
• Умеем определять интересы пользователей• Хотим составить портрет ЦА
18
![Page 19: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/19.jpg)
Мотивирующий пример –интересы трафика
19
![Page 20: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/20.jpg)
Интересы
20 03
![Page 21: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/21.jpg)
Интересы21
Пётр
«Спортивные автомобили»: очень интересно
«Бары и рестораны»: интересно
«Детская одежда»: неинтересно
![Page 22: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/22.jpg)
Интересы22
«Спортивные автомобили»: очень интересно, неинтересно
«Бары и рестораны»: интересно, интересно
«Детская одежда»: неинтересно, очень интересно
Василий
![Page 23: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/23.jpg)
Интересы23
«Спортивные автомобили»: очень интересно, неинтересно
«Бары и рестораны»: интересно, интересно
«Детская одежда»: неинтересно, очень интересно
1.0
0.7
0.0
0.0
0.7
0.9
![Page 24: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/24.jpg)
Интересы трафика
24 04
![Page 25: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/25.jpg)
Интересы трафика25
• Удобно рассматривать распределение• Должно выглядеть примерно так
Бары и рестораны
Неинтересно Интересно
![Page 26: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/26.jpg)
26 Интересы трафика
Весь траффик
Бары и рестораныТовары для детей Спортивные авто
![Page 27: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/27.jpg)
Интересы трафика27
Оставим только хороший
траффик —пользователей,
совершивших покупки
![Page 28: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/28.jpg)
28 Интересы трафика
«Хороший» траффик
Бары и рестораныТовары для детей Спортивные авто
![Page 29: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/29.jpg)
Что можно получить?29
Эффективный тул для визуализации, сравнения,
и анализа предпочтений ЦА
![Page 30: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/30.jpg)
Алгоритмы оценки распределения
30
• Автоматически подключать/отключать сегменты
• Исследовать трафик с различных площадок
![Page 31: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/31.jpg)
Сортировка31
Все умеютРаботает точно
Затратна по памяти
+
-
![Page 32: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/32.jpg)
АлгоритмМанро-Патерсона
32 05
![Page 33: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/33.jpg)
33
![Page 34: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/34.jpg)
34 Алгоритм Манро-Патерсона
Требует больше одного проходаТребует знаний о размере выборки
За разрешённое количество проходов даёт точное решение+
-
![Page 35: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/35.jpg)
35 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 0
![Page 36: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/36.jpg)
36 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01
![Page 37: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/37.jpg)
37 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01 3
![Page 38: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/38.jpg)
38 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
0 01 2 3
![Page 39: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/39.jpg)
39 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
1 02 2 3
+1
![Page 40: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/40.jpg)
40 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
1 12 2 3
+1
![Page 41: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/41.jpg)
41 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 12 2 3
+1
![Page 42: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/42.jpg)
42 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 31 2 2
+1
![Page 43: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/43.jpg)
43 Алгоритм Манро-Патерсона
1, 2, 3, 2, 3, 1, 1, 2, 2
5 ячеек памяти
2 31 2 2
+1
![Page 44: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/44.jpg)
44 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
3 32 2 2
+1
![Page 45: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/45.jpg)
45 Алгоритм Манро-Патерсона
1, 3, 2, 2, 3, 1, 1, 2, 2
5 ячеек памяти
3 32 2 2
![Page 46: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/46.jpg)
![Page 47: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/47.jpg)
АлгоритмКанна-Гринвальда
47 05
![Page 48: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/48.jpg)
48
![Page 49: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/49.jpg)
49 Алгоритм Канна-Гринвальда
• Использует более сложную структуру данных, хранящую их в агрегированной форме
• Отфильтровывает значения, поддерживая заданную точность
![Page 50: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/50.jpg)
50 Алгоритм Канна-Гринвальда
Неточный, но даёт ответ с заданной погрешностью
Работает за 1 проход+-
![Page 51: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/51.jpg)
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
![Page 52: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/52.jpg)
52 Реализация и железо
Python, Hadoop
HBase, Kafka, Spark
![Page 53: Александр Куликов — Segmento — ICBDA2016](https://reader033.vdocuments.net/reader033/viewer/2022042619/58700b231a28ab427f8b717f/html5/thumbnails/53.jpg)
Спасибо!