Алгоритм рекомендаций определяет, что больше всего понравится пользователю, и рекомендует это пользователю. Он широко используется на сайтах электронной коммерции. В настоящее время используется более зрелый алгоритм рекомендаций — алгоритм рекомендаций Collaborative Filtering (CF). Основная идея CF состоит в том, чтобы рекомендовать элементы пользователям на основе их предыдущих предпочтений и выбора других пользователей со схожими интересами.
Как показано на рисунке 1, в CF используется матрица m×n, чтобы указать предпочтения пользователя в отношении элемента. Как правило, оценка используется для указания предпочтений пользователя в отношении элемента. Чем выше оценка, тем больше ему нравится предмет, а 0 означает отсутствие взаимодействия. На рисунке строка представляет пользователя, столбец представляет элемент, а Uij представляет ситуацию оценки элемента j пользователем i. CF разделен на два процесса: один — процесс прогнозирования, а другой — процесс рекомендации. Процесс прогнозирования заключается в том, чтобы предсказать возможное значение оценки пользователя для товаров, которые не были куплены, а рекомендация состоит в том, чтобы рекомендовать пользователю наиболее вероятные любимые товары или товары из списка Top-N на основе результатов фазы прогнозирования. В этом блоге мы объясняем CF на основе пользователей и CF на основе элементов.
Пользовательский CF
Идея пользовательского CF заключается в том, что если два человека A и B имеют схожие интересы, то предметы, которые им нравятся, должны быть похожими. Следовательно, мы можем рекомендовать А те товары, которые понравились Б. Он состоит из двух этапов: поиск похожих людей и рекомендация товаров.
Найдите похожих людей
Предположим, что N(u) — это набор элементов, которые нравятся пользователю u, а N(v) — это набор элементов, которые нравятся пользователю v, тогда в чем сходство между u и v? Типичной мерой подобия является сходство Жаккара или косинусное сходство.
Для подобия Жаккара это определяется как
Для косинусного подобия это определяется как
Рекомендация товара
После того, как у нас есть мера сходства пользователей, нам нужно найти K пользователей, наиболее похожих на целевого пользователя u, из матрицы, обозначаемой набором S(u, K), извлечь все элементы, которые нравятся пользователю в S, и удалите элементы, которые вам уже нравятся. Для каждого товара-кандидата i степень заинтересованности в нем пользователя u рассчитывается по следующей формуле:
Здесь r_vi показывает, насколько пользователю v нравится i. В этом примере это все 1. В некоторых рекомендательных системах, которые требуют, чтобы пользователи давали оценку, она должна быть заменена на оценку пользователя. Например, предположим, что мы хотим порекомендовать элементы пользователю A, выбираем K = 3 похожих пользователя, похожие пользователи: B, C, D, тогда элементы, которые им нравятся, а A не нравятся: c, e, затем, соответственно, вычисляют p( А, в) и р(А, е).
CF на основе элементов
Идея CF на основе элементов заключается в том, что если человеку А нравится элемент C, а элемент C похож на элемент D, то он рекомендует C для A. Он состоит из двух основных этапов: расчет схожести элементов и рекомендация элементов. Обычно используются три меры сходства.
Косинусное сходство:если предположить, что каждый элемент имеет вектор признаков, то сходство между элементом I и элементом j равно cos(i,j).
Сходство на основе корреляции: пусть R(u,i) будет оценкой, которую пользователь u дает элементу i, а R_i – это средний рейтинг, который я получил, тогда сходство между элементом i и элементом j равно
Сходство на основе скорректированной корреляции, а R_u — это средняя оценка, которую дает пользователь u. Это сделано для того, чтобы устранить предвзятость, когда какой-то пользователь может дать более высокую среднюю оценку.
Рекомендация товара
Теперь мы уже рассчитали сходство между каждым элементом, далее мы вычисляем рейтинг для каждого пользователя u и элемента i. Одна простая стратегия – взвешенная сумма.
Для каждого элемента i и пользователя u пусть S_i,N будет сходством между элементом i и N, а R_u,N будет оценкой, которую u дал элементу N. Тогда предпочтение пользователя u элементу i равно
Сравнение UserCF и Item CF
Характеристики алгоритма UserCF
- Применяется для нескольких пользователей, иначе расчет матрицы сходства пользователей будет очень затратным
- Подходит для областей, где важна своевременность, а личный интерес пользователя не очевиден.
- Он не дружелюбен к новым пользователям, но дружелюбен к новым элементам. Матрица сходства пользователей не может быть рассчитана в режиме реального времени.
Характеристики алгоритма ItemCF
- Он подходит для случаев, когда количество элементов заведомо меньше, чем количество пользователей, иначе расчет матрицы подобия элементов будет очень затратным.
- Подходит для областей, где много предметов с длинным хвостом и у пользователей есть сильные личные потребности.
- Дружественный к новым пользователям, но не дружественный к новым элементам, потому что матрица сходства элементов не требует высокой производительности в реальном времени.
- Используйте историческое поведение пользователя в качестве рекомендуемого объяснения, которое будет более убедительным для пользователя.
Таким образом, видно, что UserCF подходит для случаев, когда элементы быстро растут и имеют высокую производительность в реальном времени, например рекомендации новостей. В области книг, электронной коммерции и фильмов, таких как ItemCF, можно в полной мере использовать свои преимущества. На этих веб-сайтах интерес пользователя является относительно фиксированным и продолжительным, а элементы этих веб-сайтов не обновляются очень быстро. Обновлять каждый день терпимо.