Обучение модели рекомендаций Matchbox

Обучает байесовскую модель рекомендаций с помощью алгоритма Matchbox

Категория: машинное обучение/обучение

Примечание

Применимо к: машинное обучение Studio (классическая модель)

Это содержимое относится только к Studio (классическая модель). Аналогичные модули перетаскивания были добавлены в конструктор Машинное обучение Azure. Дополнительные сведения см. в статье сравнение двух версий.

Обзор модуля

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

Алгоритм рекомендаций в Машинное обучение Azure основан на модели Matchbox , разработанной Microsoft Research. Чтобы загрузить документ с подробным описанием алгоритма, щелкните эту ссылку на веб-сайте Microsoft Research.

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

Совет

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

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

Дополнительные сведения о моделях рекомендаций и рекомендации по Matchbox

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

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

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

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

Как это работает: когда пользователь относительно неизвестен в системе, прогнозы улучшаются за счет использования сведений о функции пользователя, тем самым устраняя хорошо известную проблему "холодного" запуска. Однако после сбора достаточного количества оценок от конкретного пользователя можно создавать для него полностью персонализированные прогнозы на основе конкретных оценок, а не только признаков. Следовательно, происходит плавный переход от рекомендаций на основе содержимого к рекомендациям на основе совместной фильтрации. Даже если признаки пользователя или элемента недоступны, модель Matchbox по-прежнему сможет работать в режиме совместной фильтрации.

Дополнительные сведения о помощнике по Matchbox и его базовом алгоритме вероятностная можно найти в соответствующем справочном документе: Matchbox: рекомендации по использованию большого масштаба Байеса. Кроме того, в блоге машинное обучение есть статья с рекомендациями по всему миру , которая содержит общие сведения о алгоритмах рекомендаций.

Как настроить рекомендацию по обучению Matchbox

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

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

Чтобы разделить исходные данные на обучающие и проверочные наборы данных, используйте параметр рекомендовать разделитель в модуле Split Data .

Набор данных, необходимый для оценки пользовательских элементов

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

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

Во время обучения значения оценок не могут быть одинаковыми. Кроме того, если числовое значение, разница между минимальным и максимальным значениями рейтинга должна быть меньше 100 и, в идеале, не больше 20.

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

Идентификатор пользователя плацеид рейтинг
U1077 135085 2
U1077 135038 2

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

Набор данных пользовательских функций (необязательно)

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

Пример см. в разделе набор данных клиента ресторана в машинное обучение Azure Studio (классическая модель). Типичный набор пользовательских функций выглядит следующим образом:

Идентификатор пользователя окружением Dress_preference транспорт АВТОТЕСТ
U1004 family не по форме В нижнем колонтитуле Ложь.
U1005 friends Нет предпочтения Владелец автомобиля TRUE

Набор данных «функции элемента» (необязательно)

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

Пример см. в разделе набор данных о функциях ресторана, предоставленный в Машинное обучение Azure Studio (классическая модель) (щелкните сохраненные наборы DataSets , а затем — примеры). Типичный набор функций элементов (в данном случае элемент — Ресторан) может выглядеть следующим образом:

плацеид алкоголя Smoking_area price рамбиенце
135106 Wine-Beer нет low family
132667 No_Alcohol_Served разрешены средняя Непринужденная

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

  1. Добавьте модуль " обучение Matchbox рекомендовать " в эксперимент в студии (классическая модель) и подключите его к обучающим данным.

  2. Если у вас есть отдельный набор данных о пользовательских функциях и (или) элементах, подключите их к модулю рекомендации Train Matchbox .

    • Набор данных пользовательских функций: Соедините набор данных, описывающий пользователей, со вторым входом.

    • Набор функций элемента DataSet: Соедините набор данных, описывающий элементы, с третьим входом.

  3. Для количества обучающих пакетов введите количество пакетов для разделения данных во время обучения.

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

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

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

  4. Для параметра число признаков введите число скрытых признаков, которые должны быть получены для каждого пользователя и элемента.

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

  5. Для количества итераций алгоритма рекомендации укажите, сколько раз алгоритм должен обработать входные данные.

    Matchbox рекомендуется обучить с помощью алгоритма передачи сообщений, который может многократно выполнять перебор входных данных несколько раз. Чем выше это число, тем точнее прогнозы; Однако обучение выполняется медленнее. Как правило, число итераций в диапазоне от 1 до 10.

  6. Запустите эксперимент или выберите модуль " обучение Matchbox рекомендовать " и выберите Выполнить выбранное.

