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
Мой топ-10 проблем с рекомендательными системами. Часть 2/4: Middle
Рекомендации уже неплохие, но нет вау-эффекта. От продакта на этом этапе можно услышать "мы рекомендуем очевидное", "я уже видел подобное Х дней назад"

1. Рекомендательный пузырь
Возникает часто из-за таргета с фокусом на "жирные" действия: заказы товаров, лайк в соц сети, досмотр видео на 80+%
Люди склонны совершать такие жирные действия со знакомым контентом (то, что они уже видели). Решают эту проблему многими путями, самые популярные:
- Аккуратно добавлять в таргет "дискаверийные" действия: длинные клики, например
- Насильно подмешивать в финальную выдачу слабо-персонализированный контент: популярное в городе пользователя, трендовые товары
- Продуктово делать врезки с отдельными категориями
- Фильтровать уже купленные/показанные товары

Менее очевидная причина - Feedback loop: пользователь лайкает то, что мы ему показываем - модель на этом учится и продолжает показывать то же самое
Имхо, переоцененная история. В большинстве сервисов рекомендации - совсем не основной источник кликов/заказов, все же поиск в этом аспекте доминирует. Поэтому просто обучайтесь на всех данных сервиса (не только кликах, заказах из рекомендаций) - и все будет в порядке 😉
Если все же такая проблема есть (например, ваш сервис - ютуб), то можно выделять слоты в ленте с около-случайными рекомендациями и обучатсья на них

2. В рекомендациях нет необычных товаров: нет вау-эффекта (serendipity)
Хотелось бы, чтобы рекомендации помогали человеку увидеть то, что он сам вряд ли бы смог найти за 1-2 поисковых запроса. Это дает вау-эффект, в теории растит удовлетворенность рекомендациями и ретеншен

Чтобы добиться такого эффекта, нужно технически побороть хотя бы popularity bias
- Добавлять в таргет бОльший вес непопулярным товарам
- Умно сэмплить негативы при обучении модели
- Тестировать хитрые лоссы (cosine contrastive loss, например)
- Брать не топ-N товаров из рекомендательного алгоритма (обычно кандидато-генератора), а сэмплить их из всех товаров пропорционально скору модели
#recsys
🔥38👍13🤔52
Итоги года ML4Value

Год был очень насыщенный: Много нового узнал, кучу статей читал, работу менял, во все возможные поездки ездил, и внезапно написал постов на канале больше, чем в прошлом году:)

Как всегда детальные итоги года подвожу с запозданием - поэтому держите пока итоги от TGStat 🚀

Сделать свою картинку можно через @TGStat_Bot по запросу "2024 @username"
👍98🔥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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥50👍15🤯83😁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
🔥3111👍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
👍64👏5🤓41
Топ-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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39🔥96
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
👍309
Топ-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
🔥37👍189👨‍💻1
А/В полиция уже выехала 🚨

Думаю, очень многие знают меня по видео "13 способов ускорить А/В тест: не CUPED-ом единым". Практически на каждом месте работы я приложил руку к А/В тестированию: создал 2 платформы АВ, провалидировал >1K АВ-тестов и кое-где так тщательно следил за корректностью проведения экспов, что мою команду назвали АВ Police 😅

Теперь AB Police выезжает за всеми, кто некорректно проводит АВ! А именно, я завел новый канал @abpolice
Там я и еще несколько ав-полицейских будем проводить разбор ваших кейсов с экспериментами, давать ценные советы и материалы по АВ

В общем, подписывайтесь , чтобы не пропустить первый пост-разбор эксперимента сегодня в 19:00
Ну и присылайте свои вопросы/кейсы на бесплатные разборы в гугл-форму: на нее же ведет кнопка в закрепе канала АВ полиции

Мы стоим на страже спокойствия статистической достоверности в этом городе!
👍16🔥65
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
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
2🔥8👍43
Сколько стоит телевизор?

Общались недавно с подругой-маркетологом (Аня, привет!) про то, как оценить пользу для компании от рекламы на федеральном ТВ. Ну и сколько денег стоит вложить в телек? А/В тест тут не запустишь: реклама ж федеральная, так что на помощь приходит ML и его методы causal inference

