RecSys: кейсы и задачи. Часть 1.
RecSys: кейсы и задачи. Часть 1.
Кратко напомню.
рекомендательные системы работают в два этапа:
1.генерация кандидатов
: отбор потенциально релевантных товаров/постов
2.ранжирование
: сортировка по вероятности взаимодействия:р,p(click)
Генерация кандидатов использует
коллаборативную фильтрацию
или
легковесные модели
, а ранжирование
предсказывает p(click|user, item)
на основе неявных сигналов (клики, просмотры)
К проблемкам можно отнести:
холодный старт
: когда новые элементы не имеют истории → используются текстовые/визуальные эмбеддинги или графовые методы (анализ соцсвязей)+логируются фичи и метки (клик/не клик) во избежание training/serving skew.
методы:
матричные разложения (MF)
устарели → заменены нейронками
гибридные подходы
: ручные фичи aka handjob разработки + графовые методы и dl + это эксперименты: анализ данных и A/B-тесты, оптимизация идёт под прокси-метрики
Кейсы
У пользователей низкая конверсия просмотра товара в покупку. Система полагается только на коллаборативную фильтрацию по истории покупок. Новые юзеры и новые товары получают плохие рекомендации ("популярное" или случайное). Нет учета UGC (User-Generated Content), например, просмотров или добавлений в корзину. Нужно повысить средний чек и конверсию.
можно внедрить гибридную систему: 1) для холодного старта пользователя: короткая анкета о интересах + демографические данные (если есть) + рекомендация популярного/трендового в его сегменте. 2) для item cold start: контентная фильтрация (атрибуты товара: категория, бренд, цена) + похожие товары по описанию (NLP эмбеддинги). 3) для активных пользователей: усилить user-based коллаборативную фильтрацию на основе implicit feedback (просмотры, время, корзина, wishlist) и explicit feedback (рейтинги, отзывы)+ввести re-ranking по цене/прибыльности для повышения среднего чека. Ну и важно тестировать через A/B тесты на метриках: например, CTR, CVR, средний чек, diversity.
Пользователи быстро "просматривают" рекомендации, churn rate высокий. Текущая Latent Factor Model хорошо работает для "ядровой" аудитории, но игнорирует контекст (время суток и устройство) и последовательность взаимодействий. Есть проблема over-specialization (пользователь в "пузыре" жанров). Нужно увеличить время использования и глубину потребления контента.
1.добавим context-aware рекомендации: учитывать время (утро/вечер), день недели, устройство (мобильное/ТВ) при выборе модели
2.внедрим sequence modeling (RNN, Transformers) для session-based рекомендаций, предсказывая "следующий трек/фильм" в сессии
3.боремся с пузырем фильтров: явно добавлять diversity в выдачу (новые жанры, локальный контент) через re-ranking с penalty за слишком похожие items
4.используем dl для оптимизации долгосрочного engagement (время просмотра, возврат)
по метрикам: время сессии, глубина просмотра (кол-во контента), retention rate, serendipity
Это база.
Как решить проблему холодного старта?
Анкетирование
: Задать вопросы о предпочтениях при регистрации или первом входе
Демография
: Использовать известные данные (ex., пол, возраст) для рекомендаций, популярных среди похожих пользователей
Популярный контент
: Показывать топ товаров, пока не накопится пользовательская история
Модель рекомендаций для новых пользователей
Collaborative filtering (user-based)
не подходит, т.к. требует данных о связях и сходстве между пользователями, которых у нового юзера нет
Контентная модель (похожие товары по картинкам) не работает
, т.к. нужны истории просмотров/покупок для анализа, которой опять-таки нет
LFM
предпочтительна. Эта модель, основанная на скалярном произведении эмбеддингов пользователей и товаров, лучше справляется с отсутствием истории. Для новичка можно подставить:1.эмбеддинг, сгенерированный на основе анкеты или демографии; 2.усредненный эмбеддинг его демографической группы;3.общий "стартовый" вектор эмбеддинга, что даёт релевантные рекомендации сразу, даже без собранных данных
@zadachi_ds
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.