Рекомендательные системы

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek-V3 и проверена участником Д. Николаев 12:39, 9 июля 2026 (MSD)


Содержание

Рекомендательная система (англ. recommender system, recommendation system) — программный компонент или совокупность алгоритмов и математических моделей, предназначенных для предсказания степени заинтересованности пользователя в некотором объекте (товаре, услуге, медиаконтенте и т. п.) и формирования на основе этого прогноза персонализированных предложений. Рекомендательные системы являются одним из наиболее заметных практических приложений искусственного интеллекта и машинного обучения.

В основе работы рекомендательной системы лежит матрица предпочтений (англ. user-item matrix), строки которой соответствуют пользователям, столбцы — объектам рекомендации, а элементы содержат оценки предпочтений (явные или неявные). Поскольку каждый пользователь взаимодействует лишь с малой долей всех доступных объектов, эта матрица является крайне разреженной. Задача системы заключается в обобщении имеющейся информации и предсказании неизвестных значений матрицы с целью последующего ранжирования объектов и выдачи наиболее релевантных рекомендаций.

История

Истоки рекомендательных систем лежат в области информационного поиска (Information Retrieval). Первой системой, в которой была реализована ключевая идея коллаборативной фильтрации, считается Tapestry — прототип системы персонализированной фильтрации электронной почты, разработанный в 1992 году в исследовательском центре Xerox PARC группой под руководством Дэвида Голдберга. В этой системе пользователи могли оставлять явные аннотации к сообщениям, а затем использовать запросы для фильтрации потока документов на основе оценок других пользователей. Именно в работе, описывающей Tapestry, впервые появился термин «коллаборативная фильтрация».

Менее чем через два года, в 1994 году, была представлена система GroupLens (группа Пола Резника и Джона Ридля), которая автоматизировала процесс коллаборативной фильтрации и адаптировала его для работы в распределённой сети. GroupLens использовалась для фильтрации новостных сообщений Usenet и стала одной из первых систем, продемонстрировавших практическую эффективность автоматических рекомендаций. Почти одновременно появились система Ringo (Массачусетский технологический институт, 1995) для рекомендации музыкальных альбомов и Bellcore Video Recommender (1995) для рекомендации фильмов. Все эти ранние системы использовали сходные алгоритмы, основанные на поиске k ближайших соседей (k-NN), которые быстро стали стандартом сравнения для методов коллаборативной фильтрации.

Значительным стимулом для развития рекомендательных систем стал конкурс Netflix Prize (2006–2009). Компания Netflix предложила приз в 1 миллион долларов команде, которая сможет улучшить точность предсказания рейтингов фильмов (измеряемую как RMSE) на 10% по сравнению с собственной системой Cinematch. Конкурс привлёк тысячи участников, стимулировал разработку и популяризацию методов матричной факторизации и ансамблевых моделей, а также способствовал оформлению рекомендательных систем в самостоятельную научную дисциплину.

Математическая постановка задачи

