Использование данных, чтобы помочь пользователям находить новый контент

Рекомендательные системы: зачем и как?

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

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

  1. Youtube. Каждую минуту люди загружают 500 часов видео, т.е. пользователю потребуется 82 года, чтобы просмотреть все видео, загруженные только за последний час.
  2. Spotify. Пользователи могут слушать более 80 миллионов песенных треков и подкастов.
  3. Амазон. Пользователи могут купить более 350 миллионов различных товаров.

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

Явная обратная связь против неявной обратной связи

В рекомендательных системах модели машинного обучения используются для прогнозирования рейтинга rᵤᵢпользователя uпо элементу i. Во время вывода мы рекомендуем каждому пользователю uэлементы l с наивысшим прогнозируемым рейтингом rᵤ.

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

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

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

Собрав явные или неявные отзывы, мы можем создать матрицу оценок пользователей rᵤᵢ. Для явного отзыва каждая запись в rᵤᵢ представляет собой числовое значение, например. rᵤᵢ =«звезды, присвоенные u фильму i» — или «?» если пользователь u не оценил элемент i. Для неявной обратной связи значения в rᵤᵢ являются логическими значениями, представляющими наличие или отсутствие взаимодействия, например. rᵤᵢ =«пользователь u смотрел фильм i?». Обратите внимание, что матрица rᵤᵢ очень разреженная, так как пользователи взаимодействуют с небольшим количеством элементов среди всего доступного содержимого и просматривают еще меньше элементов!

Контент-ориентированный и совместный подходы к фильтрации

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

Контент-ориентированный подход

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

Чтобы обучить модель машинного обучения с помощью этого подхода, мы можем использовать модель k-NN. Например, если мы знаем, что пользователь u купил товар i , мы можем порекомендовать u доступные элементы с функциями, наиболее похожими на i.

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

Подход к совместной фильтрации

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

Чтобы обучить модель машинного обучения с помощью этого подхода, мы обычно пытаемся сгруппировать или разложить на множители рейтинговую матрицу rᵤᵢ, чтобы делать прогнозы по ненаблюдаемым парам (u,i), т. е. где rᵤᵢ=“?”. Далее в этой статье мы представляем алгоритм матричной факторизации, который является самым популярным методом этого класса.

Преимущество этого подхода заключается в том, что используется весь набор взаимодействий пользователя с элементом (т. е. матрица rᵤᵢ), что обычно позволяет получить более высокую точность, чем при использовании Content-Based. модели. Недостаток этого подхода заключается в том, что для подбора модели требуется несколько взаимодействий с пользователем.

Гибридные подходы

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

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

Алгоритмы матричной факторизации, вероятно, являются наиболее популярными и эффективными методами совместной фильтрации для рекомендательных систем. Матричная факторизация — это модель скрытых факторов, предполагающая, что для каждого пользователя u и элемента i существуют скрытые векторные представления pᵤ, qᵢ Rᶠ s.t.rᵤᵢ может быть однозначно выражен — т. е. факторизован — через pᵤи qᵢ. Библиотека Python Surprise предоставляет отличные реализации этих методов.

Матричная факторизация для явной обратной связи

Простейшая идея — смоделировать взаимодействие пользователя с элементом с помощью линейной модели. Чтобы узнать значения pᵤ и qᵢ, мы можем минимизировать регуляризованную потерю MSE по набору K пар (u ,i), для которых известен rᵤᵢ. Полученный таким образом алгоритм называется вероятностная матричная факторизация (PMF).

Функция потерь может быть минимизирована двумя способами. Первый подход заключается в использовании стохастического градиентного спуска (SGD). SGD легко реализовать, но могут возникнуть некоторые проблемы, поскольку как pᵤ, так и qᵢ оба неизвестны, поэтому функция потерь не является выпуклой. Чтобы решить эту проблему, мы можем альтернативно зафиксировать значения pᵤиqᵢи получить задачу выпуклой линейной регрессии, которую можно легко решить с помощью обычных наименьших квадратов (МНК). Этот второй метод известен как чередующийся метод наименьших квадратов (ALS) и обеспечивает значительное распараллеливание и ускорение.

Алгоритм PMF позже был обобщен алгоритмом разложения по сингулярным значениям (SVD), который ввел в модель члены смещения. В частности, bᵤ и bᵢ измеряют наблюдаемые отклонения оценок пользователя u и элемента. i соответственно, а μ — общий средний рейтинг. Эти термины часто объясняют большинство наблюдаемых оценок rᵤᵢ, так как некоторые элементы часто получают оценки лучше/хуже, а некоторые пользователи неизменно более или менее щедры в своих оценках.

Матричная факторизация для неявной обратной связи

