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

Материал из Энциклопедия интернет-маркетинга MarketWiki

Коллаборативная фильтрация - 1 из основных методов построения рекомендательных систем, который основан на предположении, что если пользователям А и Б нравились одни и те же объекты в прошлом, то им будут нравиться и другие общие объекты. Простыми словами, это метод рекомендаций, использующий «коллективный разум»: система ищет людей со схожими вкусами и рекомендует то, что понравилось одним, другим.

В отличие от контентной фильтрации, которая анализирует свойства самих объектов (товаров, фильмов, статей), коллаборативная фильтрация работает только с историей взаимодействий пользователей и объектов. Она не требует понимания того, что представляет собой объект, а опирается исключительно на оценки и поведение пользователей. Этот подход лежит в основе рекомендаций Amazon («покупатели этого товара также купили»), Netflix, Ozon и Wildberries.

Основные принципы

[править]

В основе коллаборативной фильтрации лежит матрица «пользователь-объект».

Матрица взаимодействий

[править]

Вся информация для работы метода представляется в виде таблицы (матрицы), где строки - это пользователи, столбцы - объекты (товары, фильмы, статьи), а в ячейках - оценки или факты взаимодействия.

Оценки могут быть:

  • Явными: пользователь сам поставил оценку (например, звёздочки от 1 до 5, лайк/дизлайк).
  • Неявными: оценка выводится из поведения (просмотр, клик, добавление в корзину, время на странице).

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

Основное предположение

[править]

Ключевая гипотеза: пользователи, которые одинаково оценивали какие-то объекты в прошлом, будут сходно оценивать и новые объекты. Если двум людям нравится «Звёздные войны», «Властелин колец» и «Матрица», то с высокой вероятностью им обоим понравится и «Интерстеллар».

Типы коллаборативной фильтрации

[править]

Существует 2 основных подхода к реализации метода.

User-based (на основе сходства пользователей)

[править]

Этот подход ищет пользователей, похожих на текущего, и рекомендует то, что понравилось им, но ещё неизвестно текущему.

Алгоритм работы: 1. Найти для текущего пользователя U группу пользователей, максимально похожих на него по истории оценок. 2. Собрать все объекты, которые понравились этим похожим пользователям. 3. Исключить объекты, с которыми U уже взаимодействовал. 4. Рекомендовать оставшиеся объекты, отсортировав их по степени предпочтения у похожих пользователей.

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

Item-based (на основе сходства объектов)

[править]

Этот подход ищет объекты, похожие на те, которые уже понравились пользователю. Именно он лежит в основе знаменитого блока «покупатели этого товара также купили».

Алгоритм работы:

  1. Посмотреть, с какими объектами пользователь уже взаимодействовал (купил, посмотрел, оценил).
  2. Для каждого такого объекта найти другие объекты, которые часто взаимодействуют с ним (их часто покупают вместе, смотрят после него и т.д.).
  3. Собрать все найденные объекты, отсортировать их по частоте совместных взаимодействий и рекомендовать пользователю.

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

Пример различий

[править]
  • User-based: «Другие люди с похожим на ваш вкусом также любят этот фильм».
  • Item-based: «Люди, которым понравился этот фильм, также любят этот».

Математические основы

[править]

Для определения «похожести» пользователей или объектов используются различные метрики.

Косинусное сходство

[править]

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

Корреляция Пирсона

[править]

Учитывает не только совпадения, но и разброс оценок. Корректирует ситуацию, когда 1 пользователь ставит в основном четвёрки, а другой - пятёрки.

Евклидово расстояние

[править]

Измеряет «физическое» расстояние между векторами. Чем меньше расстояние, тем выше сходство.

Коэффициент Жаккара

[править]

Используется в основном для бинарных данных (купил/не купил). Показывает отношение размера пересечения множеств к размеру их объединения.

Проблемы и ограничения

[править]

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

Холодный старт (Cold Start)

[править]

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

  • Новый пользователь: система не знает его предпочтений и не может ничего рекомендовать, кроме самых популярных объектов.
  • Новый объект: новый товар или фильм не имеет истории взаимодействий, и система не может его никому рекомендовать.

Разреженность данных (Sparsity)

[править]

Матрица взаимодействий обычно очень разрежена. Пользователи взаимодействуют лишь с тысячной долей процента от всех доступных объектов. Это затрудняет поиск реальных сходств.

Масштабируемость

[править]

Для миллионов пользователей и объектов расчёт сходств требует огромных вычислительных мощностей. Особенно это критично для user-based подхода.

Проблема «серой овцы» (Gray Sheep)

[править]

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

Популярность и «пузырь фильтров»

[править]

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

Математические методы

[править]

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

Метод ближайших соседей (kNN)

[править]

Классический подход, описанный выше (поиск k ближайших соседей и агрегация их оценок). Прост в реализации и понимании, но имеет проблемы с масштабированием.

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

[править]

Более современный и мощный подход. Матрица «пользователь-объект» разлагается на произведение 2 матриц меньшей размерности: матрицы скрытых факторов для пользователей и матрицы скрытых факторов для объектов. Эти факторы не задаются экспертами, а автоматически извлекаются алгоритмом в процессе обучения. Например, для фильмов факторами могут быть «комедийность», «боевиковость», «наличие определённого актёра».

Самый известный пример матричной факторизации - алгоритм SVD (Singular Value Decomposition), который прославился благодаря победе команды BellKor на конкурсе Netflix Prize.

Глубокое обучение

[править]

Современные рекомендательные системы всё чаще используют нейросети и глубокое обучение для построения более сложных моделей, учитывающих последовательности действий пользователей (например, нейросетевые модели session-based recommendations).

Применение в маркетинге

[править]

Коллаборативная фильтрация широко используется в интернет-маркетинге.

E-commerce

[править]

Блоки «С этим товаром покупают», «Вам может понравиться», «Похожие товары» на сайтах Ozon, Wildberries и Яндекс Маркета построены именно на этом принципе. Они анализируют миллионы покупок, чтобы находить товары, которые люди часто берут вместе.

Контентные платформы

[править]

YouTube, Netflix, Кинопоиск, Яндекс.Музыка используют коллаборативную фильтрацию для рекомендации видео, фильмов и треков.

Email-маркетинг

[править]

Персонализированные рекомендации товаров в email-рассылках часто строятся на основе коллаборативной фильтрации.

Ретаргетинг

[править]

Показ рекламы товаров, которые пользователь уже смотрел, - это простейший вид коллаборативной фильтрации (на основе его собственных действий).

Связанные термины

[править]