Открыть сервис

Совместная фильтрация

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

История

Концепция совместной фильтрации возникла в начале 1990-х годов в рамках развития систем персонализации и информационного поиска. Одной из первых реализаций стала система Tapestry, разработанная в 1992 году в исследовательском центре Xerox PARC. Она предназначалась для фильтрации электронной почты и новостных сообщений на основе явных оценок пользователей. Термин «совместная фильтрация» (collaborative filtering) впервые был предложен именно разработчиками Tapestry — Дэвидом Голдбергом, Дэвидом Николсом, Брайаном Оки и Дугласом Терри.

В 1994 году группа исследователей из Университета Миннесоты (GroupLens Research) представила систему GroupLens для фильтрации новостей Usenet. Она стала первой системой, которая автоматизировала процесс поиска «соседей» и вычисления предсказаний на основе математических методов, в частности, корреляции Пирсона. Это заложило основы для современных алгоритмов коллаборативной фильтрации.

Значительный импульс развитию метода дал конкурс Netflix Prize (2006—2009), в котором компания Netflix предложила $1 000 000 за улучшение точности собственного алгоритма рекомендаций на 10%. В ходе конкурса были разработаны и популяризированы такие мощные методы, как матричная факторизация и модели скрытых факторов (latent factor models), которые стали основой для многих современных рекомендательных систем.

Классификация методов

Методы совместной фильтрации делятся на два основных класса: методы, основанные на памяти (memory-based), и методы, основанные на модели (model-based).

Методы, основанные на памяти (Memory-based)

Эти методы работают непосредственно с матрицей взаимодействий «пользователь-объект» (user-item matrix). Для формирования рекомендации или предсказания оценки они вычисляют сходство между пользователями или между объектами в реальном времени.

  • User-based collaborative filtering (UBCF) — фильтрация на основе сходства пользователей. Алгоритм находит \( k \) пользователей, наиболее похожих на целевого пользователя по истории оценок. Затем на основе оценок этих «соседей» вычисляется предсказанная оценка для ещё неоценённого объекта. Сходство обычно измеряется с помощью косинусной меры, корреляции Пирсона или ранговой корреляции Спирмена.
  • Item-based collaborative filtering (IBCF) — фильтрация на основе сходства объектов. Алгоритм находит объекты, похожие на те, которые уже оценил пользователь. Сходство между объектами вычисляется на основе того, как их оценивают одни и те же пользователи. IBCF часто оказывается более эффективным и масштабируемым, чем UBCF, особенно в системах с большим количеством пользователей, так как матрица сходства объектов меняется медленнее.

Методы, основанные на модели (Model-based)

Эти методы используют матрицу взаимодействий для обучения статистической или машинно-обучающейся модели, которая затем применяется для предсказаний. Модель строится заранее (offline), что позволяет делать предсказания быстрее, чем при использовании memory-based методов.

  • Матричная факторизация (Matrix Factorization, MF) — наиболее популярный подход. Матрица взаимодействий «пользователь-объект» разлагается на произведение двух матриц меньшей размерности: матрицы скрытых факторов пользователей и матрицы скрытых факторов объектов. Каждый пользователь и каждый объект описываются вектором из \( k \) скрытых (латентных) признаков. Предсказанная оценка вычисляется как скалярное произведение соответствующих векторов. Наиболее известные алгоритмы: SVD (Singular Value Decomposition), SVD++, FunkSVD.
  • Байесовские методы — используют вероятностные модели, такие как наивный байесовский классификатор, для предсказания вероятности того, что объект понравится пользователю.
  • Методы на основе кластеризации — пользователи или объекты разбиваются на кластеры (группы) на основе сходства. Рекомендации формируются на основе поведения всей группы, что снижает вычислительную сложность, но может снизить точность персонализации.
  • Методы на основе нейронных сетей — современные подходы, включая автоэнкодеры (Autoencoders), Restricted Boltzmann Machines (RBM) и нейронные сети с вниманием (attention mechanisms), которые способны улавливать сложные нелинейные зависимости в данных.

