Потоковые алгоритмы в задачах обработки больших...

Preview:

Citation preview

1

Потоковые алгоритмы

в задачах обработки

больших данных

Виктор Евстратов,

data scientist Segmento

2

3

RTB

• Ход аукциона

• Терминология

4

Нагрузка и железо

• 30k RPS (2.5 млрд запросов в день)

• > 250 млн профилей

• > 1 млн сайтов

• Несколько десятков серверов

• Hadoop-кластер

5

Что хотят заказчики

• Показы

• Посещения сайтов

• Хорошие поведенческие характеристики—

большое количество посещённых страниц,

долгие сессии, ...

• Конверсии — покупки, заполнения формы

обратной связи, тест-драйвы,…

6

Данные

• Базовая доступная информация: OS, браузер, ...

• Прочая информация

Всё, что научимся добывать сами

… или найдем, где купить

7

Потокововые алгоритмы — что?

Позволяют что-то посчитать

в условиях ограниченной памяти <<

объёма обрабатываемых данных

8

Потокововые алгоритмы — зачем?

Хотим отслеживать показатели

здоровья системы:

качество прогнозов

характеристики пользовательского трафика

… и другие

9

Потокововые алгоритмы — зачем?

Хотим отслеживать показатели

здоровья системы:

качество прогнозов

характеристики

пользовательского трафика

… и другие

Хотим прямо сейчас

10

Что будем оценивать?

Медианы и распределения

характеристик трафика

11

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

17

Мотивирующий пример —

интересы трафика

• Умеем определять интересы пользователей

• Хотим составить портрет ЦА

18

Мотивирующий пример —

интересы трафика

19

Мотивирующий пример —интересы трафика

20

Интересы

«Спортивные автомобили»: очень интересно

«Бары и рестораны»: интересно

«Детская одежда»: неинтересно

Пётр

21

Интересы

«Спортивные автомобили»: очень интересно, неинтересно

«Бары и рестораны»: интересно, интересно

«Детская одежда»: неинтересно, очень интересно

Василий

22

Интересы

«Спортивные автомобили»: очень интересно, неинтересно

«Бары и рестораны»: интересно, интересно

«Детская одежда»: неинтересно, очень интересно

1.0

0.7

0.0

0.0

0.7

0.9

23

Интересы трафика

• Удобно рассматривать распределение

• Должно выглядеть примерно так

Бары и рестораны

Неинтересно Интересно

24

Интересы трафика

Весь траффик

Бары и рестораныТовары для детей Спортивные авто

25

Интересы трафика

Оставим только хороший траффик —

пользователей, совершивших покупки

26

Интересы трафика

«Хороший» траффик

Бары и рестораныТовары для детей Спортивные авто

27

Что можно получить?

Эффективный тул для визуализации, сравнения,

и анализа предпочтений ЦА

28

Что ещё можно сделать?

• Автоматически подключать/отключать сегменты

• Исследовать трафик с различных площадок

• ...

29

Алгоритмы

оценки распределения

• С помощью сортировки

• Munro-Paterson

• Khanna-Greenwald

30

Сортировка

Все умеют

Работает точно

Затратна по памяти

+

-

31

Алгоритм

Манро-Патерсона

32

33

Алгоритм

Манро-Патерсона

Требует больше одного прохода

Требует знаний о размере выборки

За разрешённое количество

проходов даёт точное решение

+

-

34

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

0 0

35

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

0 01

36

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

0 01 3

37

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

0 01 2 3

38

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

1 02 2 3

+1

39

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

1 12 2 3

+1

40

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

2 12 2 3

+1

41

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

2 31 2 2

+1

42

Алгоритм

Манро-Патерсона

1, 2, 3, 2, 3, 1, 1, 2, 2

5 ячеек памяти

2 31 2 2

+1

43

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

3 32 2 2

+1

44

Алгоритм

Манро-Патерсона

1, 3, 2, 2, 3, 1, 1, 2, 2

5 ячеек памяти

3 32 2 2

45

46

Алгоритм

Канна-Гринвальда

47

48

Алгоритм

Канна-Гринвальда

• Использует более сложную структуру

данных, хранящую их в

агрегированной форме

• Отфильтровывает значения,

поддерживая заданную точность

49

Алгоритм

Канна-Гринвальда

Неточный, но даёт ответ с заданной погрешностью

Работает за 1 проход

+

-

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

52

Спасибо !

Recommended