Пусть задано множество пользователей U = {u_1, u_2, \dots, u_m} и множество объектов (items) I = {i_1, i_2, \dots, i_n}. Предпочтения пользователей описываются матрицей оценок R \in \mathbb{R}^{m \times n}, где элемент r_{u,i} представляет собой оценку (рейтинг), которую пользователь u поставил объекту i. Значения r_{u,i} могут быть как числовыми (например, от 1 до 5), так и бинарными (лайк/дизлайк). Множество наблюдаемых оценок \mathcal{K} = \{{(u,i) \mid r_{u,i} - известно \} обычно составляет лишь малую долю от всех m \cdot n возможных пар, то сть матрица R является разреженной.

Задача рекомендательной системы формулируется двояко: Задача предсказания оценки (англ. rating prediction): для каждой пары (u,i) \notin \mathcal{K} построить оценку \hat{r}_{u,i} = f(u, i; \Theta), минимизирующую функцию потерь на известных данных:

  1. \mathcal{L}(\Theta) = \sum_{(u,i) \in \mathcal{K}} \ell(r_{u,i}, \hat{r}{u,i}) \to \min{\Theta}.
    Наиболее распространённой функцией потерь является MSE: \ell(r, \hat{r}) = (r - \hat{r})^2.

Задача ранжирования (англ. top-N recommendation): для каждого пользователя u сформировать упорядоченный список L_u \subset I из N объектов, которые с наибольшей вероятностью окажутся полезными для пользователя. В этом случае определяется функция полезности g: U \times \mathcal{P}(I) \to \mathbb{R}, и список выбирается как:

  1. L_u = \arg\max_{L \subseteq I, |L|=N} g(u, L).

В современных системах предпочтение отдаётся задаче ранжирования, поскольку на практике пользователю важнее получить качественно упорядоченный список рекомендаций, чем точную числовую оценку для каждого объекта.

Данные для обучения

Рекомендательные системы используют два основных типа данных о предпочтениях:

  • Явная обратная связь (англ. explicit feedback) — оценки, которые пользователь сознательно присваивает объектам: рейтинги, лайки, звёзды. Такие данные обладают высокой информативностью, но, как правило, крайне разрежены, поскольку большинство пользователей оценивают лишь небольшую часть доступного контента.
  • Неявная обратная связь (англ. implicit feedback) — поведенческие сигналы, косвенно свидетельствующие о предпочтениях: просмотры, клики, покупки, время просмотра, добавления в избранное и т. п.. Таких данных значительно больше, но они имеют более сложную семантику: например, факт просмотра фильма говорит о том, что фильм был интересен пользователю до просмотра, но не гарантирует положительной оценки после.

Большинство промышленных систем используют комбинацию обоих типов данных. Кроме того, в качестве дополнительной информации могут привлекаться метаданные объектов (жанр, описание, категория), демографические данные пользователей, социальные связи и контекстуальная информация (время, местоположение, устройство).

Основные подходы

Коллаборативная фильтрация

Коллаборативная фильтрация (англ. collaborative filtering, CF) — класс методов, основанных на предположении, что пользователи, имевшие сходные паттерны взаимодействия в прошлом, будут иметь сходные предпочтения и в будущем. Коллаборативные методы используют исключительно матрицу взаимодействий «пользователь–объект» и не требуют какой-либо информации о содержании объектов или атрибутах пользователей.

Методы, основанные на близости

Методы k ближайших соседей (англ. neighborhood-based, k-NN) являются исторически первыми и остаются одними из наиболее распространённых благодаря простоте реализации и интерпретируемости. Они делятся на два подкласса:

User-based CF: для целевого пользователя u находятся k наиболее похожих пользователей \mathcal{N}(u) (по критерию схожести векторов оценок). Прогноз для объекта i вычисляется как взвешенное среднее оценок соседей:

Item-based CF: для целевого объекта i находятся k наиболее похожих объектов \mathcal{N}(i) (на основе векторов оценок, полученных объектами от пользователей). Прогноз для пользователя u:

  • \hat{r}{u,i} = \frac{\sum{j \in \mathcal{N}(i)} \text{sim}(i,j) \cdot r_{u,j}}{\sum_{j \in \mathcal{N}(i)} |\text{sim}(i,j)|}.

Item-based подходы часто оказываются предпочтительнее в промышленных системах благодаря тому, что схожесть объектов изменяется медленнее, чем схожесть пользователей, и может быть предварительно вычислена.

Матричная факторизация

Начиная с середины 2000-х годов, методы матричной факторизации (англ. matrix factorization) стали доминирующим подходом в коллаборативной фильтрации благодаря высокой точности и гибкости. Основная идея заключается в предположении, что предпочтения пользователей могут быть описаны в пространстве латентных факторов малой размерности k, которые обобщают скрытые свойства объектов.

Матрица оценок R аппроксимируется произведением двух матриц: R \approx P Q^\top, где P \in \mathbb{R}^{m \times k} — матрица латентных факторов пользователей (строка p_u соответствует пользователю u), а Q \in \mathbb{R}^{n \times k} — матрица латентных факторов объектов (строка q_i соответствует объекту i). Прогноз оценки вычисляется как скалярное произведение: \hat{r}_{u,i} = p_u^\top q_i.

Оптимизация ведётся с регуляризацией: \min_{P,Q} \sum_{(u,i) \in \mathcal{K}} (r_{u,i} - p_u^\top q_i)^2 + \lambda \left( |P|_F^2 + |Q|_F^2 \right).

Наиболее известными реализациями являются SVD (сингулярное разложение) с регуляризацией, а также алгоритмы Funk-SVD (стохастический градиентный спуск для факторизации) и SVD++, учитывающий неявную обратную связь.

Контентная фильтрация

Контентная фильтрация (англ. content-based filtering) использует информацию о свойствах объектов для рекомендации. Основная идея заключается в построении профиля пользователя на основе объектов, с которыми он взаимодействовал, и последующем поиске новых объектов, наиболее похожих на этот профиль.

Пусть каждый объект i представлен вектором признаков x_i \in \mathbb{R}^d (например, TF-IDF-вектор для текстов, жанровые признаки для фильмов). Профиль пользователя u строится как агрегация признаков объектов, которые пользователь оценил положительно: \theta_u = \frac{1}{|\mathcal{I}u^+|}\sum{i \in \mathcal{I}_u^+} x_i, где \mathcal{I}u^+ — множество объектов, понравившихся пользователю. Прогноз для объекта i вычисляется как мера схожести между профилем пользователя и вектором объекта: \hat{r}{u,i} = \text{sim}(\theta_u, x_i).

Контентные методы не страдают от проблемы холодного старта для новых объектов (поскольку для них известны признаки), но требуют качественного представления объектов и не учитывают коллективное поведение пользователей.

Гибридные системы

Гибридные рекомендательные системы объединяют два или более подхода для компенсации недостатков каждого из них. Наиболее распространённые стратегии гибридизации:

  • Взвешенная — предсказания различных алгоритмов комбинируются с весами;
  • Переключение — в зависимости от ситуации выбирается наиболее подходящий алгоритм;
  • Смешанная — рекомендации от разных алгоритмов объединяются в один список;
  • Каскадная — один алгоритм уточняет результаты другого;
  • Ансамблевая — модели обучаются совместно в едином framework.

Примером гибридного подхода является модель факторизационных машин (англ. Factorization Machines, FM), которая обобщает матричную факторизацию, позволяя учитывать произвольные признаки объектов и пользователей в единой модели.

Системные аспекты

Архитектура промышленных систем

В реальных промышленных условиях рекомендательная система, как правило, состоит из нескольких последовательных этапов: Кандидатный отбор (англ. candidate generation, retrieval) — из всего множества объектов (миллионы или миллиарды) быстро отбирается подмножество потенциально релевантных (сотни-тысячи) с использованием эффективных методов: инвертированный индекс, локально-чувствительное хеширование, упрощённые модели коллаборативной фильтрации. Ранжирование (англ. ranking) — отобранные кандидаты оцениваются более точной моделью (например, градиентным бустингом или глубокой нейронной сетью) и сортируются по убыванию предсказанной полезности. Постобработка — финальная корректировка списка с учётом бизнес-ограничений: разнообразие, свежесть, исключение уже просмотренных объектов, баланс между исследованием и эксплуатацией.

Такая многоступенчатая архитектура обусловлена необходимостью балансировать между вычислительной эффективностью и качеством рекомендаций.

Оценка качества

Оценка рекомендательных систем является нетривиальной задачей, поскольку качество рекомендаций многомерно и включает не только точность.

Метрики точности:

  • Для задачи предсказания оценок: RMSE, MAE.

Метрики, не связанные с точностью:

  • Разнообразие (англ. diversity) — степень, в которой рекомендации покрывают разные категории.
  • Неожиданность (англ. serendipity) — способность системы предлагать неочевидные, но приятные для пользователя объекты.
  • Покрытие (англ. coverage) — доля объектов, которые система способна рекомендовать.
  • Новизна (англ. novelty) — степень, в которой рекомендации содержат объекты, ранее неизвестные пользователю.

Оценка может проводиться как офлайн (на исторических данных с использованием кросс-валидации), так и онлайн (с помощью A/B-тестирования), причём онлайн-метрики (конверсия, вовлечённость, удержание) считаются наиболее надёжными.

Проблемы и вызовы

Проблема холодного старта (англ. cold start problem) — невозможность давать качественные рекомендации для новых пользователей или объектов, для которых нет истории взаимодействий. Частично решается использованием контентной информации, демографических данных или активным сбором обратной связи. Разреженность данных (англ. data sparsity) — матрица предпочтений в реальных системах может содержать менее 1% известных значений. Матричная факторизация и методы автоэнкодеров позволяют частично преодолеть эту проблему. Масштабируемость — необходимость обрабатывать миллионы пользователей и объектов в реальном времени. Решается использованием распределённых вычислений, специализированных векторных баз данных и многоступенчатой архитектуры. Объяснимость (англ. explainability) — способность системы объяснить пользователю, почему был сделан тот или иной рекомендательный выбор. Особенно важна в регуляризуемых областях (медицина, финансы) и для построения доверия пользователей. Предвзятости (англ. biases) — рекомендательные системы могут усиливать существующие предубеждения в данных, создавать фильтрующие пузыри (англ. filter bubbles) и снижать разнообразие потребляемого контента.

Современные тенденции

В последние годы наблюдается активное внедрение глубокого обучения в рекомендательные системы. Нейросетевые архитектуры, такие как Neural Collaborative Filtering (NCF), Graph Neural Networks (GNN) для моделирования сложных взаимодействий в социальных графах, а также трансформеры для учёта последовательного поведения пользователей, демонстрируют впечатляющие результаты.

Особый интерес представляет интеграция больших языковых моделей (LLM) в рекомендательные системы. LLM используются для улучшения понимания текстовых описаний объектов, генерации объяснений рекомендаций, а также для обработки многомодальных данных (текст, изображения, аудио).

Другим важным направлением является разработка ситуационно-осознанных (англ. context-aware) и доверенных (англ. trustworthy) рекомендательных систем, учитывающих контекст пользователя (время, местоположение, настроение) и обеспечивающих прозрачность, справедливость и защиту приватности.

Литература

  • Goldberg, D., Nichols, D., Oki, B. M., & Terry, D. Using collaborative filtering to weave an information tapestry // Communications of the ACM. — 1992. — Т. 35. — № 12. — С. 61–70.
  • Adomavicius, G., & Tuzhilin, A. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions // IEEE Transactions on Knowledge and Data Engineering. — 2005. — Т. 17. — № 6. — С. 734–749.
  • Koren, Y., Bell, R., & Volinsky, C. Matrix factorization techniques for recommender systems // Computer. — 2009. — Т. 42. — № 8. — С. 30–37.
  • Bobadilla, J., Ortega, F., Hernando, A., & Gutiérrez, A. Recommender systems survey // Knowledge-Based Systems. — 2013. — Т. 46. — С. 109–132.
Личные инструменты