ML for Value / Ваня Максимов – Telegram
ML for Value / Ваня Максимов
5.59K subscribers
191 photos
1 video
1 file
119 links
Путь от ML-модели до Value для компании | RecSys, Search, LLM, Pricing и CLTV

Ваня Максимов, @Ivan_maksimov
Head of AI | Recsys, search, llm @Y.Market, ex-WB, ex-Delivery Club

Консультирую компании, Веду курсы
Публикую релевантную рекламу
Download Telegram
У ресторана есть радиус доставки R. Во сколько раз увеличится среднее время доставки, если увеличить R в 2 раза?

Ответ (1) - для равномерного распределения клиентов по площади круга Ответ (2) - для распределения в реальном сервисе доставки еды?
Anonymous Poll
33%
(1) > 2 раз; (2) > 2 раз
3%
(1) > 2 раз; (2) ровно в 2 раза
18%
(1) > 2 раз; (2) < 2 раз
19%
(1) ровно в 2 раза; (2) > 2 раз
4%
(1) ровно в 2 раза; (2) ровно в 2 раза;
14%
(1) ровно в 2 раза; (2) < 2 раз
5%
(1) < 2 раз; (2) > 2 раз
1%
(1) < 2 раз; (2) ровно в 2 раза
4%
(1) < 2 раз; (2) < 2 раз
🔥13👍2
Кажется все, кто хотел ответить на вопрос, сделали это - давайте разберем задачку 🤓

*в комментариях идет интересная дискуссия про то, что есть 2 понимания "равномерного" распределения на круге. Поэтому есть 2 варианта решения

На самом сама задача довольно простая, но в ней есть несколько сложных подводных камней. Однако довольно много подписчиков (12%) ответили верно!)

(1) Равномерное распределение клиентов по площади круга
Первое, что интуитивно приходит в голову при решении - среднее пропорционально либо радиусу R, либо площади круга Pi * R^2. И это первый подводный камень) Давайте аккуратно его обойдем и для начала посчитаем, какое среднее время доставки в круге радиуса R

У равномерного распределения есть прекрасное свойство: медиана = среднему. Поэтому среднее время доставки = радиусу (X) круга, который по площади в 2 раза меньше круга радиуса R

Pi * X^2 = Pi * R^2 / 2
X = 1 / sqrt(2) * R

Если увеличить R в 2 раза, то среднее (X) тоже увеличится в 2 раза!
---------

(2) Реальное распределение клиентов по площади круга
И вот он второй подводный камень: клиентов доставки, а не просто всех людей. Клиент = тот, кто заказывает. Вероятность заказа падает при росте времени доставки. Поэтому бОльшая часть клиентов будет сосредоточена ближе к центру круга, а не равномерно. Поэтому:

Pi * X^2 < Pi * R^2 / 2
X < 1 / sqrt(2) * R

Ответ: (1) ровно в 2 раза; (2) < 2 раз
---------

На самом деле есть еще довольно много бизнесовых причин, почему так происходит. Например, на дальние расстояния начинают ездить курьеры на машинах, а не ходить пешком. И в реальности среднее время доставки Х сильно меньше 1 / sqrt(2) * R !

Кстати, в том числе благодаря выводам из такой простой модели мы наслаждаемся доставкой из Самоката / Лавки на даче 🏡. Они могли увеличить радиус доставки с условных 5 км до 20 км без очень драматичного роста в среднем времени доставки
👍14
Продолжаем серию постов про метрики регрессии
Предыдущие посты - часть 1 про MAE и RMSE, часть 2 про MALE и RMSLE

Часть 3. Первая относительная метрика: MAPE

Абсолютные метрики (RMSE, RMSLE, ...) хороши своей простотой, но имеют ряд недостатков:
- Сложно интерепретировать и презентовать бизнесу ("у модели MAE = 307"; - "И что я должен с этим делать? Хороша ли модель-то?")
- Проблемы при обучении на разнородных обьектах (у одного товара 1к продаж в неделю, у другого - 5. Если усреднить RMSE этих товаров, то получится нечто странное)

Поэтому придумали относительные метрики!
Note:
- Macro average = считаем метрику по каждому обьекту, затем усредняем. Дальше речь пойдет именно о таком усреднении
- Micro average = считаем числители и знаменатели по каждому обьекту. Складываем все числители, все знаменатели. Делим один суммарный числитель на суммарный знаменатель. Это полный аналог MAE: macro MAPE = MAE / mean(y_true)

MAPE (Mean Absolute Percentage Error) = MEAN(|y_true - y_pred| / y_true)

