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

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

Jan 09, 2017

Download

Data & Analytics

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Эффективные Алгоритмы Поиска Подобных Объектов Для Терабайтов Данных

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

1

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

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

2

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

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

3

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

Look aLike

4

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

Задача: Look aLike

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

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

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

5

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

6

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

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

7

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

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

8

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

offline данные

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

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

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

9

kaggle.com westerns.ru

guns.ru habrahabr.ru

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

10viz by Pavel Kalaidin

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

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

11

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

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

12

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

Матричное представление профилей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

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

14

Jaccard=0 Jaccard=1

Jaccard=0

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

Хэш-функции

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

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

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

(x + 1) mod 3 1 0 1

(2x + 1) mod 3 0 0 0

16

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

17

Jaccard=0.5 Jaccard=1

Jaccard=0.5

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

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

18

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

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

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

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

19

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

Locality Sensitive Hashing

20

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

minhash1 1 1

minhash2 3 3

minhash3 1 1

minhash4 2 4

Banding

band1

band2

21

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

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

band1 band2 band3 band4

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

22

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

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

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

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

23

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

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

24

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

25

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

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

26

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

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

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

27

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

28

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

DIMSUMDimension Independent Matrix Square using MapReduce

29

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

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

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

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

machinelearning.ru habrahabr.ru

1 4

8 1

7 9

30

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

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

31

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

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

32

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

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

33

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

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

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

34

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

Спасибо!

35