Какие модели используются в рекомендательных системах
Что проверяют
Знаете ли вы, как устроена рекомендательная система целиком, а не только слова «коллаборативная фильтрация». Хороший ответ показывает, что модель выбирают под данные и под этап конвейера. Следом почти всегда спрашивают про холодный старт и про то, как вы оценивали качество.
Как отвечать
Начните с того, что в продакшене это обычно каскад: отбор кандидатов из миллионов объектов, затем ранжирование сотен, затем переранжирование с бизнес-правилами. На каждом этапе свои модели:
- бейзлайн по популярности: топ за период, иногда по сегменту. С ним сравнивают всё остальное, и побить его бывает сложнее, чем кажется;
- коллаборативная фильтрация: user-based и item-based через близость векторов взаимодействий. Item-based стабильнее, потому что похожесть объектов меняется медленнее, чем вкусы пользователей;
- матричная факторизация: SVD, ALS, для неявного фидбека iALS (библиотека
implicit). Даёт эмбеддинги пользователей и объектов, ближайших соседей среди которых ищут через ANN-индекс; - контентные и гибридные модели: признаки объектов (текст, категория, цена). LightFM совмещает их с взаимодействиями и выручает на холодном старте;
- two-tower: две нейросети кодируют пользователя и объект в общее пространство, типичный отборщик кандидатов;
- градиентный бустинг для ранжирования: CatBoost или LightGBM с ранжирующим лоссом (
YetiRank,lambdarank) поверх кандидатов и сотен признаков; - последовательные модели: SASRec, BERT4Rec учитывают порядок действий в сессии.
Оффлайн качество меряют Recall@k и NDCG@k, но финальное слово за A/B-тестом.
Где спотыкаются
Перечисляют алгоритмы без связи с этапами. Интервьюер слышит список из учебника и не понимает, что вы бы строили для своей задачи.
Делят данные на обучение и тест случайно. В рекомендациях нужен сплит по времени, иначе модель видит будущее и оффлайн метрики выходят завышенными.
Сразу предлагают нейросеть, не упомянув бейзлайн. Без сравнения с популярным и item-based вы не докажете, что сложная модель чего-то стоит.