Примеры

Примеры использования моделей рекомендаций в Машинное обучение Azure см. в этих примерах экспериментов в Коллекция решений ии Azure.

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

Технические примечания

В этом разделе содержатся сведения о реализации, советы и ответы на часто задаваемые вопросы.

Советы по использованию

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

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

Ограничения

Интерактивное обновление (или непрерывное обучение) модели рекомендаций в настоящее время не поддерживается в Машинное обучение Azure. Если вы хотите записать ответы пользователей на рекомендации и использовать их для улучшения модели, мы рекомендуем периодически переучить полную модель. Добавочное обучение невозможно, но можно применить скользящее окно к обучающим данным, чтобы гарантировать, что объем данных будет минимальным при использовании самых последних данных.

Оценка использования памяти для рекомендаций

В настоящее время Нижняя граница объема памяти Matchbox — 16 * N\(4\T + 2\R) байты, где N обозначает число тройных оценок элементов в наборе данных для обучения, T до количества скрытых характеристик, а R — разность между минимальной и максимальной оценкой (в наборе данных для обучения).

Размер сериализованной Matchboxной модели рекомендуется примерно в 16 * T\(U\R + I + X + Y) байтах, где U означает число пользователей, число элементов, X , число пользовательских функций, а Y — число функций элемента.

Ожидаемые входные данные

Имя Type Описание
Обучающий набор данных, состоящий из троек "пользователь-элемент-оценка". Таблица данных Оценки элементов пользователями, выраженные в виде троек (пользователь, элемент, оценка)
Обучающий набор признаков пользователей Таблица данных Набор данных, содержащий функции, описывающие пользователей (необязательно)
Обучающий набор признаков элементов Таблица данных Набор данных, содержащий функции, описывающие элементы (необязательно)

Параметры модуля

Имя Диапазон Тип По умолчанию Описание
Количество характеристик >= 0 Целое число 10 Укажите число признаков для использования с рекомендацией (необязательно)
Число итераций алгоритма рекомендаций >= 1 Целое число 5 Укажите максимальное число итераций для выполнения при обучении модели рекомендаций (необязательно)
Количество обучающих пакетов >= 1 Целое число 4 Укажите количество обучающих пакетов для использования с рекомендацией (необязательно)

Выходные данные

Имя Type Описание
Обученная модель рекомендаций Matchbox Интерфейс ILearner Обученная модель рекомендаций Matchbox

Исключения

Исключение Описание
Ошибка 0022 Исключение возникает, если количество выбранных столбцов в наборе входных данных не равно ожидаемому числу.
Ошибка 0036 Исключение возникает, если для данного пользователя или элемента было предоставлено несколько векторов признаков.
Ошибка 0018 Исключение возникает, если входной набор данных не является допустимым.
Ошибка 0035 Исключение возникает, если для данного пользователя или элемента не были предоставлены какие-либо признаки.
Ошибка 0034 Исключение возникает, если для данной пары "пользователь-элемент" существует более одной оценки.
Ошибка 0053 Исключение возникает, если отсутствуют признаки пользователей или элементы для рекомендаций подсистемы Matchbox.
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.

Список ошибок, относящихся к модулям студии (классическая версия), см. в разделе машинное обучение коды ошибок.

Список исключений API см. в разделе Машинное обучение REST API коды ошибок.

См. также раздел

Перекрестная проверка модели
Ознакомление с рекомендацией
Распознавани
Подсистема Score Matchbox