Данные могут использоваться различными способами для удовлетворения потребностей различных бизнес-единиц, таких как маркетинг, продажи или продукт. В этом посте мы сосредоточимся на использовании данных для создания персонализированных рекомендаций для улучшения взаимодействия с конечными пользователями. Большинство приложений электронной коммерции потребляют огромное количество данных о клиентах, которые можно использовать для предоставления персонализированных рекомендаций; однако эти данные могут не быть очищены или иметь неправильный формат, чтобы предоставить такую ценную информацию.
Цель этой публикации - продемонстрировать, как использовать Клей 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. Вы можете пропустить этот шаг, если ваши данные не являются массивом записей.
- На консоли AWS Glue, под ползунки, выберите Классификаторы.
- Выберите Добавить классификатор.
- Что касается Название классификаторавойти
json_classifier
. - Что касается Тип классификатора, наведите на JSON.
- Что касается Путь JSON, войти
$[*].
- Выберите Создавай.
- На Страница поисковых роботов, выберите Добавить сканера.
- Что касается Имя сканера, войти
json_crawler
. - Что касается Пользовательские классификаторы, добавьте созданный вами классификатор.
- Выберите Следующая.
- Что касается Тип источника краулера, выберите Хранилища данных.
- Оставьте все остальное по умолчанию и выберите Следующая.
- Что касается Выберите хранилище данныхвведите путь Amazon S3 к вашему файлу данных JSON.
- Выберите Следующая.
- Пропустить раздел Добавить другое хранилище данных.
- В Выберите роль IAM раздел, выберите Выберите существующую роль IAM.
- Что касается Роль IAM, выберите роль, которую вы создали ранее (
AWSGlueServiceRole-xxx
). - Выберите Следующая.
- Оставьте частоту как Запуск по запросу.
- На Результат выберите страницу Добавить базу данных.
- Что касается Имя базы данных, войти
json_data
. - Выберите Завершить.
- Выберите Запустить сейчас.
Вы также можете запустить свой сканер, перейдя в ползунки страницу, выбрав свой сканер и выбрав Запустить краулер.
Использование AWS Glue для преобразования файлов из CSV в JSON
После того, как ваш сканер закончит работу, перейдите к таблицы на консоли AWS Glue. Перейдите к таблице, созданной вашим поисковым роботом. Здесь вы можете увидеть схему ваших данных. Запишите поля, которые вы хотите использовать со своими данными Amazon Personalize. В этом посте мы хотим сохранить user_id
, item_id
и столбцы отметок времени для Amazon Personalize.
На этом этапе вы настроили свою базу данных. Amazon Personalize требует файлов CSV, поэтому вам нужно преобразовать данные из формата JSON в три очищенных файла CSV, которые включают только те данные, которые вам нужны в Amazon Personalize. В следующей таблице приведены примеры трех файлов CSV, которые можно включить в Amazon Personalize. Важно отметить, что взаимодействие данные необходимы, тогда как пользователь и пункт метаданные данных не являются обязательными.
Тип набора данных | Обязательные поля | Зарезервированные ключевые слова |
Пользователи |
1 поле метаданных |
|
пункты |
1 поле метаданных |
CREATION_TIMESTAMP (длинный) |
Взаимодействия |
|
|
Также важно убедиться, что у вас есть по крайней мере 1,000 уникальных комбинированных исторических и событийных взаимодействий, чтобы обучить модель. Для получения дополнительной информации о квотах см. Квоты в Amazon Personalize.
Чтобы сохранить данные в формате CSV, необходимо запустить задание AWS Glue для данных. Задание - это бизнес-логика, которая выполняет работу ETL в AWS Glue. Задание изменяет формат с JSON на CSV. Для получения дополнительной информации о форматировании данных см. Форматирование ваших входных данных.
- На Панель управления AWS Glue, выберите Клей-студия AWS.
Клей-студия AWS - это простой в использовании графический интерфейс для создания, запуска и мониторинга заданий AWS Glue ETL.
- Выберите Создавайте и управляйте вакансиями.
- Выберите Источник и цель добавлены на график.
- Что касается Источник, выберите S3.
- Что касается цель, выберите S3.
- Выберите Создавай.
- Выберите сегмент S3 источника данных.
- На Свойства источника данных - S3 tab, добавьте базу данных и таблицу, которые мы создали ранее.
- На Transform вкладка, выберите поля, которые нужно удалить
user_login
иlocation
.
В этом посте мы не используем никаких дополнительных метаданных для запуска нашего алгоритма персонализации.
- Выберите целевую корзину S3 данных.
- На Свойства цели данных - S3 вкладка, для Формат, выберите CSV.
- Что касается S3 Целевое местоположениевведите путь S3 для вашей цели.
В этом посте мы используем ту же корзину, что и для файла JSON.
- На Детали работы страница, для Имя, введите название вашей работы (для этого сообщения
json_to_csv
). - Что касается Роль IAM, выберите роль, которую вы создали ранее.
Вы также должны были включить AmazonS3FullAccess
политика ранее.
- В остальных полях оставьте значения по умолчанию.
- Выберите Сохранить.
- Выберите Run.
Выполнение задания может занять несколько минут.
Теперь в корзине Amazon S3 вы должны увидеть файл CSV, который вы используете в следующем разделе.
Настройка Amazon Personalize
На этом этапе ваши данные отформатированы в тип файла, который может использовать Amazon Personalize. Amazon Personalize - это полностью управляемая служба, использующая машинное обучение и более чем 20-летний опыт работы с рекомендациями на Amazon.com, чтобы вы могли улучшить взаимодействие с конечными пользователями, предлагая персонализированные продукты и рекомендации в реальном времени, а также целевые маркетинговые акции. В этом разделе мы рассмотрим, как создать решение Amazon Personalize для использования ваших данных для создания персонализированного опыта.
- На консоли Amazon Personalize в разделе Новые группы наборов данных, выберите Начать.
- Введите имя для своей группы наборов данных.
Группа наборов данных содержит наборы данных, решения и API приема событий.
- Введите имя набора данных и введите сведения о схеме на основе ваших данных.
Для этого набора данных мы используем следующую схему. Вы можете изменить схему в соответствии со значениями в вашем наборе данных.
- Выберите Следующая.
- Введите название задания импорта набора данных, чтобы импортировать данные из Amazon S3.
Убедитесь, что ваша роль службы IAM имеет доступ к Amazon S3 и Amazon Personalize и что в вашем сегменте указан правильный политика ведра.
- Введите путь к вашим данным (корзина Amazon S3 из предыдущего раздела).
- На Аккаунт страницу для ваших групп наборов данных в Загрузить наборы данныхимпортировать
user-item-interactions
данные (пользовательские данные и данные об элементах необязательны, но могут улучшить решение).
Мы включаем пример item.csv
подать в Репо GitHub. На следующем снимке экрана показан пример данных об элементе.
- Под Создавайте решения, Для Обучение решениям, выберите Start.
Решение - это обученная модель данных, которые вы предоставили с помощью выбранного вами алгоритма или рецепта.
- Что касается Название решения, войти
aws-user-personalization
. - Выберите Следующая.
- Просмотрите и выберите Завершить.
- На панели управления под Запустить кампании, Для Создание кампании, выберите Start.
Кампания позволяет вашему приложению получать рекомендации от версии вашего решения.
- Что касается Название кампании, введите имя.
- Выберите созданное вами решение.
- Выберите Создать кампанию.
Теперь вы успешно использовали данные из озера данных и создали модель рекомендаций, которую можно использовать для получения различных рекомендаций. С помощью этого набора данных вы можете получать персональные рекомендации по товарам для дома на основе взаимодействия пользователя с другими продуктами в наборе данных.
Использование Amazon Personalize для получения ваших рекомендаций
Чтобы протестировать свое решение, перейдите в созданную вами кампанию. в Результаты тестовой кампании в разделе Идентификатор пользователя, введите идентификатор, для которого нужно получить рекомендации. Появится список идентификаторов вместе с относительной оценкой. Идентификаторы товаров соотносятся с конкретными рекомендованными продуктами.
На следующем снимке экрана показан поиск по идентификатору пользователя. 1
. Им был рекомендован идентификатор товара. 59
, что соответствует деревянной раме для картины. Оценка, указанная рядом с элементом, дает вам прогнозируемую релевантность каждого элемента для вашего пользователя.
Чтобы узнать больше об оценках 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/