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

52
1 Потоковые алгоритмы в задачах обработки больших данных Виктор Евстратов, data scientist Segmento

Upload: ontico

Post on 16-Apr-2017

753 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

1

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

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

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

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

data scientist Segmento

Page 2: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

2

Page 3: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

3

RTB

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

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

Page 4: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

4

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

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

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

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

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

• Hadoop-кластер

Page 5: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

5

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

• Показы

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

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

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

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

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

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

Page 6: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

6

Данные

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

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

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

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

Page 7: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

7

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

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

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

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

Page 8: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

8

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

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

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

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

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

… и другие

Page 9: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

9

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

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

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

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

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

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

… и другие

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

Page 10: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

10

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

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

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

Page 11: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

11

Page 12: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

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)

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)

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)

15

Среднее против медианы

Time Bandits (1981, Monty Python)

Page 16: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

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)

17

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

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

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

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

Page 18: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

18

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

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

Page 19: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

19

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

Page 20: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

20

Интересы

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

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

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

Пётр

Page 21: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

21

Интересы

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

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

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

Василий

Page 22: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

22

Интересы

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

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

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

1.0

0.7

0.0

0.0

0.7

0.9

Page 23: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

23

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

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

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

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

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

Page 24: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

24

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

Весь траффик

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

Page 25: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

25

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

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

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

Page 26: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

26

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

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

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

Page 27: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

27

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

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

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

Page 28: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

28

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

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

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

• ...

Page 29: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

29

Алгоритмы

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

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

• Munro-Paterson

• Khanna-Greenwald

Page 30: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

30

Сортировка

Все умеют

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

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

+

-

Page 31: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

31

Алгоритм

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

Page 32: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

32

Page 33: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

33

Алгоритм

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

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

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

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

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

+

-

Page 34: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

34

Алгоритм

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

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

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

0 0

Page 35: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

35

Алгоритм

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

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

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

0 01

Page 36: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

36

Алгоритм

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

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

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

0 01 3

Page 37: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

37

Алгоритм

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

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

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

0 01 2 3

Page 38: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

38

Алгоритм

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

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

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

1 02 2 3

+1

Page 39: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

39

Алгоритм

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

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

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

1 12 2 3

+1

Page 40: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

40

Алгоритм

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

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

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

2 12 2 3

+1

Page 41: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

41

Алгоритм

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

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

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

2 31 2 2

+1

Page 42: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

42

Алгоритм

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

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

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

2 31 2 2

+1

Page 43: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

43

Алгоритм

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

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

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

3 32 2 2

+1

Page 44: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

44

Алгоритм

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

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

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

3 32 2 2

Page 45: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

45

Page 46: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

46

Алгоритм

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

Page 47: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

47

Page 48: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

48

Алгоритм

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

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

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

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

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

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

Page 49: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

49

Алгоритм

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

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

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

+

-

Page 50: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

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 52: Потоковые алгоритмы в задачах обработки больших данных / Виктор Евстратов (Segmento)

52

Спасибо !