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

Вступление

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

Рекомендательные системы

Поскольку цифровая экономика продолжает расширяться в размерах и совершенствоваться, роль рекомендательных систем для предоставления персонализированного, актуального контента каждому отдельному пользователю становится как никогда важной. Сайты электронной коммерции с постоянно расширяющимися каталогами продуктов могут одновременно отображать индивидуализированные витрины магазинов для миллионов пользователей. Поставщики цифрового контента могут помочь пользователям перемещаться по большему количеству книг, статей, песен, фильмов и т. Д., Чем можно было бы потратить за всю жизнь, чтобы найти небольшое подмножество, наиболее соответствующее конкретным интересам и вкусам каждого пользователя. Например, Netflix сообщил в 2015 году, что его рекомендательная система повлияла примерно на 80% часов потоковой передачи на сайте, и, по дальнейшим оценкам, стоимость системы составляет более 1 миллиарда долларов в год. [1]

Двумя общими высокоуровневыми подходами к рекомендательным системам являются Content-Based Filtering (CBF) и Collaborative Filtering (CF). CBF-модели представляют пользователей и элементы как векторы атрибуты или функции (например, возраст пользователя, состояние, доход, уровень активности; отдел товара, категория, жанр, цена). В отличие от этого, методы CF полагаются только на прошлое поведение пользователя: модель анализирует паттерны совместной встречаемости для определения сходства пользователей и / или элементов и пытается вывести предпочтения пользователя по сравнению с невидимыми элементами, используя только записанные взаимодействия пользователя. . Подходы на основе CF имеют преимущества в том, что они свободны от предметной области (т. Е. Не требуются специфические бизнес-знания или разработка функций), а также в целом более точны и масштабируемы, чем модели CBF. [2]

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

Многие из самых популярных и наиболее успешных подходов к CF основаны на матричной факторизации (MF), причем разработка быстро ускоряется благодаря Netflix Prize 2006–2009, в которой победившая работа широко использовала методы MF, включая ныне популярные Алгоритм SVD ++. [3] MF-модели пытаются изучить низкоразмерные представления или вложения пользователей и элементов в совместно используемом латентном факторном пространстве. По сути, наблюдаемая разреженная матрица взаимодействия пользователь-элемент факторизуется в приблизительное произведение двух матриц низкого ранга, которые содержат вложения пользователя и элемента. После изучения этих скрытых факторов можно вычислить сходство пользователя / элемента и сделать вывод о ненаблюдаемых предпочтениях путем сравнения представлений скрытых факторов пользователя / элемента.

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

Неявный отзыв

Однако эта формулировка не работает при работе с данными неявной обратной связи, когда вы напрямую не наблюдаете никаких явных числовых оценок или положительных / отрицательных ответов, а только необработанное поведение пользователя (например, часы, просмотры страниц, покупки, клики). Данные неявной обратной связи гораздо более распространены в реальных контекстах рекомендаций, и на самом деле рекомендательные системы, построенные исключительно с использованием явных данных обратной связи (даже если они существуют), обычно работают плохо из-за того, что рейтинги не пропадают случайно, а вместо этого сильно коррелированы. со скрытыми предпочтениями пользователя. [4] Чтобы адаптировать подход MF к неявным данным обратной связи, Ху и др. [5] представили концепцию оценок как двоичных подразумеваемых предпочтений (наблюдал ли пользователь элемент или нет) с числовой доверительный вес, представляющий предполагаемую силу этого двоичного предпочтения. Эта формулировка модели является основой популярного алгоритма неявной обратной связи ALS, реализованного как в SparkML, так и в неявной библиотеке Python:

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

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

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

Машины факторизации

Машины факторизации (FM) - это общие модели обучения с учителем, которые отображают произвольные вещественные признаки в низкоразмерное латентное факторное пространство и могут естественным образом применяться к широкому спектру задач прогнозирования, включая регрессию, классификацию и ранжирование. FM могут точно оценивать параметры модели при очень разреженных данных и обучаться с линейной сложностью, что позволяет им масштабироваться до очень больших наборов данных [6] - эти характеристики делают FM идеально подходящими для реальных задач рекомендаций. В отличие от классической модели MF, описанной выше, которая вводит матрицу взаимодействия пользователя с элементом, модели FM представляют взаимодействия пользователя с элементом в виде кортежей вещественных векторов признаков и числовых целевых переменных - этот формат данных должен быть знаком любому, кто когда-либо обучал стандартной регрессии. или модель классификации.

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

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

Эта формулировка модели может показаться знакомой - это просто квадратичная линейная регрессия. Однако, в отличие от полиномиальных линейных моделей, которые оценивают каждый член взаимодействия по отдельности, FM вместо этого используют факторизованные параметры взаимодействия: веса взаимодействия функций представлены как внутреннее произведение встраиваемых пространств скрытых факторов двух функций:

