Александр Куликов — segmento — icbda2016

53
Александр Куликов Применение потоковых алгоритмов для составления портрета аудитории

Upload: rusbase

Post on 07-Jan-2017

408 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: Александр Куликов — Segmento — ICBDA2016

Александр Куликов

Применение потоковых алгоритмов для составления портрета аудитории

Page 2: Александр Куликов — Segmento — ICBDA2016

2

Page 3: Александр Куликов — Segmento — ICBDA2016

RTB

• Ход аукциона• Терминология

3

Page 4: Александр Куликов — Segmento — ICBDA2016

Нагрузка на железо4

• 30k RPS (2.5 млрд запросов в день)• > 250 млн профилей• > 1 млн сайтов

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

Page 5: Александр Куликов — Segmento — ICBDA2016

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

• Показы• Посещения сайтов• Хорошие поведенческие характеристики— большое

количество посещённых страниц, долгие сессии, ...• Конверсии — покупки, заполнения формы обратной

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

Page 6: Александр Куликов — Segmento — ICBDA2016

Данные6

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

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

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

… или найдем, где достать

Page 7: Александр Куликов — Segmento — ICBDA2016

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

7

Позволяют что-то посчитать в условиях ограниченной памяти <<объёма обрабатываемых данных

Page 8: Александр Куликов — Segmento — ICBDA2016

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

8

Хотим отслеживать показатели здоровья системы:

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

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

• … и другие

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

Page 9: Александр Куликов — Segmento — ICBDA2016

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

Медианы и распределения характеристик трафика

Page 10: Александр Куликов — Segmento — ICBDA2016
Page 11: Александр Куликов — Segmento — ICBDA2016

Распределение

11 01

Page 12: Александр Куликов — Segmento — ICBDA2016

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

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

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

15

Time Bandits (1981, Monty Python)

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

Page 16: Александр Куликов — Segmento — ICBDA2016

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

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

17 02

Page 18: Александр Куликов — Segmento — ICBDA2016

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

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

18

Page 19: Александр Куликов — Segmento — ICBDA2016

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

19

Page 20: Александр Куликов — Segmento — ICBDA2016

Интересы

20 03

Page 21: Александр Куликов — Segmento — ICBDA2016

Интересы21

Пётр

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

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

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

Page 22: Александр Куликов — Segmento — ICBDA2016

Интересы22

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

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

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

Василий

Page 23: Александр Куликов — Segmento — ICBDA2016

Интересы23

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

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

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

1.0

0.7

0.0

0.0

0.7

0.9

Page 24: Александр Куликов — Segmento — ICBDA2016

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

24 04

Page 25: Александр Куликов — Segmento — ICBDA2016

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

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

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

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

Page 26: Александр Куликов — Segmento — ICBDA2016

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

Весь траффик

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

Page 27: Александр Куликов — Segmento — ICBDA2016

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

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

траффик —пользователей,

совершивших покупки

Page 28: Александр Куликов — Segmento — ICBDA2016

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

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

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

Page 29: Александр Куликов — Segmento — ICBDA2016

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

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

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

Page 30: Александр Куликов — Segmento — ICBDA2016

Алгоритмы оценки распределения

30

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

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

Page 31: Александр Куликов — Segmento — ICBDA2016

Сортировка31

Все умеютРаботает точно

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

+

-

Page 32: Александр Куликов — Segmento — ICBDA2016

АлгоритмМанро-Патерсона

32 05

Page 33: Александр Куликов — Segmento — ICBDA2016

33

Page 34: Александр Куликов — Segmento — ICBDA2016

34 Алгоритм Манро-Патерсона

Требует больше одного проходаТребует знаний о размере выборки

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

-

Page 35: Александр Куликов — Segmento — ICBDA2016

35 Алгоритм Манро-Патерсона

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

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

0 0

Page 36: Александр Куликов — Segmento — ICBDA2016

36 Алгоритм Манро-Патерсона

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

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

0 01

Page 37: Александр Куликов — Segmento — ICBDA2016

37 Алгоритм Манро-Патерсона

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

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

0 01 3

Page 38: Александр Куликов — Segmento — ICBDA2016

38 Алгоритм Манро-Патерсона

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

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

0 01 2 3

Page 39: Александр Куликов — Segmento — ICBDA2016

39 Алгоритм Манро-Патерсона

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

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

1 02 2 3

+1

Page 40: Александр Куликов — Segmento — ICBDA2016

40 Алгоритм Манро-Патерсона

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

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

1 12 2 3

+1

Page 41: Александр Куликов — Segmento — ICBDA2016

41 Алгоритм Манро-Патерсона

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

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

2 12 2 3

+1

Page 42: Александр Куликов — Segmento — ICBDA2016

42 Алгоритм Манро-Патерсона

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

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

2 31 2 2

+1

Page 43: Александр Куликов — Segmento — ICBDA2016

43 Алгоритм Манро-Патерсона

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

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

2 31 2 2

+1

Page 44: Александр Куликов — Segmento — ICBDA2016

44 Алгоритм Манро-Патерсона

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

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

3 32 2 2

+1

Page 45: Александр Куликов — Segmento — ICBDA2016

45 Алгоритм Манро-Патерсона

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

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

3 32 2 2

Page 46: Александр Куликов — Segmento — ICBDA2016
Page 47: Александр Куликов — Segmento — ICBDA2016

АлгоритмКанна-Гринвальда

47 05

Page 48: Александр Куликов — Segmento — ICBDA2016

48

Page 49: Александр Куликов — Segmento — ICBDA2016

49 Алгоритм Канна-Гринвальда

• Использует более сложную структуру данных, хранящую их в агрегированной форме

• Отфильтровывает значения, поддерживая заданную точность

Page 50: Александр Куликов — Segmento — ICBDA2016

50 Алгоритм Канна-Гринвальда

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

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

Page 51: Александр Куликов — Segmento — ICBDA2016

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

52 Реализация и железо

Python, Hadoop

HBase, Kafka, Spark

Page 53: Александр Куликов — Segmento — ICBDA2016

Спасибо!