Как решается проблема холодного старта в рекомендательных системах
Что проверяют
Понимание, что холодный старт это не один сценарий, а три разных (новый пользователь, новый объект, новая система), и что у каждого свой набор решений. Смотрят, назовёт ли кандидат конкретные механики и их цену, а не общий список «контентная и коллаборативная фильтрация».
Как отвечать
Сначала развести случаи, потому что решения у них не пересекаются.
Новый пользователь. Матричная факторизация и любые коллаборативные модели для него бесполезны: эмбеддинга нет, взаимодействий нет. Рабочие подходы:
- Популярное и трендовое как baseline, желательно с разрезом по доступному контексту: гео, язык, платформа, источник перехода, время суток.
- Онбординг: явный выбор интересов, любимых авторов, нескольких стартовых объектов. Даёт мгновенный сигнал, но платится оттоком на первом экране, так что шаг делают пропускаемым.
- Сессионные и последовательные модели (GRU4Rec, SASRec, item2vec по со-встречаемости): им нужны только клики текущей сессии, а не история пользователя. Обычно это самый сильный ход для анонимов.
- Перенос из смежных продуктов, если есть общий идентификатор в экосистеме.
Новый объект. Здесь спасает контент: текстовое описание, категория, автор, цена, изображение. Эмбеддинг объекта считается энкодером, а не выучивается из взаимодействий, поэтому объект попадает в выдачу с первого дня. Дальше нужен явный бюджет на показы: без принудительной экспозиции новые объекты не наберут статистику и не выйдут из холодного старта никогда.
Гибриды это основной ответ на оба случая: модели, где эмбеддинг собирается из признаков, а не только из id. LightFM, two-tower (DSSM) с башнями признаков, градиентный бустинг поверх контентных и контекстных фич в слое ранжирования. Такая модель деградирует плавно: у тёплой сущности работают id-эмбеддинги, у холодной только признаки.
Explore/exploit решает задачу набора данных: epsilon-greedy как минимум, Thompson sampling или LinUCB, если нужно учитывать контекст. Бандит превращает холодный старт из проблемы в управляемую статью расходов.
Компромиссы, которые стоит назвать вслух:
| Подход | Цена |
|---|---|
| Популярное | нулевая персонализация, усиление popularity bias |
| Контентный | качество упирается в качество метаданных, слабое разнообразие |
| Онбординг | трение на входе, декларируемые интересы расходятся с реальными |
| Бандиты | часть трафика уходит на заведомо неоптимальные показы |
Метрики. Общий NDCG или Recall@k считается по тёплым пользователям и холодного старта просто не видит. Мерить надо отдельно по сегменту первых сессий и по объектам младше N дней, плюс coverage каталога и долю показов у новых объектов.
Где спотыкаются
Называют коллаборативную фильтрацию средством от холодного старта, хотя она и есть его причина: без взаимодействий CF не строит ни соседей, ни эмбеддинг. И оценивают результат общими офлайн-метриками, где холодный сегмент растворяется в тёплом трафике.