Почему система рекомендаций?

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

Также используется для создания некоторых функций (мы увидим позже)

Применение

YouTube: предложения видео, предложения плейлистов

Netflix: предложения фильмов и телешоу

Deezer или Spotify: музыкальные предложения

Google: рекомендации по новостям

Рекомендации YouTube

Как это работает?

Вообще говоря, рекомендательные системы бывают двух видов:

  1. Рекомендации на основе контента

2. Рекомендации, основанные на сотрудничестве

Системы рекомендаций на основе контента

Этот тип рекомендательной системы не включает других пользователей.

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

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

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

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

  1. На основе памяти
  2. Матричная факторизация
  3. Модельный
  4. Кластеризация

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

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

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

  1. Выберите элемент (Фильм)
  2. Получите пользователей, которым понравился этот элемент (фильм)
  3. Получить другие элементы (фильмы), которые понравились этим пользователям

«Людям, которым понравился этот фильм, также понравился…».

Использовать косинусное сходство или евклидово расстояние

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

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

"Людям, похожим на вас, также понравилось..."
Используйте косинусное сходство или евклидово расстояние

Система рекомендаций по матричной факторизации

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

Основная цель — рекомендовать товары пользователям.

Давайте перейдем к некоторому примеру

Набор данных и обозначения

Я обычно пишу в блокнотах. Я собираюсь использовать фотографии своих заметок, чтобы проработать пример.

Набор данных рейтингов фильмов пользователями

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

Контентная фильтрация — набор данных

Приведены характеристики фильма. Романтика и экшн

Нам даются некоторые Особенности для каждого фильма

  1. х1, романтика
  2. Х2, Боевик

Мы собираемся использовать эти функции для прогнозирования «?» в таблице

Контентная фильтрация — формулировка проблемы

Для каждого пользователя обучаемый параметр тета

Каждому пользователю мы назначим обучаемый параметр.

знак тета представляет изучаемый параметр. theta(j) означает обучаемый параметр для пользователя «j».

«i» будет использоваться как итератор для фильмов
«j» будет использоваться как итератор для пользователей

ПРИМЕЧАНИЕ. Знак «*» должен быть «.»

Контентная фильтрация — процесс оптимизации

Механизм обучения

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

Здесь происходит то, что мы берем MSE по прогнозируемому рейтингу и фактическому рейтингу, и мы делаем это для всех ячеек, где r(i,j)=1. Здесь задействована функция регуляризации, но это не имеет значения.

Совместная фильтрация — набор данных

Набор данных для совместной фильтрации

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

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

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

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

Полное представление алгоритма

Полный алгоритм совместной фильтрации

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

Векторизованный вид решения задачи

Спасибо за прочтение.