Это простая и интуитивно понятная метрика, но есть нюансы:
- Может быть > 1
- Не симметрична: по-разному штрафует недопрогноз или перепрогноз
- Плохо работает при маленьких y_true. На практике можно делать так: MEAN(|y_true - y_pred| / (y_true + offset)). Это частично решает проблему

При обучении некоторых ml-моделей можно указать MAPE как лосс. Но у него неприятная производная. Поэтому на практике MAPE аппроксимируют через MALE, потому что:
1. ln(1 + f(x)) ~ f(x) при f(x) --> 0
2. ln(1 + |y_true - y_pred| / y_pred) --> |y_true - y_pred| / y_pred = MAPE при -//-
3. ln(y_pred + |y_true - y_pred|) - ln(y_true) --> MAPE при --//--
4. Сильное предположение, но на практике выполняется: |y_true - y_pred| --> 0 при |y_true - y_pred| / y_pred --> 0
5. ln(y_pred + |y_true - y_pred|) - ln(y_true) --> ln(y_pred) - ln(y_true) --> MAPE при -//-
6. Не забудьте взять модуль у первого выражения и получите, что MALE --> MAPE при небольших разницах в |y_true - y_pred|

Хороший рецепт: Loss = MALE, Метрика на валидации/тесте = MAPE

#metrics
🔥19👍71
Во многом моя концепция ML4Value сформировалась благодаря бакалавриату по мат методам в экономике. Путь из экономики в ML был довольно тернистым. До первой работы чисто в ML я прогнозировал временные ряды инфляции и ВВП в научной лабе, строил модельки риск-менеджмента на МосБирже и занимался sql-аналитикой в одном крупном банке. Когда-нибудь я обязательно рассказажу про этот путь в DS.

А пока рекомендую интервью о пути из бизнеса в DS известного каггл-грандмастера по ноутбукам Андрея Лукьяненко. Путь Андрея чем-то похож на мой, и здорово показывает, почему бизнес-бекграунд очень полезен в ML

Кстати, у интервьюера Ромы Васильева есть отличный канал про начало карьеры в DS: там есть другие занятные интервью и полезные материалы по ML

Ссылка на канал Ромы: https://news.1rj.ru/str/start_ds
👍7🔥7
Наткнулся на занятную статью от Uber по прогнозу времени прибытия авто (ETA). Интересна она тем, что годами решаемая бустингами задача регрессии, теперь более эффективно решается сетками! Кажется, это начало конца бустингов

Сюрпризом для меня стало то, что Uber смог обучать трансформеры на табличных данных быстрее, чем xgboost благодаря data-parallel SGD. И не только быстрее, но и с лучшим качеством.

Метрики улучшили за счет разделения непрерывных фичей на бины = квантили. И каждый бин кодировали эмбеддингом. Так что второй вывод - эмбеддинги потихоньку захватывают мир) Есть ощущение, что через 3-5 лет весь ML сведется к тому, чтобы получить каким-то образом эмбеддинги, а затем искать ближайших соседей / делать другие простые операции

Пара других интересных фактов из статьи:
- Комбинируют нейронку и классическую "физическую" модель. Делают базовый прогноз через маршрутизатор (граф дорог), а разницу между фактом и этим прогнозом оценивают нейронкой
- Используют несимметричный huber loss, чтобы прогнозировать квантили времени прибытия
👍27
Российские власти помогают ответить на любимый вопрос с собеседований:
"MAPE больше штрафует за недопрогноз или перепрогноз?"

Выясняется, что -80% = падение в 5 раз, а +80% = рост в 1.8 раз 😅
👍30👎1
MAPE больше штрафует за:
Anonymous Poll
57%
Недопрогноз
43%
Перепрогноз
MAPE больше штрафует за недопрогноз или перепрогноз?

На первый взгляд, кажется, что одинаково штрафует = MAPE симметричен. Обычно это доказывают логикой из самой формулы
MAPE = |y_true - x| / |y_true|
= |y_true + x| / |y_true|,
т.к |y_true - x| = |y_true + x|

Но на практике все несколько сложнее. Обычно мы используем MAPE для прогноза продаж и цен. То есть кейсов, где таргет >= 0.
В таком случае для недопрогноза mape не может быть > 100%, потому что минимальный прогноз = 0 --> |y_true - 0| / y_true = 100%
А вот для перепрогноза mape может уходить в бесконечность. Например, |1 - 8| / 1 = 700%

Поэтому для большинства боевых задач MAPE больше штрафует за перепрогноз --> ML-модели оптимально недопрогнозировать