Это значительно уменьшает количество параметров для оценки и в то же время способствует более точной оценке за счет нарушения строгих критериев независимости между условиями взаимодействия. Рассмотрим реалистичный набор данных рекомендаций с 1 000 000 пользователей и 10 000 элементов. Квадратичная линейная модель должна оценить U + I + UI ~ 10 миллиардов параметров. Для FM-модели размерности F = 10 потребуется только U + I + F (U + I) ~ 11 миллионов параметров. Кроме того, многие общие алгоритмы MF (включая SVD ++, ALS) могут быть переформулированы как частные случаи более общего / гибкого класса моделей FM. [7]

Однако не сразу понятно, как адаптировать FM-модели к данным неявной обратной связи. Один наивный подход заключался бы в том, чтобы пометить все наблюдаемые взаимодействия пользователя и элемента как (1), а все ненаблюдаемые взаимодействия как (-1) и обучить модель, используя общую функцию потерь классификации, такую ​​как потеря петли или журнала. Но с реальными наборами данных рекомендаций это потребовало бы создания миллиардов ненаблюдаемых обучающих выборок пользовательских элементов и привело бы к серьезному дисбалансу классов из-за разреженности взаимодействия. Этот подход также имеет ту же концептуальную проблему, что и описанная выше адаптация MF с неявной обратной связью: он по-прежнему сводит к минимуму ошибку прогнозирования рейтинга вместо прямой оптимизации порядка ранжирования элементов.

Повышение квалификации

Методы оптимизации, которые изучают порядок ранжирования напрямую, а не минимизируют ошибку прогнозирования, называются Learning-to-Rank (LTR). Модели LTR обучаются на парах или списках обучающих выборок, а не на индивидуальных наблюдениях. Функции потерь основаны на относительном порядке элементов, а не на их исходных оценках. Модели, использующие LTR, дали самые современные результаты в поиске, извлечении информации и совместной фильтрации. Эти методы являются ключом к адаптации моделей FM к проблемам рекомендаций с неявной обратной связью.

Одним из наиболее популярных методов LTR для рекомендации элементов является Байесовское персонализированное ранжирование (BPR). BPR пытается определить правильный порядок ранжирования элементов для каждого пользователя путем максимизации апостериорной вероятности (MAP) модели. параметры с учетом набора данных наблюдаемых предпочтений элементов пользователя и выбранного предварительного распределения. Предполагается, что наблюдаемые элементы каждого пользователя (неявная обратная связь) предпочтительнее ненаблюдаемых элементов, и все парные предпочтения считаются независимыми. Чтобы изучить эти предпочтения, создается обучающая выборка, состоящая из кортежей [пользователь (u), наблюдаемый элемент (i), ненаблюдаемый элемент (j)], и максимизируется следующая функция логарифмического правдоподобия относительно параметров модели. [8]

Где (›u | theta) - прогнозируемый моделью рейтинг элемента для пользователя (u). Этому можно научиться с использованием обучающих данных, описанных выше, путем максимизации совместной вероятности того, что наблюдаемые пользователями элементы предпочтительнее их ненаблюдаемых элементов. Мы можем определить эту вероятность как разницу между прогнозируемыми оценками полезности наблюдаемых (i) и ненаблюдаемых (j) элементов, отображаемых на [0, 1] с помощью сигмоидной функции:

Где действительные оценки полезности пользовательского элемента f (u, i | theta) и f (u, j | theta) генерируются с использованием приведенного основного уравнения модели FM выше. Собирая все это вместе и включая термин регуляризации, критерием максимизации становится:

Делая шаг вперед, Взвешенный приблизительный парный рейтинг (WARP) не просто произвольно выбирает ненаблюдаемые элементы (j), а, скорее, отбирает множество ненаблюдаемых элементов для каждой наблюдаемой обучающей выборки, пока не найдет ранг реверсирование для пользователя, что дает более информативное обновление градиента. Это особенно важно в контекстах с большим количеством элементов и сильно искаженной популярностью элементов (очень часто). [9] Основная процедура:

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

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

Фактически, если вы масштабируете величину обновлений градиента с множителем (0, 1], BPR можно рассматривать как частный случай WARP, где максимальное количество отрицательных отсчетов равно единице, что приводит к постоянному множителю обновления градиента. 1. Использование WARP увеличивает время обучения для каждой эпохи по сравнению с BPR, но часто дает более быструю сходимость и превосходную производительность модели.

Оценка модели

Теперь, когда вся теория в стороне, давайте посмотрим, как эти компоненты объединяются для выработки высококачественных рекомендаций на основе хорошо известного набора реальных данных. Мы обучим FM-модель неявной обратной связи с помощью нового авторского пакета RankFM, который реализует описанные выше методы, и сравним ее производительность с популярным алгоритмом ALS MF с неявной обратной связью, обсуждавшимся ранее (с помощью пакета Implicit). Цель состоит в том, чтобы показать, что модель FM, включающая вспомогательные функции и обученная с использованием методов оптимизации LTR, дает лучшие характеристики по сравнению с аналогичной указанной классической моделью MF.

