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

1) Откройте для себя силу рекомендательных систем: как они работают и зачем они вам нужны.

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

Эти системы прошли долгий путь с тех пор, как Юсси Карлгрен представил концепцию «цифровой книжной полки» в 1990-х годах, и теперь они имеют решающее значение для успеха таких компаний, как Netflix, Amazon, Facebook, Baidu и Alibaba. Эта технология действительно привлекла внимание публики в 2007 году, когда Netflix предложил приз в размере 1 миллиона долларов за алгоритм, который может улучшить его собственную систему более чем на 10%.

В этой статье, состоящей из двух частей, мы рассмотрим основы работы рекомендательных систем и почему они являются такой важной частью современных технологий. В части 1 мы рассмотрим некоторые из наиболее распространенных типов рекомендательных систем и узнаем, как некоторая базовая информация о пользователе используется для предоставления персонализированных рекомендаций. Во второй части мы рассмотрим некоторые алгоритмы, используемые крупными игроками, такими как Amazon, Spotify и Netflix.

2) Распаковка волшебства: типы алгоритмов машинного обучения, используемые для создания рекомендательных систем.

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

Для всех этих алгоритмов я использовал набор данных TMDB 5000 — https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata.

1. Фильтрация по демографическим данным

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

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

Вместо этого мы можем использовать формулу взвешенного рейтинга (wr) IMDB.

(https://math.stackexchange.com/questions/169032/understanding-the-imdb-weighted-rating-function-for-usage-on-my-own-website), в котором учитывается количество голосов , минимальное количество голосов, необходимое для перечисления, и среднее количество голосов по всему отчету. Мы будем использовать эту формулу для оценки фильмов в наборе данных TMDB 5000, который мы рассмотрим подробнее в следующих разделах.

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

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

2. Фильтрация на основе контента

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

При фильтрации на основе контента система использует содержимое фильма, такое как обзор, актерский состав, съемочная группа, ключевые слова и слоган, чтобы найти фильмы, похожие на предыдущие варианты просмотра пользователя. Это делается путем создания «супа метаданных», который представляет собой строку, содержащую желаемые метаданные, такие как актеры, режиссер и ключевые слова, которые затем передаются векторизатору. Важность функции можно повысить, включив ее в суп несколько раз. Чтобы определить сходство между двумя фильмами, мы сначала используем векторизатор Tf-IDF, а затем вычисляем скалярное произведение, чтобы получить оценку косинусного сходства.

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

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

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

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

1. Пользовательская совместная фильтрация:

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

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

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

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

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

Библиография

1) Стили MDPI и ACS

Феррейра, Д.; Сильва, С .; Абелья, А .; Мачадо, Дж. Система рекомендаций с использованием автоэнкодеров. Прил. Sci. 2020, 10, 5510. https://doi.org/10.3390/app10165510

2) https://math.stackexchange.com/questions/169032/understanding-the-imdb-weighted-rating-function-for-usage-on-my-self-website

3) https://medium.com/@cfpinela/recommender-systems-user-based-and-item-based-collaborative-filtering-5d5f375a127f