AWS Personalize: мощный инструмент для персонализированного взаимодействия

Распространение интернет-магазинов и услуг предоставило покупателям огромный выбор. Чтобы оставаться конкурентоспособными, компаниям необходимо предоставлять клиентам релевантные и персонализированные рекомендации по продуктам. Именно здесь на помощь приходит Amazon Web Services (AWS) Personalize. Будучи мощным инструментом, использующим машинное обучение, AWS Personalize позволяет компаниям быстро разрабатывать и развертывать механизмы рекомендаций, которые предоставляют пользователям адаптированный контент, стимулируя взаимодействие и повышая удовлетворенность клиентов. В этом блоге мы рассмотрим растущую потребность в персонализированных рекомендациях на современном конкурентном рынке, преимущества использования AWS Personalize и то, как он может революционизировать способ предоставления персонализированного опыта в компаниях. В качестве бонуса мы также увидим, как вы можете запустить свой собственный механизм рекомендаций за считанные минуты.

Что такое AWS Personalize?

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

Проблемы, которые решает AWS Personalize:

  1. Сложность создания систем персонализированных рекомендаций с нуля: AWS Personalize упрощает процесс управления и анализа больших объемов данных, разработки точных моделей машинного обучения и их масштабного развертывания.
  2. Технический опыт и ресурсы. AWS Personalize предоставляет управляемые сервисы, требующие минимальных технических знаний, что позволяет компаниям любого размера легко создавать механизмы рекомендаций, не обладая обширными знаниями в области машинного обучения.
  3. Процессы развертывания, требующие много времени: AWS Personalize оптимизирует процесс развертывания механизмов рекомендаций, позволяя компаниям быстро приступить к работе.

Значение

AWS Personalize предлагает компаниям быстрый и эффективный способ улучшить качество обслуживания клиентов, не прибегая к сложным техническим вопросам. Это позволяет компаниям сосредоточиться на своем продукте и стимулировать рост.

Использование AWS Personalize для рекомендаций фильмов в производственной среде

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

Автоматический анализ данных. Обеспечение достаточной надежности исходных данных является ключом к правильной работе нашего рекомендателя фильмов. AWS Personalize может сканировать ваши данные и обобщать определенные ключевые статистические данные, а также отмечать любые обнаруженные потенциальные проблемы.

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

Создание решений и управление версиями: AWS Personalize предоставляет предварительно созданные модели, называемые «рецептами», которые предназначены для таких задач, как рекомендации пользователей, персонализация поиска и сегментация клиентов. Эти рецепты можно использовать в готовом виде или настроить для конкретных случаев использования. Эти рецепты можно использовать, чтобы рекомендовать похожие фильмы покупателям или улучшать результаты поиска фильмов с помощью персонализированного и релевантного контента на основе индивидуальных предпочтений пользователя.

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

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

В периоды пиковой нагрузки, например вечером перед сном, AWS Personalize автоматически масштабируется, чтобы соответствовать предопределенной пропускной способности для рекомендаций фильмов. И наоборот, в периоды низкого спроса, например ранним утром, масштабирование AWS Personalize сокращается, чтобы оптимизировать затраты и при этом обеспечивать стабильное взаимодействие с пользователями. Эта возможность динамического масштабирования помогает предприятиям эффективно управлять затратами, сохраняя при этом беспрепятственный пользовательский опыт при различных схемах использования.

Сильные стороны AWS Personalize:

1. Масштабируемость. AWS Personalize может обрабатывать большие наборы данных и масштабироваться в зависимости от спроса, что делает его подходящим для компаний любого размера.

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

3. Интеграция. AWS Personalize легко интегрируется с другими сервисами AWS, что упрощает интеграцию в существующие рабочие процессы и архитектуры на базе AWS.

4. Автоматизированное машинное обучение (AutoML). AWS Personalize автоматизирует большую часть процесса обучения и развертывания модели машинного обучения, уменьшая потребность в обширных знаниях в области машинного обучения.

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

Слабые стороны AWS Personalize:

1. Ограниченные источники данных: AWS Personalize требует, чтобы данные хранились в Amazon S3 или Amazon DynamoDB, что может ограничивать варианты источников данных для предприятий, использующих другие службы хранения данных.

2. Сложность. Хотя AWS Personalize автоматизирует многие аспекты процесса машинного обучения, для правильной установки и настройки по-прежнему требуются определенные технические знания.

