Прогулочная рекомендательная система байесовского персонализированного ранжирования (BPR) и адаптивного K-ближайшего соседа

Чаще всего компании используют рекомендуемый системный алгоритм для создания любимых товаров пользователями на основе предыдущего опыта покупок. Интернет-покупатели будут получать рекомендованные товары при совершении покупок в таких магазинах, как eBay, Amazon, Walmart и т. Д. Статья посвящена рекомендациям по товарам. Метод системы рекомендаций по элементам обеспечивает индивидуальное ранжирование для набора элементов, изученных из прошлых наборов данных пользователей, таких как история покупок, история просмотров и т. Д. В настоящее время система рекомендаций сильно варьируется от ввода явного набора данных, такого как рейтинги, до неявный набор данных, такой как отслеживание кликов, времени просмотра, покупок и т. д. Эту информацию легче собрать, но трудно рекомендовать любимые элементы пользователей.

В этой статье вы узнаете о декомпозиции по сингулярным значениям и усеченном SVD рекомендательной системы:

(1) Персонализированная система рейтинга

(2) Постановка проблемы

(3) Байесовский персонализированный рейтинг (BPR)

(4) Критерий оптимизации BPR

(5) Алгоритм обучения BPR

(6) Факторизация матрицы

(7) Адаптивный K-ближайший сосед

Персонализированная система рейтинга

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

Постановка задачи

Для систем неявной обратной связи он может обнаруживать положительный набор данных, например историю покупок. Для остальных данных это смесь фактически отрицательных и пропущенных значений. Тем не менее, модели машинного обучения не могут изучить недостающие данные. Обычно рекомендатели элементов выводят персонализированную оценку X_ui на основе предпочтений пользователя для элемента, и элементы сортируются по прогнозируемой оценке. Модель машинного обучения рекомендателей элементов предоставляет обучающие данные с заданными парами (u, i) ∈ S в качестве положительной метки класса и всеми другими комбинациями в (U × I) \ S в качестве отрицательной.

Модель подходит для прогнозирования положительного класса со значением 1 и 0 для остальных. Проблема может возникнуть, когда модель не может ранжировать элементы ((U × I) \ S), которые были даны как отрицательная обратная связь во время обучения. Альтернативой может быть добавление к модели регуляризации для предотвращения переобучения. Другой метод - создать пары элементов в качестве обучающих данных и оптимизировать их для правильного ранжирования пар элементов вместо того, чтобы оценивать один элемент, пока не учитываются пропущенные значения. На фотографии ниже модели трудно учиться только на наблюдаемых данных. Следовательно, все отрицательные данные заменяются на 0.

Байесовский персонализированный рейтинг (BPR)

Чтобы преодолеть задачу персонализированного ранжирования, байесовское персонализированное ранжирование включает байесовский анализ проблемы с использованием функции правдоподобия для p (i ›u j | Θ) и априорной вероятности для параметра модели p (Θ).

В этом разделе мы выводим общий метод решения задачи персонализированного ранжирования. Он состоит из общего критерия оптимизации для персонализированного ранжирования, BPR-Opt, который будет получен путем байесовского анализа проблемы с использованием функции правдоподобия для p (i ›uj | Θ) и априорной вероятности для параметра модели p (Θ )

Критерий оптимизации BPR

Байесовский подход состоит в том, чтобы произвести ранжирование для всех элементов i ∈ I, чтобы максимизировать следующую апостериорную вероятность, где Θ представляет вектор параметров произвольного класса модели

p(Θ| >u) ∝ p(>u |Θ) p(Θ)

Все пользовательские факторы независимы друг от друга, и порядок каждой пары элементов (i, j) для конкретного пользователя уникален.

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

Мы определяем индивидуальную вероятность того, что пользователь действительно предпочитает элемент i элементу j, как:

Для подхода байесовского моделирования задачи персонализированного ранжирования вводится общая априорная плотность p (Θ), которая является нормальным распределением с нулевым средним и матрицей ковариации ΣΘ.

p(Θ) ∼ N(0, ΣΘ)