Выбираем таргет
Если ваша компания небольшая, то вероятнее всего вы можете растить телевизором прямо заходы/покупки в приложении. Если вы гигант, то можно растить более узкие целевые действия. Например, заходы/покупки в рекламируемых разделах приложения, ну или на худой конец применение промика из ТВ-рекламы

Нам тут деталей по дням не нужно - стоит агрегировать таргет до недели или месяца. Заодно и сезонность уберем. Ну и вдобавок я бы моделировал прирост целевых действий неделя-к-неделе в зависимости от изменения трат на ТВ рекламу

Выбираем признаки
Ну, очевидно, изменение рекламного бюджета: стали тратить на ТВ-рекламу больше на Х руб, сколько доп целевых действий это принесет?
Второй важный поинт - не забыть "пропущенные переменные". Это то, что коррелирует и с тратами на ТВ, и влияет на целевые действия. Если их забыть, то оценка эффекта рекламы будет смещенной (=неверной)
Например, если у компании период распродаж, то их часто поддерживают телеком - надо учесть обьем распродаж

Прирост действий = a0 + a1 * прирост ТВ-бюджета + a2 * прирост трат на скидки + ...

Добавляем ограничения a1 >= 0, a2 >=0 и вперед моделировать хотя бы просто линейной регрессией!

Считаем эффекты
Коэффициент a1 покажет, сколько доп целевых действий приносит 1 руб тв-бюджета. Если он не стат значим, то.. возможно вы чуть перетрачиваете бюджеты :)
Ну а дальше переводим доп действия в доп деньги (кол-во действий * СR * ср. чек * ...) и сравниваем траты на тв-рекламу vs доп деньги от них

Нужно будет провести несколько итераций улучшения модели: например, эффект от тв-рекламы нелинейный (первые 100М принесут больше чем вторые), еще он может зависеть от того, была ли тв-реклама недавно, и других факторов. Придется порисерчить 🧐

Ну а как считать эффект от других маркетинговых активностей (пуши, скидки, ...) через А/В мы разбирали в канале @abpolice . Присоединяйтесь - будет интересно!)

#marketing@ml4value
👍156🔥4
50 оттенков рекомендаций

Недавно появился прикольный список из 50 способов сформулировать задачу рекомендаций товаров. Да-да, их так много 😅
И часто выбрать правильную формулировку, прочитать несколько статей по ней экономят уйму времени

Из прикольных формулировок задачи порекомедновать что-то я бы выделил:
- Multi-iterest recommendations. Очень hot topic 🔥 почти для всех крупных компаний. Тренд на экосистемы приводит к тому, что пользователь внутри одного приложения должен решать сотни разных задач (и иметь сотни интересов). Поэтому важно уметь рекомендовать что-то полезное в каждом из них. Для примера, на маркетплейсе рекомендовать и любимую зубную пасту, и корм для собак, и футболки с аниме в одной ленте
- Location-based recommendations. Мой фаворит со времен Delivery Club, где локация пользователя (и время доставки из ресторана в эту локацию) была чуть ли не главной фичей. Подружить физический мир (локация с дорогой недвижкой, запутанный маршрут курьера, пробки, домашняя и офисная локации пользователя, ...) задача очень интересная!
- Trigger-Induced Recommendation. Делаем рекомендацию в ответ на текущее ключевое действие пользователя. Тоже классная история, когда юзер может явно указать свой текущий интерес: смотрел в тиктоке мемасы, и вдруг хоп - увидел образовательное видео и дальше хочешь образовательный контент. Очень сильно верю в эту историю

Добавил бы к этому списку 51-ую формулировку)
- Slate recommendations. Вспомните Netflix: у него есть очень много горизонтальных "подборок" по тематикам, внутри каждой подборки - персонально отранжированные товары. По сути, они решают мега-крутую задачу: (1) в каком порядке показать подборки + (2) в каком порядке показать фильмы внутри каждой подборки. Помимо того, что в идеале задача комбинаторная, так тут еще нужно помнить, что фильм может быть сразу в нескольких подборках + сами подборки можно авто-генерировать 🤯

