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

Пример: рекомендации фильмов

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

Вот шаги, которые мы предпримем для этого:

  1. Создайте функции, которые будут описывать каждый фильм модели. Давайте не будем усложнять и воспользуемся двумя функциями: оценка романтики фильма (x1) и оценка того, насколько фильм насыщен событиями (x2).
  2. Изучите параметры взаимосвязи между характеристиками фильма и оценкой, которую пользователь дает фильму. Основываясь на фильмах, которые оценил данный пользователь, мы будем использовать рейтинги этого пользователя, чтобы подобрать пользовательские параметры (θ), используя градиентный спуск (или другой метод), чтобы узнать параметры для тот пользователь, который минимизирует функцию стоимости (с регуляризацией) (т.е. меру ошибки предсказания) между предсказанием модели того, что этот пользователь будет оценивать каждый фильм, и фактической оценкой, которую пользователь дал каждому фильму (y).
  3. Создавайте прогнозы для новых фильмов. Установив характеристики и параметры фильма, мы можем использовать модель, чтобы предсказать, как данный пользователь оценит новый фильм, который он еще не видел.

Установление оценки характеристик содержания

С помощью пользователей: вы можете получить помощь пользователей в озвучивании фильма как «романтического» или «насыщенного действием»:

  1. Попросите их поделиться своими предпочтениями относительно того, насколько им нравятся романтические фильмы или фильмы, наполненные действием.
  2. Использовать их предпочтения в качестве исходных параметров (θ) для этого пользователя.
  3. По мере того, как пользователи выставляют оценки фильмам (y), вы можете использовать свою модель для определения показателей характеристик (x)о том, насколько «насыщенные действиями ” или “романтический” этот фильм на самом деле.
  4. В дальнейшем вы можете итеративно улучшать как исходные параметры (θ) каждого пользователя, так и оценки характеристик (x) для фильма.

Без помощи пользователей: получается, что вам все равно не нужна помощь пользователей в этом:

  1. Просто случайным образом угадайте начальные параметры(θ) для каждого пользователя.
  2. Произвольно угадайте оценки характеристик (x) для каждого фильма.
  3. В вашей функции стоимости, в дополнение к термину регуляризация параметров, добавьте термин, который упорядочивает оценки функций.
  4. Используйте градиентный спуск (или другой метод), чтобы изучить оба параметры (θ) и оценки характеристик (x) для каждого фильма, которые минимизируют функцию стоимости.

Рекомендация похожих фильмов

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

  1. Рассматривайте набор функций каждого фильма как вектор.
  2. Вычислите абсолютное значение разницы между вектором признаков этого фильма и векторами признаков всех остальных фильмов как «расстояние» между ними.
  3. Оцените фильмы с наименьшим «расстоянием» выше в очереди рекомендаций (т. е. они будут оценены как наиболее похожие на фильм).

Что мы должны порекомендовать совершенно новым пользователям?

Вы можете просто рекомендовать сначала фильмы с самым высоким средним рейтингом пользователей.

Увеличение масштаба

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

  • какие актеры в нем
  • кто директор
  • Рейтинг тухлых помидоров
  • количество наград
  • доход в выходные дни
  • независимо от того, говорит ли персонаж Джеффа Голдблюма: «Надо ехать быстрее! Надо ехать быстрее!» в кино

Далее

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

Прошлые заметки в этой серии

  1. На пути к глубокому пониманию машинного обучения
  2. Построение интуиции вокруг контролируемого машинного обучения с градиентным спуском
  3. Помогаем моделям обучения с учителем учиться лучше и быстрее
  4. Сигмовидная функция как концептуальное введение в функции активации и гипотезы
  5. Введение в модели классификации
  6. Переоснащение и предотвращение его с помощью регуляризации
  7. Введение в нейронные сети
  8. Модели классификации с использованием нейронных сетей
  9. Введение в кластеризацию K-средних
  10. Обнаружение аномалий с контролируемым обучением