Учебник Рекомендательные системы для начинающих
Рекомендательные системы — это технология, которая решает, какой фильм вам предложит Netflix, какой товар покажет маркетплейс и какое видео запустится следующим на YouTube. За простым списком «вам может понравиться» стоит серьёзная математика: матрицы взаимодействий, меры похожести, скрытые факторы, нейросетевые эмбеддинги и многоступенчатые конвейеры ранжирования.
Этот курс ведёт от базовых идей к промышленным решениям. Мы разберём, чем явный фидбэк отличается от неявного и почему разреженность — главная боль; реализуем коллаборативную фильтрацию (user-based и item-based) и матричное разложение прямо на чистом Python; научимся бороться с холодным стартом; построим контентные и гибридные рекомендации; заглянем в two-tower и трансформеры; и поймём, как устроена настоящая продакшн-система «кандидаты → ранжирование → бизнес-правила». Отдельно обсудим метрики, офлайн- и онлайн-оценку и этику рекомендаций.
Курс опирается на знания из учебников «Машинное обучение», «Глубокое обучение», «RAG и векторные БД» и «Статистика». Все ключевые алгоритмы реализованы на стандартной библиотеке Python и снабжены проверяемым выводом — их можно запустить прямо в браузере.
Курс «Рекомендательные системы» состоит из 8 разделов и 24 уроков: Зачем нужны рекомендательные системы, Постановка задачи и данные, Коллаборативная фильтрация, Матричное разложение, Контентные и гибридные рекомендации, Нейросетевые рекомендации, Оценка качества рекомендаций и Продакшн, масштаб и этика. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Зачем нужны рекомендательные системы
- Что такое рекомендательная система и зачем она нужна
Рекомендательная система: определение, примеры Netflix, YouTube и маркетплейсов, эффект длинного хвоста и бизнес-ценность.
- Типы рекомендаций
Персональные рекомендации, похожие товары, популярное и «вместе покупают»: где и зачем применяется каждый тип.
- Явный и неявный фидбэк
Явный фидбэк (оценки) против неявного (клики, просмотры, покупки): в чём разница и почему неявный сигнал сложнее.
- Что такое рекомендательная система и зачем она нужна
2 Постановка задачи и данные
- Матрица взаимодействий пользователь-товар
Как устроена матрица взаимодействий пользователь-товар и почему разреженность — главная проблема рекомендаций.
- Популярность и эвристики как baseline
Почему рекомендации по популярности — обязательный baseline и какие эвристики усиливают простые модели.
- Матрица взаимодействий пользователь-товар
3 Коллаборативная фильтрация
- Идея коллаборативной фильтрации
Коллаборативная фильтрация: «похожим людям нравится похожее». Базовая идея, типы и связь с матрицей взаимодействий.
- Метрики похожести
Косинусная похожесть, корреляция Пирсона и коэффициент Жаккара: как измерять сходство пользователей и товаров.
- User-based коллаборативная фильтрация
User-based CF: поиск похожих пользователей по косинусу и прогноз оценок взвешенным усреднением. Реализация на Python.
- Item-based коллаборативная фильтрация
Item-based CF: похожесть товаров, подход Amazon и почему он стабильнее user-based. Реализация на Python.
- Идея коллаборативной фильтрации
4 Матричное разложение
- Скрытые факторы и идея SVD
Латентные факторы в рекомендациях: как SVD и ALS раскладывают матрицу взаимодействий на скрытые признаки.
- Матричное разложение градиентным спуском
Реализация матричного разложения на чистом Python: обучение латентных факторов стохастическим градиентным спуском.
- Проблема холодного старта
Холодный старт нового пользователя и нового товара: почему CF здесь бессильна и какие стратегии спасают.
- Скрытые факторы и идея SVD
5 Контентные и гибридные рекомендации
- Контентные рекомендации
Контентные рекомендации: профиль пользователя по признакам товаров, TF-IDF и связь с векторными представлениями.
- Гибридные системы
Гибридные рекомендации: как совмещать контентные и коллаборативные модели и зачем это нужно.
- Контентные рекомендации
6 Нейросетевые рекомендации
- Эмбеддинги и two-tower архитектура
Two-tower модель рекомендаций: эмбеддинги пользователя и товара, генерация кандидатов и связь с ANN-поиском.
- Deep learning для рекомендаций
Нейро-CF, последовательные модели и трансформеры для рекомендаций: что смотрел подряд и как это предсказать.
- Ранжирование (learning to rank)
Learning to rank в рекомендациях: признаки кандидатов, попарный подход и бустинг для ранжирования.
- Эмбеддинги и two-tower архитектура
7 Оценка качества рекомендаций
- Метрики точности и ранжирования
precision@k, recall@k, MAP и NDCG: как измерять качество рекомендаций. Реализация метрик на Python.
- Разнообразие, новизна и покрытие
Beyond-accuracy метрики рекомендаций: разнообразие, новизна, покрытие каталога и почему точность — не всё.
- Офлайн и онлайн оценка
Офлайн-метрики против A/B-тестов: почему офлайн-оценка рекомендаций обманчива и зачем нужен онлайн-эксперимент.
- Метрики точности и ранжирования
8 Продакшн, масштаб и этика
- Архитектура продакшн-рекомендера
Промышленный конвейер рекомендаций: генерация кандидатов, ранжирование, бизнес-правила и real-time слой.
- Масштаб и ANN-поиск
Масштабирование рекомендаций до миллионов товаров: приближённый поиск ближайших соседей (ANN) и векторные БД.
- Проблемы и этика рекомендаций
Popularity bias, фильтр-пузырь, разнообразие, манипуляция и этика рекомендательных систем.
- Инструменты и кейс на MovieLens
Обзор библиотек рекомендаций (Surprise, implicit, LightFM, RecBole) и сквозной кейс рекомендателя фильмов на MovieLens.
- Архитектура продакшн-рекомендера