В общем, о дивный мир рекомендаций:)
#recsys@ml4value
🔥30👍12👎322
Дыры в данных и в прогнозах
Часто встречаются в прогнозе спроса, но и в других временных рядах тоже!

Один подписчик спрашивал, почему на Каггле в прогнозе разреженного спроса (в какие-то дни нет продаж - этого дня вообще нет в статистике) все считают лаги просто через 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🔥631
Даже котики это знают
Корреляция != причинно-следственная связь 🧠

Вроде фразу все выучили. Ну а понятные обьяснения, почему это так, разберем прямо сейчас!

1. Третий истинный фактор влияет на метрики А и В
Из-за него А и В синхронно растут/падают. Но это не значит, что если увеличить метрику А, то вырастет метрика В

Например, длина волос и длина стопы отрицательно коррелируют. Но от стрижки волос стопа не уменьшается 🤯
Третий фактор - пол. У мужчин в среднем длиннее стопа и короче волосы

2. Общий тренд
Рост аудитории ТикТока и мировое благосостояние: тут 2 метрики имеют общий тренд на рост/падение - только поэтому метрики коррелируют. Нужно убирать тренд и приводить временные ряды к стационарности

Как говорится, если выручка компании растет с ростом вашей команды, то это корреляция. А вот если растут косты.. 😅

3. Косяки в аналитике
Да, можно просто посчитать корреляцию 2ух рандомных метрик с выбросами - получить весьма приличное число. Так что будьте внимательны

4. Жгучее желание найти связь там, где очень хочется 🔥
Если достаточно долго смотреть в бездну, то бездна начнет всматриваться в тебя. Ну или если перебрать достаточно много прокси к метрике, то одна из них точно будет стат значима (это можно прямо вывести из линейной регрессии и щепотки линала!)

Самые интересные "связи", которую я видел:
- Скидка на такси в дождь работает лучше (в дождь и без нее больше заказов)
- Опоздание доставки товара увеличивает ретеншен (просто дают сорри-промокод. Но потом юзер все равно уходит)
- Рост цены увеличивает спрос (часто наоборот цены повышают в период (=из-за) высокого спроса: новый год, 1 сентября)

А какие еще интересные примеры ложных причинно-следственных связей вы знаете?)
👍27😁9🔥61🥱1
Корреляция и оценка фичей до разработки

В продолжение вчерашнего поста. Регулярно слышу аргумент в пользу развития продуктовой фичи такого формата:

«Конверсия в срезе пользователей фичи (рассрочка, фильтры на поиске, ..) выше среднего по сервису. Поэтому давайте фичу развивать и вовлекать в нее больше пользователей - это увеличит общую конверсию»

Конверсия в срезе пользователей выше означает вообще ничего!)
В этом срезе просто могут быть более горячие юзеры. И если мы заставим других пользоваться фичей, то «горячее» они не станут и конверсия не вырастет (как раз корреляция != причинно следственная связь)

Скажу больше, иногда выгодно растить фичи с меньшей конверсией, чем в среднем. Например, фичи для новичков

Для иллюстрации, пару абсурдных примеров:
- Те, кто пользуются рассрочкой, тратят больше (для ее использования нужно оплатить покупку + рассрочку берут на дорогие товары 😅)
- Те, кто проходят онбординг новичка, покупают реже (новички в целом покупают реже)
- Те, кто чаще сталкиваются и жалуются на баги, имеют конверсию выше (ну они хотя б начали пользоваться приложением!)

В общем, не используйте «в срезе пользователей фичи конверсия выше» как финальный аргумент для завлечения новых юзеров в фичу:)

Можно хотя бы сравниваться не с средним по больнице, а с тем же сегментом юзеров по активности и чеку: тоже не очень честно, но хотя бы что-то

P.S. Вы это.. не забывайте ставить лайки за полезный контент:) 👍
#metrics@ml4value
1👍44🔥54🌚1