Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Эффективные
алгоритмы поиска
подобных объектов
для терабайтов данных
Евгений Журин,
data scientist,
Segmento
2
Манхэттенское и евклидово
расстояние
3
Расстояние Джаккарда
А ВА В
U
А ВА U В
4
Look aLike
5
Задача: Look aLike
Вся аудитория,
которую
мы видим
Интересная аудитория,
которую надо найти
example.com
просмотрели >=2
...
6
7
У нас было
1. 250 000 000 + профилей
2. 1 000 000 +- площадок
3. 30000 RPS (2.5 млрд. в
день)
8
Что такое для нас профиль?
offline данные
История поведения
в интернете
Контекстная
информация
(где, откуда,
с какого ус...
9
Как можно представить профиль
kaggle.com westerns.ru
habrahabr.ruguns.ru
10
Движение трафика
11
Чистим данные
1. Выкидываем профили
с недостаточной статистикой
2. И сайты, с которых идет больше
всего и меньше всего ...
12
MinHash и расстояние
Джаккарда
13
Матричное
представление профилей
hosts/profiles index
kaggle.com 1 1 0 1
habrahabr.ru 2 0 1 0
machinelearning.
ru
3 1 0...
14
Jaccard = 0 Jaccard = 1
Jaccard = 0
15
Хэш функции
index
kaggle.com 1
machinelearning.ru 3
index
kaggle.co
m
machinelearning.ru Minhash
(index + 1) mod 3 2 1 ...
16
MinHash представление
(x + 1) mod 3 1 0 1
(2x + 1) mod 3 0 0 0
17
Jaccard = 0,5 Jaccard = 1
Jaccard = 0,5
18
Как выбрать количество
хэш функций
0.0 0.02 0.04 0.06 0.08 0.10
200000
400000
600000
800000
1000000
Numberofhashfunctio...
19
Как выбрать параметры
хэш функций?
a, b — случайные целые числа < max(x)
c — простое число, чуть большее чем max(x), об...
20
Locality Sensitive Hashing
21
Banding
hash1 1 1
hash2 3 3
hash3 1 1
hash4 2 4
band1
band2
22
Этап выделения профилей
для расчета расcтояний
Band 1 Band 2 Band 3 Band 4
целевая аудитория (просмотрел
на example.com...
23
k — ближайших
соседей в пределах
интересного бэнда.
J J
J
J
J
J
J
J J
J
24
1 – (1-s^10)^10
Jaccard similarty of profiles
0.0 0.2 0.4 0.6 0.8 1.0
1.0
0.8
0.6
0.4
0.2
0.0
Probabilityofbecomingacan...
25
Но эксперимент никто
не отменял
Долго, дорого и очень хорошо  Быстро, дешево и не очень хорошо 
26
Куда еще смотрим?
27
28
DIMSUM
Dimension Independent Matrix
Square using MapReduce
29
Что у нас есть?
machinelearning.ru habrahabr.ru
1 4
8 1
7 9
Матрица A
размерности MxN, где M >> N и 0 <= a <=1 и
кол-во...
30
Что хотим найти?
Похожесть сайтов на основе
их посещения аудиторией.
Более формально и в более общем виде –
задача расч...
31
Зачем?
1) Снижение размерности
2) Нужно в маркетинговых исследованиях
32
Наивно, долго, точно
Dimsum, быстро и почти точно
33
Стэк используемых
технологий:
1.Python
2.Hadoop
3.Luigi
4.Hbase
34
Спасибо !
Upcoming SlideShare
Loading in …5
×

Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгений Журин (Segmento)

879 views

Published on

Segmento DMP хранит сотни миллионов анонимных профилей пользователей интернета. Часть из задач отдела Data Science связана с их кластеризацией и поиском нечетких дубликатов. Для успешного решения этих задач необходимо вычислить метрики сходства между профилями. Brute force подход на таких объемах данных уже не сработает, поэтому мы выбрали другой путь.

