Освоение рекомендательных систем с нейронным коллаборативным отфильтровыванием

Мастерство работы с рекомендательными системами и нейронным коллаборативным фильтром

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

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

ПЛАН –

  1. Что такое рекомендательные системы и их типы?
  2. Модельные совместные фильтры и NCF
  3. Рабочий алгоритм чистых моделей NCF
  4. Создание рекомендательной системы с использованием NCF
  5. Заключение

1. Что такое рекомендательные системы и их типы?

Рекомендательные системы, также называемые системами рекомендаций, представляют собой движки или алгоритмы, которые предоставляют нам контент, который мы наиболее вероятно смотрим, покупаем и потребляем и т. д. Эти системы имеют большое значение на различных онлайн-платформах, включая интернет-магазины, стриминговые сервисы, а также социальные медиа и платформы контента. Их главная цель – анализ предпочтений и поведения пользователей для предоставления индивидуальных рекомендаций, что в конечном итоге повышает вовлеченность и удовлетворение пользователей. Наиболее распространенным примером являются стриминговые сервисы, такие как Netflix, Amazon Prime и подобные, где на главной странице мы часто видим рекомендации контента со словами “Вам может понравиться”.

Типы рекомендательных систем :

  • Рекомендации на основе контента
  • Совместная фильтрация
  • Гибридные модели

Давайте кратко рассмотрим их:

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

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

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

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

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

  1. Совместная фильтрация на основе памяти использует традиционный подход, измеряя сходство пользователей/элементов с помощью методов корреляции (например, коэффициент Пирсона), а затем берет взвешенное среднее оценок для генерации оценки элемента пользователем.
  2. Модельная совместная фильтрация использует машинное обучение или статистические модели для изучения закономерностей и взаимосвязей в данных, которые затем используются для определения оценок пользователей для элементов.

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

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

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

<!–Модель на основе коллаборативной фильтрации (CF) обычно создает матрицы пользователь-признаки и товар-признаки, которые случайно инициализируются, умножаются и взвешиваются для генерации оценок взаимодействия пользователя и товара. Это можно визуализировать на представленном ниже изображении:

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

  • Матрица взаимодействия пользователь-товар (R) обычно имеет разреженную структуру, так как большинство товаров не оценено пользователями.
  • Матрицы U и V перемножаются, чтобы сгенерировать предсказанные значения для матрицы взаимодействия пользователь-товар. Это будут случайные значения, полученные из скалярного произведения двух случайных матриц (U и V). Давайте назовем эту матрицу с случайными значениями R`.
  • Подобно использованию алгоритмов оптимизации, например, градиентного спуска, в традиционном машинном обучении для обновления значений векторов w и b с целью минимизации разницы между фактическими и предсказанными выходными данными, здесь также используется подобный подход для обновления значений внутри матриц U и V с целью минимизации разницы между R и R` с помощью градиентного спуска.

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

Модель обучается присваивать веса латентным признакам в матрицах U и V. Эти веса отражают паттерны и предпочтения в данных о взаимодействии пользователь-товар. Веса оптимизируются до сходимости модели. Затем изученные матрицы U и V используются для предсказания пропущенных записей в исходной матрице и формирования персонализированных рекомендаций для пользователей.

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

Этот метод разложения разреженной матрицы взаимодействия пользователь-товар на две матрицы меньшего ранга (U и V) называется Матричная факторизация. Существует несколько других типов методов CF на основе моделей, таких как:

  • Сингулярное разложение (SVD)
  • Вероятностное матричное факторизация (PMF)
  • Матричная факторизация без отрицательными значениями (NMF)
  • Методы факторизации
  • Нейронная коллаборативная фильтрация (NCF)
  • Модели глубокого обучения для рекомендаций – RNN, CNN, Transformers и т.д.

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

Нейронная коллаборативная фильтрация

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

Давайте погрузимся в то, как строятся модели NCF

Алгоритм работы чистых моделей NCF