Забавный факт
Чтобы исправить проблему несимметричности MAPE придумали Symmetric MAPE (SMAPE) = |y_true - y_pred| / (y_true + y_pred) / 2
Забавно то, что Symmetric MAPE не симметричный!)

#metrics
👍18🔥5🤔21
Forwarded from Интернет-аналитика // Алексей Никушин (Алексей Никушин)
Мы открываем все наши материалы всех лет. Надеюсь, кому-то это поможет отвлечься от новостей, кому-то заполнить пробелы в знаниях, кому-то познакомиться с кем-то.

На наших конференциях собирались люди из многих стран. И все они всегда могли найти точки соприкосновения.

Мы вернёмся к работе над конференциями в ближайшее время. Мы хотим в это верить, по крайней мере. А пока что не до конференций. Берегите себя и своих близких.

Матемаркетинг-18

Матемаркетинг-19

Матемаркетинг-20

Aha!'21 (new)

Матемаркетинг-21 (new)

Если что, пишите нам в почту info@matemarketing.ru
👍14🔥12
Похоже, настали непростые времена. Многие бегут от "военной операции", неожиданно релоцируются или просто ищут работу в такое время. Все это ужасно, и мне крайне жаль, что такое происходит в 21 веке

Понимаю, что этого мало, но если вам нужен совет/помощь, то я могу бесплатно:
- Дать советы по улучшению резюме
- Провести пробный собес
- Поговорить за сложные и не очень переходы в карьере
- Посоветовать, где и что можно учить по DS

Пишите в личку @Ivan_maksimov

---------------
В канале много новых людей, поэтому вкратце напомню, кто я такой, и о чем можно со мной пообщаться

Сейчас я DS team lead в Delivery club. Занимаюсь продуктовым ML: recsys, churn, A/B и немного NLP. До этого прогнозировал временные ряды и строил оптимизации поверх этого: оптимальные скидки, закупки товаров и т д

Подробнее можете посмотреть в моем LinkedIn. Если вы еще не поставили VPN - сделайте это

По любым вопросам пишите, не стесняйтесь. Надеюсь, смогу быть для кого-то полезным
69👍18🔥1
Через 15 минут соберемся с 3-емя интересными DS на ламповый стрим про жизнь и ML

Если интересно - присоединяйтесь)
Forwarded from 🏆 Data Feeling | AI (Александр (Aleron) Миленькин)
🎬 Ламповый стрим уже завтра. Поболтаем за жизнь и за DS. Начало в 18:00 по Мск.

👨‍🎨 Пригласил на стрим 3-х любопытных ребят (Андрей, Виктория и Иван). Про каждого для затравки расскажу в комментариях. Тут же в комментариях можете продолжать задавать вопросы и предлагать темы для обсуждений. Я все читаю🥷.

🤪 Про то, как начать в DS можно уже не спрашивать, вопрос уже избитый донельзя.

📜 Примерная повестка:
- Как работать и развиваться эффективнее.
- Организация рабочего пространства
- Пет проекты и стартапы
- Способы зарабатывать выше среднего в своей сфере.

📎Ссылка на стрим. Запись стрима будет 😇

Поделись постом со своими =)
👍7👎2🔥2
Долго ли, коротко ли, но мы в Delivery Club начали серию публикаций о развитии рекомендательных систем внутри компаний

Сегодня опубликовали первую часть на Хабр. Многие из этих моделей мне довелось писать самому или участвовать в их развитии как тим лид / ML product manager

В статье все, как я люблю - максимум ml4value. Необычные решения с несколькими моделями. В общем, мой рекомендасьон к прочтению - надеюсь, вам понравится)

#recsys
👍28🔥13👏2👎1
В канале уже почти месяц не было постов: это потому что я готовил нечто интересное для вас всех) Но обо всем по порядку: на этой неделе небольшие вводные истории, а все лакомое буду писать уже с понедельника


Итак, примерно полгода назад я выступал и рассказывал о способах ускорить А/В тесты. Даже тогда я много времени уделял процессам или "культуре экспериментов"

Можно бесконечно применять CUPED, CUPAC и другие методы, но что делать если:
- Менеджер говорит: "Фича супер важна, нужно выкатить ее еще вчера"?
- Ключевая метрика не красится и предлагается посчитать еще десяток других, которых не было в изначальном дизайне?
- Хотим запустить сразу 20 маркетинговых баннеров в тест?
- Аналитик дизайнит тест аж целый спринт?

Имхо, успешность фичей определяется ответами именно на эти вопросы в вашей "культуре экспериментов". Верхнеуровнево все довольно просто:

