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