Основные проблемы и ограничения

Несмотря на широкую распространённость, совместная фильтрация сталкивается с рядом фундаментальных проблем.

  • Холодный старт (Cold Start) — проблема возникает, когда в систему добавляется новый пользователь или новый объект. У нового пользователя нет истории взаимодействий, поэтому невозможно найти его «соседей» или построить для него модель. Аналогично, новый объект не имеет оценок, поэтому его некому рекомендовать. Решения: использование гибридных систем (комбинация с контентной фильтрацией), запрос первичных предпочтений у нового пользователя, использование демографических данных.
  • Разрежённость данных (Sparsity) — в реальных системах каждый пользователь взаимодействует лишь с ничтожно малой долей от общего числа объектов. Матрица взаимодействий оказывается крайне разрежённой (например, 99% ячеек пусты). Это затрудняет нахождение «соседей» и снижает точность предсказаний, особенно для нишевых объектов.
  • Проблема серого овцы (Gray Sheep) — некоторые пользователи имеют уникальные, нестандартные вкусы, которые не совпадают ни с одной группой пользователей. Для таких пользователей система не может найти хороших «соседей», и качество рекомендаций будет низким.
  • Проблема масштабируемости (Scalability) — для систем с миллионами пользователей и объектов вычисление сходства между всеми парами в реальном времени становится вычислительно дорогим. Model-based методы (особенно матричная факторизация) решают эту проблему, но требуют периодического переобучения модели.
  • Популяризация (Popularity Bias) — алгоритмы совместной фильтрации склонны рекомендовать популярные объекты, так как они имеют больше оценок и чаще попадают в «соседство». Это может привести к эффекту «пузыря фильтров» (filter bubble), когда пользователю не показываются менее известные, но потенциально интересные объекты.

Применение

Совместная фильтрация является одним из ключевых компонентов рекомендательных систем в различных областях:

  • Электронная коммерция (Amazon, Ozon, Wildberries) — рекомендации товаров на основе покупок и просмотров других пользователей («с этим товаром часто покупают»).
  • Стриминговые сервисы (Netflix, Spotify, Яндекс.Музыка) — рекомендации фильмов, сериалов, музыки и подкастов.
  • Социальные сети (VK, TikTok) — рекомендации контента (видео, постов, новостей) в ленте пользователя на основе его подписок и взаимодействий.
  • Поиск информации и научные публикации (Google Scholar, ResearchGate) — рекомендации статей, цитирований и соавторов.

Сравнение с контентной фильтрацией

ХарактеристикаСовместная фильтрацияКонтентная фильтрация
Источник данныхВзаимодействия пользователей (оценки, покупки)Атрибуты объектов (жанр, автор, цвет, размер)
Принцип«Людям, похожим на вас, понравилось это»«Вам понравились объекты с такими признаками, вот ещё один»
Серьёзная проблемаХолодный старт, разрежённостьОграниченность рекомендаций (рекомендует только похожее)
Необходимость в контентеНет (только метаданные взаимодействий)Да (требуется описание признаков объектов)
Способность к серендипностиВысокая (может рекомендовать неожиданные объекты)Низкая (рекомендует только в рамках известных предпочтений)

Источники

  • Goldberg, D., Nichols, D., Oki, B. M., & Terry, D. (1992). Using collaborative filtering to weave an information tapestry. Communications of the ACM, 35(12), 61-70.
  • Resnick, P., Iacovou, N., Suchak, M., Bergstrom, P., & Riedl, J. (1994). GroupLens: an open architecture for collaborative filtering of netnews. Proceedings of the 1994 ACM conference on Computer supported cooperative work, 175-186.
  • Sarwar, B., Karypis, G., Konstan, J., & Riedl, J. (2001). Item-based collaborative filtering recommendation algorithms. Proceedings of the 10th international conference on World Wide Web, 285-295.
  • Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, 42(8), 30-37.
  • Ricci, F., Rokach, L., & Shapira, B. (Eds.). (2015). Recommender Systems Handbook. Springer.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →