Эффективные Алгоритмы Поиска Подобных Объектов Для...

35
Эффективные алгоритмы поиска подобных объектов для терабайтов данных 1

Upload: spbdatascience

Post on 09-Jan-2017

206 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Эффективные алгоритмы поиска подобных объектов для терабайтов данных

1

Манхэттенское расстояние и евклидова метрика

2

Расстояние Джаккарда

3

Look aLike

4

Задача: Look aLike

example.comпросмотрели >=2 страниц

Вся аудитория которую мы видим

Интересная аудитория, которую надо найти

5

6

У нас было:1) 250 000 000+ профилей2) 1 000 000+ - площадок3) 30000 RPS (2.5 млрд. в день)

7

Что такое для нас профиль?

8

Контекстная информация (где, откуда, с какого устройства)

offline данные

История поведения в интернете

Описывать профиль можно по-разному:

9

kaggle.com westerns.ru

guns.ru habrahabr.ru

10viz by Pavel Kalaidin

Чистим данные1) Выкидываем профили с недостаточной статистикой2) И сайты, с которых идет больше всего и меньше всего трафика

11

MinHash и расстояние Джаккарда

12

Матричное представление профилейhosts/profiles index

kaggle.com 1 1 0 1

habrahabr.ru 2 0 1 0

machinelearning.ru 3 1 0 1

analyticsvidhya.com 4 0 1 0

13

14

Jaccard=0 Jaccard=1

Jaccard=0

Хэш-функции

index kaggle.com machinelearning.ru Minhash

(index + 1) mod 3

2 1 1

(2*index + 1) mod 3

0 1 0

15

index

kaggle.com 1

machinelearning.ru 3

MinHash-представление

(x + 1) mod 3 1 0 1

(2x + 1) mod 3 0 0 0

16

17

Jaccard=0.5 Jaccard=1

Jaccard=0.5

Как выбрать количество хэш-функций?

18

Например, что бы посчитать с ошибкой не большей чем 0.1 нам нужно 100 хэш-функций, но уже 10000 с ошибкой не большей чем 0.01.

Как выбрать параметры хэш-функций?

a, b - случайные целые числа < max(x)c - простое число, чуть большее чем max(x), общее для всех

19

Locality Sensitive Hashing

20

minhash1 1 1

minhash2 3 3

minhash3 1 1

minhash4 2 4

Banding

band1

band2

21

Этап выделения профилей для расчета растояний

band1 band2 band3 band4

- целевая аудитория (просмотрел на example.com >=2 страниц)

22

Интересный бэнд

УдаляемУдаляем

k - ближайших соседей в пределах интересного бэнда

23

Как выбрать количество бэндов?

24

25

Но эксперимент никто не отменял

26

Долго, дорого и очень хорошо:) Быстро, дешево и не очень хорошо

Куда еще смотрим?

27

28

DIMSUMDimension Independent Matrix Square using MapReduce

29

Что у нас есть?

Матрица A размерности MxN, где M >> N и 0 <= a <=1 и

кол-во ненулевых элементов в строке <= L << N

machinelearning.ru habrahabr.ru

1 4

8 1

7 9

30

Что хотим найти?Похожесть сайтов на основе их посещения аудиторией.

31

Зачем?Cнижения размерности для первого алгоритма.

32

Наивно, долго, точно

33

Dimsum, быстро и почти точно

Стек используемых технологий:1) Python2) Hadoop3) Luigi4) Hbase

34

Спасибо!

35