Какие алгоритмы используются для построения коллаборативной фильтрации
Что проверяют
Знаете ли вы поле дальше пары «user-based и item-based» и понимаете ли разницу между явными оценками и неявным откликом. Дальше вопрос уходит в практику: на чём обучали, как валидировали, что делали с холодным стартом.
Как отвечать
Основа это разреженная матрица взаимодействий пользователей и объектов, заполненность часто меньше процента. Отсюда семейства методов:
- соседские (kNN): user-based и item-based, похожесть по косинусу или корреляции Пирсона с центрированием. Item-based устойчивее, каталог меняется медленнее аудитории. На больших объёмах соседи ищутся приближённо, через HNSW;
- матричная факторизация: FunkSVD и SVD++ для явных оценок обучаются градиентным спуском, это не классическое SVD, название историческое. Для неявного отклика стандарт это ALS по работе Hu, Koren и Volinsky с весами уверенности;
- ранжирующие: BPR оптимизирует попарный порядок, WARP работает похоже. В проде задача это порядок в списке, а не предсказание оценки;
- линейные item-item: SLIM и EASE, у второго решение в замкнутой форме, и он остаётся сильным бейзлайном;
- нейронные: двухбашенная модель для отбора кандидатов, графовый LightGCN, последовательные SASRec и BERT4Rec.
Упомяните разбор Dacrema и соавторов (2019): настроенные kNN и матричная факторизация обходили большинство опубликованных нейросетевых моделей, поэтому бейзлайн надо тюнить честно.
В проде схема двухступенчатая: генерация кандидатов через ANN-индекс плюс ранжирующая модель с признаками контента и контекста, то есть гибрид. Метрики: Recall@k и NDCG@k, рядом покрытие каталога и новизна против перекоса в популярное. Валидация по времени, а не случайным разбиением.
Где спотыкаются
Говорят «использовали SVD», не отличая явный отклик от неявного. В кликах и просмотрах ноль означает не «не нравится», а «не видел», и факторизация оценок тут не подходит.
Делают случайное разбиение на train и test, получают утечку из будущего и завышенные метрики, которые в A/B не воспроизводятся.
Оптимизируют RMSE, хотя пользователю показывают топ-10. Качество предсказания оценки почти не связано с качеством ранжирования.