1. Большие данные на службе
рекламного бизнеса
Александр Петров
Head of R&D
Семинар “Распределённые системы и сети”
15.10.2015
2. Обо Мне
• Выпускник ЛВК 2011 года
• Работал в компаниях Яндекс, Mail.ru,
Tinkoff digital
• C 2015 года работаю в компании Data-
Centric alliance директором по R&D
• Преподаю на курсах “Специалист по
большим данным” в Digital Оctober
3. Российская компания, специализирующаяся
на работе с Big Data и высоконагруженными
системами.
Располагая одним из самых объемных
массивов анонимных данных о
пользователях российского интернета, DCA
разрабатывает и внедряет ряд программных
продуктов, решающих различные задачи
современного бизнеса.
4. RTB (Real Time Bidding)
• Модель по продаже рекламы по модели аукциона в реальном времени
• Торги происходят за каждый конкретный показ баннера
• Модель не только для рекламы, но и вообще для чего угодно
• Конкуренция знаниями и алгоритмами
5. Как работает RTB
Сторона покупки Сторона продажи User
Browser
Publisher
Sell-Side Platform
Аукцион 2-й цены
Demand-Side Platform
Demand-Side Platform
Demand-Side Platform
Рекламодатель
Рекламодатель
Рекламодатель
Data Management Platform
6. Основные понятия RTB
• User - произвольный пользователь интернета
• Publisher – сайт, который размещает рекламу
• Sell Side Platform (SSP) – рекламная биржа, которая проводит
аукцион. Как правило обслуживает большое количество Publisher’ов
• Advertiser – рекламодатель, заинтересованный в покупке рекламы
• DSP – Demand Side Platform – платформа, которая представляет
интересы рекламодателей. Как правило, агрегрегирует много
Advertiser
• DMP – обладает большим количеством знаний о пользователях
7. 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
8. Facetz.DCA: Основные концепции
• Не должно быть единой точки отказа
• Горизонтальная масштабируемость
• Возможность построения любых сколь угодно
сложных сегментов над пользователями
• Минимизация ручного труда
9. Cookie matching
• Cookie – некоторая информация, которую сервер может
сохранить в браузере
• Cookie используются для идентификации пользователей
• У каждого пользователя своя Cookie
• Для того, чтобы обмениваться информацией о пользователе
необходим механизм синхронизации
10. Схема Cookie Matching
Data Source
datasource.com
Dmp
facetz.net
Example.com
<img src=“datasource.com/cookesync”>
GET /cookiesync
Host: datasource.com
Cookie: uid=123
HTTP 302 / not found
Location: http://facetz.net/sync/datadasource/?id=123
GET / facetz.net/sync/datadasource/?id=123
Host: facetz.net
Cookie: uid=abc
HTTP 200/ OK
1x1 Empty.gif Matching table
Datasource uid 123 =
Facetz uid abc
11. Pixel Resolver
• Выполняет cookie sync
• Собирает данные по referer’ам по партнерской сети
Pixel resolver
12. Files Loaders
Pixel resolver Data Providers
File Loaders
• Универсальный framework позволяющий
загрузить данные в максимально сыром
виде
• Сохраняет данные в виде файлов на
HDFS
• Сохраняем в максимально сыром виде
не выполняя никаких преобразований
13. Facts Loaders
Pixel resolver Data Providers
File Loaders
• Framework для загрузки данных в Hbase
• Периодически запускается и
перекладывает в HBase накопившиеся
данные
Facts Loaders
14. Raw data storage
Pixel resolver Data Providers
File Loaders
• Основано на Hbase (колоночная база
данных из стека hadoop)
• Данные отсортированы по
пользователям
• Данные разобраны по типам (URL –
отдельно, поисковики – отдельно)
Facts Loaders
Raw data storage
15. Analytical Engine
Pixel resolver Data Providers
File Loaders
• Map-Reduce Job
• Загружает из внешнего хранилища
(MongoDB) скрипты для разметки
пользователей сегментами
• Результаты складывает в Real-Time
storage
• Запускается раз в сутки
Facts Loaders
Raw data storage
Analytical Engine
16. Analytical Suite
Pixel resolver Data Providers
File Loaders
• Набор инструментов для аналитика
• Библиотеки для Python для доступа к
данным
• Средства для отладки Groovy-скриптов
• Средства сериализации/десериализации
данных
• Средства визуализации данных
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
17. Real Time Storage
Pixel resolver Data Providers
File Loaders
• Реализовано на основе Aerospike (очень
быстрая и отказоустойчивая key-value
база данных)
• Хранит сегменты в привязке к куке
• Хранит индексы
• Должен быть очень быстрым,
отказоустойчивым и масштабируемым
Facts Loaders
Raw data storage
Analytical Engine Analytical Suite
Real-Time storage
18. 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
19. Real-Time engine
• Сутки – это очень долго
• Некоторые сегменты актуальны
только в
• течение нескольких часов
• Пример: вероятность покупки
телефона через N часов после
просмотра
20. Модель акторов
Актор – это примитив параллельного
программирования, который умеет:
• Принимать сообщения
• Посылать сообщения
• Создавать новых актор’ов
• Устанавливать реакцию на сообщения
21. Akka
Фреймворк для java и scala для работы с акторами
Akka cluster - масштабирование акторов на много машин
«Принципы реактивного программирования» - хороший курс на
coursera по реактивному программированию.
https://www.coursera.org/course/reactive
22. 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/26
0845/
Real-Time Engine
23. Семантический анализатор
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/26
1677/
Real-Time Engine
Semantic Analyzer
24. Facetz сейчас
• 600000000 кук
• 25 фактов на куку
• 6000000 пользователей онлайн
• 1500 новых пользователей в RT-
движке в секунду
• 50000 новых фактов в секунду
• 15000 запросов за данными в секунду
• 1500 сегментов