Рекомендательная система с нуля
Нужно спроектировать рекомендательную систему или ML-платформу с нуля. Как выбирать архитектуру, данные, candidate generation и ranking?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Отталкивайтесь от поверхности продукта и доступных сигналов. Обычно нужен простой baseline, затем двухэтапная схема: candidate generation для recall и reranking/business rules для точности, разнообразия и ограничений.
Полный разбор
Сначала фиксируется продуктовая поверхность: feed, matching, похожие товары, игры, подборки или другая рекомендация. От нее зависят labels, окно истории, negative sampling, offline metrics и guardrails. Для новой системы полезно начать с простого baseline: популярное, item-to-item, content-based похожесть или ручные правила.
Практичная архитектура обычно двухэтапная. Candidate generation достает сотни или тысячи кандидатов через collaborative signals, content embeddings, item-to-item similarity, graph methods, popularity или user history. Reranker дальше использует более тяжелые признаки, business constraints, diversity, freshness и safety rules.
Самая рискованная часть - данные. Нужны interaction logs, exposure logs, user/item attributes, timestamps и понятное определение positive/negative. Для холодного старта систему можно запускать через контентные признаки, popularity и exploration, а затем улучшать на online feedback.
Теория
В рекомендательных системах retrieval и ranking разделяют, потому что recall, precision, latency и бизнес-ограничения решаются разными слоями.
Типичные ошибки
- Начать с deep model без baseline и data audit.
- Игнорировать exposure bias и negative sampling.
- Забыть про latency, freshness и fallback.
Как отвечать на собеседовании
- Используйте схему candidate generator плюс reranker.
- Явно назовите источники данных, labels и online validation.