26
Большие данные на службе рекламного бизнеса Александр Петров Head of R&D Семинар “Распределённые системы и сети” 15.10.2015

доклад на вмк 15.10.2015

Embed Size (px)

Citation preview

Page 1: доклад на вмк 15.10.2015

Большие данные на службе рекламного бизнесаАлександр ПетровHead of R&D

Семинар “Распределённые системы и сети”

15.10.2015

Page 2: доклад на вмк 15.10.2015

Обо Мне

• Выпускник ЛВК 2011 года

• Работал в компаниях Яндекс, Mail.ru, Tinkoff digital

• C 2015 года работаю в компании Data-Centric alliance директором по R&D

• Преподаю на курсах “Специалист по большим данным” в Digital Оctober

Page 3: доклад на вмк 15.10.2015

Российская компания, специализирующаяся на работе с Big Data и высоконагруженными системами.

Располагая одним из самых объемных массивов анонимных данных о пользователях российского интернета, DCA разрабатывает и внедряет ряд программных продуктов, решающих различные задачи современного бизнеса.

Page 4: доклад на вмк 15.10.2015

RTB (Real Time Bidding)

• Модель по продаже рекламы по модели аукциона в реальном времени

• Торги происходят за каждый конкретный показ баннера

• Модель не только для рекламы, но и вообще для чего угодно

• Конкуренция знаниями и алгоритмами

Page 5: доклад на вмк 15.10.2015

Как работает RTB

Сторона покупки Сторона продажи User

Browser

PublisherSell-Side PlatformАукцион 2-й цены

Demand-Side Platform

Demand-Side Platform

Demand-Side Platform

Рекламодатель

Рекламодатель

Рекламодатель

Data Management Platform

Page 6: доклад на вмк 15.10.2015

Основные понятия RTB

• User - произвольный пользователь интернета

• Publisher – сайт, который размещает рекламу

• Sell Side Platform (SSP) – рекламная биржа, которая проводит аукцион. Как правило обслуживает большое количество Publisher’ов

• Advertiser – рекламодатель, заинтересованный в покупке рекламы

• DSP – Demand Side Platform – платформа, которая представляет интересы рекламодателей. Как правило, агрегрегирует много Advertiser

• DMP – обладает большим количеством знаний о пользователях

Page 7: доклад на вмк 15.10.2015

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

Page 8: доклад на вмк 15.10.2015

Facetz.DCA: Основные концепции

• Не должно быть единой точки отказа

• Горизонтальная масштабируемость

• Возможность построения любых сколь угодно сложных сегментов над пользователями

• Минимизация ручного труда

Page 9: доклад на вмк 15.10.2015

Cookie matching

• Cookie – некоторая информация, которую сервер может сохранить в браузере

• Cookie используются для идентификации пользователей

• У каждого пользователя своя Cookie

• Для того, чтобы обмениваться информацией о пользователе необходим механизм синхронизации

Page 10: доклад на вмк 15.10.2015

Схема 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

Page 11: доклад на вмк 15.10.2015

Pixel Resolver

• Выполняет cookie sync

• Собирает данные по referer’ам по партнерской сети

Pixel resolver

Page 12: доклад на вмк 15.10.2015

Files Loaders

Pixel resolver Data Providers

File Loaders• Универсальный framework

позволяющий загрузить данные в максимально сыром виде

• Сохраняет данные в виде файлов на HDFS

• Сохраняем в максимально сыром виде не выполняя никаких преобразований

Page 13: доклад на вмк 15.10.2015

Facts Loaders

Pixel resolver Data Providers

File Loaders• Framework для загрузки данных в Hbase

• Периодически запускается и перекладывает в HBase накопившиеся данные

Facts Loaders

Page 14: доклад на вмк 15.10.2015

Raw data storage

Pixel resolver Data Providers

File Loaders• Основано на Hbase (колоночная база

данных из стека hadoop)

• Данные отсортированы по пользователям

• Данные разобраны по типам (URL – отдельно, поисковики – отдельно)

Facts Loaders

Raw data storage

Page 15: доклад на вмк 15.10.2015

Analytical Engine

Pixel resolver Data Providers

File Loaders• Map-Reduce Job

• Загружает из внешнего хранилища (MongoDB) скрипты для разметки пользователей сегментами

• Результаты складывает в Real-Time storage

• Запускается раз в сутки

Facts Loaders

Raw data storage

Analytical Engine

Page 16: доклад на вмк 15.10.2015

Analytical Suite

Pixel resolver Data Providers

File Loaders• Набор инструментов для аналитика

• Библиотеки для Python для доступа к данным

• Средства для отладки Groovy-скриптов

• Средства сериализации/десериализации данных

• Средства визуализации данных

Facts Loaders

Raw data storage

Analytical Engine Analytical Suite

Page 17: доклад на вмк 15.10.2015

Real Time Storage

Pixel resolver Data Providers

File Loaders• Реализовано на основе Aerospike (очень

быстрая и отказоустойчивая key-value база данных)

• Хранит сегменты в привязке к куке

• Хранит индексы

• Должен быть очень быстрым, отказоустойчивым и масштабируемым

Facts Loaders

Raw data storage

Analytical Engine Analytical Suite

Real-Time storage

Page 18: доклад на вмк 15.10.2015

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

Page 19: доклад на вмк 15.10.2015

Real-Time engine

• Сутки – это очень долго

• Некоторые сегменты актуальны только в

• течение нескольких часов

• Пример: вероятность покупки телефона через N часов после просмотра

Page 20: доклад на вмк 15.10.2015

Модель акторов

Актор – это примитив параллельного программирования, который умеет: • Принимать сообщения

• Посылать сообщения

• Создавать новых актор’ов

• Устанавливать реакцию на сообщения

Page 21: доклад на вмк 15.10.2015

Akka

Фреймворк для java и scala для работы с акторамиAkka cluster - масштабирование акторов на много машин

«Принципы реактивного программирования» - хороший курс на coursera по реактивному программированию. https://www.coursera.org/course/reactive

Page 22: доклад на вмк 15.10.2015

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

Page 23: доклад на вмк 15.10.2015

Семантический анализатор

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

Page 24: доклад на вмк 15.10.2015

Facetz сейчас

• 600000000 кук

• 25 фактов на куку

• 6000000 пользователей онлайн

• 1500 новых пользователей в RT-движке в секунду

• 50000 новых фактов в секунду

• 15000 запросов за данными в секунду

• 1500 сегментов

Page 26: доклад на вмк 15.10.2015

119072, Москва, Берсеневский пер.2/1Телефон: +7 (499) 429-09-77

По общим вопросам: [email protected]

Соискателям: [email protected]

Спасибо за внимание!