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
Сколько стоит телевизор?

Общались недавно с подругой-маркетологом (Аня, привет!) про то, как оценить пользу для компании от рекламы на федеральном ТВ. Ну и сколько денег стоит вложить в телек? А/В тест тут не запустишь: реклама ж федеральная, так что на помощь приходит 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
Pet project --> микро-продукт

Последний год активно пробую создать пассивный доход. Делать активный доп доход уже не раз получалось (довольно успешные инвестиции, B2B консалтинг и свой курс по А/В), но все же это требовало немалых затрат по времени.

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

Сейчас как раз развиваю небольшой проект в (внезапно) ML + Fashion. Почему так? Однажды авиакомпания потеряла мой чемодан со всеми вещами на весенне-лентий сезон. Нужно было быстро купить целый гардероб. При этом у меня еще и очень нестандартные параметры: рост 194, и 48 размер ноги 😅
После 4ех-часового выбора одной рубашки (одной, Карл!), которая не будет короткой по рукавам и не шире меня в 2 раза, я сдался и обратился к стилисту. Мы собрали гардероб в сумме за 5 часов. Сэкономило мне это кучу времени и выглядеть я стал куда лучше. Так и развилась идея делать ML-подбор одежды.

Пока у меня есть некоторые технические наработки, но уже начал проводить первые cusdev-ы (зачем это надо) и считать unit-экономику на бумажке. Подсмотрел пару идей про продвижение и около-бесплатный маркетинг вот тут и в ~апреле буду их тестить:
- Для начала это будет кое-что очень простое, буквально в 1 кнопку. Если полетит - добавлю функционал
- Вероятно это будет небольшая надстройка к крупным решениям в fashion. Многие микро-продукты так работают (например, саммери видео к ютубу), тк крупные продукты-доноры дают дешевый трафик

В общем, stay tuned. Если будет получаться что-то интересное, то сделаю текстовый сериал про этот ml микро-продукт 🚀
1🔥39👍127👎4💅3
GPT умрет через 2 года 🌚

Я уже писал, что GPT-4 меня не впечатлил. Новые DeepSeek и GPT-4.5 тоже. Имхо, бум на GPT и GenAI похож на бум .com-ов в 2000-х. Если у компании был сайт в домене .com, то ее капитализация росла х10. Не напоминает *.ai ?)

Инвесторы начинают спрашивать: а когда весь этот GPT-хайп окупится? Цифры публичных компаний показывают глубокие убытки. И все они уповают на удешевление обучения/инференса и массовый переход на AI когда-нибудь в будущем.
А я думаю, что будущее для 90+ % ai-стартапов не настанет

Первые кандидаты на великое вымирание
1. Экспертные отрасли
Важна экспертиза сильно выше среднего, доверие к ней и гарантии. И тут тренд на PUGC (professional user generated content) уже убивает GPT. Кстати, сейчас вы читаете как раз PUGC пост!)
- AI-трейдинг
- Юристы, бухгалтеры
- No-code, low-code
- AI-консультанты для бизнеса
- Маркетинг здорового человека (не спам или боты)

2. Эмпатичные отрасли. Огромная часть тут - доверие к личности и мотивация
- Психологи
- AI-учителя, кроме языков
- Персональных ассистентов отнесу сюда же

3. Модные и трендовые отрасли
Очень часто меняются тренды + все сильно субъективно. Помните хайп, про GenAI обстановку квартиры? Ну и как успехи с покупкой мебели по таким советам?)
- Фэшн
- Интерьер для дома

4. GPT-рекомендации
- Рекомендации фильмов, книг
- Генераторы идеи, особенно бизнесовых

5. Компании с одним продуктом = GPT-чат
Дорого, конкретную боль не решает, да еще и UI страдает. Тот же Perplexity кажется это понял и пытается сделать свой браузер - посмотрим, как пойдет эта битва с google. Имхо, шансов мало
- OpenAI
- Anthropic
- Продолжи сам список убыточных компаний на миллиарды $

При этом допускаю, что GenAI останется внутри экосистем (Meta, Google, Яндекс, Сбер). Сами gpt-шки у них буду все еще глубоко убыточны, но они будут приводить относительно дешевый трафик + растить частотность других бизнесов/продуктов экосистем

6. GPT-api стартапы без доп ценности
А таких 90+ %. Удачный промпт к gpt в целом редко решает боль юзера. Но это решение еще и скопировать легко

Где GenAI / GPT может выжить
Там, где он приносит прибыль основному продукту или принесет ее на горизонте 1 года