3. Стоимость. Как и в случае с любым облачным сервисом, стоимость использования AWS Personalize может возрасти, особенно для компаний с большими наборами данных или высокими объемами использования.

4. Время обучения. Обучение моделей рекомендаций в AWS Personalize может занять некоторое время, особенно для больших наборов данных, что может повлиять на скорость развертывания модели.

5. Ограничения настройки. Хотя AWS Personalize предлагает варианты настройки, он может не охватывать все возможные варианты использования, что может ограничить его пригодность для узкоспециализированных или уникальных сценариев рекомендаций.

Создание собственного механизма рекомендаций AWS Personalize

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

Загрузите этот файл в корзину AWS S3 и запишите путь к файлу.

Затем установите следующую политику корзины, заменив your-bucket-name на имя вашей корзины.

{
    "Version": "2012-10-17",
    "Id": "PersonalizeS3BucketAccessPolicy",
    "Statement": [
        {
            "Sid": "PersonalizeS3BucketAccessPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "personalize.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name",
                "arn:aws:s3:::your-bucket-name/*"
            ]
        }
    ]
}

Теперь пришло время запустить это шоу и запустить AWS Personalize.

Чтобы обучить модель, нам нужно связать файл, который мы загрузили в s3, с AWS Personalize. Поэтому создайте новую группу наборов данных и выберите «Видео по запросу» в качестве варианта использования.

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

{
 "type": "record",
 "name": "Interactions",
 "namespace": "com.amazonaws.personalize.schema",
 "fields": [
  {
   "name": "user_id",
   "type": "string"
  },
  {
   "name": "item_id",
   "type": "string"
  },
  {
   "name": "EVENT_TYPE",
   "type": "string"
  },
  {
   "name": "EVENT_VALUE",
   "type": [
    "null",
    "float"
   ]
  },
  {
   "name": "TIMESTAMP",
   "type": "long"
  }
 ],
 "version": "1.0"
}

Затем введите местоположение файла набора данных в S3. Затем, прежде чем вы сможете продолжить, вам нужно создать роль IAM для AWS Personalize. Это звучит пугающе, но это очень простой процесс. Просто нажмите «Новая роль IAM» и введите имя своей корзины s3. В качестве альтернативы вы можете выбрать любую корзину s3 и предоставить AWS Personalize доступ ко всем имеющимся у вас корзинам s3.

После завершения AWS должен начать обработку вашего набора данных. Ваша домашняя страница Personalize должна выглядеть примерно так

После завершения мы можем начать выбирать и обучать нашу модель. Начните с создания решения на вкладке «Решения и рецепты» слева.

Поскольку мы хотим рекомендовать фильмы пользователям, нам нужно выбрать пункт рекомендации в качестве типа решения и aws-user-personalization в качестве рецепта.

После завершения обучение модели начнется автоматически. Мой тренировался 20 минут. AWS также будет автоматически обрабатывать распределенное обучение, так что сидите смирно, возможно, выпейте пива, пока ждете, пока оно закончится.

После завершения обучения пришло время развернуть вашу рекомендательную систему. Для этого вам нужно создать кампанию, это как раз то, что AWS Personalize называет развертыванием. Он обрабатывает и масштабирует в соответствии с пользовательской нагрузкой.

Выберите «Кампания» в меню слева и пройдите через интерфейс создания. Укажите решение, которое вы обучили ранее, и создайте свою кампанию. После того, как AWS развернет вашу кампанию, пришло время протестировать ее.

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

Как видно выше, у модели есть рекомендованные фильмы для указанного пользователя.

Это развертывание можно легко интегрировать в серверную систему для предоставления рекомендаций пользователям. Приведенный ниже код Python инициализирует подключение к AWS и запрашивает рекомендации для указанного user_id.

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

import boto3
personalize_runtime = boto3.client('personalize-runtime', region_name='us-east-2',  aws_access_key_id='', aws_secret_access_key= '')

Введите ARN вашей кампании, прежде чем запускать приведенный ниже код, вы можете найти его на странице своей кампании.

get_recommendations_response = personalize_runtime.get_recommendations(
    campaignArn = 'arn:aws:personalize:us-east-2:<Your ARN and campaign>',
    userId = str(user_id),
)

Заключение

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

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