What is the most difficult part of the machine learning process? Data collection? Feature Engineering? Model selection and tuning? Deploy and monitoring? What if you have a whole bunch of models, and business requires you to continuously improve, experiment, re-train and integrate models? And what if you are not even a Data Scientist?
In this talk:
How to not be drown in chaos, and build structured ML-integration process in a large company
Taking a close look at what can be automated (spoiler: everything)
Discussing "conveyor" taking ideas as input can make a great impact on business metrics, through fast and convenient machine learning integration
What can we achieve by using very basic and simple models
2. — Подходы к сбору данных и обучению моделей
— Как эффективно построить “конвейер” из разных этапов ML
— Возможно ли полностью автоматическое обучение модели?
— Оценка модели, деплой и мониторинг
О чем доклад
3. Badoo — социальная сеть
400 Миллионов пользователей
350 Миллионов сообщений / сутки
300 Инженеров
4. Badoo — социальная сеть
400 Миллионов пользователей
350 Миллионов сообщений / сутки
300 Инженеров
14. Разработка и Машинное обучение
Программисты Data Scientists
Работают с Production-БД
Хранят сырые данные
Понимают смысл данных
Знают как работает сервис
Работают с аналитическими БД
Хранят агрегированные данные
Разбираются в особенностях ML
Умеют в Feature Engineering
VS
15. Разработка и Машинное обучение
Программисты Data Scientists
Работают с Production-БД
Хранят сырые данные
Понимают смысл данных
Знают как работает сервис
Работают с аналитическими БД
Хранят агрегированные данные
Разбираются в особенностях ML
Умеют в Feature Engineering
17. Машинное обучение в реальном времени
Production
Features Log
Обучение модели
Сбор Данных
Target Log
18. Машинное обучение в реальном времени
Production
Features Log
Обучение модели
Сбор Данных
Target Log Готовая модель
Предсказание
19. Недостатки
● От разработчиков требуется чуть больше компетенции
● Придется заранее агрегировать данные
● Нужно заранее выбирать фичи
● Данные нужны быстро, онлайн
20. Плюсы
● Более надежные и консистентные модели
● Предсказания в реальном времени
● Более качественные фичи
● Больше возможностей для автоматизации всего процесса
24. Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Большинство моделей имеет одно и то же “Ядро” фичей
● Пол, возраст, страна, континент, устройство
● Сколько сообщение, голосов, визитов профиля
● Оплата, клики по письмам и пушам, давность регистрации
● Подтверждение аккаунта (фото, телефон, соц.сети)
25. Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Примеры фичей для модели предсказания кликов
● Время суток, день недели (+)
● Email-домен, рейтинг (-)
26. ● В Badoo более 1000 базовых фичей
● Отдельные модели используют до 3000 фичей
● Доступны онлайн менее чем за 100 мс.
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
27. ● Фичи размечены типами данных
● Заданы значения по-умолчанию, и стратегия замещения
ip_country :
Type : int_categorical
Default : profile_country
facebook_friends :
Type : int_continious
Default : avg(profile_country, gender, age)
● Данные собираются в удобное хранилище (Hive/Presto)
● Обучающая выборка обычно несколько млн. строк
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
28. Feature engineering: Простые методы всегда работают
Ratio, min, max, avg, last timestamp, etc.
● Отношение Входящих/Исходящих голосов, сообщений
● Отношение Голосов/Матчей, Матчей/Чатов
● Средняя длина диалога, среднее врпмя в приложении
● Время последнего матча, клика по пушу
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
29. Автоматическое обучение
● Данные уже подготовлены
● Достаточно взять самые обычные алгоритмы
Random Forest, Gradient Boosted Decision Trees
● Grid Search + Много Железа = Profit
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
30. Автоматическое обучение
Google’s Chief Scientist Peter Norvig:
“We don’t have better algorithms than anyone else; we just
have more data”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
31. Модель предсказания клика по письмам:
● Ядро фичей
● Подробная статистика по открытиям и кликам
● Простейший feature engineering
● 10-15 человеко-часов
● 5 машинных часов (24 ядра)
Результат:
● Сокращение кол-ва писем до 60%, без потерь
● Экономия десятки тысяч $
● Менее назойливый email-маркетинг
● Меньше шансы попасть в папку “Спам”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
32. Ручное обучение: половина работы уже сделана
● Данные уже собраны и размечены,
трансформированы, очищены
● Feature engineering уже готов
● Автоматическая модель уже показывает в каком
направлении двигаться
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
33. Оценка техническими метриками
● После обучения система выдает оценки по
ROC AUC / Accuracy / Precision / Recall
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
34. Оценка бизнес-метриками:
Поиск порогов и баланса ложных срабатываний по
заданным бизнес-критериям.
До обучения: настроить Grid Search оптимизировать модель
в нужную сторону
После обучения: оценить как модель повлияет на бизнес-
показатели
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
35. Оценка бизнес-метриками:
— Сколько % кликов мы потеряем, если выкинем 25%
писем, по которым модель предсказывает отсутствие клика
— Сколько % хороших юзеров мы заблокируем, если будем
блокировать 25% спамеров, согласно предсказанию модели
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
37. Оценка фичей / ресурсов:
● Алгоритм обучения выдает показатель “важности”
каждой фичи
● Системе известно кол-во времени и ресурсов,
необходимых на сбор фичи
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
38. Проблема деплоя
Training Environment:
Python + Sklearn
Scala + Spark ML
!=
Prediction Environment:
PHP
GoLang
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
39. Решение проблемы деплоя:
Портируемые / Сериализуемые модели
Плюс: реимплементация механизма предсказаний гораздо
легче, чем механизма обучения
Минус: Требуется переносить все преобразования вместе с
моделью
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
40. После деплоя
● Анализ на реальных событиях, сравнение разных версия
модели (А/Б тест)
● Автоматический мониторинг попадания в “бизнес-
критерии”
● Легко повторяемый процесс дообучения:
Больше фичей и/или Больше данных
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
41. После деплоя
Регулярное автоматическое до-обучение:
● Антиспам
● Аномальные временные периоды
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
42. С точки зрения бизнеса и продукта, можно строить модели
просто тыкая в интерфейс:
1. Выбираем точку события
2. Выбираем фичи (можно все)
3. Выбираем точку, когда известен результат
4. Жмем кнопочку, ждем
5. Смотрим, внедряем
43. ● Обучение автоматическое и итеративное
● Повторное обучение на новых выборках и на новых фичах
● Быстрые и безболезненные эксперименты
44. ● В продукте всегда есть что улучшать с помощью ML
● Разработчикам не нужно глубоко разбираться в Data Science
● Конвейер из идей в рост бизнес-метрик