SlideShare a Scribd company logo
Эффективные алгоритмы поиска
подобных объектов для терабайтов
данных
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
DIMSUM
Dimension 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) Python
2) Hadoop
3) Luigi
4) Hbase
34
Спасибо!
35

More Related Content

Viewers also liked

Maneira de amar mariza lara
Maneira de amar mariza laraManeira de amar mariza lara
Maneira de amar mariza laraMaria Urban
 
A descoberta do amor vanda
A descoberta do amor vandaA descoberta do amor vanda
A descoberta do amor vandajocianemateus
 
System Thinking in Management
System Thinking in ManagementSystem Thinking in Management
System Thinking in Management
Krasheninnikova Lioubov
 
negotiation analysis
negotiation analysis negotiation analysis
negotiation analysis
Ayush Parekh
 
Mustafa Degerli - 2016 - Systems Ideas
Mustafa Degerli - 2016 - Systems IdeasMustafa Degerli - 2016 - Systems Ideas
Mustafa Degerli - 2016 - Systems Ideas
Dr. Mustafa Değerli
 
Part 1- Fancy Rental Car - System analysis and design
Part 1- Fancy Rental Car - System analysis and designPart 1- Fancy Rental Car - System analysis and design
Part 1- Fancy Rental Car - System analysis and design
ABUBAKER ALJAILANI
 
Aula II Guerra Mundial
Aula II Guerra MundialAula II Guerra Mundial
Aula II Guerra Mundial
seixasmarianas
 
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania SpołecznaNadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
SERVIER POLSKA
 
Giving sense to complexity PMI Lebanon
Giving sense to complexity PMI LebanonGiving sense to complexity PMI Lebanon
Giving sense to complexity PMI Lebanon
Pierre E. NEIS
 
LBO Training Summary
LBO Training SummaryLBO Training Summary
LBO Training Summary
Private Equity Jobs
 
Alfabeto de nomes e
Alfabeto de nomes   eAlfabeto de nomes   e
Alfabeto de nomes e
Dário Reis
 
Pierwsza pomoc 7 rad dla każdego
Pierwsza pomoc 7 rad dla każdegoPierwsza pomoc 7 rad dla każdego
Pierwsza pomoc 7 rad dla każdego
Grzegorz Nowak
 
BlaBlaCar Business Case
BlaBlaCar Business CaseBlaBlaCar Business Case
BlaBlaCar Business Case
Frank Benedic
 
Hec De l'innovation au marché (Brevets)
Hec De l'innovation au marché (Brevets)Hec De l'innovation au marché (Brevets)
Hec De l'innovation au marché (Brevets)
HEC
 
What's Measured Improves: Metrics that matter
What's Measured Improves: Metrics that matterWhat's Measured Improves: Metrics that matter
What's Measured Improves: Metrics that matter
Raj Indugula
 

Viewers also liked (16)

Maneira de amar mariza lara
Maneira de amar mariza laraManeira de amar mariza lara
Maneira de amar mariza lara
 
A descoberta do amor vanda
A descoberta do amor vandaA descoberta do amor vanda
A descoberta do amor vanda
 
System Thinking in Management
System Thinking in ManagementSystem Thinking in Management
System Thinking in Management
 
negotiation analysis
negotiation analysis negotiation analysis
negotiation analysis
 
Mustafa Degerli - 2016 - Systems Ideas
Mustafa Degerli - 2016 - Systems IdeasMustafa Degerli - 2016 - Systems Ideas
Mustafa Degerli - 2016 - Systems Ideas
 
Part 1- Fancy Rental Car - System analysis and design
Part 1- Fancy Rental Car - System analysis and designPart 1- Fancy Rental Car - System analysis and design
Part 1- Fancy Rental Car - System analysis and design
 
Aula II Guerra Mundial
Aula II Guerra MundialAula II Guerra Mundial
Aula II Guerra Mundial
 
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania SpołecznaNadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
Nadciśnienie tętnicze - Dbajoserce.pl - Kampania Społeczna
 
Giving sense to complexity PMI Lebanon
Giving sense to complexity PMI LebanonGiving sense to complexity PMI Lebanon
Giving sense to complexity PMI Lebanon
 
LBO Training Summary
LBO Training SummaryLBO Training Summary
LBO Training Summary
 
Alfabeto de nomes e
Alfabeto de nomes   eAlfabeto de nomes   e
Alfabeto de nomes e
 
Pierwsza pomoc 7 rad dla każdego
Pierwsza pomoc 7 rad dla każdegoPierwsza pomoc 7 rad dla każdego
Pierwsza pomoc 7 rad dla każdego
 
BlaBlaCar Business Case
BlaBlaCar Business CaseBlaBlaCar Business Case
BlaBlaCar Business Case
 
Hec De l'innovation au marché (Brevets)
Hec De l'innovation au marché (Brevets)Hec De l'innovation au marché (Brevets)
Hec De l'innovation au marché (Brevets)
 