Для этого упражнения мы будем использовать Данные заказов Instacart за 2017 год. Он содержит 200 000 пользователей, 50 000 элементов, 3,4 миллиона заказов и более 32 миллионов зарегистрированных взаимодействий между пользователями и элементами. Быстрый анализ данных показывает их высокую разреженность: средний пользователь приобрел только 48 товаров по 9 заказам, а средний товар был куплен только 35 пользователями по 60 заказам. Общий коэффициент разреженности взаимодействия составляет 99,87%.

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

Теперь давайте обучим модель RankFM. Мы будем использовать 50 скрытых факторов, потерю WARP с максимально 100 отрицательными выборками и график обучения с обратным масштабированием, который со временем снизит скорость обучения, чтобы помочь с конвергенцией SGD. RankFM распечатает логарифмическую вероятность каждой эпохи обучения, чтобы вы могли отслеживать как время обучения, так и прирост производительности для каждой эпохи:

Мы можем генерировать реальные оценки полезности, используя основное уравнение модели FM с методом pred (). Пользователи и элементы, отсутствующие в обучающих данных, могут быть отброшены или для них в результирующем векторе оценок установлено значение np.nan. Мы можем использовать метод рекомендовать () для создания списка TopN рекомендованных элементов для каждого пользователя в наборе проверки. Есть полезный флаг, который позволяет вам выбрать, следует ли включать ранее наблюдаемые обучающие элементы или генерировать только новые рекомендации. В результате получается фрейм данных pandas со значениями индекса UserID и элементами, рекомендованными каждым пользователем, в столбцах, упорядоченных слева направо в соответствии с ожидаемыми предпочтениями:

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

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

Сравнение базовой модели

Теперь давайте сравним производительность RankFM с нашим базовым алгоритмом ALS. Для этого нам сначала нужно преобразовать наши данные о взаимодействии пользователя с элементом в разреженную матрицу CSR. Мы будем использовать точно такое же разбиение данных и ввести сгенерированные нами веса выборки в качестве оценок достоверности для обучения модели ALS.

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

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

Хотя полный анализ потребует соответствующей настройки обеих моделей для различных комбинаций гиперпараметров, мы можем увидеть небольшой прирост производительности (5–10%) с формулировкой модели FM и методами оптимизации LTR с использованием идентичных данных взаимодействия и примерно эквивалентных спецификаций модели (т. Е. Количества скрытые факторы). Мы, вероятно, увидим еще больший прирост производительности по сравнению с базовой моделью ALS MF, если у пользователей будет меньше записанных взаимодействий (в данных Instacart у каждого пользователя есть как минимум 3 заказа) и / или у нас будут более информативные вспомогательные функции для пользователей / элементов.

Резюме

В этой статье мы исследовали машины факторизации (FM) как универсальную, но мощную структуру модели, особенно хорошо подходящую для задач совместной фильтрации рекомендаций. В отличие от традиционных подходов матричной факторизации (MF), FM-модели могут быть естественным образом расширены, чтобы включать пользователя, элемент или контекстные вспомогательные функции для увеличения основных данных взаимодействия. Затем мы показали, как функции потерь от обучения до ранжирования (LTR), такие как байесовский персонализированный рейтинг (BPR) и взвешенный приблизительный парный рейтинг (WARP), являются ключом к успешной адаптации моделей FM к данным неявной обратной связи. Чтобы продемонстрировать эти моменты, мы показали, что FM-модель неявной обратной связи превосходит популярный базовый алгоритм ALS MF на хорошо известном наборе данных рекомендаций неявной обратной связи с открытым исходным кодом. Наконец, мы представили RankFM: новый пакет Python для построения и оценки моделей FM для проблем с рекомендациями с неявными данными обратной связи.

Ссылки

[1] К. Гомес-Урибе, Н. Хант. Рекомендательная система Netflix: алгоритмы, ценность для бизнеса и инновации (2015 г.), ACM-транзакции в информационных системах управления

[2] Ю. Корен, Р. Белл, К. Волинский. Методы матричной факторизации для рекомендательных систем (2009 г.), IEEE

[3] Ю. Корен, Р. Белл, К. Волинский. Решение BellKor для премии Netflix (2008 г.), www.netflixprize.com

[4] Х. Штек. Обучение и тестирование рекомендательных систем на случайное отсутствие данных (2010). KDD

[5] Ю. Ху. Совместная фильтрация наборов данных неявной обратной связи (2008 г.). IEEE

[6] С. Рендл. Машины факторизации (2010). ICDM 2010

[7] С. Рендл. Машины факторизации (2010). ICDM 2010

[8] С. Рендл, К. Фройденталер, З. Гантнер, Л. Шмидт-Тим. BPR: Байесовское персонализированное ранжирование на основе неявной обратной связи (2009). UAI 2009

[9] С. Рендл, К. Фройденталер. Улучшение парного обучения для рекомендаций по элементам с помощью неявной обратной связи (2014). ACM 2014