Совместная фильтрация
Совместная фильтрация (англ. 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 →