Время идет и каждая из областей в МЛ развивается, часто сложно уловить особенности и прорывы в каждом домене. Я предлагаю начать разбирать вглубь RecSys и постепенно отвечать на вопросы: что общего со всеми, а что стало доменным.
Вдохновением стал курс от ШАДа 2025 года, буду использовать оттуда множество чудесных картинок.
Объявим главные вопросы, на который нужно дать ответ, для решения задачи ML-ем. А также, основные проблемы в рексисе о которых нужно думать заранее.
Перед вами стоит задача и вам предлагают (или вы хотите) её решить используя ML. Классическая техническая секция по ML System Design. Обычно третья после алгосиков и ML (иногда + backend ) теории.
Утверждается (и проверено опытом), верхнеуровнево всегда план следующий:

Не буду дублировать текст, а лучше разберу на примере! Есть новостной сайт, нужно показывать статьи на разных местах.

Бизнес: Для простоты допустим, бизнес хочет больше прочитанных новостей.
Предсказание: Предложим, вероятность клика, тогда получится рекомендовать самые кликабельные.
Модель: Любое что в голову придет, обучая на CrossEntropy. Пусть будет градиентный бустинг (скорее всего с нейро-фичами)
Признаки: user/item/cross признаки/мир вокруг
Датасет: обычно нужны позитивы=клики, негативы=рандом. Сплитим на train/val/test по времени.
Оффлайн валидация: любые классические для бинарной классификации
Онлайн валидация: просто AB-тест как с бизнес метриками и техническими метриками. Так же не забыть, определить контр-метрики, которые дадут знать, если все пойдет плохо.
Простой ответ может выглядеть так, но ДАЖЕ В НЕМ дальше возникают незакрытые проблемы:

Exploration-Exploitation Trade-Off: нужно найти баланс между рекомендовать только известные объекты и иногда подсовывать новые.
Идеи? 1. eps-greedy: подмешивать с вероятностью 20% что-то новое. И при переобучении, не забыть популярные товары как-то нормировать на частоты, иначе тогда сигнал затеряется. 2. Или уже учитывать уверенности, насколько хорош товар с помощью многоруких бандитов (на каждом шагу оцениваем матожидание награды) или Thompson sampling (хитрее, на каждом шагу оцениваем распределение награды)
Feedback Loop: Цикл - учим рекомендовать, то что когда-то рекомендовали. В этой цепочке много звений и в каждом свое смещение может появиться.
Popularity Bias — популярные товары система рекомендует охотнее.
Unfairness — малые игроки (новые контент-мейкеры, нишевые продукты) остаются невидимыми.
User-selection Bias — данные искажены поведением только активных пользователей.
Exposure Bias — данные собраны только о том, что алгоритм «решил показать», а не о том, что пользователь мог бы выбрать.
Inductive Bias — разработчик сам решает как учить модель (или применять, а потом на этом учить), так оно находится всегда в каких-то рамках/предположениях.
Cold Start: О новых пользователей ничего не известно, что персонально рекомендовать? Новые айтемы, отсутствует коллаборативный сигнал.
Новые юзеры: 1. рекомендовать популярное 2. демография/внешние данные 3. онбординг
Новые айтемы: 1. бустим новинки 2. контентные/гибрид модели 3. RL
Новая платформа: 1. предобученные модели/гибриды 2. внешние данные
Решение хоть и на поверхности, но очень много нюансов, много мест, которые потребуется потюнить, тут самое главное не закапаться. И скорее всего после этого получится уже неплохо!
Всё, всем спасибо за внимание — как обычно, с нетерпением ждем ваших комментариев! Кажется это самое главное, что я себе бы выписал на листочек перед MLSD. Дальше продолжу подглядывать в курс, подробнее подсвечивать и комментировать у себя в ТГ-канале @noisetosignal, приглашаю присоединиться, вместе интереснее!