Тезисы - http://www.highload.ru/2015/abstracts/1862.html

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгений Журин (Segmento)

  1. 1. Эффективные алгоритмы поиска подобных объектов для терабайтов данных Евгений Журин, data scientist, Segmento
  2. 2. 2 Манхэттенское и евклидово расстояние
  3. 3. 3 Расстояние Джаккарда А ВА В U А ВА U В
  4. 4. 4 Look aLike
  5. 5. 5 Задача: Look aLike Вся аудитория, которую мы видим Интересная аудитория, которую надо найти example.com просмотрели >=2 страниц
  6. 6. 6
  7. 7. 7 У нас было 1. 250 000 000 + профилей 2. 1 000 000 +- площадок 3. 30000 RPS (2.5 млрд. в день)
  8. 8. 8 Что такое для нас профиль? offline данные История поведения в интернете Контекстная информация (где, откуда, с какого устройства)
  9. 9. 9 Как можно представить профиль kaggle.com westerns.ru habrahabr.ruguns.ru
  10. 10. 10 Движение трафика
  11. 11. 11 Чистим данные 1. Выкидываем профили с недостаточной статистикой 2. И сайты, с которых идет больше всего и меньше всего трафика
  12. 12. 12 MinHash и расстояние Джаккарда
  13. 13. 13 Матричное представление профилей hosts/profiles index kaggle.com 1 1 0 1 habrahabr.ru 2 0 1 0 machinelearning. ru 3 1 0 1 analyticsvidhya.c om 4 0 1 0
  14. 14. 14 Jaccard = 0 Jaccard = 1 Jaccard = 0
  15. 15. 15 Хэш функции index kaggle.com 1 machinelearning.ru 3 index kaggle.co m machinelearning.ru Minhash (index + 1) mod 3 2 1 1 (2*index + 1) mod 3 0 1 0
  16. 16. 16 MinHash представление (x + 1) mod 3 1 0 1 (2x + 1) mod 3 0 0 0
  17. 17. 17 Jaccard = 0,5 Jaccard = 1 Jaccard = 0,5
  18. 18. 18 Как выбрать количество хэш функций 0.0 0.02 0.04 0.06 0.08 0.10 200000 400000 600000 800000 1000000 Numberofhashfunctions Error Например: мы хотим ошибку не больше, чем 10% , для этого нам нужно 100 хэш функций, а для ошибки 1% процент нам нужно уже 10000 функций.
  19. 19. 19 Как выбрать параметры хэш функций? a, b — случайные целые числа < max(x) c — простое число, чуть большее чем max(x), общее для всех h(x) = (ax + b) mod c
  20. 20. 20 Locality Sensitive Hashing
  21. 21. 21 Banding hash1 1 1 hash2 3 3 hash3 1 1 hash4 2 4 band1 band2
  22. 22. 22 Этап выделения профилей для расчета расcтояний Band 1 Band 2 Band 3 Band 4 целевая аудитория (просмотрел на example.com >=2 страниц) Фильтруем Интересный бэнд Фильтруем
  23. 23. 23 k — ближайших соседей в пределах интересного бэнда. J J J J J J J J J J
  24. 24. 24 1 – (1-s^10)^10 Jaccard similarty of profiles 0.0 0.2 0.4 0.6 0.8 1.0 1.0 0.8 0.6 0.4 0.2 0.0 Probabilityofbecomingacandidate 1 – (1-s^5)^20 Как выбрать количество бэндов?
  25. 25. 25 Но эксперимент никто не отменял Долго, дорого и очень хорошо  Быстро, дешево и не очень хорошо 
  26. 26. 26 Куда еще смотрим?
  27. 27. 27
  28. 28. 28 DIMSUM Dimension Independent Matrix Square using MapReduce
  29. 29. 29 Что у нас есть? machinelearning.ru habrahabr.ru 1 4 8 1 7 9 Матрица A размерности MxN, где M >> N и 0 <= a <=1 и кол-во ненулевых элементов в строке <= L << N
  30. 30. 30 Что хотим найти? Похожесть сайтов на основе их посещения аудиторией. Более формально и в более общем виде – задача расчета матрицы расстояний между столбами.
  31. 31. 31 Зачем? 1) Снижение размерности 2) Нужно в маркетинговых исследованиях
  32. 32. 32 Наивно, долго, точно Dimsum, быстро и почти точно
  33. 33. 33 Стэк используемых технологий: 1.Python 2.Hadoop 3.Luigi 4.Hbase
  34. 34. 34 Спасибо !

×