Интуитивно понятный способ понять Байесовский критерий оптимизации персонализированного ранжирования с использованием матричной факторизации

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

Содержание:

  1. Обзор
  2. Системы рекомендаций по обучению
  3. Факторизация матрицы с использованием метода наименьших квадратов
  4. Факторизация матрицы с использованием байесовского персонализированного ранжирования

1. Обзор

Ранее, во времена приза Netflix, большинство рекомендательных систем основывалось на явных данных (данных рейтингов), где пользователи явно выставляли оценки, чтобы выразить свое мнение. С тех пор многое изменилось. Благодаря усовершенствованию методов сбора данных и уменьшению тенденции давать явные оценки клиентам, данные неявной обратной связи стали более популярными как в академических кругах, так и в отраслях для создания надежных рекомендательных систем.

Неявные данные

Неявные данные - это не что иное, как отзывы, которые мы собираем от клиентов в виде кликов, покупок, количества просмотров и т. Д. Основные особенности неявных данных:

  1. Отсутствие отрицательных отзывов. В явных данных клиенты прямо выражают как положительные, так и отрицательные отзывы. Остальные точки данных, в которых нет значения, считаются пропущенными значениями. Но в неявных данных у нас есть только положительные отзывы, такие как клики, покупки и т. Д., И невозможно определить, вызваны ли недостающие данные тем, что покупателю не понравился товар или он не знает об этом.
  2. По своей сути зашумлены. Хотя неявные данные по своей природе зашумлены, их большой объем компенсирует этот недостаток и помогает в создании надежных рекомендательных систем.
  3. Предпочтение против уверенности. В явных данных рейтинги относятся исключительно к предпочтениям клиента, а числовое значение показывает степень предпочтения. В случае неявных данных числовое значение часто относится к частоте, которая может не обязательно отражать величину предпочтений клиента. Следовательно, необходимо вывести показатель уверенности, который показывает уверенность клиента.

Модели со скрытым фактором

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

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

2. Рекомендательные системы обучения

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

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

Как показано на рисунке выше, система рекомендаций по обучению состоит из 3 компонентов:

1. Модель:

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

2. Функция полезности или функция потерь:

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

Θ: Параметры нашей модели рекомендаций, такие как матрицы пользователей и элементов в матричной факторизации.

g (θ): функция потерь, которую мы пытаемся минимизировать

3. Алгоритм оптимизации:

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

3. Факторизация матрицы с использованием метода альтернативных наименьших квадратов.

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

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

Чередование наименьших квадратов

Альтернативный метод наименьших квадратов (ALS) - один из таких алгоритмов, который был предложен в Совместной фильтрации для неявной обратной связи Ифань Ху, Иегудой Корен и Крисом Волински. Я настоятельно рекомендую прочитать эту статью Виктора, чтобы подробно разобраться в ALS, если вы не знакомы с этим алгоритмом. Тем не менее, я дам краткий обзор модели ALS, чтобы сохранить логическую преемственность с байесовским подходом персонализированного ранжирования. .

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

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

Функция потерь:

xu и yi - это скрытый вектор пользователя и скрытый вектор элемента соответственно.

cui: показатель достоверности

pui: предпочтительный показатель

Внедрение ALS для создания рекомендательной системы музыки

Чтобы лучше понять систему рекомендаций с использованием ALS, я реализовал эти концепции для создания системы рекомендаций по музыке с использованием набора музыкальных данных с открытым исходным кодом (набор данных lastfm). Я черпал вдохновение и некоторую помощь в коде из работ Бена Фредериксона и Джесси Штайнвег-Вудс при создании этой системы рекомендаций по музыке.

Вы можете найти код этого проекта в моем репозитории на github.



Результаты

Я использовал показатель AUC в качестве критерия оценки для этой рекомендательной системы. Важно отметить, что этот набор данных очень разрежен и имел разреженность 99,9%, когда я взял выборку из 40000 пользователей и 100000 художников. Несмотря на большую разреженность набора данных, рекомендательная система дала значение AUC ~ 90%.

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

Почему Байесовское персонализированное ранжирование?

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

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

Штеффен Рендл, Кристоф Фройденталер, Зено Гантнер и Ларс Шмидт-Тим в BPR: Байесовское персонализированное ранжирование на основе неявной обратной связи

Факторизация матрицы с использованием байесовского персонализированного ранжирования

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

Подготовка данных:

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

Обычный подход заключается в прогнозировании персонализированной оценки xui для элемента, которая отражает предпочтения пользователя для этого элемента. После этого предметы будут ранжироваться на основе этого результата. Здесь, как вы можете видеть на рисунке выше, все существующие взаимодействия между пользователем и элементом помечены как положительный класс (1), а остальные взаимодействия помечены как отрицательный класс (0).

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

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

Семантика (u, i, j) ∈ DS такова, что предполагается, что пользователь u предпочитает i, а не j.

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