Полагая ΣΘ = λΘI, мы уменьшаем количество неизвестных гиперпараметров. Максимальная апостериорная оценка устанавливается для получения критерия оптимизации для персонализированного ранжирования BPR-Opt.

Алгоритм обучения BPR

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

Градиент BPR-Opt относительно параметров модели составляет:

Параметры в оптимизированной модели указаны как скорость обучения α и регуляризация λΘ. Модель представляет собой стохастический градиентный спуск на основе начальной загрузки.

Мы представим популярный подход стохастического градиентного спуска. Из приведенного ниже уравнения обновление выполняется для каждой тройки (u, i, j) ∈ D_s.

Порядок подхода по обучающим парам имеет решающее значение. Переход по элементам данных или по пользователю приводит к плохой сходимости, в то время как одни и те же пары пользователь-элемент будут иметь много обновлений. Алгоритм стохастического градиентного спуска вводится для случайного выбора троек (равномерно распределенных). Такой подход может снизить вероятность выбора одной и той же комбинации пользователь-элемент на последовательных этапах обновления. Подход бутстраповой выборки с заменой может остановить случайный выбор пары пользователь-элемент. Количество одиночных шагов выбирается линейно в нашей оценке на основе количества наблюдаемых положительных отзывов S.

Модели обучения с BPR

И два различных модельных класса матричной факторизации, и изученный k-ближайший сосед будут моделировать скрытые предпочтения пользователя в отношении элемента. Сначала мы разложим оценку ˆx_uij и определим ее как:

xˆuij: = ˆxui - xˆuj

Затем для прогнозирования ˆx_ul применяется стандартная модель совместной фильтрации. Такой подход лучше, чем исходный, поскольку он классифицирует разницу двух прогнозов ˆx_ui - xˆ_uj, а не регрессирует один предиктор ˆx_ul к одному числу.

Факторизация матрицы

Оценка матрицы X: U × I используется для решения задачи прогнозирования ˆx_ui. Целевая матрица создается с помощью матричного произведения двух матриц низкого ранга W: | U | × k и H: | I | × k из матричной факторизации.

Xˆ := W* H^t

В приведенном ниже уравнении указаны параметры.

K: размерность / ранг аппроксимации
W_u: вектор признаков в W, указывающий пользователя u, и аналогично каждая строка hi в H описывает элемент i.

Θ = (W, H): параметры модели для матричной факторизации. Параметры представляют собой скрытые переменные для моделирования ненаблюдаемых пар пользователей и элементов. Разложение по сингулярным числам (SVD) достигается для приближения Xˆ к X по методу наименьших квадратов. Обычно подход SVD не соответствует данным. Затем есть другие рекомендуемые методы, такие как регуляризованная оптимизация по методу наименьших квадратов, неотрицательная факторизация, факторизация максимальной маржи.

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

Для задачи ранжирования, то есть оценки того, предпочитает ли пользователь один элемент другому, лучшим подходом является оптимизация по критерию BPR-Opt. Этого можно добиться, используя предложенный нами алгоритм LearnBPR. Как указывалось ранее, для оптимизации с помощью LearnBPR необходимо знать только градиент ˆx_uij относительно каждого параметра модели θ. Для модели матричной факторизации производными являются:

Кроме того, добавлены еще три члена регуляризации.

λW: пользовательские функции W
λH +: положительные обновления в hif для характеристик элемента H
λH-: отрицательные обновления в hjf для функций элемента H

Адаптивный K-ближайший сосед

Существует еще один популярный метод совместной фильтрации, называемый методом K-ближайшего соседа, основанный на измерении сходства между элементами (на основе элементов) или пользователями (на основе пользователей). Для K-ближайшего-соседа мы генерируем прогноз рекомендуемого элемента i от пользователя u на основе прошлого сходства i со всеми другими элементами, которые пользователь видел в прошлых исторических данных, то есть I + u. K-ближайшие соседи создаются из k наиболее похожих элементов I + u. Модель K-ближайшего соседа на основе элементов приведена ниже для прогнозирования элементов. C - симметричная матрица корреляции / сходства элементов.

