Upload
alexandr-petrov
View
367
Download
0
Embed Size (px)
Citation preview
Большие данные на службе рекламного бизнесаАлександр ПетровHead of R&D
Семинар “Распределённые системы и сети”
15.10.2015
Обо Мне
• Выпускник ЛВК 2011 года
• Работал в компаниях Яндекс, Mail.ru, Tinkoff digital
• C 2015 года работаю в компании Data-Centric alliance директором по R&D
• Преподаю на курсах “Специалист по большим данным” в Digital Оctober
Российская компания, специализирующаяся на работе с Big Data и высоконагруженными системами.
Располагая одним из самых объемных массивов анонимных данных о пользователях российского интернета, DCA разрабатывает и внедряет ряд программных продуктов, решающих различные задачи современного бизнеса.
RTB (Real Time Bidding)
• Модель по продаже рекламы по модели аукциона в реальном времени
• Торги происходят за каждый конкретный показ баннера
• Модель не только для рекламы, но и вообще для чего угодно
• Конкуренция знаниями и алгоритмами
Как работает RTB
Сторона покупки Сторона продажи User
Browser
PublisherSell-Side PlatformАукцион 2-й цены
Demand-Side Platform
Demand-Side Platform
Demand-Side Platform
Рекламодатель
Рекламодатель
Рекламодатель
Data Management Platform
Основные понятия RTB
• User - произвольный пользователь интернета
• Publisher – сайт, который размещает рекламу
• Sell Side Platform (SSP) – рекламная биржа, которая проводит аукцион. Как правило обслуживает большое количество Publisher’ов
• Advertiser – рекламодатель, заинтересованный в покупке рекламы
• DSP – Demand Side Platform – платформа, которая представляет интересы рекламодателей. Как правило, агрегрегирует много Advertiser
• DMP – обладает большим количеством знаний о пользователях
Pixel resolver Data Providers
File Loaders
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
API
Clients Clients
Real-Time Engine
Semantic Analyzer
Facetz.DCA: Основные концепции
• Не должно быть единой точки отказа
• Горизонтальная масштабируемость
• Возможность построения любых сколь угодно сложных сегментов над пользователями
• Минимизация ручного труда
Cookie matching
• Cookie – некоторая информация, которую сервер может сохранить в браузере
• Cookie используются для идентификации пользователей
• У каждого пользователя своя Cookie
• Для того, чтобы обмениваться информацией о пользователе необходим механизм синхронизации
Схема Cookie Matching
Data Sourcedatasource.com
Dmpfacetz.net
Example.com<img src=“datasource.com/cookesync”>
GET /cookiesyncHost: datasource.comCookie: uid=123
HTTP 302 / not foundLocation: http://facetz.net/sync/datadasource/?id=123
GET / facetz.net/sync/datadasource/?id=123Host: facetz.netCookie: uid=abc
HTTP 200/ OK1x1 Empty.gif Matching table
Datasource uid 123 = Facetz uid abc
Pixel Resolver
• Выполняет cookie sync
• Собирает данные по referer’ам по партнерской сети
Pixel resolver
Files Loaders
Pixel resolver Data Providers
File Loaders• Универсальный framework
позволяющий загрузить данные в максимально сыром виде
• Сохраняет данные в виде файлов на HDFS
• Сохраняем в максимально сыром виде не выполняя никаких преобразований
Facts Loaders
Pixel resolver Data Providers
File Loaders• Framework для загрузки данных в Hbase
• Периодически запускается и перекладывает в HBase накопившиеся данные
Facts Loaders
Raw data storage
Pixel resolver Data Providers
File Loaders• Основано на Hbase (колоночная база
данных из стека hadoop)
• Данные отсортированы по пользователям
• Данные разобраны по типам (URL – отдельно, поисковики – отдельно)
Facts Loaders
Raw data storage
Analytical Engine
Pixel resolver Data Providers
File Loaders• Map-Reduce Job
• Загружает из внешнего хранилища (MongoDB) скрипты для разметки пользователей сегментами
• Результаты складывает в Real-Time storage
• Запускается раз в сутки
Facts Loaders
Raw data storage
Analytical Engine
Analytical Suite
Pixel resolver Data Providers
File Loaders• Набор инструментов для аналитика
• Библиотеки для Python для доступа к данным
• Средства для отладки Groovy-скриптов
• Средства сериализации/десериализации данных
• Средства визуализации данных
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real Time Storage
Pixel resolver Data Providers
File Loaders• Реализовано на основе Aerospike (очень
быстрая и отказоустойчивая key-value база данных)
• Хранит сегменты в привязке к куке
• Хранит индексы
• Должен быть очень быстрым, отказоустойчивым и масштабируемым
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
API
Pixel resolver Data Providers
File Loaders• HTTP-сервис, точка доступа к DMP для
клиентов
• Основное назначение – обогатить данными запрос
• Запросы во внешние DMP
• Главное - ответить
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
API
Clients Clients
Real-Time engine
• Сутки – это очень долго
• Некоторые сегменты актуальны только в
• течение нескольких часов
• Пример: вероятность покупки телефона через N часов после просмотра
Модель акторов
Актор – это примитив параллельного программирования, который умеет: • Принимать сообщения
• Посылать сообщения
• Создавать новых актор’ов
• Устанавливать реакцию на сообщения
Akka
Фреймворк для java и scala для работы с акторамиAkka cluster - масштабирование акторов на много машин
«Принципы реактивного программирования» - хороший курс на coursera по реактивному программированию. https://www.coursera.org/course/reactive
Real-Time Engine
Pixel resolver Data Providers
File Loaders
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
API
Clients Clients
• Полноценный Realtime-движок на акторах
• Для каждого онлайн-пользователя в интернете заводится объект содержащий всю информацию о нем в памяти
• Выполняются те же скрипты, что и в Analytical Engine
• Можно рассчитывать сегменты произвольной сложности
• Подробности: http://habrahabr.ru/company/dca/blog/260845/
Real-Time Engine
Семантический анализатор
Pixel resolver Data Providers
File Loaders
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
API
Clients Clients
• Составление обучающей выборки на основе поисковых запросов
• Иерархическая классификация
• 15 % выборка для feature selection, 70% обучающая, 15% контрольная
• Взвешенная F-мера для оценки качества классификации.
• Визуализация качества.
• Подробности: http://habrahabr.ru/company/dca/blog/261677/
Real-Time Engine
Semantic Analyzer
Facetz сейчас
• 600000000 кук
• 25 фактов на куку
• 6000000 пользователей онлайн
• 1500 новых пользователей в RT-движке в секунду
• 50000 новых фактов в секунду
• 15000 запросов за данными в секунду
• 1500 сегментов
Читайте наш техноблог
http://habrahabr.ru/company/dca/
119072, Москва, Берсеневский пер.2/1Телефон: +7 (499) 429-09-77
По общим вопросам: [email protected]
Соискателям: [email protected]
Спасибо за внимание!