На приведенном выше рисунке пользователь u1 просмотрел элемент i2, но не элемент i1, поэтому алгоритм предполагает, что этот пользователь предпочитает элемент i2, а не i1 (i2 ›i1), и дает положительный знак. Невозможно сделать вывод о предпочтении элементов, которые одновременно были просмотрены пользователем и отмечены знаком ?. То же самое верно для двух элементов, которые пользователь еще не видел (например, элемент i1 и i4 для пользователя u1). Напротив, вы можете наблюдать отрицательный знак для (i1, j2), поскольку пользователь предпочитает item2 над item1.

BPR-OPT

Как и в любом байесовском подходе, в этом подходе есть функция правдоподобия, априорная вероятность и апостериорная вероятность.

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

Функция правдоподобия

Здесь ›u - желаемая, но скрытая структура предпочтений для пользователя u. Также важно отметить, что p (›u | θ) - это функция правдоподобия, зависящая от пользователя.

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

x ^ uij (Θ) в приведенном выше уравнении - это функция с действительным знаком, которая представляет отношение между пользователем u, элементом i и элементом j и обычно вычисляется с использованием модели матричной факторизации. Другими словами, оценки, которые фиксируют связь между пользователем u, элементом i и элементом j, будут вычисляться с использованием данных обучения триплета и матричной факторизации и заключены в сигмоидальную функцию. Эта сигмовидная функция дает индивидуальную вероятность, которая будет оптимизирована в процессе.

Априорная вероятность

p (θ) - априорная вероятность, которая является нормальным распределением с нулевым средним и ковариационной матрицей.

Критерий BPR

Следующее уравнение является окончательным критерием BPR-OPT, который необходимо оптимизировать.

где λΘ - параметры регуляризации модели

Зачем регистрировать вероятность?

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

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

Аналогии с оптимизацией AUC

Для людей, которые не знают о AUC, это площадь под кривой ROC, которая отображается с истинным положительным значением в качестве оси y и ложным положительным значением в качестве оси x для различных пороговых значений модели, которая рассматривается. Другими словами, для набора рекомендаций по элементам мы можем построить кривую ROC, вычислив% хороших рекомендаций по элементам и% плохих рекомендаций для каждого порога.

Интересно отметить, что показатель AUC - это показатель, основанный на ранге, и его также можно рассматривать как процент правильно ранжированных баллов.

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

Реализация определения AUC для нашего варианта использования дает нам следующее уравнение:

S (i; u) ›S (j; u) - оценка x ^ uij, которую мы обсуждали ранее.

Функция 1 {foo} - недифференциальная функция Хевисайда. Общая практика при оптимизации для AUC (метрики на основе ранга) заключается в замене функции Хевисайда дифференцируемой функцией, такой как сигмовидная функция. В нашем случае мы выбрали бревно (сигмоид). Эта концепция кратко изложена в следующем документе.

Сравнение AUC с BPR-OPT

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

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

Когда критерий является дифференцируемым, как в этом случае, очевидным выбором является использование градиентного спуска для критерия оптимизации. Но в этом случае порядок, в котором модели пересекают обучающие пары, имеет решающее значение. Следование общему подходу стохастического градиента приведет к плохой сходимости, поскольку существует так много последовательных обновлений в одной и той же паре пользователь-элемент, то есть для одной пары пользователь-элемент (u, i) существует много j с (u, i, j) ∈ DS.

Чтобы решить эту проблему, в этом алгоритме был использован метод начальной загрузки. Вместо того, чтобы брать точки данных в последовательном порядке, то есть все элементы (i), элемент (j) для конкретного пользователя, случайный выбор точек приводит к более быстрой сходимости. Это было подтверждено эмпирически авторами подхода BPR.

Расчет xuij путем оптимизации критерия BPR-OPT с использованием градиентного спуска

Последний шаг этого поста - понять, как модель матричной факторизации вычисляет оценку x ^ uij. Факторизация матрицы в целом пытается смоделировать скрытые предпочтения пользователя в отношении элемента. Это действительное число x ^ ui для каждой пары элементов пользователя (u, i).

Поскольку у нас есть тройки в наших данных, оценка x ^ uij будет разложена следующим образом:

Мы можем использовать любую стандартную модель совместной фильтрации вместо матричной факторизации для прогнозирования x ^ ui и x ^ uj. Критерий BPR-OPT является оптимальным для ранжирования задачи, поскольку мы классифицируем разницу двух прогнозов (x ^ ui -x ^ uj).

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

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

Следите за новостями, и в ближайшие недели мы увидим больше сообщений о статистике в области науки о данных и визуализации данных!

использованная литература

[1] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.2.3727&rep=rep1&type=pdf

[2] https://www.kaggle.com/otmanesakhi/the-rank-statistic-differentiable-auc-estimate

[3] http://www.benfrederickson.com/matrix-factorization/

[4] http://www.benfrederickson.com/fast-implicit-matrix-factorization/

[5] https://medium.com/radon-dev/als-implicit-collaborative-filtering-5ed653ba39fe

[6] https://arxiv.org/ftp/arxiv/papers/1205/1205.2618.pdf

[7] http://yifanhu.net/PUB/cf.pdf

[8] h ttps: //hpi.de/fileadmin/user_upload/fachgebiete/naumann/lehre/SS2011/Collaborative_Filtering/pres1-matrixfactorization.pdf