Вы когда-нибудь задумывались, как ваши потоковые сервисы и сайты, на которых вы совершаете покупки, Netflix, Amazon Prime и другие сайты электронной коммерции, волшебным образом знают, к чему вы настроены? Как они узнают, что именно вам может быть интересно? Давай узнаем.

Когда вы в последний раз совершали покупки в Интернете?

Вы заметили, что веб-сайт или приложение показывает вам «товары, которые могут вас заинтересовать» или что-то вроде «Клиенты также принесли это вместе с этим»? Вы правильно угадали, именно этим и занимается система рекомендаций. Это алгоритм, который предлагает товары для покупки или просмотра на основе вашей истории поиска и покупок и других похожих историй пользователей. Вы знаете, что данные - это новое масло. Теперь возникает очевидный вопрос.

Почему эти сайты электронной коммерции используют систему рекомендаций?

Вот некоторые из причин -

  1. Чтобы обеспечить более широкое воздействие на пользователя.
  2. Возможность постоянного использования или покупки продуктов.
  3. Чтобы обеспечить лучший пользовательский интерфейс.

Давайте вкратце разберемся с Системой рекомендаций.

Иерархия рекомендательной системы

Давайте теперь разберемся с математическими основами, лежащими в основе этого, на примере рекомендательного фильма

  1. Рекомендательная система на основе содержания

Они пытаются определить фаворитов пользователя по симпатиям, вкусам и предпочтениям.

Рассмотрим следующий пример, в котором пользователь присвоил 3 фильмам «Фильм 1», «Фильм 2», «Фильм 3» оценки 2, 10, 8 соответственно. Давайте узнаем, какой фильм из Фильма 4, Фильма 5, Фильма 6 будет рекомендован пользователю.

Первый шаг - создать матрицу быстрого кодирования на основе жанров, присутствующих в фильме. Всем жанрам матрицы присваивается столбец. Если в фильме присутствует определенный жанр, ему присваивается значение 1, в противном случае - 0.

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

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

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

Здесь 18 + 12 + 20 + 10 = 60

Таким образом, нормализованное значение каждого элемента станет x / 60.

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

Сформированная матрица рекомендаций будет использоваться для составления рекомендаций. Пользователю будет рекомендован фильм с наибольшим весом.

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

Жанр, который пользователи никогда не смотрели, не будет в их профиле.

Этот недостаток преодолевается за счет использования системы рекомендаций на основе совместной фильтрации.

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

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

Существует два разных метода совместной фильтрации:
a) Совместная фильтрация на основе пользователей - на основе окружения пользователя
б) Совместная фильтрация на основе элементов - на основе сходства элементов.

Сплошные линии представляют предпочтения пользователя, а пунктирные линии - рекомендации.

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

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

Первый шаг - выяснить, насколько активный пользователь похож на других пользователей.

Как мы это делаем?

Это можно сделать с помощью нескольких различных статистических и векторных методов, таких как измерения расстояния или сходства, включая евклидово расстояние, корреляцию Пирсона, косинусное сходство и т. Д.

Чтобы рассчитать уровень сходства между двумя пользователями, мы используем 3 фильма, которые оба пользователя оценили в прошлом. Независимо от того, что мы используем для измерения сходства, скажем, например, сходство между активным пользователем и другими пользователями может составлять 0,7, 0,9 и 0,4. Эти числа представляют собой веса сходства или близость активного пользователя к другим пользователям в наборе данных.

Пустые столбцы в приведенной выше таблице представляют фильм, не оцененный пользователем.

Здесь Пользователь 4 - это активный пользователь, которому мы должны порекомендовать фильм из фильмов 1 и 5.

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

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

Фильм с наибольшим весом (здесь Фильм 5) будет рекомендован Активному пользователю, то есть Пользователю 4.

Так работает Система совместных рекомендаций. Но у него есть и недостатки -

а) Редкость данных - пользователи обычно оценивают только ограниченное количество элементов.
б) Холодная сортировка - трудности с рекомендациями новым пользователям или новым элементам. < br /> c) Масштабируемость - увеличение числа пользователей или элементов, что может привести к проблемам с производительностью из-за роста вычислений подобия.

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

Давайте подключимся к LinkedIn. Вы также можете связаться со мной по адресу [email protected].