Настройка Amazon Personalize с помощью AWS Glue

Исходный узел: 748151

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

Цель этой публикации - продемонстрировать, как использовать Клей AWS для извлечения, преобразования и загрузки данных JSON в очищенный формат CSV. Затем мы покажем вам, как запустить механизм рекомендаций на базе Amazon персонализировать на данных о вашем взаимодействии с пользователем, чтобы обеспечить индивидуальный подход к вашим клиентам. Результатом Amazon Personalize являются рекомендации, которые вы можете создать с помощью API.

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

Ресурсы этого решения могут повлиять на вашу учетную запись AWS. Для получения информации о ценах см. Цены на AWS Glue и Цены на Amazon Personalize.

На следующей диаграмме показана архитектура нашего решения.

Предпосылки

Для этого поста вам понадобится следующее:

Инструкции по созданию корзины см. В разделе Шаг 1. Создайте свою первую корзину S3, Убедись в прикрепите политику доступа Amazon Personalize.

Это очень либеральная политика; на практике лучше использовать минимум привилегий и предоставлять доступ только там, где это необходимо. Инструкции по созданию роли см. В разделе Шаг 2. Создайте роль IAM для AWS Glue.

Сканирование ваших данных с помощью AWS Glue

Мы используем AWS Glue для сканирования файла JSON, определения схемы ваших данных и создания таблицы метаданных в вашем каталоге данных AWS Glue. Каталог данных содержит ссылки на данные, которые используются в качестве источников и целей ваших заданий ETL в AWS Glue. AWS Glue - это сервис бессерверной подготовки данных, который упрощает извлечение, очистку, обогащение, нормализацию и загрузку данных. Это помогает подготовить ваши данные для анализа или машинного обучения (ML). В этом разделе мы рассмотрим, как подготовить данные JSON для Amazon Personalize, для чего требуется файл CSV.

У ваших данных могут быть разные столбцы, которые вы не обязательно захотите или должны будете обрабатывать через Amazon Personalize. В этом посте мы используем user-item-interaction.json файл и очистите эти данные с помощью AWS Glue, чтобы включить только столбцы user_id, item_idи timestamp, а также преобразовал его в формат CSV. Вы можете использовать искатель для доступа к вашему хранилищу данных, извлечения метаданных и создания определений таблиц в каталоге данных. Он автоматически обнаруживает новые данные и извлекает определения схемы. Это может помочь вам лучше понять свои данные и то, что вы хотите включить при обучении модели.

Ассоциация user-item-interaction Данные JSON - это массив записей. Сканер обрабатывает данные как один объект: просто массив. Мы создаем специальный классификатор для создания схемы, основанной на каждой записи в массиве JSON. Вы можете пропустить этот шаг, если ваши данные не являются массивом записей.

  1. На консоли AWS Glue, под ползунки, выберите Классификаторы.
  2. Выберите Добавить классификатор.
  3. Что касается Название классификаторавойти json_classifier.
  4. Что касается Тип классификатора, наведите на JSON.
  5. Что касается Путь JSON, войти $[*].
  6. Выберите Создавай.

Выберите "Создать".

  1. На Страница поисковых роботов, выберите Добавить сканера.
  2. Что касается Имя сканера, войти json_crawler.
  3. Что касается Пользовательские классификаторы, добавьте созданный вами классификатор.

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

  1. Выберите Следующая.
  2. Что касается Тип источника краулера, выберите Хранилища данных.
  3. Оставьте все остальное по умолчанию и выберите Следующая.
  4. Что касается Выберите хранилище данныхвведите путь Amazon S3 к вашему файлу данных JSON.
  5. Выберите Следующая.

Выберите Далее.

  1. Пропустить раздел Добавить другое хранилище данных.
  2. В Выберите роль IAM раздел, выберите Выберите существующую роль IAM.
  3. Что касается Роль IAM, выберите роль, которую вы создали ранее (AWSGlueServiceRole-xxx).
  4. Выберите Следующая.

Выберите Далее.

  1. Оставьте частоту как Запуск по запросу.
  2. На Результат выберите страницу Добавить базу данных.
  3. Что касается Имя базы данных, войти json_data.
  4. Выберите Завершить.
  5. Выберите Запустить сейчас. 