Параметры модели в kNN равны Θ = C. C определяется с помощью эвристической меры подобия, например Сходство вектора косинуса: i.

Мера подобия C будет обновляться, когда модель обучается. Параметр C можно применять напрямую. С другой стороны, когда параметр C слишком велик, модель производит C из факторизации HHt с H: I × k. Позже мы решили адаптироваться к C без факторизации. Чтобы оптимизировать модель KNN для ранжирования, алгоритм LearnBPR используется для обновления градиента ˆx_uij относительно параметров модели C.

Есть две константы регуляризации: λ + для обновлений на cil и λ− для обновлений на cjl:

Практический опыт работы с кодом на Python

Описание данных:

Есть рейтинги, пользователи и набор данных фильмов, извлеченных с сайта grouplens. Эти файлы содержат около 1 миллиона анонимных оценок примерно 4 000 фильмов от 6 000 пользователей MovieLens. Данные рейтинга включают UserID, MovieID и рейтинги. Пользовательский файл содержит демографическую информацию от пользователей, такую ​​как пол, возраст, род занятий и почтовый индекс. Набор данных фильма содержит основную информацию, такую ​​как MovieID, название и жанры.

Байесовское персонализированное ранжирование на основе неявной обратной связи

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

Предварительная обработка данных

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

Для входных данных модели мы используем объект DataLoader из библиотеки Pytorch. DataLoader выполняет итерацию по набору данных из комбинации набора данных и сэмплера. DataLoader позволяет создавать данные в пакетах с помощью аргументов batch_size. Параметр определяет, сколько образцов в пакете загружать. В классе DataLoader есть еще один num_worker параметр, который определяет, сколько подпроцессов использовать для загрузки данных.

Моделирование

Сначала мы создаем пользовательскую матрицу (u) с индексом пользователя, индекс элемента (i) со всеми элементами, предпочитаемыми пользователями, и индекс элемента (j), который не предпочитается пользователями. Затем матрица x_ui генерируется путем умножения u и i и суммируется с каждой строкой. И матрица x_uj генерируется путем умножения u и j и суммируется с каждой строкой. Матрица x_uij: матрица x_ui - матрица x_uj. Вероятность отображается сигмоидной функцией матрицы x_uij и суммирует значение. Регуляризация добавляется с параметром weight_decay, умноженным на нормализацию матрицы пользователя и элемента, и суммирует квадратную функцию. Математическая формула приведена ниже.

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

DataLoader и потерянная функция

Мы генерируем класс DataLoader с размером пакета 4096 и назначаем 16 рабочих. Поскольку набор данных довольно большой, мы назначаем 16 подпроцессов для параллельного периода обработки данных. Оптимизатор Adam настроен на скорость обучения 0,0001. Для оптимизации модели существует стохастический градиентный спуск для обратного распространения. Для каждого размера партии мы записываем потери, точность и отзыв.

Результат

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

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

Будущая работа :

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

В заключении

  • Байесовское персонализированное ранжирование использует функцию правдоподобия для p (i ›u j | Θ) и априорную вероятность для параметра модели p (Θ). Байесовский подход состоит в том, чтобы получить рейтинги для всех элементов i ∈ I, чтобы максимизировать следующую апостериорную вероятность
  • Для задачи ранжирования мы используем LearnBPR, чтобы оценить, предпочитает ли пользователь один элемент другому, из матричной факторизации. Оптимизация модели будет достигнута путем вычисления градиента ˆx_uij по каждому параметру модели θ.
  • Метод K-ближайшего соседа, полученный из меры сходства между элементом (на основе элемента) или пользователями (на основе пользователя), генерирует прогноз рекомендуемого элемента i от пользователя u на основе прошлого сходства i со всеми другими элементы, которые пользователь видел в прошлом данных истории.

Ссылка

  • BPR: Байесовский персонализированный рейтинг на основе неявной обратной связи
    https://arxiv.org/pdf/1205.2618.pdf