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

Интуиция: совместная фильтрация основана на идее, что пользователи, которые взаимодействовали с похожими элементами в прошлом, скорее всего, будут иметь аналогичные предпочтения в будущем. Он использует мудрость толпы, чтобы давать рекомендации, анализируя поведение других пользователей и находя закономерности в их взаимодействиях.

Существует два основных типа совместной фильтрации:

Совместная фильтрация на основе пользователей. Этот подход находит пользователей, похожих на целевого пользователя, на основе их прошлых взаимодействий с элементами. Затем он рекомендует элементы, которые понравились этим похожим пользователям или с которыми они взаимодействовали, но не целевому пользователю. Сходство между пользователями можно рассчитать с помощью таких показателей, как корреляция Пирсона, косинусное сходство или сходство Жаккара.

Интуиция: представьте, что вы пытаетесь найти новую книгу для чтения. Вы спрашиваете рекомендаций у друзей, у которых схожие книжные вкусы. Они предлагают книги, которые им понравились, но вы еще не читали. Это похоже на совместную фильтрацию на основе пользователей.

Совместная фильтрация на основе элементов. Этот подход находит элементы, похожие на элементы, которые понравились целевому пользователю или с которыми он взаимодействовал в прошлом, на основе взаимодействий других пользователей. Сходство между элементами можно рассчитать с помощью таких мер, как косинусное сходство или скорректированное косинусное сходство.

Интуиция: Продолжая пример с книгой, вместо того, чтобы спрашивать друзей о рекомендациях, вы просматриваете книги, которые вам понравились, и находите другие книги, которые понравились людям, которым также понравились книги, которые вы читали. Это похоже на совместную фильтрацию на основе элементов.

Вот общие шаги, связанные с совместной фильтрацией:

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

Совместная фильтрация имеет некоторые ограничения:

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

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