Обучение рекомендателя SVD

В этой статье описано, как использовать компонент обучения рекомендателя SVD в конструкторе Машинного обучения Azure. Используйте этот компонент для обучения модели рекомендаций на основе алгоритма декомпозиции одиночного значения (SVD).

Компонент обучения рекомендателя SVD считывает набор данных, состоящий из триплетов "пользователь-элемент-оценка". Он возвращает обученный рекомендатель SVD. Затем обученную модель можно использовать для прогнозирования оценок или создания рекомендаций, подключив компонент оценки рекомендателя SVD.

Подробнее о моделях рекомендаций и рекомендателе SVD

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

Существует два основных подхода к системам рекомендаций.

  • При подходе, основанном на содержимом, используются признаки для пользователей и для элементов. Пользователей можно описать такими свойствами, как возраст и пол. Элементы можно описать такими свойствами, как автор и производитель. Типичные примеры систем рекомендаций на основе содержимого можно найти на сайтах знакомств.
  • При подходе, основанном на совместной фильтрации, используются только идентификаторы пользователей и элементов. Он получает неявную информацию об этих субъектах из (разреженной) матрицы оценок, заданных пользователями для элементов. Мы можем получить сведения о пользователе на основе оцененных им элементов и пользователей, которые оценили те же элементы.

Рекомендатель SVD использует идентификаторы пользователей и элементов, а также матрицу оценок, заданную пользователями для элементов. Это рекомендатель на основе коллаборативной фильтрации.

Дополнительные сведения о рекомендателе SVD см. в соответствующем справочном документе по методам факторизации матрицы для систем рекомендаций.

Настройка модуля обучения рекомендателя SVD

Подготовка данных

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

  • Первый столбец содержит идентификаторы пользователей.
  • Второй столбец содержит идентификаторы элементов.
  • Третий столбец содержит оценки для пар "пользователь-элемент". Значения оценки должны быть числовыми типами.

В наборе данных Рейтинги фильмов в конструкторе Машинного обучения Azure (выберите Наборы данных и затем Примеры) показан ожидаемый формат:

Рейтинг фильма

В этом примере видно, что один пользователь оценил несколько фильмов.

Обучение модели

  1. Добавьте компонент обучения рекомендателя SVD в конвейер в конструкторе и подключите его к данным для обучения.

  2. В поле Number of factors (Число факторов) укажите количество факторов, которые следует использовать для рекомендателя.

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

  3. В поле Number of recommendation algorithm iterations (Число итераций алгоритма рекомендаций) можно указать, сколько раз алгоритм должен обработать входные данные. Чем выше это число, тем точнее прогнозы. Однако чем больше число, тем более медленное обучение. Значение по умолчанию — 30.

  4. В поле Learning rate (Скорость обучения) введите число от 0.0 до 2.0, определяющее размер шага во время обучения.

    Скорость обучения определяет размер шага в каждой итерации. Если размер шага слишком велик, вы можете пропустить оптимальное решение. Если он слишком мал, для поиска наилучшего решения потребуется больше времени на обучение.

  5. Отправьте конвейер.

Результаты

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

Дальнейшие действия

Ознакомьтесь с набором доступных компонентов для Машинного обучения Azure.