Автор: вперед
Данная статья является оригинальной статьей, просьба указать автора и источник для перепечатки
1. Почему возникла рекомендательная система?
В 1990-х годах, когда менеджеры супермаркетов Walmart анализировали данные о продажах, они обнаружили непостижимое явление: при определенных обстоятельствах два, казалось бы, не связанных между собой товара, «пиво» и «подгузники», часто оказывались в одной и той же корзине покупок.
Согласно общепринятому мнению, подгузники и пиво не имеют ничего общего друг с другом. Именно с помощью технологии интеллектуального анализа данных, основанной на анализе ассоциативных правил, Wal-Mart извлекает и анализирует массивные данные о транзакциях и обнаруживает особую ценность, скрытую за этими данными ( говорят, что в семьях с младенцами в Соединенных Штатах обычно мать присматривает за ребенком дома, а молодой отец идет в супермаркет, чтобы купить подгузники.Когда отец идет покупать подгузники после окончания работы , он часто покупает себе пиво.)
Точно так же Recommender System (RS) также является технологией интеллектуального анализа данных, используемой в коммерческой сфере для извлечения особых значений, скрытых за данными. Если быть точным, рекомендательная система — это технология рекомендаций, которая рекомендует полезные элементы пользователям без явных потребностей и помогает пользователям находить интересные вещи персонализированным образом. Например, я купил копию «Краткой истории времени» на Amazon, и если я вернусь и снова просмотрю ее, она может порекомендовать мне понравиться «Краткая история будущего»; два друга открывают Toutiao в в то же время в том же месте, но они читают его на главной странице в другой список сообщений. Рекомендательные системы на самом деле стали очень распространенными в нашей жизни.
Эпоха Интернета — это эпоха информационной перегрузки.Как нам быть со всеми видами информации? Клэй Ширки, американский писатель, изучающий социальное и экономическое влияние интернет-технологий, однажды в своем выступлении на выставке Web2.0 Expo 2010 сказал: «Это не информационная перегрузка. Это сбой фильтра». Да, для того, чтобы решить проблему информационной перегрузки, одно за другим родилось множество отличных решений (категории, поисковые системы, рекомендательные системы и т. д.), среди которых рекомендательная система является одним из самых репрезентативных решений.
Кроме того, как отметил главный редактор журнала Wired Крис Андерсон в своей «Теории длинного хвоста», традиционный принцип 80/20 (80% продаж приходится на 20% популярных товаров) родился в Интернете. был оспорен. В условиях Интернета электронная коммерция часто может продавать больше товаров, чем традиционные розничные магазины, благодаря чрезвычайно низкой стоимости полки. Хотя подавляющее большинство этих товаров непопулярны, количество этих непопулярных товаров чрезвычайно велико, поэтому общий объем продаж этих товаров с длинным хвостом будет нетривиальной цифрой, возможно, больше, чем продажи популярных товаров. Популярные продукты часто отражают потребности подавляющего большинства пользователей, в то время как продукты с длинным хвостом часто отражают персонализированные потребности небольшого числа пользователей. Поэтому, если вы хотите увеличить продажи за счет изучения длинного хвоста, вы должны полностью изучить интересы пользователей, и именно эту проблему в основном решают системы персонализированных рекомендаций.
2. Основной принцип рекомендательной системы
Алгоритм рекомендаций является основой рекомендательной системы.На данный момент существует множество рекомендательных алгоритмов на выбор.Каждый рекомендательный алгоритм имеет свои преимущества и недостатки.Конечно, он также имеет свои ограничения.В конкретной практике целесообразно выбрать подходящий рекомендательный алгоритм, но это непростая задача, нужно понять принцип работы различных алгоритмов, а затем много раз попробовать и внимательно рассмотреть его. В этом разделе представлены популярные алгоритмы рекомендаций, алгоритмы рекомендаций на основе контента, алгоритмы совместной фильтрации на основе предметной области и алгоритмы гибридных рекомендаций по очереди (кроме того, более часто используемые алгоритмы совместной фильтрации на основе моделей и нетрадиционные расширенные алгоритмы рекомендаций ограничены). в пространстве и сложности, и не будут представлены в этой статье).
Сценарий настройки: есть 6 пользователей (User1, 2, 3, 4, 5, 6) и следующие 6 книг (Book1, 2, 3, 4, 5, 6).
Эти пользователи частично купили и оценили эти 6 книг (Примечание: функция подсчета очков записывается как), как показано в Таблице 2: (Чем выше предпочтения пользователя в отношении книги, тем выше оценка. Наименьший балл — 1 балл, высший балл — 5 баллов).
2.1 Алгоритм рекомендации популярности
Алгоритмы рекомендаций по популярности дают рекомендации на основе популярных показателей (самые высокие рейтинги, самые покупаемые, самые скачиваемые, самые просматриваемые и т. д.). Прежде чем рекомендовать конкретным пользователям, нам нужно рассчитать индекс популярности каждого продукта.Для любой книги в качестве индекса популярности мы берем среднее значение оценок пользователя 1, пользователя 2, пользователя 3, пользователя 4, пользователя 5 и пользователя 6. имеют:
имеют:
В результате с ранжированием популярных индикаторов можно рекомендовать пользователям. Взяв в качестве примера рекомендацию для Пользователя1, удалите книги (Книга1, Книга2, Книга5), которые купил Пользователь1, из упорядоченного списка популярных индикаторов, а затем получите актуальный список рекомендаций для Пользователя1:
То есть алгоритм рекомендаций по популярности будет последовательно рекомендовать Книгу6, Книгу3 и Книгу4 для Пользователя1.
Алгоритм рекомендации по популярности опирается только на использование привычных данных (некоторые системы могут полагаться на данные контента, такие как каталоги продуктов), который прост в реализации и не имеет проблем с холодным запуском пользователя; недостатком является то, что продукт должен быть унифицирован и стандартизированы привычные данные, а есть холодный старт новинок Проблемы, рекомендации результатов отсутствие персонализации.
2.2 Рекомендательная система на основе контента
Система рекомендаций на основе контента в основном использует известные пользовательские предпочтения, интересы пользователей и т. д., а также степень корреляции и соответствия атрибутов содержимого элемента, начиная с элементов, которые когда-то понравились пользователю, и пытаясь рекомендовать аналогичные элементы, которые пользователь любил в прошлом.
Сначала выполняется предварительная обработка данных по содержанию (здесь в качестве примера используется название книги), чтобы найти векторное представление, описывающее книгу. Поскольку грамматические слова часто встречаются в названиях книг, игнорируйте грамматические союзы (to, and, the) в содержании. 6 книг можно описать как векторную матрицу следующим образом: (где 1 означает, что есть слово, соответствующее элементу столбца в книге, соответствующей строке)
С векторной матрицей представления каждой книги все еще остается проблема: как измерить сходство и несходство?Мерой сходства, обычно используемой в алгоритмах рекомендаций, является евклидово расстояние ( ), косинусное подобие ( ), коэффициент корреляции Пирсона и др. Среди них косинусное сходство является наиболее часто используемой мерой, и в следующих алгоритмах сходство представлено косинусным сходством.для любых двух векторов Их косинусное сходство:
в ,номерЧем выше значение, тем более похожи X и Y.
С векторной матрицей содержания каждой книги и мерой сходства мы можем сравнить сходство между книгой и предыдущей книгой. Взяв за пример первую книгу, вычислите сходство между Книгой1 и другими книгами (Книга2, Книга3, Книга4, Книга5, Книга6) по формуле косинусного сходства.
Как и выше, вычисляя сходство между всеми книгами по отдельности, можно получить матрицу сходства (матрица сходства — диагональная матрица, т.е.. Например, сходство между Книгой1 и Книгой2 равно сходству между Книгой2 и Книгой1).
С помощью матрицы сходства между книгами мы можем написатьРекомендуется конкретный пользователь. Конкретный метод заключается в том, чтобы выбрать пользователя, который уже оценилкниги , затем найдите три наиболее похожие на них книги и порекомендуйте их пользователям, не прошедшим оценкукниги.
Взяв за пример рекомендацию Пользователя 1, в соответствии с матрицей оценок пользователя для книг (Таблица 2) выберите книги (Книга 1, Книга 2, Книга 5), ранее оцененные Пользователем 1, и выберите три книги, наиболее похожие на них, как показано на рисунке. в следующей таблице:
Затем вычислите ожидаемую оценку похожих книг, которые Пользователь 1 еще не приобрел, в соответствии со следующей формулой и порекомендуйте две книги с наивысшей ожидаемой оценкой пользователю.
Из таблицы 5 видно, чтоUser1К подобным книгам, которые не были куплены, относятся Книга3, Книга4 и Книга6, т.е. i=3,4,6 в приведенной выше формуле. рассчитать:
User1правильноBook3ожидаемый рейтинг
User1правильноBook4ожидаемый рейтинг
User1правильноBook6ожидаемый рейтинг
Зависит отВидно, что алгоритм рекомендации на основе контента сначала последовательно рекомендует пользователю Книгу6, Книгу3 и Книгу4.
Система рекомендаций на основе контента принимает в качестве входных данных содержание или описание продукта, не требует идиоматических данных, не имеет проблем с холодным запуском и не имеет предвзятости по популярности, а характеристики контента легко объяснить; недостатком является то, что контент продукта трудно стандартизировать, а результаты рекомендаций коллег не отличаются разнообразием.
2.3 Алгоритм совместной фильтрации
Как говорится, «Вещи собираются по лайкам, люди делятся на группы», а алгоритм совместной фильтрации опирается на принцип «люди делятся на группы», чтобы рекомендовать пользователей. Алгоритмы совместной фильтрации определяют пользовательские предпочтения на основе привычных пользовательских данных (рейтинги, загрузки, воспроизведения и т. д.).
Методы совместной фильтрации можно условно разделить на две категории: методы, основанные на соседстве, и методы, основанные на моделях. Среди них метод на основе соседства использует рейтинг пользователя по существующим элементам для прямого прогнозирования рейтинга пользователя для новых элементов, включая алгоритмы совместной фильтрации на основе элементов и алгоритмы совместной фильтрации на основе пользователей; методы на основе моделей используют исторические данные рейтинга для поиска вне пользователей Модели взаимодействия с направлением, которые используют определенные шаблоны в данных в качестве прогностических моделей для прогнозирования оценок пользователей для новых элементов (алгоритмы построения моделей, такие как байесовские сети, кластеризация, классификация, регрессия, матричная факторизация, ограниченная машина Больцмана и т. д., которые в этом разделе не обсуждаются).
2.3.1 Алгоритм совместной фильтрации на основе элементов
Из Таблицы 2, матрицы оценок пользователей книг, мы видим, что эффективность книг можно рассматривать как вектор оценок Пользователя1, Пользователя2, Пользователя3, Пользователя4, Пользователя5 и Пользователя6.
Подобно алгоритму рекомендации на основе содержания, с матрицей векторного представления каждой книги сходство между книгами можно сравнивать с помощью метода измерения косинусного сходства. Взяв в качестве примера Книгу1, вычислите сходство между Книгой1 и другими пользователями (Книга2, Книга3, Книга4, Книга5, Книга6) по формуле косинусного подобия.
Как и выше, вычисляя сходство между всеми книгами по отдельности, можно получить матрицу сходства между книгами.
С помощью матрицы сходства между книгами мы можем рекомендовать их конкретному пользователю. Конкретный метод состоит в том, чтобы выбрать три книги, которые пользователь уже оценил, затем найти три наиболее похожие книги соответственно, использовать сходство книг в качестве веса, вычислить ожидаемую оценку пользователя для книги, которая не была куплена, и, наконец, в соответствии с ожидаемая оценка сверху вниз Дайте рекомендацию.
Взяв в качестве примера рекомендацию Пользователя 1, в соответствии с матрицей рейтинга книг пользователя (Таблица 2) выберите три книги (Книга 1, Книга 2, Книга 5), которые Пользователь 1 оценил ранее, и выберите три наиболее похожие книги соответственно, как показано на рисунке. в следующей таблице:
Затем вычислите ожидаемую оценку похожих книг, которые Пользователь 1 еще не приобрел, в соответствии со следующей формулой и порекомендуйте две книги с наивысшей ожидаемой оценкой пользователю.
Из Таблицы 5 видно, что среди похожих книг, которые Пользователь 1 не купил, есть Книга 3, Книга 4 и Книга 6, то есть i=3,4,6 в приведенной выше формуле. рассчитать:
Ожидаемый рейтинг пользователя 1 для Книги 3:
Ожидаемый рейтинг пользователя 1 для Книги 4:
Ожидаемый рейтинг пользователя 1 для Книги 6:
Зависит отМожно видеть, что алгоритм совместной фильтрации на основе элементов последовательно рекомендует пользователю Книгу 3, Книгу 4 и Книгу 6.
2.3.1 Совместная фильтрация на основе пользователей
Из Таблицы 2 можно увидеть матрицу оценок пользователя для книг, поведение пользователя можно рассматривать как вектор оценок к Книга1, Книга2, Книга3, Книга4, Книга5, Книга6.
Подобно алгоритму рекомендации на основе контента, с матрицей векторного представления каждого пользователя, сходство между пользователями книг и пользователями можно сравнивать с помощью метода измерения косинусного сходства. Взяв за пример User1, рассчитайте сходство между User1 и другими пользователями (User2, User3, User4, User5, User6) по формуле косинусного подобия.
Как и выше, матрица сходства между пользователями может быть получена путем отдельного вычисления сходства между всеми пользователями.
С помощью матрицы сходства между пользователями мы можем рекомендовать для конкретного пользователя. Конкретный метод состоит в том, чтобы выбрать 3 двух пользователей, которые наиболее похожи на пользователя, а затем создать список книг, которые будут рекомендованы из книг, купленных похожими пользователями, но не купленными пользователем; затем использовать сходство между пользователем и подобным пользователем. пользователей в качестве веса, вычислить ожидаемую оценку пользователя для рекомендованной книги и, наконец, рекомендовать ее в порядке возрастания в соответствии с ожидаемой оценкой.
Взяв в качестве примера рекомендацию Пользователя 1, выберите трех пользователей, наиболее похожих на Пользователя 1 (Пользователь 2 с сходством 0,75, Пользователь 3 с сходством 0,63 и Пользователь 5 с сходством 0,30), и перечислите книги, которые купили подобные пользователи. Следующая таблица:
Затем вычислите ожидаемую оценку похожих книг, которые Пользователь 1 еще не приобрел, в соответствии со следующей формулой и порекомендуйте две книги с наивысшей ожидаемой оценкой пользователю.
Из Таблицы 8 видно, что среди похожих книг, которые Пользователь 1 не купил, есть Книга 3, Книга 4 и Книга 6, то есть i=3,4,6 в приведенной выше формуле. рассчитать:
Ожидаемый рейтинг пользователя 1 для Книги 3:
Ожидаемый рейтинг пользователя 1 для Книги 4:
Ожидаемый рейтинг пользователя 1 для Книги 6:
Зависит отВидно, что алгоритм рекомендации на основе контента сначала последовательно рекомендует пользователю Книгу3, Книгу6 и Книгу4.
Методы, основанные на соседстве, приобрели значительную популярность благодаря своей простоте и эффективности, а также способности давать точные и персонализированные рекомендации. Алгоритм совместной фильтрации опирается только на идиоматические данные (предпочтения пользователя, такие как оценка, покупка, загрузка и т. д.), не требует информации о пользователе и атрибутах продукта, требует меньшего количества входных данных и может давать достаточно хорошие результаты в большинстве сценариев; недостаток заключается в том, что есть новые пользователи и новые проблемы с холодным запуском продуктов, что затрудняет объяснение полученных рекомендаций.
2.4 Алгоритм гибридных рекомендаций
Гибридный рекомендательный алгоритм — это рекомендательный алгоритм, который взвешенно использует комбинацию нескольких методов алгоритма и пытается найти лучший рекомендательный эффект, «улучшая сильные стороны и избегая слабых сторон».
Например, для рекомендации пользователя 1 мы ранее представили алгоритм рекомендаций на основе контента, алгоритм совместной фильтрации на основе элементов и алгоритм совместной фильтрации на основе пользователей. Однако из конкретных результатов рекомендаций видно, что, поскольку разные алгоритмы имеют свои собственные атрибуты, существуют различия в результатах рекомендаций разных алгоритмов для User1. Как использовать алгоритм гибридных рекомендаций, чтобы сбалансировать три вышеупомянутых разных результата рекомендаций? Алгоритм рекомендаций на основе контента — это алгоритм 1, алгоритм совместной фильтрации на основе элементов — это алгоритм 2, а алгоритм совместной фильтрации на основе пользователей — это алгоритм 3. имеют:
Предполагая, что система взвешенных гибридных рекомендаций настроена на алгоритм рекомендаций на основе контента, алгоритм совместной фильтрации на основе элементов и алгоритм совместной фильтрации на основе пользователей, веса равны w1, w2, w3 и w4 соответственно и отражают ожидание k-й алгоритм для i-й книги с рейтингом, то ожидаемая оценка похожих книг, которые Пользователь 1 не приобрел, может быть рассчитана по следующей формуле, и две книги с наивысшей ожидаемой оценкой могут быть рекомендованы пользователю.
Предположениерассчитать:
Ожидаемый рейтинг пользователя 1 для Книги 3:
Ожидаемый рейтинг пользователя 1 для Книги 4:
Ожидаемый рейтинг пользователя 1 для Книги 6:
Зависит отВидно, что алгоритм гибридных рекомендаций будет последовательно рекомендовать пользователю Книгу 3, Книгу 6 и Книгу 4.
Алгоритм гибридной рекомендации всесторонне использует множество других подалгоритмов, и его входные данные определяются всеми его зависимыми подалгоритмами.Он может получить преимущества ответа каждого подалгоритма; его недостаток заключается в том, что трудно найти комбинацию метод каждого подалгоритма (взвешивание, обмен и т. д.) Точка баланса, как правило, требует больших усилий для получения баланса между различными алгоритмами с помощью метода интеграции.
3. Случай рекомендательной системы
После понимания описанных выше распространенных традиционных алгоритмов рекомендаций мы уже можем написать хорошую систему рекомендаций, но превосходная система рекомендаций далеко не так проста. Давайте возьмем рекомендательную систему Netflix в качестве примера, чтобы увидеть детали архитектуры рекомендательной системы Netflix под фильмом, как показано на рисунке ниже. Система рекомендаций Netflix состоит из множества различных рекомендательных алгоритмов, двумя основными из которых являются ограниченная машина Больцмана и разложение доказательств по сингулярным значениям (из-за их сложности и ограниченного объема мы не представили их в предыдущей главе, посвященной принципам алгоритма). ) Другие), все они относятся к категории алгоритмов коллаборативной фильтрации, и мы можем вывести их рабочие характеристики. Существует три различных способа работы в системе рекомендаций Netflix: автономный режим, режим ближней связи и онлайн-режим. В частности, сервисный модуль алгоритма в онлайн-режиме отвечает за применение стратегий к различным рекомендательным алгоритмам.
NetflixСхема архитектуры системы рекомендаций
Онлайн-вычисления используют последние данные для реагирования на онлайн-события в режиме реального времени.Реагирование в реальном времени ограничивает то, что онлайн-вычисления не могут обрабатывать вычислительные алгоритмы высокой сложности, а масштаб набора данных не может быть слишком большим. В отличие от автономных вычислений, автономные вычисления имеют меньше ограничений по вычислительной сложности и размеру набора данных, а автономные вычисления могут иметь больше вариантов алгоритмов. Nearline-вычисления можно рассматривать как комбинацию онлайн- и офлайн-вычислений.Его вычисления аналогичны онлайн-вычислениям, но результаты вычислений не будут реагировать в реальном времени, а будут временно хранить данные в кеше, а затем загружаться и отвечать асинхронно, особенно , приблизительные онлайн-вычисления имеют естественную поддержку алгоритмов инкрементных вычислений.
Часть расчета алгоритма рекомендаций (особенно алгоритм рекомендаций машинного обучения) может быть выполнена в автономном режиме, но особенностью системы рекомендаций является персонализация.Чтобы добиваться новизны, необходимо быстро реагировать на новые данные и поведение пользователя, чтобы результаты рекомендаций могут быть обновлены вовремя. Для достижения вышеперечисленных эффектов, в дополнение к модели обучения алгоритму периодического планирования, также необходимо всесторонне учитывать временную сложность различных алгоритмов в конкретных ситуациях, как максимально быстро получить наилучший эффект рекомендации, чтение и время задержки хранения данных, способы обеспечения транзакций, согласованность и т. д., что требует от нас проведения глубокого анализа требований конкретных приложений, тщательного выбора различных алгоритмов рекомендаций и технологий, а также тщательного взвешивания и оптимизации преимуществ работы различных алгоритмы на различных стратегиях для достижения наилучшего рекомендательного эффекта.
Техническая рекомендация салона
Нажмите на изображение ниже, чтобы прочитать
Перевод | фильтры seccomp в Android O
Каковы впечатления от комфортной среды фронтенд-разработки?
нет пароля? Немного задумчивости о системе аккаунтов
Анализ настроений глубокого обучения в обработке естественного языка