Chapter 4 presentation of data
Chapter 4 presentation of dataChapter 4 presentation of data
Chapter 4 presentation of data
 
What's Measured Improves: Metrics that matter
What's Measured Improves: Metrics that matterWhat's Measured Improves: Metrics that matter
What's Measured Improves: Metrics that matter
 

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

Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их много
Roman Dvornov
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
Ontico
 
Правильная организация клиент-карточного взаимодействия — Антон Корзунов
Правильная организация клиент-карточного взаимодействия — Антон КорзуновПравильная организация клиент-карточного взаимодействия — Антон Корзунов
Правильная организация клиент-карточного взаимодействия — Антон Корзунов
Yandex
 
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Yandex
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activity
Arvids Godjuks
 
Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей  (Денис Бирюков)Как мы храним 75 млн пользователей  (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)Ontico
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Yandex
 
Александр Куликов — Segmento — ICBDA2016
Александр Куликов — Segmento — ICBDA2016Александр Куликов — Segmento — ICBDA2016
Александр Куликов — Segmento — ICBDA2016
rusbase
 
Николай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотекНиколай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотек
CocoaHeads
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Yandex
 
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
Yandex
 
Multithreading in java past and actual
Multithreading in java past and actualMultithreading in java past and actual
Multithreading in java past and actual
Yevgen Levik
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
Ontico
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
it-people
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
Andrei Pangin
 
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JSFestUA
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шагиAnton Gorokhov
 
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOMYuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
OdessaJS Conf
 
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java DriverЭкстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Vitebsk DSC
 

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

Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их много
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
 
Правильная организация клиент-карточного взаимодействия — Антон Корзунов
Правильная организация клиент-карточного взаимодействия — Антон КорзуновПравильная организация клиент-карточного взаимодействия — Антон Корзунов
Правильная организация клиент-карточного взаимодействия — Антон Корзунов
 
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activity
 
Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей  (Денис Бирюков)Как мы храним 75 млн пользователей  (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
 
Александр Куликов — Segmento — ICBDA2016
Александр Куликов — Segmento — ICBDA2016Александр Куликов — Segmento — ICBDA2016
Александр Куликов — Segmento — ICBDA2016
 
Николай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотекНиколай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотек
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
 
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
Марина Степанова "Кластеризатор в JS API Яндекс.Карт"
 
Multithreading in java past and actual
Multithreading in java past and actualMultithreading in java past and actual
Multithreading in java past and actual
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
 
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOMYuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
 
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java DriverЭкстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java Driver
 

More from SPb_Data_Science

Diabetic Retinopathy Detection
Diabetic Retinopathy DetectionDiabetic Retinopathy Detection
Diabetic Retinopathy Detection
SPb_Data_Science
 
Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine
SPb_Data_Science
 
Trending Topics in Recommender Systems
Trending Topics in Recommender SystemsTrending Topics in Recommender Systems
Trending Topics in Recommender Systems
SPb_Data_Science
 
Meetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ruMeetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ru
SPb_Data_Science
 
Intro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningIntro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningSPb_Data_Science
 
Benford’s law & fraud detection slides
Benford’s  law & fraud detection slidesBenford’s  law & fraud detection slides
Benford’s law & fraud detection slidesSPb_Data_Science
 
Meetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization MachinesMeetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization Machines
SPb_Data_Science
 
Meetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic TradingMeetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic Trading
SPb_Data_Science
 
Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.
SPb_Data_Science
 
Meetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science BowlMeetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science Bowl
SPb_Data_Science
 

More from SPb_Data_Science (11)

Diabetic Retinopathy Detection
Diabetic Retinopathy DetectionDiabetic Retinopathy Detection
Diabetic Retinopathy Detection
 
Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine Meetup#4, Apache Spark as SQL Engine
Meetup#4, Apache Spark as SQL Engine
 
Trending Topics in Recommender Systems
Trending Topics in Recommender SystemsTrending Topics in Recommender Systems
Trending Topics in Recommender Systems
 
Meetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ruMeetup#4, Smart.Data@OK.ru
Meetup#4, Smart.Data@OK.ru
 
Intro to Deep Reinforcement Learning
Intro to Deep Reinforcement LearningIntro to Deep Reinforcement Learning
Intro to Deep Reinforcement Learning
 
Benford’s law & fraud detection slides
Benford’s  law & fraud detection slidesBenford’s  law & fraud detection slides
Benford’s law & fraud detection slides
 
Classification metrics
Classification metrics Classification metrics
Classification metrics
 
Meetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization MachinesMeetup#2. Intro to Factorization Machines
Meetup#2. Intro to Factorization Machines
 
Meetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic TradingMeetup#2. Introduction to Algorithmic Trading
Meetup#2. Introduction to Algorithmic Trading
 
Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.Meetup #1. Trends, talks, cool stuff.
Meetup #1. Trends, talks, cool stuff.
 
Meetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science BowlMeetup #1. Building a CNN in Kaggle Data Science Bowl
Meetup #1. Building a CNN in Kaggle Data Science Bowl
 

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