Telegram Web Link
Закат классной модели

Все мы любим делать клевые 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
3 инсайта про реком системы с IML

Пару дней назад рассказал про рекомендации Я.Маркета на конфе IML. А еще послушал доклады и поговорил в кулуарах с ребятами из Окко, Headhunter, Авито, Ламода и не только. Вот какие инсайты я вынес

1. Все начинают работать с контентом в рекомендациях
Массово переходят от моделей на id-товаров/юзеров к контентными трансформерами над историей пользователя. Это сильно лучше масштабируется, помогает идти в real-time и рекомендовать товары из "длинного хвоста"

2. Контента стало гораздо больше
Платформы достигли 10М+ контентых единиц (товаров, документов, рилсов, ...)
Приходится строить действительно большие системы, да еще и в real-time

При этом нужно рекомендовать желательно весь контент, и тут начинается борьба с popularity bias и работа с холодным стартом для контента: нужно рекомендовать не самые популярные и холодные товары

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

3. Реклама и продвижение
Контента много и все контент-мейкеры хотят получать свой кусочек траффика. Но конкуренция растет: по многим отчетам ~80% селлеров на маркетплейсах зарабатывают чистыми <100K в мес, цена подписчика в соцсетях в космосе (в тг 100-150 руб/подписчик). Появилась явная потребность в механиках продвижения контента и запрос на "честное" распределение показов (условно, каждый получает хотя бы 10 показов)

Поэтому задача рекомендаций резко усложняется: становится все больше похожей на задачу оптимизации с ограничениями. А в пределе даже на комбинаторную задачу о наполнении рюказка. Во многих компаниях лента рекомендаций - это уже не отранжированные товары по некоему скору, а N слотов под самые персональные товары, K под рекламные, L под новые, ...

↕️ Очень верится, что в ближайшем будущем парадигма рекомедаций сдвинется в сторону комбинаторики, а не просто ранжированию списка

P.S. Официальных фоток и записей с конференции пока нет, поэтому вот вам 1 фотка доклада от меня и немножко питерского вайба
🔥30👍9🤔31👌1
Конференции

Часть моего доклада на Data Fest заблокировал PR. Рассказывать важные куски общими словами мне не хотелось, поэтому решил сняться с конференции(

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

🧐 В итоге, я буду слушателем на Data Fest - ждите интересных саммери и инсайтов
35😱28😢13🤣12👍6
Милиарды параметров и данных для рекомендаций

Пожалуй, самая большая новость в российском мире рекомендаций -- анонс от Яндекса просто огромной трансформерной модели ARGUS-1В и настолько же огромного датасета рекомендаций Я.Музыки YAMBDA-5B. Об этом еще мало где писали, но тем интереснее сделать разбор:)

Датасет Я.Музыки YAMBDA-5B
Типичные проблемы рисерча в рекомендациях и сравнения моделей:
- Датасеты очень маленькие (в сотни-тысячи раз меньше продакшн данных)
- В данных нет последовательностей (даже в movielens!). Поэтому трансформеры так себе под них подходят
- Нет метаданных/признаков айтемов и юзеров (а в продакшен задачах есть)

Ребята попробовали решить это в YAMBDA. Почти 5B событий, около 1М айтемов, есть время события для моделирования последовательности треков (а такая зависимость явно есть). Плюсом идут готовые эмбеды и фичи. Из небольших минусов: нет названий треков и человекочитаемых метаданных. Но это NDA, так что понятно, почему

В общем, в следующий раз вместо Movielens или Amazon reviews вы знаете, какой датасет взять


Рекомендательный трансформер ARGUS-1B
Кажется, не все распарсили, что доклад про ARGUS на датафесте во многом базировался на YAMBDA-подобном датасете. Так что датасет и модель полезно рассматривать в паре

Так что за ARGUS? Насколько я знаю, первый в РФ рекомендательный трансформер с контекстным окном 8К и размером 1В параметров. Из крутого:

- Таргеты Next item + Feedback prediction. То есть модель предсказывает, с каким треком провзаимодействует пользователь, и какой фидбек ему даст (дослушал до конца, лайкнул, ..). Вообще-то это сразу и отбор кандидатов, и ранжирование - ну кайф же 🔥

- Достаточно подробно рассказали архитектуру: позднее связывание, кодирование товара через DCN, трансформеры

- Намекнули, как все-таки удалось масштабироваться до 8К действий юзера в контексте трансформера: берем последовательность действий юзера, сдвигаем на одно действие. Одним проходом трансформера получаем эмбеды во всех стейтах. Далее эффективен считаем лосс. Очень похоже на BERT/GPT-подобные "эффективности" архитектуры в NLP, но в рекоме мало кто смог завести

- В итоге, от ARGUS получили колоссальные приросты в продакшене Музыки и Алисы. Ну и мы в Я.Маркете тоже тестим Argus: ожидаем не менее колоссальных приростов)

Разбор подготовил тг-канал @ml4value
🔥3510👍7
Глянцевый журнал рекомендаций

Какое-то время назад были популярны журналы моды, тачек и всего прочего. Там собраны красивые картинки, которые дополняют друг друга. И смотрится все это как единое целое

Казалось бы, рекомендации товаров в приложении устроены также? А вот ни разу. Обычно мы скорим каждый товар независимо, поэтому все рекомендации могут состоять условно только из кроссовок. Чтобы такого не случалось, добавляются эвристики разнообразия

🩼 Иногда костыли эвристики простые типа «не более 5 товаров из одной категории». Иногда это ml-эвристики как у Авито: ребята сделали занятный рассказ про замену статистической эвристики разнообразия на ml-эвристику предсказания будущей категории покупки (см скрины)

Но все же мы не собираем рекомендации «как журнал». Не прогнозируем скор сразу всей пачки рекомендаций из 10 товаров, а очень хочется. Формально, это переход от pointwise/pairwise к listwise лоссу. Есть острое желание потестить это в проде и даже есть пара наработок. Придется бороться с комбинаторным взрывом, учиться учитывать «полезность» сразу пачки рекомендаций и многое
другое!

И вот стало интересно, может кто-то уже пробовал listwise подход в рекоме/поиске? Или есть идеи/рисерчи на этот счет? Буду рад услышать ваши мысли в комментариях ⬇️
13👍11🔥62👎1
2025/10/25 19:41:22
Back to Top
HTML Embed Code: