SlideShare a Scribd company logo
1 of 45
Download to read offline
Automated Machine Learning:
building a conveyor
Михаил Овчинников
Badoo
— Подходы к сбору данных и обучению моделей
— Как эффективно построить “конвейер” из разных этапов ML
— Возможно ли полностью автоматическое обучение модели?
— Оценка модели, деплой и мониторинг
О чем доклад
Badoo — социальная сеть
400 Миллионов пользователей
350 Миллионов сообщений / сутки
300 Инженеров
Badoo — социальная сеть
400 Миллионов пользователей
350 Миллионов сообщений / сутки
300 Инженеров
Машинное обучение
Где вообще может помочь ML?
● Предсказание оттока
● Прогнозирование оплаты
● Матчинг пользователей
● Антиспам
Пример: будет ли юзер кликать по письму
?
Процесс машинного обучения
Идея, выбор “Фичей”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Автоматизация?
Идея, выбор “Фичей”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
1. Входные данные
Разработка и Машинное обучение
Программисты Data Scientists
Работают с Production-БД
Хранят сырые данные
Понимают смысл данных
Знают как работает сервис
Работают с аналитическими БД
Хранят агрегированные данные
Разбираются в особенностях ML
Умеют в Feature Engineering
VS
Разработка и Машинное обучение
Программисты Data Scientists
Работают с Production-БД
Хранят сырые данные
Понимают смысл данных
Знают как работает сервис
Работают с аналитическими БД
Хранят агрегированные данные
Разбираются в особенностях ML
Умеют в Feature Engineering
Машинное обучение в реальном времени
Production
Сбор Данных
Машинное обучение в реальном времени
Production
Features Log
Обучение модели
Сбор Данных
Target Log
Машинное обучение в реальном времени
Production
Features Log
Обучение модели
Сбор Данных
Target Log Готовая модель
Предсказание
Недостатки
● От разработчиков требуется чуть больше компетенции
● Придется заранее агрегировать данные
● Нужно заранее выбирать фичи
● Данные нужны быстро, онлайн
Плюсы
● Более надежные и консистентные модели
● Предсказания в реальном времени
● Более качественные фичи
● Больше возможностей для автоматизации всего процесса
2. Разработка
Как решить задачу автоматизации обучения
для классификации и регрессии
AML: Automated Machine Learning
Модели
Версии
Фичи
Контроль качества
Данные важнее алгоритма
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Большинство моделей имеет одно и то же “Ядро” фичей
● Пол, возраст, страна, континент, устройство
● Сколько сообщение, голосов, визитов профиля
● Оплата, клики по письмам и пушам, давность регистрации
● Подтверждение аккаунта (фото, телефон, соц.сети)
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Примеры фичей для модели предсказания кликов
● Время суток, день недели (+)
● Email-домен, рейтинг (-)
● В Badoo более 1000 базовых фичей
● Отдельные модели используют до 3000 фичей
● Доступны онлайн менее чем за 100 мс.
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
● Фичи размечены типами данных
● Заданы значения по-умолчанию, и стратегия замещения
ip_country :
Type : int_categorical
Default : profile_country
facebook_friends :
Type : int_continious
Default : avg(profile_country, gender, age)
● Данные собираются в удобное хранилище (Hive/Presto)
● Обучающая выборка обычно несколько млн. строк
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Feature engineering: Простые методы всегда работают
Ratio, min, max, avg, last timestamp, etc.
● Отношение Входящих/Исходящих голосов, сообщений
● Отношение Голосов/Матчей, Матчей/Чатов
● Средняя длина диалога, среднее врпмя в приложении
● Время последнего матча, клика по пушу
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Автоматическое обучение
● Данные уже подготовлены
● Достаточно взять самые обычные алгоритмы
Random Forest, Gradient Boosted Decision Trees
● Grid Search + Много Железа = Profit
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Автоматическое обучение
Google’s Chief Scientist Peter Norvig:
“We don’t have better algorithms than anyone else; we just
have more data”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Модель предсказания клика по письмам:
● Ядро фичей
● Подробная статистика по открытиям и кликам
● Простейший feature engineering
● 10-15 человеко-часов
● 5 машинных часов (24 ядра)
Результат:
● Сокращение кол-ва писем до 60%, без потерь
● Экономия десятки тысяч $
● Менее назойливый email-маркетинг
● Меньше шансы попасть в папку “Спам”
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Ручное обучение: половина работы уже сделана
● Данные уже собраны и размечены,
трансформированы, очищены
● Feature engineering уже готов
● Автоматическая модель уже показывает в каком
направлении двигаться
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Оценка техническими метриками
● После обучения система выдает оценки по
ROC AUC / Accuracy / Precision / Recall
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Оценка бизнес-метриками:
Поиск порогов и баланса ложных срабатываний по
заданным бизнес-критериям.
До обучения: настроить Grid Search оптимизировать модель
в нужную сторону
После обучения: оценить как модель повлияет на бизнес-
показатели
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Оценка бизнес-метриками:
— Сколько % кликов мы потеряем, если выкинем 25%
писем, по которым модель предсказывает отсутствие клика
— Сколько % хороших юзеров мы заблокируем, если будем
блокировать 25% спамеров, согласно предсказанию модели
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Оценка бизнес-метриками:
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
False Positive
False Negative
Оценка фичей / ресурсов:
● Алгоритм обучения выдает показатель “важности”
каждой фичи
● Системе известно кол-во времени и ресурсов,
необходимых на сбор фичи
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Проблема деплоя
Training Environment:
Python + Sklearn
Scala + Spark ML
!=
Prediction Environment:
PHP
GoLang
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
Решение проблемы деплоя:
Портируемые / Сериализуемые модели
Плюс: реимплементация механизма предсказаний гораздо
легче, чем механизма обучения
Минус: Требуется переносить все преобразования вместе с
моделью
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
После деплоя
● Анализ на реальных событиях, сравнение разных версия
модели (А/Б тест)
● Автоматический мониторинг попадания в “бизнес-
критерии”
● Легко повторяемый процесс дообучения:
Больше фичей и/или Больше данных
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
После деплоя
Регулярное автоматическое до-обучение:
● Антиспам
● Аномальные временные периоды
Сбор “Фичей”
Обучение модели
Оценка модели
Деплой модели
Мониторинг
С точки зрения бизнеса и продукта, можно строить модели
просто тыкая в интерфейс:
1. Выбираем точку события
2. Выбираем фичи (можно все)
3. Выбираем точку, когда известен результат
4. Жмем кнопочку, ждем
5. Смотрим, внедряем
● Обучение автоматическое и итеративное
● Повторное обучение на новых выборках и на новых фичах
● Быстрые и безболезненные эксперименты
● В продукте всегда есть что улучшать с помощью ML
● Разработчикам не нужно глубоко разбираться в Data Science
● Конвейер из идей в рост бизнес-метрик
Спасибо
Всем ML

