Ng Enda Machine Learning-11-Рекомендующие системы

машинное обучение искусственный интеллект
Ng Enda Machine Learning-11-Рекомендующие системы

Продюсер: Ю Эр Хат
Автор: Питер
Редактор: Питер

Ng Enda Machine Learning-11-Рекомендующие системы

На этой неделе в основном объясняются соответствующие знания системы рекомендаций. Система рекомендаций должна стать одним из самых горячих направлений в области машинного обучения или искусственного интеллекта.NLP、CVи т.д. Основное содержание включает в себя:

  • Введение в рекомендательные системы
  • Система рекомендаций на основе контента
  • Совместная фильтрация

Рекомендуемая система

Обзор рекомендательных систем

Существует три основных сценария применения распространенных рекомендательных систем:

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

Основная ценность рекомендательных систем для пользователей в основном отражается в следующем:

  1. Помогите пользователям удобно и быстро отфильтровать интересующий контент
  2. Предоставление справочных мнений в областях, незнакомых пользователям
  3. Удовлетворить любопытство пользователей

рекомендательная системаОсновная работаДа:

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

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


постановка проблемы

Системы рекомендаций широко используются: если вы рассматриваете такие сайты, как Amazon, Netflix или eBay, илиiTunes Genius, существует множество веб-сайтов или систем, которые пытаются рекомендовать пользователям новые продукты. Например, Amazon рекомендует вам новые книги, Netflix пытается порекомендовать вам новые фильмы и т. д.

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

Таким образом, повышение производительности рекомендательной системы окажет существенное и непосредственное влияние на эти предприятия.

Узнайте о рекомендательных системах через каштан

Предположим, мы являемся поставщиком фильмов, у нас есть 5 фильмов и 4 пользователя, и мы просим пользователей оценить фильмы.

Первые три — романтические фильмы, а последние два — боевики. Элис и Боб больше любят романтические фильмы, Кэрол и Дейв больше любят боевики. некоторые маркеры

  • nun_uКоличество пользователей
  • nmn_mколичество фильмов
  • r(i,j)r(i,j)Если пользователь j слишком высоко оценивает фильм i, тоr(i,j)=1r(i,j)=1
  • y(i,j)y^{(i,j)}представляет рейтинг, данный пользователем j фильму i
  • mjm_jобщее количество фильмов, оцененных пользователем j

Рекомендации на основе контента

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

  • x1x_1степень романтики
  • x2x_2Уровень действия

Тогда у каждого фильма есть вектор признаков, например, первый фильм [0,9 0]

Создайте алгоритм рекомендательной системы для функций. Предполагая, что используется модель линейной регрессии, используя эту модель для каждого пользователя,θ(1)\theta^{(1)}Представляет параметры модели для первого пользователя. Определяется следующим образом:

  • θ(j)\theta^{(j)}первоеjjвектор параметров пользователей
  • x(i)x^{(i)}Киноiiсобственный вектор

для фильмовiiи пользователиjj, модель линейной регрессииСтоимостьДобавьте член регуляризации для суммы квадратов ошибок предсказания:

minθ(j)12i:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2(θk(j))2\min_{\theta (j)}\frac{1}{2}\sum_{i:r(i,j)=1}\left((\theta^{(j)})^Tx^{(i)}-y^{(i,j)}\right)^2+\frac{\lambda}{2}\left(\theta_{k}^{(j)}\right)^2

вi:r(i,j)i:r(i,j)означает, что мы учитываем только тех пользователейjjПереоцененные фильмы. В общей модели линейной регрессии как член ошибки, так и член регуляризации должны быть умножены на1/2m1/2m, здесь мы будемmmУдалить. и мы не исправляем термин дисперсииθ0\theta_0Выполните обработку регуляризации.

для всех пользователейСуммируйте функции стоимости:

minθ(1),...,θ(nu)12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θk(j))2\min_{\theta^{(1)},...,\theta^{(n_u)}} \frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}\left((\theta^{(j)})^Tx^{(i)}-y^{(i,j)}\right)^2+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}(\theta_k^{(j)})^2

если мы используемГрадиентный спускДля нахождения оптимального решения вычисляемЧастные производные функции стоимостиТогда формула обновления градиентного спуска получается как:

θk(j):=θk(j)альфаi:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)(for,k=0)\theta_k^{(j)}:=\theta_k^{(j)}-\alpha\sum_{i:r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_{k}^{(i)} \quad (\text{for} , k = 0)

θk(j):=θk(j)альфа(i:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)+λθk(j))(for,k0)\theta_k^{(j)}:=\theta_k^{(j)}-\alpha\left(\sum_{i:r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_{k}^{(i)}+\lambda\theta_k^{(j)}\right) \quad (\text{for} , k\neq 0)

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

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

minx(1),...,x(nm)12i=1nmjr(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2i=1nmk=1n(xk(i))2\mathop{min}\limits_{x^{(1)},...,x^{(n_m)}}\frac{1}{2}\sum_{i=1}^{n_m}\sum_{j{r(i,j)=1}}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})^2+\frac{\lambda}{2}\sum_{i=1}^{n_m}\sum_{k=1}^{n}(x_k^{(i)})^2

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

minθ(1),...,θ(nu)12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θk(j))2\min_{\theta^{(1)},...,\theta^{(n_u)}} \frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}\left((\theta^{(j)})^Tx^{(i)}-y^{(i,j)}\right)^2+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}(\theta_k^{(j)})^2

Найдите частные производные по функции стоимостиРезультат:

θk(j):=θk(j)альфаi:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)(for,k=0)\theta_k^{(j)}:=\theta_k^{(j)}-\alpha\sum_{i:r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_{k}^{(i)} \quad (\text{for} , k = 0)

θk(j):=θk(j)альфа(i:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)+λθk(j))(for,k0)\theta_k^{(j)}:=\theta_k^{(j)}-\alpha\left(\sum_{i:r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_{k}^{(i)}+\lambda\theta_k^{(j)}\right) \quad (\text{for} , k\neq 0)

Алгоритм процесса совместной фильтрации:

  1. инициализацияx,θх, \ тетак небольшому значению
  2. Минимизируйте функцию стоимости, используя алгоритм градиентного спускаminJ(x,θ)\min J(x,\theta)
  3. После обучения алгоритма предскажите рейтинг пользователя j для фильма i.

Алгоритм совместной фильтрации

Цель оптимизации совместной фильтрации:

данныйx(1),...,x(nm)x^{(1)},...,x^{(n_m)},оценитьθ(1),...,θ(nu)\theta^{(1)},...,\theta^{(n_u)}:

minθ(1),...,θ(nu)12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θk(j))2\min_{\theta^{(1)},...,\theta^{(n_u)}}\frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})^2+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}(\theta_k^{(j)})^2

данныйθ(1),...,θ(nu)\theta^{(1)},...,\theta^{(n_u)},оценитьx(1),...,x(nm)x^{(1)},...,x^{(n_m)}:

минимизируяx(1),...,x(nm)x^{(1)},...,x^{(n_m)}иθ(1),...,θ(nu)\theta^{(1)},...,\theta^{(n_u)}:

J(x(1),...,x(nm),θ(1),...,θ(nu))=12(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2i=1nmk=1n(xk(i))2+λ2j=1nuk=1n(θk(j))2J(x^{(1)},...,x^{(n_m)},\theta^{(1)},...,\theta^{(n_u)})=\frac{1}{2}\sum_{(i,j):r(i,j)=1}((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})^2+\frac{\lambda}{2}\sum_{i=1}^{n_m}\sum_{k=1}^{n}(x_k^{(i)})^2+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}(\theta_k^{(j)})^2

minx(1),...,x(nm)θ(1),...,θ(nu)J(x(1),...,x(nm),θ(1),...,θ(nu))\min_{x^{(1)},...,x^{(n_m)} \\ \theta^{(1)},...,\theta^{(n_u)}}J(x^{(1)},...,x^{(n_m)},\theta^{(1)},...,\theta^{(n_u)})

Векторизация: Факторизация матрицы низкого ранга Vectorization_ Факторизация матрицы низкого ранга

На что способны алгоритмы совместной фильтрации:

  1. Учитывая элемент, найти похожие элементы
  2. Когда пользователь просматривает товар, находит похожие товары и рекомендует их ему.

Предположим, в матрице хранится 5 фильмов, 4 пользователя:

Movie Alice (1) Bob (2) Carol (3) Dave (4)
Love at last 5 5 0 0
Romance forever 5 ? ? 0
Cute puppies of love ? 4 0 ?
Nonstop car chases 0 0 5 4
Swords vs. karate 0 0 5 ?

Раскатайте соответствующий балл

Найдите похожие видео

Средняя нормализация

На приведенном выше рисунке предполагается, что новый пользователь Ева не оценил ни одного фильма, так на каком основании мы рекомендуем ему фильмы?

  • Приведенная выше матрица Y нормализована по среднему, и рейтинг каждого пользователя для определенного фильма вычитается из среднего рейтинга всех пользователей для фильма, и получается следующая матрица:

  • Используйте новую матрицу Y для обучения алгоритма. Если бы мы использовали недавно обученный алгоритм для прогнозирования оценок, нам нужно было бы добавить среднее обратно, предсказав:(θ(j))Tx(i)+мюi(\theta^{(j)})^T x^{(i)}+\mu_i, модель даст каждому фильму средний балл для этого фильма.