1. Появилась идея + ее побрейнштормили внутри команды = конкретное описание фичи
2. Посчитан ожидаемый импакт от фичи в конкретных 1-3 метриках
3. Оцениваем адекватность фичи на пользователях через UX
4. Делаем фичу и проверяем, что она технически работает
5. Смотрим на нескольких боевых пользователях и тестируем edge кейсы
6. Дизайним А/В = приемочные, барьерные и контрольные метрики, сроки и % пользователей
7. Запускаем тест
8. Принимаем решение в соответствии с дизайном

Звучит легко, но в реальности gap между аналитиком, продактом и разработчиком сильно усложняет процесс)
Забыли прокинуть событие в аналитику, не учли важную метрику соседней команды, покатили фичу в пятницу вечером - Узнаете ли свой опыт?)

Серия постов на этой неделе будет посвящена "культуре экспериментов" или "как избежать таких сложностей"

#ab
🔥22👍121👎1
Вчера мы опубликовали вторую часть серии статей про рекомендации ресторанов в Delivery Club. Она уже более техническая - про модели, фичи и архитектуру в проде

Если вы не читали первую часть, то стоит начать с нее 😉

#recsys
🔥21👍63🤩1
Автор канала @ml4value запускает курс по А/В: "Дизайн А/В в реальной жизни и культура экспериментов"

О чем курс
- На базовых принципах А/В разбираем спорные ситуации в компаниях
- Дизайним сложные А/В-тесты
- Обсуждаем, как запускать неординарные фичи
- Учимся хорошим культуре и процессу экспериментов

Вы узнаете, как эффективнее проводить эксперименты с фичами - и получать кратно больше фичей с импактом на бизнес.
Курс закроет gap между сухим мат. статом и желанием бизнеса "выкатить фичу еще вчера"

👨Коротко о преподавателе - Иван Максимов @Ivan_maksimov
- Автор канала @ml4value про пользу бизнесу от миашинного обучения
- 6+ лет в DS
- Руководит клиентской аналитикой и ML в Delivery Club. Создавал там in-house платформу А/В тестирования
- Еще вы можете его знать по докладу про ускорение А/В или по статьям (раз, два) на Хабре про рекомендательные системы

🧠Особенности курса
- Минимум мат. статистики
- Без программирования
- Много погружения в реальные проблемы бизнеса при экспериментах

👨‍💻Для кого
- Для аналитиков, продактов, ds и разработчиков
- От уровня junior+
- Для всех, кто хотя бы раз испытавал сложности с запуском фичей в продакшен

🗓 Когда и как
- Старт 19 мая, курс длится 6 недель
- 6 вебинаров + доп текстовые статьи + д/з на дизайн АВ + ответы на вопросы в чате
- 6-8 часов в неделю на прохождение курса
- 25 человек максимум, чтобы успеть ответить на все каверзные вопросы

💰За сколько?
- 14 700 руб до 11 мая
- 19 700 руб - после

Ссылка на регистрацию

Да пребудет с вами культура экспериментов!
🔥24👍3🤮1
Пару недель назад я вырос до руководителя клиентской аналитики и ML в Delivery Club 🚀

Если раньше я был тимлидом одной ML команды, то теперь тут целое направление: достаточно интересный челлендж!

Что, на мой взгляд, позволило это сделать

1. Окружение
В деливери все очень открыты новым идеям, даже довольно радикальным. Полностью переделать главную страницу приложения? Отказаться от готового вендорского решения по А/В и сделать свое? Легко!

В общем, я рад, что мои (и не только) идеи были поддержаны:)

2. Принципы ML4Value
Люди вокруг и особенно топ-менеджмент совсем по-разному воспринимают фразы "Давайте сделаем рек систему" и "Давайте повысим ARPU на 5%". Говорить в терминах business value от ML действительно работает

3. Soft skills
Да-да 😅
Сложно оценивать себя, но относительно других: я всего пару раз видел, когда data scientist'ам и аналитикам не хватает тех скиллов для роста. В подавляющем большинстве - это нехватка soft skills

Так что, помимо чтения статей про sota, не забывайте публично выступать, тренироваться в убеждении и других неожиданно ценных в DS навыках

4. "Душнила"
Возможно, это моя киллер фича. Если вижу, что что-то работает не так, я об этом скажу. Даже получил мини-награду за наибольшее число комментариев к рисерчам 💬

Почти 3 года назад, когда я был 6-ым аналитиком в чуть ли не стартапе Delivery Club, никто не знал, что такое случится. А теперь вперед к новым свершениям!)
🔥58👏11👍4🎉1