Вы также можете запустить свой сканер, перейдя в ползунки страницу, выбрав свой сканер и выбрав Запустить краулер.

Использование AWS Glue для преобразования файлов из CSV в JSON

После того, как ваш сканер закончит работу, перейдите к таблицы на консоли AWS Glue. Перейдите к таблице, созданной вашим поисковым роботом. Здесь вы можете увидеть схему ваших данных. Запишите поля, которые вы хотите использовать со своими данными Amazon Personalize. В этом посте мы хотим сохранить user_id, item_idи столбцы отметок времени для Amazon Personalize.

В этом посте мы хотим сохранить столбцы user_id, item_id и timestamp для Amazon Personalize.

На этом этапе вы настроили свою базу данных. Amazon Personalize требует файлов CSV, поэтому вам нужно преобразовать данные из формата JSON в три очищенных файла CSV, которые включают только те данные, которые вам нужны в Amazon Personalize. В следующей таблице приведены примеры трех файлов CSV, которые можно включить в Amazon Personalize. Важно отметить, что взаимодействие данные необходимы, тогда как пользователь и пункт метаданные данных не являются обязательными.

Тип набора данных Обязательные поля Зарезервированные ключевые слова
Пользователи

USER_ID (Строка)

1 поле метаданных

пункты

ITEM_ID (Строка)

1 поле метаданных

CREATION_TIMESTAMP(длинный)
Взаимодействия

USER_ID (Строка)

ITEM_ID (Строка)

TIMESTAMP (длинный)

EVENT_TYPE (Строка)

IMPRESSION (Строка)

EVENT_VALUE (поплавок, ноль)

Также важно убедиться, что у вас есть по крайней мере 1,000 уникальных комбинированных исторических и событийных взаимодействий, чтобы обучить модель. Для получения дополнительной информации о квотах см. Квоты в Amazon Personalize.

Чтобы сохранить данные в формате CSV, необходимо запустить задание AWS Glue для данных. Задание - это бизнес-логика, которая выполняет работу ETL в AWS Glue. Задание изменяет формат с JSON на CSV. Для получения дополнительной информации о форматировании данных см. Форматирование ваших входных данных.

  1. На Панель управления AWS Glue, выберите Клей-студия AWS.

Клей-студия AWS - это простой в использовании графический интерфейс для создания, запуска и мониторинга заданий AWS Glue ETL.

  1. Выберите Создавайте и управляйте вакансиями.
  2. Выберите Источник и цель добавлены на график.
  3. Что касается Источник, выберите S3.
  4. Что касается цель, выберите S3.
  5. Выберите Создавай.

Выберите "Создать".

  1. Выберите сегмент S3 источника данных.
  2. На Свойства источника данных - S3 tab, добавьте базу данных и таблицу, которые мы создали ранее.

На вкладке Свойства источника данных - S3 добавьте базу данных и таблицу, которые мы создали ранее.

  1. На Transform вкладка, выберите поля, которые нужно удалить user_login и location.

В этом посте мы не используем никаких дополнительных метаданных для запуска нашего алгоритма персонализации.

В этом посте мы не используем никаких дополнительных метаданных для запуска нашего алгоритма персонализации.

  1. Выберите целевую корзину S3 данных.
  2. На Свойства цели данных - S3 вкладка, для Формат, выберите CSV.
  3. Что касается S3 Целевое местоположениевведите путь S3 для вашей цели. 

В этом посте мы используем ту же корзину, что и для файла JSON.

В этом посте мы используем ту же корзину, что и для файла JSON.

  1. На Детали работы страница, для Имя, введите название вашей работы (для этого сообщения json_to_csv).
  2. Что касается Роль IAM, выберите роль, которую вы создали ранее.

Вы также должны были включить AmazonS3FullAccess политика ранее.

  1. В остальных полях оставьте значения по умолчанию.

В остальных полях оставьте значения по умолчанию.

  1. Выберите Сохранить.
  2. Выберите Run.

Выполнение задания может занять несколько минут.

Теперь в корзине Amazon S3 вы должны увидеть файл CSV, который вы используете в следующем разделе.

Настройка Amazon Personalize