- 18+ болталки. Это единственный GPT-продукт, где я уже видел прибыль. Как-то даже консультировал такой стартап по метрикам и АВ: ребята гребут деньги лопатой)
- Спам и боты в комментариях для рекламы. Сомнительно, но для беттинга и крипты окей, работает
- Создание простого развлекательного контента (мемы, вырезки из фильмов, ..)
- Тех поддержка
- Изучение языков
- Помощь в написание кода (Cursor) и текстов (Grammarly)
- Поиск и суммаризаторы текста/видео/аудио в экосистемах
- GenAI редакторы видео для тиктоков и рилс

🌚 Если GPT умрет за 2 года
⚡️ Если GPT - это будущее в каждом доме продукте
👍 Просто так)

Ваш @ml4value
78👍58🌚49👎10🔥5
Начало карьеры в DS

Последнее время много кто спрашивает меня про старт карьеры в DS от студентов и ребят из других профессий: разработчики, продакты и даже был один социолог! Кстати, я был удивлен, но на соцфаке капец как много матстата - это годная база для старта в DS. Собрал в кучу все эти разговоры и свои советы - делюсь с вами

Этап 1. А оно вам надо?
Многие идут в DS за деньгами 300к/секунду. Может, лет 5-10 назад и было легко залететь с минимальными знаниями и супер-быстро вырасти, но сейчас это не так. Поиск стажировки или junior позиции - кровавый океан с конкуренцией под 100 чел на место. Чтобы вырваться в этой гонке вперед пригодится сильная мотивация помимо денег:
- Сделать мир лучше: для HealthTech, Self-driving Cars, автоматизации производства и кучи других отраслей есть и правда социально полезное применение ML
- Применить 4 года изучения математики/программирования: и правда получится это делать. Но скорее всего несколько в другом виде (много математики+ml в логиситике и страховании, например) и не факт, что в ML-направлении. В той же продуктовой аналитике мат стата может быть по факту даже больше
- Быть на острие технологий/науки: GPT, GenAI, графовые сети, создание видео через AI - это действительно многим интересно. Но SOTA модели делают далеко не везде: учитывайте это
- Занятный разговор про мотивацию услышал в подкасте "AI в действии" от ребят из ecom.tech - таймкод 5:48, если интересно

Этап 2. Попробуй - точно надо?
Только не надо на этом этапе платить деньги) Есть куча бесплатных легендарных курсов
- Andrew Ng для олдов
- Курс от ODS
- Курсы от Стэнфорда типа CS231n
- Kaggle курсы, если вас драйвят ml-соревнования
- Бесплатные курсы на Coursera, Stepik и тд

Берите курс с изучением python + ml и обязательными домашками на код. Тут вы хотя бы минимально симитируете работу DS и поймете, а точно ли оно вам нравится? DS - sexy job со стороны, но в реальности 90% времени мы не делаем SOTA ml-модели, а выясняем суть задачи, чистим данные, строим фичи (предобрабатываем/токенизируем в llm/cv) и упорно растим какой-нибудь precision модели

Этап 3. Погружение
Понравилось? Теперь стоит выбрать предварительную специализацию: таблички, nlp или cv. И уже пройти более глубокий курс на эту тему. Тут советовать ничего не буду: есть годные и бесплатные, и платные курсы. Думайте сами - решайте сами

Специализация вам точно пригодится, потому что собесы проходят не по data science в общем (так было лет 7 назад), а по конкретным задачам команды. И как правило, даже для стажировки стоит довольно глубоко разбираться в специализации хотя бы в теории

Этап 4. Первая стажировка / работа
После завершения базового ml-курса + специализации рекомендую сделать такие пункты для стажировки или работы джуном
- Сделайте pet-проект и оформите его на github. В теме разберетесь, из толпы выделитесь. На финалах вас могут спросить о пет проекте, а не рандомный вопрос, который вам особо не знаком
- Сделайте хорошее CV на hh.ru и LinkedIn. Опыта работы у вас нет - опишите в деталях свои учебные и пет-проекты: что за задачу решали, какие метрики, что применяли и тд. Только пишите честно, что это учебные проект, а не работа (крик души нанимающего менеджера) 😅
- Активно подавайтесь в релевантные компании. В порядке убывания эффективности работают такие каналы: Личное знакомство > Рефералка от сотрудника > One day offer > карьерный день студента > Подача через сайт компании > подача через hh.ru
- Готовьтесь, что поиск работы может занять 2, 3, а то и 6 месяцев
- Предложил бы ориентироваться на интересность задач и потенуиал роста, а не на деньги. Деньги в IT в любом случае у вас появятся только от уровня middle и выше

Ну вот и все! Удачи во вкатывание в DS - все получится 🫰

Реклама. ООО «Умное пространство», ИНН: 7811554010. Ерид: 2W5zFJhD57N
👍30👎8🔥73🥱3
Ошибки ML-валидации везде

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

Казалось бы, что может быть проще метрики precision по топ-k рекомендациям (сокращенно precision@k)? Да на каждом курсе войти-в-ds этому учат!) Но нет, в мире рекомендаций все считают эту метрику по-разному. Целая статья на RecSys’21 про это вышла: табличка из нее прикреплена к посту

В мире LLM все еще хлеще. Обучение на тесте, на примерах из других моделей. ChatBot Arena тоже оверфитится prompt майнингом, разным подглядыванием в тест и опять же обучением на тестовых данных. Даже Андрей Карпатый уже бьет тревогу

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

Эвалить риал-тайм системы особенно с feedback loop и правда нетривиальное дело. У меня есть вот такой список советов, как это сделать лучше:

- Подстройте train-val-test split под природу ваших данных: по времени, пользователям, стратифицированно или нет. Учтите лаг между трейном и инференсом
- Заведите себе базовый хорошо выверенный train-val-test датасет, на котором будете проверять все модели. Например, в поиске это может быть фиксированная «корзинка» частотных и важных запросов
- Потратьте время на поиск хорошей метрики. Чтобы она коррелировала с онлайн-прокси и с ключевыми бизнес-метриками. Это непросто. Придется периодически эту метрику улучшать: этого иногда требуют новые модели/подходы или новые бизнес-цели

Ну и еще сегодня день рождения Эйнштейна: пусть в AI и науке уже 21ого века будут более честные метрики и эксперименты 🧪
👍32🔥113
NeoBERT: апгрейд классики в 2025г

Пока мы все следим за новыми GenAI LLM-ками, вышла действительно годная LLM - NeoBERT

Авторы статьи утверждают, что это новая SOTA на длинных последовательностях
- 2.8 TB данных для обучения - почти в 20 раз больше, чем в RoBERTa
- Длина последовательности до 4096 через RoPE
- Куча современных трюков в архитектуре: SwiGLU, Pre-RMSNorm, AdamW, ...)

Если внимательно почитать, то все конечно не так однозначно:
В классе small в топе все еще RoBERTa
В medium классе (~250M параметров) NeoBERT и правда бьет все другие модели. При этом он все еще достаточно быстр в инференсе на коротких последовательностях, и существенно быстрее аналогов на длинных. Выглядит как заявочка на новую default model в классическом NLP весто RoBERTa

При этом если у вас есть мощности и время на инференс, то DeBERTa V3 Large (350+ M параметров) все еще в топе на большинстве бенчмарков. Хотя на MTEB новый NeoBERT ее уже обходит

В общем, авторы аккуратно применили последние достижения в нейроночках - получили приличный результат. С чем их и поздравляем!) Ну и не забывайте теперь пробовать кое-что еще вместо стандартных RoBERTa в классических NLP задачах 🧐
👍256🔥4😱1
Закат классной модели

Все мы любим делать клевые ML-модели, которые несут пользу бизнесу, и катить их в прод. Но если дополнительно ничего не делать, то рано или поздно (скорее рано) наступает «закат» модели: она перестает нести доп метрики. Почему?

1. Развиваются другие куски ml-системы
Классика в прогнозе кучи временных рядов: сначала прогноз каждого из них неплох, а в сумме все оч грустно. Поэтому добавляют модель-нормировщика: она прогнозирует сумму рядов (допустим, продажи категории товаров) и нормирует индивидуальные модели. Со временем мы добавим в индивидуальные модели сезонность, тренды, промо - они и без нормировок в сумме по категории будут работать хорошо

2. Меняется среда, для душных distribution shift
Модели антифрода устаревают мгновенно: мошенники быстро подстраиваются под них. Рекомендательные системы бьет feedback loop. К моделям прайсингам и скидок люди привыкают и начинают покупать только по скидке. Примеров много)

3. Баги
Отвалилась часть событий на фронте, кто-то поменял структуру таблиц с данными, завели новый фича тоггл, который все поломал и тд

Так что делать?
Чтобы закат модели случился попозже и не внезапно, хорошо бы:

Настроить графики мониторинга и алерты на перформанс модели. И регулярно за ними следить! Они ведь тоже устаревают)

Раз в полгода проводить обратные АВ-тесты с отрывами моделей. Я регулярно нахожу что-то, что кажется незыблемо полезным, но на самом деле уже нет

Есть и третий путь. С комфортом устроиться на берегу моря или в уютном кресле и наблюдать за закатом ml-модели. Часто это неизбежно (и нормально!), так что иногда можно просто позволить этому случиться

P.S. На фотках с кайфом наблюдаю за закатами (и иногда рассветами) солнца и мл-моделей последний год
👍265🔥4
ML-челленджи супераппов: Как впихнуть интересы юзера в один экран (ч1) ?

