Изображение через обзор алгоритмов рекомендаций
В последней статье «Анализ поведения пользователей системы рекомендаций» были представлены некоторые базовые алгоритмы рекомендаций, в этой статье будет использоваться библиотека сюрпризов для более глубокого анализа этих алгоритмов.
NormalPredictor
Первый метод прогнозирования предполагает, что рейтинговые данные поступают из нормального распределения, и проблема моделируется ниже.
Задача: Имея набор выборок x 1 , x 2 ... x n , о которых известно, что они исходят из гауссовского распределения N(µ,σ), попытайтесь оценить параметры µ,σ.
Функция плотности вероятности распределения Гаусса:
Вводя в выборку значение xi из Xi, мы получаем:
Записываем L(x) и упрощаем выражение:
Наконец, мы выводим формулу, чтобы получить µ,σ:
Посмотрите на код:
BaselineOnly
Второй алгоритм основан на Факторе соседей: масштабируемая и точная совместная фильтрация Алгоритм находит некоторые проблемы с традиционным методом CF:
-
Разные предметы имеют разный рейтинг
-
У разных пользователей разные оценки
-
Рейтинги меняются со временем
Итак, предлагается следующая базовая модель:
где u — средний балл, bu — предвзятость пользователя, а bi — предвзятость элемента, что эквивалентно следующей задаче об экстремальных значениях:
Можно получить следующие бу и би:
Снова можем с удивлением смотреть на код, реализация внутри такая:
Запустите код, чтобы получить:
Можно обнаружить, что результат лучше, чем у NormalPredictor.
KNNBasic
KNNBasic — это базовый алгоритм CF, основанный на пользователях или элементах.
Вычислите сходство между пользователями или вычислите сходство между элементами.
Вы можете видеть, что этот результат немного хуже, чем у BaselineOnly.
KNNWithMeans
Одно из предположений, основанных на KNNWithMeans, заключается в том, что рейтинги пользователей и элементов бывают высокими и низкими, и он рассчитывается после удаления среднего значения.
Результат, рассчитанный методом среднего, немного лучше, чем KNNBasic.
KNNBaseline
KNNBaseline основан на KNNWithMeans и заменяет среднее значение значением базовой линии.Формула расчета выглядит следующим образом:
Видно, что использование метода KNNBaseline пока дает лучший результат.
SVD
Начиная с этого алгоритма, это делается с помощью алгоритма матричной факторизации, начиная с самого простого метода svd.
Сначала определите оценочное значение:
в определении потери
Наконец, метод обновления:
где eui - остаток
Основной код:
svd++
Точность прогноза должна учитывать не только явную обратную связь, но и некоторую неявную обратную связь.
-
Поведение с явной обратной связью включает в себя поведение, при котором пользователи четко выражают свои предпочтения в отношении элементов: основными методами являются рейтинги и оценки «нравится/не нравится»;
-
Поведение с неявной обратной связью относится к такому поведению, которое не отражает четко пользовательских предпочтений: наиболее репрезентативным поведением с неявной обратной связью является поведение при просмотре страниц;
Дополнительные сведения см. в предыдущей статье «Анализ поведения пользователей рекомендательных систем».
Принимая во внимание этот вид неявной обратной связи, он особенно подходит для пользователей, которые просматривают, но не очень много оценивают.
На этом этапе мы моделируем следующую формулу:
где R(u) — набор элементов, неявное поведение которых у пользователя u, а y — векторное моделирование неявного поведения элементов.Если у пользователя есть несколько неявных поведений, мы также можем добавить скрытый вектор:
На данный момент метод обновления параметров:
Код:
Эффект выполнения кода:
NMF
И неотрицательная матричная факторизация (NMF), и svd выполняют матричную факторизацию, поэтому я не буду много объяснять, просто посмотрите на эффект выполнения кода:
Суммировать
В этой статье представлены две категории алгоритмов рекомендаций с помощью метода неожиданности: латентные семантические модели и алгоритмы на основе соседства. В следующей статье будут представлены некоторые алгоритмы рекомендаций на основе нейронных сетей. Пожалуйста, с нетерпением ждите этого.