На этом этапе ваши данные отформатированы в тип файла, который может использовать Amazon Personalize. Amazon Personalize - это полностью управляемая служба, использующая машинное обучение и более чем 20-летний опыт работы с рекомендациями на Amazon.com, чтобы вы могли улучшить взаимодействие с конечными пользователями, предлагая персонализированные продукты и рекомендации в реальном времени, а также целевые маркетинговые акции. В этом разделе мы рассмотрим, как создать решение Amazon Personalize для использования ваших данных для создания персонализированного опыта.

  1. На консоли Amazon Personalize в разделе Новые группы наборов данных, выберите Начать.
  2. Введите имя для своей группы наборов данных.

Группа наборов данных содержит наборы данных, решения и API приема событий.

  1. Введите имя набора данных и введите сведения о схеме на основе ваших данных.

Для этого набора данных мы используем следующую схему. Вы можете изменить схему в соответствии со значениями в вашем наборе данных.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } 

  1. Выберите Следующая.
  2. Введите название задания импорта набора данных, чтобы импортировать данные из Amazon S3.

Убедитесь, что ваша роль службы IAM имеет доступ к Amazon S3 и Amazon Personalize и что в вашем сегменте указан правильный политика ведра.

  1. Введите путь к вашим данным (корзина Amazon S3 из предыдущего раздела).
  2. На Аккаунт страницу для ваших групп наборов данных в Загрузить наборы данныхимпортировать user-item-interactions данные (пользовательские данные и данные об элементах необязательны, но могут улучшить решение).

На странице панели инструментов для групп наборов данных в разделе Загрузить наборы данных

Мы включаем пример item.csv подать в Репо GitHub. На следующем снимке экрана показан пример данных об элементе.

На следующем снимке экрана показан пример данных об элементе.

  1. Под Создавайте решения, Для Обучение решениям, выберите Start.

Решение - это обученная модель данных, которые вы предоставили с помощью выбранного вами алгоритма или рецепта.

  1. Что касается Название решения, войти aws-user-personalization.
  2. Выберите Следующая.
  3. Просмотрите и выберите Завершить.
  4. На панели управления под Запустить кампании, Для Создание кампании, выберите Start.

Кампания позволяет вашему приложению получать рекомендации от версии вашего решения.

  1. Что касается Название кампании, введите имя.
  2. Выберите созданное вами решение.
  3. Выберите Создать кампанию.

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

Использование Amazon Personalize для получения ваших рекомендаций

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

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

На следующем снимке экрана показан поиск пользователя ID 1.

Чтобы узнать больше об оценках Amazon Personalize, см. Введение рекомендаций в Amazon Personalize.

Для генерации рекомендаций вы можете позвонить в GetRecommendations or GetPersonalizedRanking API с использованием Интерфейс командной строки AWS (AWS CLI) или SDK для конкретного языка. С помощью Amazon Personalize ваши рекомендации могут меняться, когда пользователь нажимает на элементы, чтобы получить больше вариантов использования в реальном времени. Для получения дополнительной информации см. Получение рекомендаций в реальном времени.

Заключение

AWS предлагает широкий спектр AI / ML и аналитика сервисы, которые можно использовать для получения информации и принятия более эффективных бизнес-решений. В этой публикации вы использовали набор данных JSON, который включал дополнительные столбцы данных, и очистили и преобразовали эти данные с помощью AWS Glue. Кроме того, вы создали специальную модель с помощью Amazon Personalize, чтобы давать рекомендации своим клиентам.

Чтобы узнать больше об Amazon Personalize, см. руководство разработчика. Попробуйте это решение и дайте нам знать, если у вас возникнут вопросы в комментариях.


Об авторах

Зойш ПитвафаЗойш Питавала является архитектором решений для стартапов в Amazon Web Services из Сан-Франциско. В основном она работает со стартапами, помогая им создавать безопасные и масштабируемые решения на AWS.

Сэм ТранСэм Тран является архитектором решений для стартапов в Amazon Web Services из Сиэтла. Он фокусируется на помощи своим клиентам в создании хорошо продуманных решений на AWS.

Источник: https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

Отметка времени:

Больше от Блог машинного обучения AWS