Понемногу все приложения пытаются стать супераппами. Яндекс.Go обьединяет доставку всего (уже и не только доставку: например, Афишу). Авито - продажу всего от товаров до услуг и брони квартир. Тинькофф пробует завязать на себя все финансовые сервисы и оплаты/покупки. Тикток - развлечения, образование и маркетплейс. Да даже я делаю "суперапп" про контент в DS из этого канала + @abpolice
Ноги у всего растут из стоимости закупки трафика: она сильно растет. И теперь выгоднее не покупать рекламу на рынке, а перегонять аудиторию внутри своих сервисов. Чаще всего эта проблема особенно острая в задачах information retrieval: поиске и рекомендациях

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

🧐 Если ничего не делать, то чаще всего алгоритмы будут вытаскивать 1-2 категории интересов, что явно не очень оптимально. А попробовать можно вот что

1. Эвристики разнообразия контента
Например, не более 10 товаров одной категории / сервиса. Очень просто - невеоятно эффективно
Чуть более продвинутые эвристики - MRR и DPP. Тоже можно попробовать, но требуют побольше вычислительных ресурсов и времени

2. Подбрасывать монетку
Да-да, сначала случайно или пропорционально релевантности категории (можно просто взять скор релевантности первого товара из категории) сэмплировать категорию на каждую позицию экрана. А затем внутри категории выбирать товар/контент. На 1-5% мест можно подмешивать случайные категории или товры. Работает тоже просто, но крайне эффективно. По кулуарным разговорам, 80% сервисов в том или ином виде пользуются этим. Открыто от таком подходе говорит, например, Авито

3. RL и Нейронки с лоссом на разнообразие
Современно, но эти подходы просто не работают) Ну по крайней мере, очень мало супераппов репортят об этом, а если и репортят, то с мизерными приростами метрик

4. MultiSlot ranking
Вот тут уже есть первые интересные результаты. Например, Yotube обучает жадный multi-slot алгоритм, учитывающий на позиции k фичи предыдущих товаров - репортуют о росте в оффлайне до +10%

5. Real-time
Не сохраняем заранее посчитанные результаты по всем поисковым запросам / рекомендации по user_id, а генерим и обновляем их на лету. Уже во многих сервисах поиск и рекомендации грузят товары пачками по 10-20 штук. И действия в первых 10-20 товаров сильно повлияют на следующие 10-20: не покликал на блюда из курицы - дальше тебе их не покажут. Можно дойти до загрузки 1 карточки контента на экран (как делает Тикток) и обновлять рекомендации/поиск после действия / бездействия с каждой. Это круто, но достаточно сложно

В общем, если вы только начинаете путь к супераппу - эвристики и подбрасывание монетки дадут вам многое
Если вы уже не одни грабли на этом пути собрали - стоит идти сначала в Multi-slot ranking, а потом и в Real-time

В следюущих частях планирую рассказать про:
ч2 - апсел, кроссел
ч3 - монетизация и реклама

👍 если интересно прочитать следующие части
👍4512
Статистика и котики теннис

Давние читатели канала знают, что я играю в теннис и иногда про него пишу) В воскресенье занял 2 место на amatour masters 200. По ходу 5 матчей задумывался, какая стратегия с наибольшей вероятностью приведет к успеху. И у меня возник ворох статистических задач - хоть на собесах спрашивай

🎾 Задача про подачу
У теннисиста есть 2 попытки на подаче. Он может в любую из них применить «Стабильную» подачу с вероятностью попадания 85%. Или «Мощную» с вероятностью попадания 60%

Стабильная - просто начинает розыгрыш, где теннисист может выиграть с вероятностью 54%. Мощная - увеличивает вероятность выигрыша на 5%. Если теннисист ошибается на подаче 2 раза, то он проигрывает

Собственно, вопросы:
- Какие подачи подавать? Стабильная-Стабильная, Мощная-Стабильная, …
- Начиная с какого % попадания Мощной и Стабильной, вообще выгодно подавать хотя бы одну Мощную?
- Какой параметр (% попадания мощной/стабильной, прирост вероятности победы от мощной, в целом % выигранных мячей после подачи) стоит тренировать?

Ах да, все цифры - моя статистика игры. И это реальные вопросы, над которыми я думаю. В суровом мире тенниса все чуть сложнее: в финале мне не хватило физухи и случился дебафф -10% ко всем характеристикам. Кстати, как бы это повлияло на ответы в задаче?)

Можете писать ответы в комментарии ⬇️
👍24🔥174🙈2
Врываюсь с новостями

Пока все отдыхали на майских, я готовился сразу к двум конференциям (ну ладно, немножко отдыхал тоже)

Буду выступать
- Уже 17 мая на IML в Питере
- 25 мая на DataFest в Москве

🧐 Расскажу про рекомендации Я.Маркета: архитектура, ml- и бизнес-метрики и даже немножко про трансформеры - приходите, будет интересно!

Ну и если хотите лично встретиться в кулуарах - пишите, пересечемся)
👍34🔥136