SVD метод может быть адаптирован к наборам данных неявной обратной связи. Идея состоит в том, чтобы рассматривать неявную обратную связь как косвенную меру доверия. Предположим, что неявная обратная связь tᵤᵢизмеряет процент фильма i, просмотренного пользователем u, например tᵤᵢ= 0 означает, что u никогда не смотрел i, tᵤᵢ= 0,1 означает, что он смотрел только 10% из них , tᵤᵢ= 2 означает, что он посмотрел его дважды. Интуитивно пользователь с большей вероятностью заинтересуется фильмом, который смотрел дважды, а не фильмом, который никогда не смотрел. Поэтому мы определяем матрицу достоверности cᵤᵢи матрицу оценок rᵤᵢследующим образом.

Затем мы можем смоделировать наблюдаемый rᵤᵢ, используя ту же линейную модель, что и для SVD, но с немного другой функцией потерь. Во-первых, мы вычисляем потери для всех пар (u, i) — в отличие от явного случая, когда пользователь uникогда не взаимодействовал с iу нас есть rᵤᵢ =0 вместо rᵤᵢ =“?” . Во-вторых, мы взвешиваем каждый термин потерь с помощью уверенности cᵤᵢ в том, что инравится i.

Наконец, алгоритм SVD++ можно использовать, когда у нас есть доступ как к явным, так и к неявным обратным связям. Это может быть очень полезно, потому что обычно пользователи взаимодействуют со многими элементами (= неявная обратная связь), но оценивают только небольшое их подмножество (= явная обратная связь). Обозначим для каждого пользователя u набор N(u) элементов, с которыми взаимодействовал u. Затем мы предполагаем, что неявное взаимодействие с элементом j связано с новым скрытым вектором zⱼR. Алгоритм SVD++ изменяет линейную модель SVD, включая в пользовательское представление взвешенную сумму этих скрытых факторов zⱼ.

Гибридный подход: LightFM

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

В LightFM мы предполагаем, что для каждого пользователя u мы собрали набор аннотаций тегов Aᵁ(u) — например, «мужчина», «возраст ‹ 30», … — и аналогично каждый элемент i имеет набор аннотаций Aᴵ(i) — например. «цена › 100 $», «книга», … Затем мы моделируем каждый пользовательский тег с помощью скрытого фактора xᵁₐ Rᶠ и термин смещения bᵁₐ R, и мы предполагаем, что представление пользовательского вектора pᵤ и связанное с ним смещение bᵤможет быть выражено просто как сумма этих терминов xᵁₐи bᵁₐ соответственно. Мы применяем тот же подход к тегам элементов, используя скрытые факторы xᴵₐ∈ Rᶠ и условия смещения bᴵₐ∈ R. После того, как мы определили pᵤ, qᵢ, bᵤ, bᵢ используя эти формулы, мы можем использовать ту же линейную модель SVD для описания взаимосвязи между этими терминами и rᵤᵢ.

Обратите внимание, что есть три интересных случая этого гибридного подхода LightFM.

  1. Холодный старт. Если у нас есть новый элемент iс известными тегами Aᴵ(i), мы можем использовать скрытые векторы xᴵₐ (полученный путем подгонки нашей модели к предыдущим данным), чтобы вычислить его вложение qᵢ и, следовательно, оценить для любого пользователя uего рейтинг rᵤᵢ.
  2. Нет доступных тегов. Если у нас нет известных метаданных для элементов или пользователей, единственная аннотация, которую мы можем использовать, — это индикаторная функция, т. е. отдельная аннотация a для каждого пользователя и каждого элемента. Затем матрицы характеристик пользователя и элемента являются матрицами идентичности, и LightFM сводится к классическому методу совместной фильтрации, такому как SVD.
  3. Контентная или гибридная. Если бы мы использовали только теги пользователей или элементов без аннотаций индикаторов, LightFM был бы практически моделью, основанной на контенте. Поэтому на практике, чтобы использовать взаимодействие пользователя с элементом, мы также добавляем к известным тегам индикаторную аннотацию a, отличающуюся от каждого пользователя и элемента.

TL;DR – Выводы

  • Системы рекомендаций используют алгоритмы машинного обучения, чтобы помочь пользователям, заваленным выбором, найти релевантный контент.
  • Явная и неявная обратная связь: первую проще использовать, а вторую гораздо больше.
  • Модели на основе контента хорошо работают в сценариях холодного запуска, но требуют знания метаданных пользователя и элемента.
  • В моделях совместной фильтрации обычно используется матричная факторизация: PMF, SVD, SVD для неявной обратной связи, SVD++.
  • Гибридные модели используют лучшее из контентной и совместной фильтрации. LightFM — отличный пример такого подхода.

Рекомендации