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

Введение

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

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

Совместную фильтрацию можно разделить на два типа: на основе памяти и на основе модели.

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

CF на основе памяти использует всю матрицу предпочтений пользователя для расчета рекомендаций. Далее его можно разделить на два подхода: на основе пользователей и на основе элементов.

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

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

Пусть R будет матрицей предпочтений пользовательского элемента, где R(i,j) представляет оценку предпочтения, присвоенную пользователем i элементу j. Сходство между пользователем u и пользователем v можно рассчитать следующим образом:

Корреляции Пирсона:

Косинусное сходство:

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

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

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

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

Пусть U будет матрицей скрытых факторов пользователя, а V будет матрицей скрытых факторов элемента с размерностями n_users x k и n_items x k соответственно. Оценку предпочтения для пользователя i и элемента j можно оценить следующим образом:

  1. Нейронная совместная фильтрация

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

2.1. Обобщенная матричная факторизация (GMF)

GMF — это вариант MF, в котором внутренний продукт заменяется поэлементным продуктом с последующим линейным преобразованием. Пусть U и V будут матрицами скрытых факторов пользователя и элемента, а W будет матрицей весов линейного преобразования. Оценку предпочтения для пользователя i и элемента j можно оценить следующим образом:

Здесь обозначает произведение по элементам (Адамара), а b — член смещения.

GMF можно рассматривать как частный случай системы Neural Collaborative Filtering, где функция активации является линейной. Хотя GMF фиксирует линейные взаимодействия между пользователем и скрытыми факторами элемента, он может не полностью отражать сложные нелинейные отношения, существующие между пользователями и элементами. Это ограничение мотивирует включение нейронных сетей, таких как многослойные персептроны (MLP), в методы совместной фильтрации, как обсуждается в последующих разделах.

2.2. Многослойный персептрон (MLP)

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

Пусть U и V будут матрицами скрытых факторов пользователя и элемента, f будет функцией активации, а L будет количеством слоев в MLP. Показатель предпочтений для пользователя i и элемента j можно оценить следующим образом:

где MLP представляет нейронную сеть с L скрытыми слоями.

2.3. Нейронная матричная факторизация (NeuMF)

Neural Matrix Factorization (NeuMF) сочетает в себе сильные стороны GMF и MLP, объединяя их архитектуры в единую модель. Оценка предпочтения вычисляется как сумма выходных данных частей GMF и MLP, за которыми следует сигмовидная функция активации.

Пусть R_hat_GMF(i, j) будет показателем предпочтения, оцененным GMF, а R_hat_MLP(i, j) будет показателем предпочтения, оцененным MLP. Оценка предпочтений для пользователя i и элемента j в модели NeuMF может быть оценена как:

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

Заключение

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