More Related Content

Similar to Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"

"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
Yandex
 
Проведение маркетинговых исследований онлайн посредством технологии river sam...
Проведение маркетинговых исследований онлайн посредством технологии river sam...Проведение маркетинговых исследований онлайн посредством технологии river sam...
Проведение маркетинговых исследований онлайн посредством технологии river sam...
SilverMercury
 
Н.Хлебинский Big data маркетинг в электронной коммерции
Н.Хлебинский Big data   маркетинг в электронной коммерцииН.Хлебинский Big data   маркетинг в электронной коммерции
Н.Хлебинский Big data маркетинг в электронной коммерции
InSales
 
Как оценить эффективность интернет-рекламы?
Как оценить эффективность интернет-рекламы?Как оценить эффективность интернет-рекламы?
Как оценить эффективность интернет-рекламы?
Maxim Samoylenko
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
Sergey Xek
 
Повышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
Повышение эффективности сайта средствами веб-аналитики. Игорь ОстюченкоПовышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
Повышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
BranchMarketing
 

Similar to Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor" (20)

Андрей Осипов. Новая эра в аналитике — App + Web
Андрей Осипов. Новая эра в аналитике — App + WebАндрей Осипов. Новая эра в аналитике — App + Web
Андрей Осипов. Новая эра в аналитике — App + Web
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
 
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниАлександр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
 
Проведение маркетинговых исследований онлайн посредством технологии river sam...
Проведение маркетинговых исследований онлайн посредством технологии river sam...Проведение маркетинговых исследований онлайн посредством технологии river sam...
Проведение маркетинговых исследований онлайн посредством технологии river sam...
 
Монетизация интернет-проектов
Монетизация интернет-проектовМонетизация интернет-проектов
Монетизация интернет-проектов
 
Интернет маркетинг (День 3), лекция в НИУ ВШЭ. Пермь
Интернет маркетинг (День 3), лекция в НИУ ВШЭ. ПермьИнтернет маркетинг (День 3), лекция в НИУ ВШЭ. Пермь
Интернет маркетинг (День 3), лекция в НИУ ВШЭ. Пермь
 
Н.Хлебинский Big data маркетинг в электронной коммерции
Н.Хлебинский Big data   маркетинг в электронной коммерцииН.Хлебинский Big data   маркетинг в электронной коммерции
Н.Хлебинский Big data маркетинг в электронной коммерции
 
How to choose a computer on the Internet
How to choose a computer on the InternetHow to choose a computer on the Internet
How to choose a computer on the Internet
 
Монетизация интернет-проектов
Монетизация интернет-проектов Монетизация интернет-проектов
Монетизация интернет-проектов
 
Работа с контентными проектами (Optimization-16)
Работа с контентными проектами (Optimization-16)Работа с контентными проектами (Optimization-16)
Работа с контентными проектами (Optimization-16)
 