При построении традиционных моделей коллаборативной фильтрации, таких как Матричная факторизация (MF), мы обычно начинаем с разреженной матрицы взаимодействия пользователь-товар, затем создаем отдельные матрицы латентных признаков для пользователей и товаров U и V, которые случайно инициализируются или создаются с помощью встраиваний. Затем эти матрицы признаков перемножаются для создания матрицы R`, которая затем используется для обновления значений внутри матрицы U и V. NCF объединяет структуру моделей MF и комбинирует ее с нейронными сетями.

Типичная модель NCF использует встраивания. Архитектура может быть разделена на 3 слоя:

  1. Слой Матричной факторизации (MF) — генерирует скалярное произведение для встраивания пользователей и товаров — R`. Матрица R` отражает линейные взаимодействия между пользователями и товарами.
  2. Слой Нейронной сети (NN) — генерирует конкатенированные встраивания пользователей и товаров, проходящие через многослойный перцептрон (MLP). Слой MLP используется для обнаружения нелинейных взаимодействий между пользователями и товарами.
  3. Выходной слой NCF — комбинирует выходные данные от слоев MF и NN для генерации конечного результата. Матрица R` из слоя MF конкатенируется с выходом слоя NN. Этот объединенный вектор проходит через слой Dense, который генерирует конечный вывод модели.
Архитектура модели NCF

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

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

Давайте рассмотрим реальную проблему, чтобы получить немного практических навыков.

4. Создание рекомендательного движка с помощью NCF

4.1. Условие задачи

Мы возьмем обычный набор задач рекомендации фильмов, но подойдем к нему с использованием NCF вместо традиционных CF моделей. Любое связанное условие задачи можно найти на веб-сайтах, таких как Kaggle, репозиторий машинного обучения UCI и т. д.

4.2. Набор данных

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

У нас есть идентификатор пользователя (userId), идентификатор фильма (movieId) и оценки, данное пользователями фильмам. Методы коллаборативной фильтрации требуют только взаимодействия пользователей и элементов, поскольку они изучают шаблоны в этих взаимодействиях независимо от других характеристик пользователей и элементов. Поэтому все, что нам нужно для модели CF или модели, основанной на CF (например, NCF), – это взаимодействия пользователей и элементов и ничего более.

4.3. Матрица взаимодействий пользователь-фильм

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

4.4. Подготовка данных для моделирования

Поскольку нейронная сеть принимает только числовой вход, мы сделали индексы пользовательского идентификатора (userId) и идентификатора фильма (movieId). Это поможет, если у нас есть идентификаторы пользователей и фильмов в категориальном или другом формате, отличном от целого числа. Затем мы разделили данные случайным образом на обучающую и проверочную выборки в соотношении 80:20.

4.5. Архитектура модели

Мы рассмотрим архитектуру модели пошагово:

  1. Определите гиперпараметры, такие как эпохи, размер пакета, скорость обучения и размер вложений.
  2. Определите входной слой модели, используя слои Keras.Input.
  3. Определите слой MF с вложениями пользователей и фильмов. Разгладьте вложения и возьмите произведение скаляров, чтобы сгенерировать показатель сходства (традиционная архитектура MF).
  4. Определите слой NN с вложениями пользователей и фильмов, разгладьте и объедините вложения и передайте их в виде входа через многослойный персептрон (MLP), чтобы сгенерировать выход. Добавьте и настройте модификации, такие как количество нейронов, пакетная нормализация и слои исключения.
  5. Определите слой NCF, объединив выходы слоев MF и NN. Передайте объединенный вектор через слой Dense с одним нейроном, чтобы сгенерировать выход для всей модели.
  6. Постройте и скомпилируйте модель с функцией потерь “MSE” и выбранным оптимизатором.

4.6. Обучение и оценка модели

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

4.7 Сделайте предсказания

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

5. Заключение

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

Также ознакомьтесь с этими материалами —

Сила предсказания вероятности клика

CPP — это двигатель, который питает алгоритмы современных рекомендательных систем, интернет-рекламодателей и многого другого. Это…

VoAGI.com

Место для логистической регрессии

pub.towardsai.net

Единое место для метода опорных векторов

Опорные векторы? Машина? И почему Освальд Мозли не мертв?

VoAGI.com