Мой топ-10 проблем с рекомендательными системами. Часть 1/4: Junior
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет уровень синьерности. Поехали!
Проблемы уровня Junior
Их обычно заметно невооруженным взглядом. Их достаточно часто могут определить даже далекие от рексис люди, посмотрев визуально рекомендации для себя
1. Нерелевантные аспекты
Непопадание в пол, ценовой сегмент или не учет явных интересов пользователя
Классика жанра, встречается практически во всех моделях
Решается очень по-разному: обучением отдельных моделей под сегменты пользователей, фичами в ранжирующем бустинге, костылями на проде - придется быть креативным 😇
2. Почти дубли + Низкое разнообразие
99% моделей оценивают некий скор релевантности товара пользователю. Часто очень похожие товары примерно одинаково релевантны, поэтому могут забить весь топ рекомендаций. Например, разные версии айфонов
Решается продуктово склейкой почти одинаковых товаров в одну карточку товара и на уровне ранжирования учетом разнообразия через DPP / MMR. Есть и более современные подходы: наиболее близки к этой теме multi-interest learning, listwise ranking
3. Кликбейт
Принимает разные формы:
- Слишком дешевые товары
- Слишком дорогие товары (золотой айфон за 1 млн)
- Кричащие заголовки / картинки (Напиток для похудения за 3 дня,курсы по ML с нуля до миддла за 3 месяца )
- Фрод продавцов или создателей контента (Фейковые отзывы, самовыкупы, циклические короткие видео)
- И еще добрая сотня вариантов
В основном борятся с кликбейтом аккуратным выбором таргета (вместо кликов использовать только долгие клики, например) и фильтрацией отдельных товаров/продавцов/тем по рейтингу, CTR и продуктовым свойствам
А как бы вы решали эти 3 проблемы?)
#recsys
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет уровень синьерности. Поехали!
Проблемы уровня Junior
Их обычно заметно невооруженным взглядом. Их достаточно часто могут определить даже далекие от рексис люди, посмотрев визуально рекомендации для себя
1. Нерелевантные аспекты
Непопадание в пол, ценовой сегмент или не учет явных интересов пользователя
Классика жанра, встречается практически во всех моделях
Решается очень по-разному: обучением отдельных моделей под сегменты пользователей, фичами в ранжирующем бустинге, костылями на проде - придется быть креативным 😇
2. Почти дубли + Низкое разнообразие
99% моделей оценивают некий скор релевантности товара пользователю. Часто очень похожие товары примерно одинаково релевантны, поэтому могут забить весь топ рекомендаций. Например, разные версии айфонов
Решается продуктово склейкой почти одинаковых товаров в одну карточку товара и на уровне ранжирования учетом разнообразия через DPP / MMR. Есть и более современные подходы: наиболее близки к этой теме multi-interest learning, listwise ranking
3. Кликбейт
Принимает разные формы:
- Слишком дешевые товары
- Слишком дорогие товары (золотой айфон за 1 млн)
- Кричащие заголовки / картинки (Напиток для похудения за 3 дня,
- Фрод продавцов или создателей контента (Фейковые отзывы, самовыкупы, циклические короткие видео)
- И еще добрая сотня вариантов
В основном борятся с кликбейтом аккуратным выбором таргета (вместо кликов использовать только долгие клики, например) и фильтрацией отдельных товаров/продавцов/тем по рейтингу, CTR и продуктовым свойствам
А как бы вы решали эти 3 проблемы?)
#recsys
👍53🔥11❤9👎2
Мой топ-10 проблем с рекомендательными системами. Часть 2/4: Middle
Рекомендации уже неплохие, но нет вау-эффекта. От продакта на этом этапе можно услышать "мы рекомендуем очевидное", "я уже видел подобное Х дней назад"
1. Рекомендательный пузырь
Возникает часто из-за таргета с фокусом на "жирные" действия: заказы товаров, лайк в соц сети, досмотр видео на 80+%
Люди склонны совершать такие жирные действия со знакомым контентом (то, что они уже видели). Решают эту проблему многими путями, самые популярные:
- Аккуратно добавлять в таргет "дискаверийные" действия: длинные клики, например
- Насильно подмешивать в финальную выдачу слабо-персонализированный контент: популярное в городе пользователя, трендовые товары
- Продуктово делать врезки с отдельными категориями
- Фильтровать уже купленные/показанные товары
Менее очевидная причина - Feedback loop: пользователь лайкает то, что мы ему показываем - модель на этом учится и продолжает показывать то же самое
Имхо, переоцененная история. В большинстве сервисов рекомендации - совсем не основной источник кликов/заказов, все же поиск в этом аспекте доминирует. Поэтому просто обучайтесь на всех данных сервиса (не только кликах, заказах из рекомендаций) - и все будет в порядке 😉
Если все же такая проблема есть (например, ваш сервис - ютуб), то можно выделять слоты в ленте с около-случайными рекомендациями и обучатсья на них
2. В рекомендациях нет необычных товаров: нет вау-эффекта (serendipity)
Хотелось бы, чтобы рекомендации помогали человеку увидеть то, что он сам вряд ли бы смог найти за 1-2 поисковых запроса. Это дает вау-эффект, в теории растит удовлетворенность рекомендациями и ретеншен
Чтобы добиться такого эффекта, нужно технически побороть хотя бы popularity bias
- Добавлять в таргет бОльший вес непопулярным товарам
- Умно сэмплить негативы при обучении модели
- Тестировать хитрые лоссы (cosine contrastive loss, например)
- Брать не топ-N товаров из рекомендательного алгоритма (обычно кандидато-генератора), а сэмплить их из всех товаров пропорционально скору модели
#recsys
Рекомендации уже неплохие, но нет вау-эффекта. От продакта на этом этапе можно услышать "мы рекомендуем очевидное", "я уже видел подобное Х дней назад"
1. Рекомендательный пузырь
Возникает часто из-за таргета с фокусом на "жирные" действия: заказы товаров, лайк в соц сети, досмотр видео на 80+%
Люди склонны совершать такие жирные действия со знакомым контентом (то, что они уже видели). Решают эту проблему многими путями, самые популярные:
- Аккуратно добавлять в таргет "дискаверийные" действия: длинные клики, например
- Насильно подмешивать в финальную выдачу слабо-персонализированный контент: популярное в городе пользователя, трендовые товары
- Продуктово делать врезки с отдельными категориями
- Фильтровать уже купленные/показанные товары
Менее очевидная причина - Feedback loop: пользователь лайкает то, что мы ему показываем - модель на этом учится и продолжает показывать то же самое
Имхо, переоцененная история. В большинстве сервисов рекомендации - совсем не основной источник кликов/заказов, все же поиск в этом аспекте доминирует. Поэтому просто обучайтесь на всех данных сервиса (не только кликах, заказах из рекомендаций) - и все будет в порядке 😉
Если все же такая проблема есть (например, ваш сервис - ютуб), то можно выделять слоты в ленте с около-случайными рекомендациями и обучатсья на них
2. В рекомендациях нет необычных товаров: нет вау-эффекта (serendipity)
Хотелось бы, чтобы рекомендации помогали человеку увидеть то, что он сам вряд ли бы смог найти за 1-2 поисковых запроса. Это дает вау-эффект, в теории растит удовлетворенность рекомендациями и ретеншен
Чтобы добиться такого эффекта, нужно технически побороть хотя бы popularity bias
- Добавлять в таргет бОльший вес непопулярным товарам
- Умно сэмплить негативы при обучении модели
- Тестировать хитрые лоссы (cosine contrastive loss, например)
- Брать не топ-N товаров из рекомендательного алгоритма (обычно кандидато-генератора), а сэмплить их из всех товаров пропорционально скору модели
#recsys
🔥38👍13🤔5❤2
Итоги года ML4Value
Год был очень насыщенный: Много нового узнал, кучу статей читал, работу менял, во все возможные поездки ездил, и внезапно написал постов на канале больше, чем в прошлом году:)
Как всегда детальные итоги года подвожу с запозданием - поэтому держите пока итоги от TGStat 🚀
Сделать свою картинку можно через @TGStat_Bot по запросу "2024 @username"
Год был очень насыщенный: Много нового узнал, кучу статей читал, работу менял, во все возможные поездки ездил, и внезапно написал постов на канале больше, чем в прошлом году:)
Как всегда детальные итоги года подвожу с запозданием - поэтому держите пока итоги от TGStat 🚀
Сделать свою картинку можно через @TGStat_Bot по запросу "2024 @username"
👍9❤8🔥5👎3
Что там с рынком IT-вакансий в 2025?
Со всех сторон слышны новости о сокращениях (Самолет, Vk, МТС, Сбер, Альфа и не только). Казалось бы, сейчас сотни кандидатов выйдут на рынок + онлайн-школы выпустят еще пару тысяч -- и да здравствует кровавый океан, где компании диктуют условия, и найм совершается за 1 месяц? Не тут-то было
Если вы сами искали кандидатов за последние полгода, то знаете, что поиск наоборот стал дольше / найма меньше. Но и зарплаты ничуть не снизились. В общем, какой-то парадокс. Далее будет сугубое имхо из анализа рынка и сплетен / новостей от знакомых - все, как мы любим 😊
На рынке джуниор-миддл
Спрос (кол-во вакансий) падает, а предложение (число кандидатов) растет -- по идее, должна снижаться зарплата для уравновешивания рынка. Но зарплаты снижать не вариант: конкуренция со стороны гос it, зарубежа. Также в отдельной команде может быть единственная вакансия за полгода, а не 3-4, как раньше. Поэтому важно найти "идеального" кандидата
Поэтому идет шринкфляция навыков. Помните молоко по той же цене, но за 900 мл вместо литра? Тут то же самое.
Шринкфляция навыков — на вакансию junior ищут кандидата с навыками middle-
В общем, тут советов 2:
- Прокачивайте свои навыки. Теперь недостаточно знать только pandas и catboost даже для стажировки(
- Расширяйте воронку поиска = подавайтесь на бОльшее число вакансий. Только не забывайте все же смотреть на релевантность ваших навыков роли, составлять приличное резюме и сопроводительное -- про конверсию воронки тоже надо помнить
P.S. Год учебы на курсах вписать в качестве года "работы" в резюме - ред флаг🚩
А вот приличный (!) пет проект за опыт работы - вполне вариант
На рынке синьор и выше
Тут ситуация, когда и вакансий мало, но и кандидатов тоже мало! За идеальный мэтч готовы платить много (вакансия синьера от 700k). Поэтому тут рынок превратился в executive search с очень точечным наймом, проверкой бэкграунда и буквально "охотой" за крутыми сотрудниками
Тут вы меня может и не просили советов, но куда ж без них)
- Качайте личный бренд, чтобы быть узнаваемым внутри своей компании и на рынке
- Выступление на конференциях, статьи на Хабре, тг-каналы теперь must have. Но опять же, помните про качество: стать узнаваемым с плохой стороны сотрудником - не очень удачная идея)
Embrace yourself, IT winter has come 🥶
#career
Со всех сторон слышны новости о сокращениях (Самолет, Vk, МТС, Сбер, Альфа и не только). Казалось бы, сейчас сотни кандидатов выйдут на рынок + онлайн-школы выпустят еще пару тысяч -- и да здравствует кровавый океан, где компании диктуют условия, и найм совершается за 1 месяц? Не тут-то было
Если вы сами искали кандидатов за последние полгода, то знаете, что поиск наоборот стал дольше / найма меньше. Но и зарплаты ничуть не снизились. В общем, какой-то парадокс. Далее будет сугубое имхо из анализа рынка и сплетен / новостей от знакомых - все, как мы любим 😊
На рынке джуниор-миддл
Спрос (кол-во вакансий) падает, а предложение (число кандидатов) растет -- по идее, должна снижаться зарплата для уравновешивания рынка. Но зарплаты снижать не вариант: конкуренция со стороны гос it, зарубежа. Также в отдельной команде может быть единственная вакансия за полгода, а не 3-4, как раньше. Поэтому важно найти "идеального" кандидата
Поэтому идет шринкфляция навыков. Помните молоко по той же цене, но за 900 мл вместо литра? Тут то же самое.
Шринкфляция навыков — на вакансию junior ищут кандидата с навыками middle-
В общем, тут советов 2:
- Прокачивайте свои навыки. Теперь недостаточно знать только pandas и catboost даже для стажировки(
- Расширяйте воронку поиска = подавайтесь на бОльшее число вакансий. Только не забывайте все же смотреть на релевантность ваших навыков роли, составлять приличное резюме и сопроводительное -- про конверсию воронки тоже надо помнить
P.S. Год учебы на курсах вписать в качестве года "работы" в резюме - ред флаг
А вот приличный (!) пет проект за опыт работы - вполне вариант
На рынке синьор и выше
Тут ситуация, когда и вакансий мало, но и кандидатов тоже мало! За идеальный мэтч готовы платить много (вакансия синьера от 700k). Поэтому тут рынок превратился в executive search с очень точечным наймом, проверкой бэкграунда и буквально "охотой" за крутыми сотрудниками
Тут вы меня может и не просили советов, но куда ж без них)
- Качайте личный бренд, чтобы быть узнаваемым внутри своей компании и на рынке
- Выступление на конференциях, статьи на Хабре, тг-каналы теперь must have. Но опять же, помните про качество: стать узнаваемым с плохой стороны сотрудником - не очень удачная идея)
Embrace yourself, IT winter has come 🥶
#career
Please open Telegram to view this post
VIEW IN TELEGRAM
hh.ru
Вакансия Senior Machine Learning Engineer (Computer Vision) в Москве, работа в компании Gradient (вакансия в архиве c 10 февраля…
Зарплата: от 700000 ₽ за месяц. Москва. Требуемый опыт: 3–6 лет. Полная. Дата публикации: 11.01.2025.
🔥50👍15🤯8❤3😁2
Инсайты с Data елки 🌲
На прошлых выходных ходил на Data елку в VK. В этом году по ощущениям бОльшая часть конфы была про RecSys и LLM: немало интересных докладов и кулуарных разговоров. Вот что мне запомнилось больше всего
1. VK RecSys Challenge: однозначного лидера в моделях RecSys все еще нет
Среди победителей на достаточно большом датасете VK.клипов есть решения на траснформерных нейронках, классических MLP и даже просто бустингах. В общем, успех зависел скорее от того, насколько качественно вы умеете варить мл-алгоритм, чем от самого алгоритма. Ну а на среднего размера датасетах консенсусно рулят EASE + бустинги
2. Foundational models в рекомендациях 💡
Нейросети в рекомендациях все больше идут в сторону Foundational models = единая модель для всех типов действий, которая используется везде (лента перс рекомендаций, поиск, похожие) ипредвидит будущее предсказывает будущие действия пользователей
3. LLM файнтюнят все, но используют активно в проде не только лишь все
Все файнтюнят open-source LLM (в основном llama) на своих данных - внедряют в основном для автоматизации поддержки. Но для подавляющего большинства задач все еще рулят BERT-ы. Кстати, с времен RoBERTa вышло много апгрейдов - почитайте про вышедший месяц назад modernBERT
4. Ставка на LLM-агенты в 2024 году не оправдалась 🥷
Все еще крайне мало успешных внедрений в бизнес. Но посмотрим, что нам сулит 2025 год, уже есть подающие надежды кейсы
В общем, в интересное время живем - продолжаю активно наблюдать за областями RecSys и LLM/NLP, и даже в некоторой степени их трогать)
#recsys #articles_review
На прошлых выходных ходил на Data елку в VK. В этом году по ощущениям бОльшая часть конфы была про RecSys и LLM: немало интересных докладов и кулуарных разговоров. Вот что мне запомнилось больше всего
1. VK RecSys Challenge: однозначного лидера в моделях RecSys все еще нет
Среди победителей на достаточно большом датасете VK.клипов есть решения на траснформерных нейронках, классических MLP и даже просто бустингах. В общем, успех зависел скорее от того, насколько качественно вы умеете варить мл-алгоритм, чем от самого алгоритма. Ну а на среднего размера датасетах консенсусно рулят EASE + бустинги
2. Foundational models в рекомендациях 💡
Нейросети в рекомендациях все больше идут в сторону Foundational models = единая модель для всех типов действий, которая используется везде (лента перс рекомендаций, поиск, похожие) и
3. LLM файнтюнят все, но используют активно в проде не только лишь все
Все файнтюнят open-source LLM (в основном llama) на своих данных - внедряют в основном для автоматизации поддержки. Но для подавляющего большинства задач все еще рулят BERT-ы. Кстати, с времен RoBERTa вышло много апгрейдов - почитайте про вышедший месяц назад modernBERT
4. Ставка на LLM-агенты в 2024 году не оправдалась 🥷
Все еще крайне мало успешных внедрений в бизнес. Но посмотрим, что нам сулит 2025 год, уже есть подающие надежды кейсы
В общем, в интересное время живем - продолжаю активно наблюдать за областями RecSys и LLM/NLP, и даже в некоторой степени их трогать)
#recsys #articles_review
arXiv.org
Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder...
Encoder-only transformer models such as BERT offer a great performance-size tradeoff for retrieval and classification tasks with respect to larger decoder-only models. Despite being the workhorse...
🔥31❤11👍9
Моя первая работа
Мало кто знает, но мое первое место работы случилось ~9 лет назад в рисерче в антифроде (хоть я тогда и не знал этого термина). Да не в обычном, а в антифроде банков. На дворе 2016 год, идет охота наведьм недобросоветсные банки. ЦБ отзывает лицензии у ~100 банков в год. Всех очевидных мошенников уже закрыли - хочется знать, как найти более хитрые недобросовестные банки для проверок? Тут на помощь приходит ML - прогнозируем будущую вероятность дефолта банка. Обычно за месяц до дефолта банк просто мега-хорош по фин отчетности, а после - хоп, и "дыра" в фин балансе на пару ярдов. То есть банки подделывают/играются с фин отчетностью (фродят)
Сфера с токи зрения ML очень академическая, во всех статьях используют лог-регрессию на вероятность дефолта. Ну и конечно с анализа этих статей я и начал. Тут же нашел там просто к-к-комбо из красных флагов
🚩 В 99% статей метрики качества считаются на трейне (прям как у некоторых llm сейчас 😅)
🚩 В качестве метрики используют ROC-AUC, хотя тут явно нужно что-то вроде precision/recall или даже precision/recall at X
🚩 На инференсе порог вероятности для дефолта... 50%. Его просто никто не подбирал
Из зеленых флагов - есть действительно занятные фичи фрода. Ну что ж, засучим рукава, и попробуем повторить результаты статей с нормальными ml-метриками на train/val/test split по времени и прочими уже стандартами в 2025 г
Выяснилось, что практически для всех статейtest precision = recall = 0 🧐
Вооружаемся регуляризацией, балансировкой классов, катбустом и фича инжинирингом - получаем на тесте уже что-то приличное.
Для "быстрой ручной проверки" с высоким порогом вероятности будущего дефолта precision ~87% при recall ~23%.
Для "вдумчивой ручной проверки" и среднего порога precision ~30%, recall ~70%
Дополнительно смотрим на feature importance: все супер, в топе много фичей, которые экономически обоснованы и появляются часто в достойных статьях. Из занятного, >50% feature importance давали фичи
- ликвидности активов (как быстро банк может продать активы)
- доля ритейл-компаний в кредитном портфеле (да, комерсам давать было деньги опасно)
- доля выданных кредитов, которая плохо обеспечена активами банка (выдают кредиты всем подряд)
- обьем зарубежных операций VS активы (отмывание денег)
Интересно, что доля банка на рынке не так сильно влияла на вероятность дефолта. Еще и некоторым топовым банкам модель выдавала вероятность дефолта сильно больше 0%. Но потом все встало на свои места: началась санация (отзыв лицензии) одного из топ-5 банков "Открытие". Занятно, что по модельке его вероятность дефолта =20% за полгода до начала санации и ~70% за 2 мес. В общем, случилось довольно интересное приложение науки к реальности 👨🔬
А какие необычные места работы были у вас в начале карьеры?
Пишите в комменты: по моему опыту, часто это годные куллстори 🔽
#personal
Мало кто знает, но мое первое место работы случилось ~9 лет назад в рисерче в антифроде (хоть я тогда и не знал этого термина). Да не в обычном, а в антифроде банков. На дворе 2016 год, идет охота на
Сфера с токи зрения ML очень академическая, во всех статьях используют лог-регрессию на вероятность дефолта. Ну и конечно с анализа этих статей я и начал. Тут же нашел там просто к-к-комбо из красных флагов
🚩 В 99% статей метрики качества считаются на трейне (прям как у некоторых llm сейчас 😅)
🚩 В качестве метрики используют ROC-AUC, хотя тут явно нужно что-то вроде precision/recall или даже precision/recall at X
🚩 На инференсе порог вероятности для дефолта... 50%. Его просто никто не подбирал
Из зеленых флагов - есть действительно занятные фичи фрода. Ну что ж, засучим рукава, и попробуем повторить результаты статей с нормальными ml-метриками на train/val/test split по времени и прочими уже стандартами в 2025 г
Выяснилось, что практически для всех статей
Вооружаемся регуляризацией, балансировкой классов, катбустом и фича инжинирингом - получаем на тесте уже что-то приличное.
Для "быстрой ручной проверки" с высоким порогом вероятности будущего дефолта precision ~87% при recall ~23%.
Для "вдумчивой ручной проверки" и среднего порога precision ~30%, recall ~70%
Дополнительно смотрим на feature importance: все супер, в топе много фичей, которые экономически обоснованы и появляются часто в достойных статьях. Из занятного, >50% feature importance давали фичи
- ликвидности активов (как быстро банк может продать активы)
- доля ритейл-компаний в кредитном портфеле (да, комерсам давать было деньги опасно)
- доля выданных кредитов, которая плохо обеспечена активами банка (выдают кредиты всем подряд)
- обьем зарубежных операций VS активы (отмывание денег)
Интересно, что доля банка на рынке не так сильно влияла на вероятность дефолта. Еще и некоторым топовым банкам модель выдавала вероятность дефолта сильно больше 0%. Но потом все встало на свои места: началась санация (отзыв лицензии) одного из топ-5 банков "Открытие". Занятно, что по модельке его вероятность дефолта =20% за полгода до начала санации и ~70% за 2 мес. В общем, случилось довольно интересное приложение науки к реальности 👨🔬
А какие необычные места работы были у вас в начале карьеры?
Пишите в комменты: по моему опыту, часто это годные куллстори 🔽
#personal
👍64👏5🤓4❤1
Топ-10 проблем с рекомендациями: Уровень Senior 🍅
На этом уровне уже понимаешь, что качество рекомендаций измеряется не метриками рекомендаций (про них раз , два ) 😅
А метриками покупателей, продавцов и бизнеса. И главная проблема: научиться рекомендациями растить именно эти метрики, а не что-то еще. Далее буду очень краток, иначе все не влезет в один пост
Метрики покупателей
«Хочу удобно и быстро выбрать товар по хорошей цене»
- Факт выбора: конверсия из показа рек в покупку/корзину
- Быстро: время на совершение покупки. В доставке измеряют даже click2eat - время от открытия приложения до начала ужина🍴
- Удобно: мерить сложно. Неплохо начать хотя бы с использования фильтров/подсказок + рост конверсии за ними vs без них
- По хорошей цене: можно мерить цену покупки vs рынок
- Это все может не отражать «счастье покупателя». Не верьте до конца метрикам выше и тем более NPS. Тут поможет Retention
Метрики продавцов
«Хочу продать как можно больше по максимально возможной цене и получить прибыль»
- Продать побольше: доля продавцов с > N продаж в неделю. Обычно если сервис несет мало заказов продавцу, то он легко может и уйти с этого сервиса
- Приятность цены для продавца и прибыль вы скорее всего не измерите. Но если с ним все Ок, то продавец останется с вами (Retention) и будет активничать на платформе (Доля продавцов с новым ассортиментом, отвечающих на отзывы, … - включите фантазию)
P.S. Продавцами могут быть не только продавцы товаров, но и продавцы своих услуг (мастер на час, курьер, …). Тут вы можете знать больше о их заработке через ваш продукт - можете считать их метрики прибыльности
Метрики бизнеса
«Хотим захватить рынок -> Вырастить капитализацию -> Получить побольше прибыли -> Удержать прибыльную нишу» 🎯
В общем-то это все реальные цели, которые могут быть у бизнеса. Счастье покупателей, сделать мир лучше, eco friendly - это может декларироваться целью, только если ведет к реальным целям
Захватить рынок - DAU, MAU, Retention. Кто-то любит мерить долю рынка не в людях, а в обороте денег - тогда мерим Выручку/GMV
Вырастить капитализацию - обычно это рост Выручки при прибыльности > X%. Часто > -Х%. Да-да, вспомните убыточные десятилетиями uber и amazon
Прибыль - собственно, прибыль и ее составляющие. Не забудьте в составляющих рекламную выручку, затраты на доставку, возвраты и кучу всего еще ☺️
Удержать прибыльную нишу - Retention пользователей в этой нише. Классный пример - Apple. 20% от обьема продаж на рынке смартфонов/ноутов дают им порядка 50% прибыли этого рынка
——————————————-
После осознания и расчета настоящих метрик рекомендаций начинается долгий и болезненный путь поиска связи оффлайн мл-метрик с ними. Путь этот можно пройти разными тропками:
- Строить корреляции и регрессии на оффлайн данных
- Пробовать найти взаимосвязи через множество АВ
- Внедрять RL
- Разделить продукт на разные по целевым метрикам рекомендательные блоки и развивать их почти независимо
- Построить стройную логику и просто верить ей
Выбирайте ваш путь сами, но помните: «просто верить» ведет в бездну разочарования ☝️
#recsys
На этом уровне уже понимаешь, что качество рекомендаций измеряется не метриками рекомендаций (про них раз , два ) 😅
А метриками покупателей, продавцов и бизнеса. И главная проблема: научиться рекомендациями растить именно эти метрики, а не что-то еще. Далее буду очень краток, иначе все не влезет в один пост
Метрики покупателей
«Хочу удобно и быстро выбрать товар по хорошей цене»
- Факт выбора: конверсия из показа рек в покупку/корзину
- Быстро: время на совершение покупки. В доставке измеряют даже click2eat - время от открытия приложения до начала ужина
- Удобно: мерить сложно. Неплохо начать хотя бы с использования фильтров/подсказок + рост конверсии за ними vs без них
- По хорошей цене: можно мерить цену покупки vs рынок
- Это все может не отражать «счастье покупателя». Не верьте до конца метрикам выше и тем более NPS. Тут поможет Retention
Метрики продавцов
«Хочу продать как можно больше по максимально возможной цене и получить прибыль»
- Продать побольше: доля продавцов с > N продаж в неделю. Обычно если сервис несет мало заказов продавцу, то он легко может и уйти с этого сервиса
- Приятность цены для продавца и прибыль вы скорее всего не измерите. Но если с ним все Ок, то продавец останется с вами (Retention) и будет активничать на платформе (Доля продавцов с новым ассортиментом, отвечающих на отзывы, … - включите фантазию)
P.S. Продавцами могут быть не только продавцы товаров, но и продавцы своих услуг (мастер на час, курьер, …). Тут вы можете знать больше о их заработке через ваш продукт - можете считать их метрики прибыльности
Метрики бизнеса
«Хотим захватить рынок -> Вырастить капитализацию -> Получить побольше прибыли -> Удержать прибыльную нишу» 🎯
В общем-то это все реальные цели, которые могут быть у бизнеса. Счастье покупателей, сделать мир лучше, eco friendly - это может декларироваться целью, только если ведет к реальным целям
Захватить рынок - DAU, MAU, Retention. Кто-то любит мерить долю рынка не в людях, а в обороте денег - тогда мерим Выручку/GMV
Вырастить капитализацию - обычно это рост Выручки при прибыльности > X%. Часто > -Х%. Да-да, вспомните убыточные десятилетиями uber и amazon
Прибыль - собственно, прибыль и ее составляющие. Не забудьте в составляющих рекламную выручку, затраты на доставку, возвраты и кучу всего еще ☺️
Удержать прибыльную нишу - Retention пользователей в этой нише. Классный пример - Apple. 20% от обьема продаж на рынке смартфонов/ноутов дают им порядка 50% прибыли этого рынка
——————————————-
После осознания и расчета настоящих метрик рекомендаций начинается долгий и болезненный путь поиска связи оффлайн мл-метрик с ними. Путь этот можно пройти разными тропками:
- Строить корреляции и регрессии на оффлайн данных
- Пробовать найти взаимосвязи через множество АВ
- Внедрять RL
- Разделить продукт на разные по целевым метрикам рекомендательные блоки и развивать их почти независимо
- Построить стройную логику и просто верить ей
Выбирайте ваш путь сами, но помните: «просто верить» ведет в бездну разочарования ☝️
#recsys
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
ML for Value / Ваня Максимов
Мой топ-10 проблем с рекомендательными системами. Часть 1/4: Junior
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет…
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет…
👍39🔥9❤6
CDO или вождь племени
На выходных участвовал в игре: нужно было управлять толпой незнакомых людей >100 чел. Сроки ограничены, не все правила понятны, ну и конечно нужно выполнитьKPI компании цели в игре. Игра для меня - аналогия управления департаментом компании в непростое время. В итоге я потерпел фиаско, но кое-чему научился . И вот мои инсайты:
1. Как стать лидером? Просто прояви инициативу
Первой задачей "толпы" было выбрать лидера (CDO). Я просто громко предложил себя в роли лидера и добавил "весомый" аргумент: я высокий - меня будет видно из толпы)
Да, нужно так мало
Да, маленькие манипуляции работают. Но об этом в другой раз, и возможно даже не на канале, а на конференции
2. Другие лидеры - твои главные друзья
Не только я хотел стать лидером, но и еще 2 человека (стали тимлидами). В итоге они мне сильно помогли
Дальше нужно было 5 раз организовать голосование между вариантами А и В. Голосовать должны все, побеждает вариант с наибольшим числом голосов. Не вдаваясь в подробности: Игра вроде простая, решили не усложнять. Выигрышный вариант мы быстро просчитали (сформировали стратегию) - всегда голосовать за А. Сказали убедительную речь, вроде бы дальше дело за малым - погнали!
3. Кредит доверия по дефолту очень мал
Quick wins его повышают, а Failures - уничтожают
Мы быстро устроили голосование как в "Игре в кальмара": кто за А встает слева от черты, кто за В - справа (визуально легко видно большинство).
90% поддержали вариант А
5% поддержали В
4% "правых" делали что-то другое кроме голосования: уверяли в правоте другого способа голосования, переубеждали голосовать за В (не голосовали сами, а переубеждали) и тд.
1% "отстраненных"
Даже с 5% тут уже на 1-1 не поговоришь. Мы попросили лично ~7-10 людей подойти к ним и поговорить - это cработало! Да-да, делегирование:)
Но потом подходит организатор и не засчитывает голосование: Вы уверены, что все проголосовали? Сколько людей в вашей команде?
Возможно, это был специальный ход для сложности игры, но энивей. Дальше все пошло не по плану (после такого незначительного провала!), доли игроков резко изменились
50% поддерживющих А (мы потеряли 40% !!)
25% поддерживающих В (многие перестали верить в нашу стратегию)
5% правых (+-)
30% отстраненных (x30)
4. Строй структуру и команды
Мы устроили еще 2 полу-успешных попыток голосования, и в 4ый раз проголосовать уже не вышло. Поддерживающие А спорили с поддерживающими В, правые доказывали, отстраненные ушли в дальнюю часть комнаты
Вероятно было бы хорошим решением сразу разделить всех на группы по 10 чел + дать им выбрать тимлида в каждой. Понятно сколько людей, лид убедит всех в варианте А, выслушает правых и поддержит отсраненных
Интересно, что через минут 10 после "что-то пошло не по плану" мы попытались построить структуру, но было уже поздно
5. Психологические инсайты
- Много людей пытались мне напрямую что-то сказать. Но говорили одновременно - я не смог никого услышать полноценно( Хотя обрывками слышал много классных идей
- Пару человек даже яро убеждали меня, что ничего не получится!
- В один момент я задумался на 10-15 секунд, как лучше поступить дальше: многие начали злиться, что я ничего не делаю (люди хотят знать план)
После окончания игры я поговорил со многими игроками:
- "Правые" просто хотели быть услышанными. Не всем даже обязательно нужно было, чтобы мы следовали их предложениям (шок). Но без структуры и понятных процессов у меня не получилось их услышать
- Из 90% поддерживших нашу стратегию А в первый раз, многие согласились с ней не из-за веры в стратегию. А просто потому что увидели первые quick wins (выбрать лидов, сформулировать стратегию и способ голосования)
- Один из лидов не хотел быть хэдом и думал тайно мной управлять :) Но в итоге помогал! Стратегия поддерживать друг друга реально выигрышная, да еще и приятная)
В общем, много инсайтов, есть над чем поразмыслить
#teamlead
На выходных участвовал в игре: нужно было управлять толпой незнакомых людей >100 чел. Сроки ограничены, не все правила понятны, ну и конечно нужно выполнить
1. Как стать лидером? Просто прояви инициативу
Первой задачей "толпы" было выбрать лидера (CDO). Я просто громко предложил себя в роли лидера и добавил "весомый" аргумент: я высокий - меня будет видно из толпы)
Да, нужно так мало
Да, маленькие манипуляции работают. Но об этом в другой раз, и возможно даже не на канале, а на конференции
2. Другие лидеры - твои главные друзья
Не только я хотел стать лидером, но и еще 2 человека (стали тимлидами). В итоге они мне сильно помогли
Дальше нужно было 5 раз организовать голосование между вариантами А и В. Голосовать должны все, побеждает вариант с наибольшим числом голосов. Не вдаваясь в подробности: Игра вроде простая, решили не усложнять. Выигрышный вариант мы быстро просчитали (сформировали стратегию) - всегда голосовать за А. Сказали убедительную речь, вроде бы дальше дело за малым - погнали!
3. Кредит доверия по дефолту очень мал
Quick wins его повышают, а Failures - уничтожают
Мы быстро устроили голосование как в "Игре в кальмара": кто за А встает слева от черты, кто за В - справа (визуально легко видно большинство).
90% поддержали вариант А
5% поддержали В
4% "правых" делали что-то другое кроме голосования: уверяли в правоте другого способа голосования, переубеждали голосовать за В (не голосовали сами, а переубеждали) и тд.
1% "отстраненных"
Даже с 5% тут уже на 1-1 не поговоришь. Мы попросили лично ~7-10 людей подойти к ним и поговорить - это cработало! Да-да, делегирование:)
Но потом подходит организатор и не засчитывает голосование: Вы уверены, что все проголосовали? Сколько людей в вашей команде?
Возможно, это был специальный ход для сложности игры, но энивей. Дальше все пошло не по плану (после такого незначительного провала!), доли игроков резко изменились
50% поддерживющих А (мы потеряли 40% !!)
25% поддерживающих В (многие перестали верить в нашу стратегию)
5% правых (+-)
30% отстраненных (x30)
4. Строй структуру и команды
Мы устроили еще 2 полу-успешных попыток голосования, и в 4ый раз проголосовать уже не вышло. Поддерживающие А спорили с поддерживающими В, правые доказывали, отстраненные ушли в дальнюю часть комнаты
Вероятно было бы хорошим решением сразу разделить всех на группы по 10 чел + дать им выбрать тимлида в каждой. Понятно сколько людей, лид убедит всех в варианте А, выслушает правых и поддержит отсраненных
Интересно, что через минут 10 после "что-то пошло не по плану" мы попытались построить структуру, но было уже поздно
5. Психологические инсайты
- Много людей пытались мне напрямую что-то сказать. Но говорили одновременно - я не смог никого услышать полноценно( Хотя обрывками слышал много классных идей
- Пару человек даже яро убеждали меня, что ничего не получится!
- В один момент я задумался на 10-15 секунд, как лучше поступить дальше: многие начали злиться, что я ничего не делаю (люди хотят знать план)
После окончания игры я поговорил со многими игроками:
- "Правые" просто хотели быть услышанными. Не всем даже обязательно нужно было, чтобы мы следовали их предложениям (шок). Но без структуры и понятных процессов у меня не получилось их услышать
- Из 90% поддерживших нашу стратегию А в первый раз, многие согласились с ней не из-за веры в стратегию. А просто потому что увидели первые quick wins (выбрать лидов, сформулировать стратегию и способ голосования)
- Один из лидов не хотел быть хэдом и думал тайно мной управлять :) Но в итоге помогал! Стратегия поддерживать друг друга реально выигрышная, да еще и приятная)
В общем, много инсайтов, есть над чем поразмыслить
#teamlead
👍30❤9
Топ-3 локации для workation 🌴
Действительно полезный контент на канале!
В год я провожу порядка 4-5 месяцев на удаленной работе вне Москвы. За последние 3 года успел пожить в 15 локациях от 1 до 6 недель в формате workation = полноценная работа + отдых. И вот мои топ места
1. Шерегеш
Мекка горных лыж и сноуборда в Сибири. Недорого, легко добраться, приятная разница в +4ч с Москвой и невероятные снежные склоны 🏂
Пожалуй, моя любимая зимняя локация. Разница во времени +4ч к Москве позволяет кататься по скипасу на полдня с 9 до 13, и начинать работать в 14 (это 10 по мск). Рекомендую заглянуть в Юрту за атмосферой, Трамплин за легендарными блинами и в Rooks за вкусными бургерами и тусовками. Есть IT-коммьюнити: некоторые живут в Геше по 1-2 месяца!
Из небольших минусов: дорога в Геш из Москвы займет ~7ч = 4ч на самолете +3ч на трансфере
Хоть сезон и начинается в ноябре, ехать лучше с января по март - гарантированно будет много пухлого ❄️
И, пожалуйста, не надо ехать на Новогодние: слишком много людей)
~90-120к/неделю будет стоить такое удовольствие, включая перелет и катание на горе
2. Вьетнам
Внезапно, но очень много крутых городков для удаленки. Также +4ч в Москве позволяет комфортно позаниматься спортом / потусить на пляже до ~13 по местному времени. Во Вьетнаме достаточно ветрено, поэтому погода в +28 переносится очень комфортно (даже в обед) в отличие от других азиатских стран
Дананг - длинные пляжи, топовые кофейни и коворкинги, тренажерки и ну ооочень дешевый теннис. Кажется, в Москве я тратил на него в неделю больше, чем в Дананге за месяц 🎾
Фанранг, Муйне - для любителей спорта на основе вода + ветер: кайтсерф, виндсерфинг, вингсерф и кое-где даже просто серфинг. Очень много колоритных европейцев, так что можно даже прокачать английский: я общался с парой из Нидерландов, которая ехала во Вьетнам целый месяц на машине через Монголию. Там они участвовали во, внимание..монгольском ралли!
Сезон с декабря по конец февраля. Ехать сюда имеет смысл на 2-4 недели, тк перелет достаточно дорогой. На мое месячное пребывание у меня выходило средненедельно:
~60к/неделю с теннисом, Карл! @local_tennis , @mnushkinchannel давайте следующий теннисный кэмп проведем во Вьетнаме)
И еще +50к/неделю любителям кайт- и винд-серфа - удовольствие это не из дешевых
3. Шри-ланка
Слышал я про ваши Бали и Тай, и даже в части из этих мест жил. Но по соотношению цена-качество Шри-Ланка однозначно побеждает. А прямые дешевые перелеты из Москвы окончательно вывели Шри на первое место в этой гонке. +2,5ч к Москве дают возможность спокойно посерфить / тренироваться / чиллить на пляже с утра до 11:30 (9 по мск). После все равно наступает жара и вы так или иначе пойдете под кондиционер - самое время поработать!)
Велигама и Мирисса - отличные локации на берегу с кучей серф-школ, серферскими же кофейнями с пп завтраками и всеми атрибутами. Есть хорошие спортзалы и коворинги, огромное русское и европейское IT-сообщество. Почти наверняка встретите там своих знакомых. Из минусов - многие достопримечательности в центре острова: добраться удастся за 3 часа только в выходные
Сезон с декабря по март. Ехать также лучше сразу на 2-4 недели, тогда средненедельно с учетом перелета:
~60-100к/неделю. Сильно зависит от жилья. Можно еще бюджетнее, но жилье будет тогда в виде тропической хижины с вентилятором: ради эксперимента один раз попробовать можно, но не рекомендую:)
И еще +30к/неделю любителям серфа: хорошая серф-школа стоит прилично, но зато и прогресс у вас будет очень быстрый 🏄♂️
А где вы любите проводить свой workation?
#personal
Действительно полезный контент на канале!
В год я провожу порядка 4-5 месяцев на удаленной работе вне Москвы. За последние 3 года успел пожить в 15 локациях от 1 до 6 недель в формате workation = полноценная работа + отдых. И вот мои топ места
1. Шерегеш
Мекка горных лыж и сноуборда в Сибири. Недорого, легко добраться, приятная разница в +4ч с Москвой и невероятные снежные склоны 🏂
Пожалуй, моя любимая зимняя локация. Разница во времени +4ч к Москве позволяет кататься по скипасу на полдня с 9 до 13, и начинать работать в 14 (это 10 по мск). Рекомендую заглянуть в Юрту за атмосферой, Трамплин за легендарными блинами и в Rooks за вкусными бургерами и тусовками. Есть IT-коммьюнити: некоторые живут в Геше по 1-2 месяца!
Из небольших минусов: дорога в Геш из Москвы займет ~7ч = 4ч на самолете +3ч на трансфере
Хоть сезон и начинается в ноябре, ехать лучше с января по март - гарантированно будет много пухлого ❄️
И, пожалуйста, не надо ехать на Новогодние: слишком много людей)
~90-120к/неделю будет стоить такое удовольствие, включая перелет и катание на горе
2. Вьетнам
Внезапно, но очень много крутых городков для удаленки. Также +4ч в Москве позволяет комфортно позаниматься спортом / потусить на пляже до ~13 по местному времени. Во Вьетнаме достаточно ветрено, поэтому погода в +28 переносится очень комфортно (даже в обед) в отличие от других азиатских стран
Дананг - длинные пляжи, топовые кофейни и коворкинги, тренажерки и ну ооочень дешевый теннис. Кажется, в Москве я тратил на него в неделю больше, чем в Дананге за месяц 🎾
Фанранг, Муйне - для любителей спорта на основе вода + ветер: кайтсерф, виндсерфинг, вингсерф и кое-где даже просто серфинг. Очень много колоритных европейцев, так что можно даже прокачать английский: я общался с парой из Нидерландов, которая ехала во Вьетнам целый месяц на машине через Монголию. Там они участвовали во, внимание..
Сезон с декабря по конец февраля. Ехать сюда имеет смысл на 2-4 недели, тк перелет достаточно дорогой. На мое месячное пребывание у меня выходило средненедельно:
~60к/неделю с теннисом, Карл! @local_tennis , @mnushkinchannel давайте следующий теннисный кэмп проведем во Вьетнаме)
И еще +50к/неделю любителям кайт- и винд-серфа - удовольствие это не из дешевых
3. Шри-ланка
Слышал я про ваши Бали и Тай, и даже в части из этих мест жил. Но по соотношению цена-качество Шри-Ланка однозначно побеждает. А прямые дешевые перелеты из Москвы окончательно вывели Шри на первое место в этой гонке. +2,5ч к Москве дают возможность спокойно посерфить / тренироваться / чиллить на пляже с утра до 11:30 (9 по мск). После все равно наступает жара и вы так или иначе пойдете под кондиционер - самое время поработать!)
Велигама и Мирисса - отличные локации на берегу с кучей серф-школ, серферскими же кофейнями с пп завтраками и всеми атрибутами. Есть хорошие спортзалы и коворинги, огромное русское и европейское IT-сообщество. Почти наверняка встретите там своих знакомых. Из минусов - многие достопримечательности в центре острова: добраться удастся за 3 часа только в выходные
Сезон с декабря по март. Ехать также лучше сразу на 2-4 недели, тогда средненедельно с учетом перелета:
~60-100к/неделю. Сильно зависит от жилья. Можно еще бюджетнее, но жилье будет тогда в виде тропической хижины с вентилятором: ради эксперимента один раз попробовать можно, но не рекомендую:)
И еще +30к/неделю любителям серфа: хорошая серф-школа стоит прилично, но зато и прогресс у вас будет очень быстрый 🏄♂️
А где вы любите проводить свой workation?
#personal
🔥37👍18❤9👨💻1
А/В полиция уже выехала 🚨
Думаю, очень многие знают меня по видео "13 способов ускорить А/В тест: не CUPED-ом единым". Практически на каждом месте работы я приложил руку к А/В тестированию: создал 2 платформы АВ, провалидировал >1K АВ-тестов и кое-где так тщательно следил за корректностью проведения экспов, что мою команду назвали АВ Police 😅
Теперь AB Police выезжает за всеми, кто некорректно проводит АВ! А именно, я завел новый канал @abpolice
Там я и еще несколько ав-полицейских будем проводить разбор ваших кейсов с экспериментами, давать ценные советы и материалы по АВ
В общем, подписывайтесь , чтобы не пропустить первый пост-разбор эксперимента сегодня в 19:00
Ну и присылайте свои вопросы/кейсы на бесплатные разборы в гугл-форму: на нее же ведет кнопка в закрепе канала АВ полиции
Мы стоим на стражеспокойствия статистической достоверности в этом городе!
Думаю, очень многие знают меня по видео "13 способов ускорить А/В тест: не CUPED-ом единым". Практически на каждом месте работы я приложил руку к А/В тестированию: создал 2 платформы АВ, провалидировал >1K АВ-тестов и кое-где так тщательно следил за корректностью проведения экспов, что мою команду назвали АВ Police 😅
Теперь AB Police выезжает за всеми, кто некорректно проводит АВ! А именно, я завел новый канал @abpolice
Там я и еще несколько ав-полицейских будем проводить разбор ваших кейсов с экспериментами, давать ценные советы и материалы по АВ
В общем, подписывайтесь , чтобы не пропустить первый пост-разбор эксперимента сегодня в 19:00
Ну и присылайте свои вопросы/кейсы на бесплатные разборы в гугл-форму: на нее же ведет кнопка в закрепе канала АВ полиции
Мы стоим на страже
👍16🔥6❤5
Deep Learning умер 💀
По мотивам поста у partially_unsupervised
Моя команда недавно делала классификатор текста с небольшим количеством трейн данных. В итоге, пайплайн был очень прост:
- подбор промпта (p-tune, aka finetune на минималках) к YaGPT на задачу классификации
- дистиляция YaGPT в простую NLP-модель (чуть ли не MLP) для быстрого инференса
Супер-быстро, рвет кастомные обученные с нуля сетки в пух и прах. Дообученный bert тоже. Основной челлендж скорее в определении таргета и сборе качественных данных
В целом, с развитием LLAMA / DeepSeek и прочих open-source LLM все больше компаний делают скорее бэкенд-обертки и промпты/логику поверх (файнтюн - просто более хитрая обертка), а не разрабатывают свои DL-решения. Получается, что для большинства компаний глубоких знаний в DL больше не нужно, только "fit-predict"? И трушный DL мертв?
Я бы сказал, что рано бросать курсы по DL и переходить в prompt-инженеры)
Во-первых, тру DL остался в рисерч отделах многих компаний. И в России тоже!
Во-вторых, в целые отрасли еще не внедрены LLM и foundational models. И во многие из них в ближайшие 2-3 года вряд ли внедрят:
- Таблички! Тут все еще рулят кастомные фичи + бустинги. Есть интересные попытки затащить нейроки (TabNet), но они все еще очень кастомные
- Computer Vision: уже на грани с появлением VLM, но еще держится. Знали бы вы, сколько промптов я перепробовал, чтобы сгенерить +- нужную мне картинку к посту)
- RecSys и Search: не просто так я именно тут работаю 😅. Много кастомных нейронок (SASRec, HSTU) и очень сложная метрика для оптимизации (баланс интересов пользователя, продавца, маркетплейса, логистики и еще кучи всего) - LLM пока не справляется
- Отрасли с "особенностями": Медицина, промышленность, строительство
В общем, не перевелись ещебогатыри кастомные нейронки на земле русской 🌾
Ваш @ml4value
По мотивам поста у partially_unsupervised
Моя команда недавно делала классификатор текста с небольшим количеством трейн данных. В итоге, пайплайн был очень прост:
- подбор промпта (p-tune, aka finetune на минималках) к YaGPT на задачу классификации
- дистиляция YaGPT в простую NLP-модель (чуть ли не MLP) для быстрого инференса
Супер-быстро, рвет кастомные обученные с нуля сетки в пух и прах. Дообученный bert тоже. Основной челлендж скорее в определении таргета и сборе качественных данных
В целом, с развитием LLAMA / DeepSeek и прочих open-source LLM все больше компаний делают скорее бэкенд-обертки и промпты/логику поверх (файнтюн - просто более хитрая обертка), а не разрабатывают свои DL-решения. Получается, что для большинства компаний глубоких знаний в DL больше не нужно, только "fit-predict"? И трушный DL мертв?
Я бы сказал, что рано бросать курсы по DL и переходить в prompt-инженеры)
Во-первых, тру DL остался в рисерч отделах многих компаний. И в России тоже!
Во-вторых, в целые отрасли еще не внедрены LLM и foundational models. И во многие из них в ближайшие 2-3 года вряд ли внедрят:
- Таблички! Тут все еще рулят кастомные фичи + бустинги. Есть интересные попытки затащить нейроки (TabNet), но они все еще очень кастомные
- Computer Vision: уже на грани с появлением VLM, но еще держится. Знали бы вы, сколько промптов я перепробовал, чтобы сгенерить +- нужную мне картинку к посту)
- RecSys и Search: не просто так я именно тут работаю 😅. Много кастомных нейронок (SASRec, HSTU) и очень сложная метрика для оптимизации (баланс интересов пользователя, продавца, маркетплейса, логистики и еще кучи всего) - LLM пока не справляется
- Отрасли с "особенностями": Медицина, промышленность, строительство
В общем, не перевелись еще
Ваш @ml4value
❤46👍16🔥3😱2
Топ-6 постов за 6 мес (июль-январь) 🚀
С декабря в канале добавилось +10% новых подписчиков - самое время напомнить про топовые посты!
Про ML
- Топ-10 проблем в рекомендациях уровня junior --> middle --> senior 🍅 (>150 лайков в сумме)
- Запрос про спрос (88 лайков)
- Как растить деньги и ронять метрики продукта (58 лайков)
Больше постов про ML по хэштегам
#recsys@ml4value , #timeseries@ml4value и #pricing@ml4value
Про рынок и карьеру
- Рынок IT вакансий в 2025 (64 лайка)
- Моя первая работа в антифроде (63 лайка)
- Как собрать красные флаги на собесах (55 лайков)
Большье постов про рынок и карьеру по хэштегу
#career@ml4value
С декабря в канале добавилось +10% новых подписчиков - самое время напомнить про топовые посты!
Про ML
- Топ-10 проблем в рекомендациях уровня junior --> middle --> senior 🍅 (>150 лайков в сумме)
- Запрос про спрос (88 лайков)
- Как растить деньги и ронять метрики продукта (58 лайков)
Больше постов про ML по хэштегам
#recsys@ml4value , #timeseries@ml4value и #pricing@ml4value
Про рынок и карьеру
- Рынок IT вакансий в 2025 (64 лайка)
- Моя первая работа в антифроде (63 лайка)
- Как собрать красные флаги на собесах (55 лайков)
Большье постов про рынок и карьеру по хэштегу
#career@ml4value
Telegram
ML for Value / Ваня Максимов
Мой топ-10 проблем с рекомендательными системами. Часть 1/4: Junior
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет…
По следам классного поста о топ-10 моделях в рек системах. Когда вы их выучите и внедрите, то 100% столкнетесь с проблемами
То, какие проблемы вы заметите и качественно решите, часто и определяет…
2🔥8👍4❤3
Сколько стоит телевизор?
Общались недавно с подругой-маркетологом (Аня, привет!) про то, как оценить пользу для компании от рекламы на федеральном ТВ. Ну и сколько денег стоит вложить в телек? А/В тест тут не запустишь: реклама ж федеральная, так что на помощь приходит ML и его методы causal inference
Выбираем таргет
Если ваша компания небольшая, то вероятнее всего вы можете растить телевизором прямо заходы/покупки в приложении. Если вы гигант, то можно растить более узкие целевые действия. Например, заходы/покупки в рекламируемых разделах приложения, ну или на худой конец применение промика из ТВ-рекламы
Нам тут деталей по дням не нужно - стоит агрегировать таргет до недели или месяца. Заодно и сезонность уберем. Ну и вдобавок я бы моделировал прирост целевых действий неделя-к-неделе в зависимости от изменения трат на ТВ рекламу
Выбираем признаки
Ну, очевидно, изменение рекламного бюджета: стали тратить на ТВ-рекламу больше на Х руб, сколько доп целевых действий это принесет?
Второй важный поинт - не забыть "пропущенные переменные". Это то, что коррелирует и с тратами на ТВ, и влияет на целевые действия. Если их забыть, то оценка эффекта рекламы будет смещенной (=неверной)
Например, если у компании период распродаж, то их часто поддерживают телеком - надо учесть обьем распродаж
Прирост действий = a0 + a1 * прирост ТВ-бюджета + a2 * прирост трат на скидки + ...
Добавляем ограничения a1 >= 0, a2 >=0 и вперед моделировать хотя бы просто линейной регрессией!
Считаем эффекты
Коэффициент a1 покажет, сколько доп целевых действий приносит 1 руб тв-бюджета. Если он не стат значим, то..возможно вы чуть перетрачиваете бюджеты :)
Ну а дальше переводим доп действия в доп деньги (кол-во действий * СR * ср. чек * ...) и сравниваем траты на тв-рекламу vs доп деньги от них
Нужно будет провести несколько итераций улучшения модели: например, эффект от тв-рекламы нелинейный (первые 100М принесут больше чем вторые), еще он может зависеть от того, была ли тв-реклама недавно, и других факторов. Придется порисерчить 🧐
Ну а как считать эффект от других маркетинговых активностей (пуши, скидки, ...) через А/В мы разбирали в канале @abpolice . Присоединяйтесь - будет интересно!)
#marketing@ml4value
Общались недавно с подругой-маркетологом (Аня, привет!) про то, как оценить пользу для компании от рекламы на федеральном ТВ. Ну и сколько денег стоит вложить в телек? А/В тест тут не запустишь: реклама ж федеральная, так что на помощь приходит ML и его методы causal inference
Выбираем таргет
Если ваша компания небольшая, то вероятнее всего вы можете растить телевизором прямо заходы/покупки в приложении. Если вы гигант, то можно растить более узкие целевые действия. Например, заходы/покупки в рекламируемых разделах приложения, ну или на худой конец применение промика из ТВ-рекламы
Нам тут деталей по дням не нужно - стоит агрегировать таргет до недели или месяца. Заодно и сезонность уберем. Ну и вдобавок я бы моделировал прирост целевых действий неделя-к-неделе в зависимости от изменения трат на ТВ рекламу
Выбираем признаки
Ну, очевидно, изменение рекламного бюджета: стали тратить на ТВ-рекламу больше на Х руб, сколько доп целевых действий это принесет?
Второй важный поинт - не забыть "пропущенные переменные". Это то, что коррелирует и с тратами на ТВ, и влияет на целевые действия. Если их забыть, то оценка эффекта рекламы будет смещенной (=неверной)
Например, если у компании период распродаж, то их часто поддерживают телеком - надо учесть обьем распродаж
Прирост действий = a0 + a1 * прирост ТВ-бюджета + a2 * прирост трат на скидки + ...
Добавляем ограничения a1 >= 0, a2 >=0 и вперед моделировать хотя бы просто линейной регрессией!
Считаем эффекты
Коэффициент a1 покажет, сколько доп целевых действий приносит 1 руб тв-бюджета. Если он не стат значим, то..
Ну а дальше переводим доп действия в доп деньги (кол-во действий * СR * ср. чек * ...) и сравниваем траты на тв-рекламу vs доп деньги от них
Нужно будет провести несколько итераций улучшения модели: например, эффект от тв-рекламы нелинейный (первые 100М принесут больше чем вторые), еще он может зависеть от того, была ли тв-реклама недавно, и других факторов. Придется порисерчить 🧐
Ну а как считать эффект от других маркетинговых активностей (пуши, скидки, ...) через А/В мы разбирали в канале @abpolice . Присоединяйтесь - будет интересно!)
#marketing@ml4value
👍15❤6🔥4
50 оттенков рекомендаций
Недавно появился прикольный список из 50 способов сформулировать задачу рекомендаций товаров. Да-да, их так много 😅
И часто выбрать правильную формулировку, прочитать несколько статей по ней экономят уйму времени
Из прикольных формулировок задачи порекомедновать что-то я бы выделил:
- Multi-iterest recommendations. Очень hot topic 🔥 почти для всех крупных компаний. Тренд на экосистемы приводит к тому, что пользователь внутри одного приложения должен решать сотни разных задач (и иметь сотни интересов). Поэтому важно уметь рекомендовать что-то полезное в каждом из них. Для примера, на маркетплейсе рекомендовать и любимую зубную пасту, и корм для собак, и футболки с аниме в одной ленте
- Location-based recommendations. Мой фаворит со времен Delivery Club, где локация пользователя (и время доставки из ресторана в эту локацию) была чуть ли не главной фичей. Подружить физический мир (локация с дорогой недвижкой, запутанный маршрут курьера, пробки, домашняя и офисная локации пользователя, ...) задача очень интересная!
- Trigger-Induced Recommendation. Делаем рекомендацию в ответ на текущее ключевое действие пользователя. Тоже классная история, когда юзер может явно указать свой текущий интерес: смотрел в тиктоке мемасы, и вдруг хоп - увидел образовательное видео и дальше хочешь образовательный контент. Очень сильно верю в эту историю
Добавил бы к этому списку 51-ую формулировку)
- Slate recommendations. Вспомните Netflix: у него есть очень много горизонтальных "подборок" по тематикам, внутри каждой подборки - персонально отранжированные товары. По сути, они решают мега-крутую задачу: (1) в каком порядке показать подборки + (2) в каком порядке показать фильмы внутри каждой подборки. Помимо того, что в идеале задача комбинаторная, так тут еще нужно помнить, что фильм может быть сразу в нескольких подборках + сами подборки можно авто-генерировать 🤯
В общем, о дивный мир рекомендаций:)
#recsys@ml4value
Недавно появился прикольный список из 50 способов сформулировать задачу рекомендаций товаров. Да-да, их так много 😅
И часто выбрать правильную формулировку, прочитать несколько статей по ней экономят уйму времени
Из прикольных формулировок задачи порекомедновать что-то я бы выделил:
- Multi-iterest recommendations. Очень hot topic 🔥 почти для всех крупных компаний. Тренд на экосистемы приводит к тому, что пользователь внутри одного приложения должен решать сотни разных задач (и иметь сотни интересов). Поэтому важно уметь рекомендовать что-то полезное в каждом из них. Для примера, на маркетплейсе рекомендовать и любимую зубную пасту, и корм для собак, и футболки с аниме в одной ленте
- Location-based recommendations. Мой фаворит со времен Delivery Club, где локация пользователя (и время доставки из ресторана в эту локацию) была чуть ли не главной фичей. Подружить физический мир (локация с дорогой недвижкой, запутанный маршрут курьера, пробки, домашняя и офисная локации пользователя, ...) задача очень интересная!
- Trigger-Induced Recommendation. Делаем рекомендацию в ответ на текущее ключевое действие пользователя. Тоже классная история, когда юзер может явно указать свой текущий интерес: смотрел в тиктоке мемасы, и вдруг хоп - увидел образовательное видео и дальше хочешь образовательный контент. Очень сильно верю в эту историю
Добавил бы к этому списку 51-ую формулировку)
- Slate recommendations. Вспомните Netflix: у него есть очень много горизонтальных "подборок" по тематикам, внутри каждой подборки - персонально отранжированные товары. По сути, они решают мега-крутую задачу: (1) в каком порядке показать подборки + (2) в каком порядке показать фильмы внутри каждой подборки. Помимо того, что в идеале задача комбинаторная, так тут еще нужно помнить, что фильм может быть сразу в нескольких подборках + сами подборки можно авто-генерировать 🤯
В общем, о дивный мир рекомендаций:)
#recsys@ml4value
GitHub
GitHub - Darel13712/ultimate-recsys-list: Ultimate list of various problem formulations and subtasks in recommender systems
Ultimate list of various problem formulations and subtasks in recommender systems - Darel13712/ultimate-recsys-list
🔥30👍12👎3❤2 2
Дыры в данных и в прогнозах
Часто встречаются в прогнозе спроса, но и в других временных рядах тоже!
Один подписчик спрашивал, почему на Каггле в прогнозе разреженного спроса (в какие-то дни нет продаж - этого дня вообще нет в статистике) все считают лаги просто через lag(7), без заполнения пропусков 0?
Иногда это фактически получается лаг не в 7 дней, а 10 или 20
Ошибка классическая, ситуация страшная)) Простой способ заполнить нулями и потом делать lag работает, но и правда растит обьем датасета сильно
Так как быстро заполнить дыры в спросе и сварить датасет?
1. Уровень агрегации побольше
Обычно ~20% ненулевых продаж по магазин-товар-день. ИМХО, на этом уровне агрегации явно не стоит строить прогноз. Можно прогнозировать на уровне, например, товар + город / гео-зона. А потом по историческим долям восстанавливать спрос по магазинам:
- Лучше учатся зависимости спроса от сезонности, скидок и тд
- Итоговая точность часто по магазин-товар-день даже выше 🎯
В каких-то проектах можно агрегировать продажи не по дню, а по неделе. Например, я так делал для оптимизации промо-скидок (скидки длительностью 1-2 недели)
2. Заполнять пропуски 0 !
Да, станет больше данных, но уже не х5 раз, а сильно меньше, тк уровень агрегации выше. В моих кейсах это обычно х1.5-х2
3. Считать только важные лаги за 1 groupby
Обычно это lag(1), ..., lag(7), lag(14), lag(21), lag(28). Не читайте кагл-ноктбуки с генерацией всех фичей таким способом на 1_000+ строк кода 📈
4. Pivot_table + бесплатные фичи
Делаем pivot_table:
по строкам магазин (или город) + товар + дата,
по столбцам - разные лаги.
Дальше считаем агрегацию лагов простой операцией над нужными столбцами, а не еще сотней groupby:
- Среднее за последнюю неделю = mean(lag(1), ...., lag(7))
- Среднее запоследние 4 "понедельника" = mean(lag(7), lag(14), lag(21), lag(28))
В итоге, фичи считаются раз в 5-10 раз быстрее (и правильнее), чем в каггл-ноутбуке. В одной компании я так стал собирать датасет в 21 раз быстрее
P.S. Можно еще с pandas на polars переехать - еще сильнее ускориться 🚀
#timeseries@ml4value
Часто встречаются в прогнозе спроса, но и в других временных рядах тоже!
Один подписчик спрашивал, почему на Каггле в прогнозе разреженного спроса (в какие-то дни нет продаж - этого дня вообще нет в статистике) все считают лаги просто через lag(7), без заполнения пропусков 0?
Иногда это фактически получается лаг не в 7 дней, а 10 или 20
Ошибка классическая, ситуация страшная)) Простой способ заполнить нулями и потом делать lag работает, но и правда растит обьем датасета сильно
Так как быстро заполнить дыры в спросе и сварить датасет?
1. Уровень агрегации побольше
Обычно ~20% ненулевых продаж по магазин-товар-день. ИМХО, на этом уровне агрегации явно не стоит строить прогноз. Можно прогнозировать на уровне, например, товар + город / гео-зона. А потом по историческим долям восстанавливать спрос по магазинам:
- Лучше учатся зависимости спроса от сезонности, скидок и тд
- Итоговая точность часто по магазин-товар-день даже выше 🎯
В каких-то проектах можно агрегировать продажи не по дню, а по неделе. Например, я так делал для оптимизации промо-скидок (скидки длительностью 1-2 недели)
2. Заполнять пропуски 0 !
Да, станет больше данных, но уже не х5 раз, а сильно меньше, тк уровень агрегации выше. В моих кейсах это обычно х1.5-х2
3. Считать только важные лаги за 1 groupby
Обычно это lag(1), ..., lag(7), lag(14), lag(21), lag(28). Не читайте кагл-ноктбуки с генерацией всех фичей таким способом на 1_000+ строк кода 📈
4. Pivot_table + бесплатные фичи
Делаем pivot_table:
по строкам магазин (или город) + товар + дата,
по столбцам - разные лаги.
Дальше считаем агрегацию лагов простой операцией над нужными столбцами, а не еще сотней groupby:
- Среднее за последнюю неделю = mean(lag(1), ...., lag(7))
- Среднее запоследние 4 "понедельника" = mean(lag(7), lag(14), lag(21), lag(28))
В итоге, фичи считаются раз в 5-10 раз быстрее (и правильнее), чем в каггл-ноутбуке. В одной компании я так стал собирать датасет в 21 раз быстрее
P.S. Можно еще с pandas на polars переехать - еще сильнее ускориться 🚀
#timeseries@ml4value
👍29🔥6 3❤1