Монетизация интернет-проектов: как построить прибыльный бизнес
Монетизация интернет-проектов: как построить прибыльный бизнесМонетизация интернет-проектов: как построить прибыльный бизнес
Монетизация интернет-проектов: как построить прибыльный бизнес
 
Как избежать ошибок, которые приводят к неточности маркетинговых данных
Как избежать ошибок, которые приводят к неточности маркетинговых данныхКак избежать ошибок, которые приводят к неточности маркетинговых данных
Как избежать ошибок, которые приводят к неточности маркетинговых данных
 
Как оценить эффективность интернет-рекламы?
Как оценить эффективность интернет-рекламы?Как оценить эффективность интернет-рекламы?
Как оценить эффективность интернет-рекламы?
 
Использование инструментов веб-аналитики для повышения эффективности рекламны...
Использование инструментов веб-аналитики для повышения эффективности рекламны...Использование инструментов веб-аналитики для повышения эффективности рекламны...
Использование инструментов веб-аналитики для повышения эффективности рекламны...
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
 
Аналитика для СМИ - на помощь приходят роботы!
Аналитика для СМИ - на помощь приходят роботы!Аналитика для СМИ - на помощь приходят роботы!
Аналитика для СМИ - на помощь приходят роботы!
 
Повышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
Повышение эффективности сайта средствами веб-аналитики. Игорь ОстюченкоПовышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
Повышение эффективности сайта средствами веб-аналитики. Игорь Остюченко
 
1086351.pptx
1086351.pptx1086351.pptx
1086351.pptx
 
Умное SEO для бизнеса: факты, методы, подходы, кейсы
Умное SEO для бизнеса: факты, методы, подходы, кейсыУмное SEO для бизнеса: факты, методы, подходы, кейсы
Умное SEO для бизнеса: факты, методы, подходы, кейсы
 
Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)
 

More from Fwdays

More from Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 

Mikhail Ovchinnikov "Automated Machine Learning: building a conveyor"

  • 1. Automated Machine Learning: building a conveyor Михаил Овчинников Badoo
  • 2. — Подходы к сбору данных и обучению моделей — Как эффективно построить “конвейер” из разных этапов ML — Возможно ли полностью автоматическое обучение модели? — Оценка модели, деплой и мониторинг О чем доклад
  • 3. Badoo — социальная сеть 400 Миллионов пользователей 350 Миллионов сообщений / сутки 300 Инженеров
  • 4. Badoo — социальная сеть 400 Миллионов пользователей 350 Миллионов сообщений / сутки 300 Инженеров
  • 5.
  • 7. Где вообще может помочь ML? ● Предсказание оттока ● Прогнозирование оплаты ● Матчинг пользователей ● Антиспам
  • 8. Пример: будет ли юзер кликать по письму ?
  • 10. Идея, выбор “Фичей” Сбор “Фичей” Обучение модели Оценка модели Деплой модели Мониторинг
  • 12. Идея, выбор “Фичей” Сбор “Фичей” Обучение модели Оценка модели Деплой модели Мониторинг
  • 14. Разработка и Машинное обучение Программисты Data Scientists Работают с Production-БД Хранят сырые данные Понимают смысл данных Знают как работает сервис Работают с аналитическими БД Хранят агрегированные данные Разбираются в особенностях ML Умеют в Feature Engineering VS
  • 15. Разработка и Машинное обучение Программисты Data Scientists Работают с Production-БД Хранят сырые данные Понимают смысл данных Знают как работает сервис Работают с аналитическими БД Хранят агрегированные данные Разбираются в особенностях ML Умеют в Feature Engineering
  • 16. Машинное обучение в реальном времени Production Сбор Данных
  • 17. Машинное обучение в реальном времени Production Features Log Обучение модели Сбор Данных Target Log
  • 18. Машинное обучение в реальном времени Production Features Log Обучение модели Сбор Данных Target Log Готовая модель Предсказание
  • 19. Недостатки ● От разработчиков требуется чуть больше компетенции ● Придется заранее агрегировать данные ● Нужно заранее выбирать фичи ● Данные нужны быстро, онлайн
  • 20. Плюсы ● Более надежные и консистентные модели ● Предсказания в реальном времени ● Более качественные фичи ● Больше возможностей для автоматизации всего процесса
  • 21. 2. Разработка Как решить задачу автоматизации обучения для классификации и регрессии
  • 22. AML: Automated Machine Learning Модели Версии Фичи Контроль качества
  • 23. Данные важнее алгоритма Сбор “Фичей” Обучение модели Оценка модели Деплой модели Мониторинг
  • 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% спамеров, согласно предсказанию модели Сбор “Фичей” Обучение модели Оценка модели Деплой модели Мониторинг
  • 36. Оценка бизнес-метриками: Сбор “Фичей” Обучение модели Оценка модели Деплой модели Мониторинг False Positive False Negative
  • 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 ● Конвейер из идей в рост бизнес-метрик