Створіть груповий канал рекомендацій за допомогою Amazon Personalize без коду PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створіть партію рекомендацій за допомогою Amazon Personalize без коду

Завдяки тому, що персоналізований вміст, швидше за все, сприятиме залученню клієнтів, компанії постійно прагнуть надавати персоналізований контент на основі профілю та поведінки клієнта. Системи рекомендацій, зокрема, прагнуть передбачити перевагу, яку кінцевий користувач віддасть предмету. Деякі поширені випадки використання включають рекомендації продуктів в онлайн-магазинах, персоналізацію інформаційних бюлетенів, створення рекомендацій щодо списків відтворення музики або навіть виявлення подібного вмісту в онлайн-сервісах медіа.

Однак створити ефективну систему рекомендацій може бути складно через складність навчання моделі, вибору алгоритму та керування платформою. Амазонка персоналізувати дає змогу розробникам покращити взаємодію з клієнтами за допомогою персоналізованих рекомендацій щодо продукту та вмісту, не потребуючи досвіду машинного навчання (ML). Розробники можуть почати залучати клієнтів одразу, використовуючи дані про поведінку користувачів. За лаштунками Amazon Personalize перевіряє ці дані, визначає, що є значущим, вибирає правильні алгоритми, навчає та оптимізує модель персоналізації, налаштовану для ваших даних, і надає рекомендації через кінцеву точку API.

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

У цьому дописі показано, як використовувати сервіси AWS, щоб не лише створювати рекомендації, але й запускати груповий конвеєр рекомендацій. Ми проходимо через наскрізне рішення без жодного рядка коду. Детально обговорюємо дві теми:

Огляд рішення

У цьому рішенні ми використовуємо MovieLens набір даних. Цей набір даних включає 86,000 2,113 оцінок фільмів від XNUMX користувачів. Ми намагаємося використовувати ці дані для створення рекомендацій для кожного з цих користувачів.

Підготовка даних дуже важлива для того, щоб ми перевели дані про поведінку клієнтів у формат, готовий для Amazon Personalize. Архітектура, описана в цьому дописі, використовує AWS Glue, безсерверну службу інтеграції даних, для виконання перетворення необроблених даних у формат, готовий для використання Amazon Personalize. Рішення використовує Amazon Personalize для створення пакетних рекомендацій для всіх користувачів за допомогою пакетного висновку. Потім ми використовуємо робочий процес Step Functions, щоб автоматизований робочий процес можна було запускати, викликаючи Amazon Personalize API повторюваним способом.

Наступна діаграма демонструє це рішення.Архітектурна схема

Ми створимо це рішення за такими кроками:

  1. Створіть завдання трансформації даних, щоб трансформувати наші необроблені дані за допомогою AWS Glue.
  2. Створіть рішення Amazon Personalize за допомогою трансформованого набору даних.
  3. Створіть робочий процес Step Functions, щоб організувати створення пакетних висновків.

Передумови

Для цього покрокового керівництва вам знадобиться наступне:

Створіть завдання трансформації даних, щоб трансформувати необроблені дані за допомогою AWS Glue

За допомогою Amazon Personalize вхідні дані повинні мати певну схему та формат файлу. Дані про взаємодію між користувачами та елементами мають бути у форматі CSV із певними стовпцями, тоді як список користувачів, для яких ви хочете створити рекомендації, має бути у форматі JSON. У цьому розділі ми використовуємо AWS Glue Studio для перетворення необроблених вхідних даних у необхідні структури та формат для Amazon Personalize.

AWS Glue Studio надає графічний інтерфейс, розроблений для легкого створення та запуску завдань вилучення, трансформації та завантаження (ETL). Ви можете візуально створювати робочі навантаження перетворення даних за допомогою простих операцій перетягування.

Спочатку ми готуємо наші вихідні дані Служба простого зберігання Amazon (Amazon S3), то ми перетворюємо дані без коду.

  1. На консолі Amazon S3 створіть сегмент S3 із трьома папками: raw, transformed і curated.
  2. Завантажити Набір даних MovieLens і завантажте нестиснений файл під назвою user_ratingmovies-timestamp.dat у своє відро в папці raw.
  3. На консолі AWS Glue Studio виберіть Джобс у навігаційній панелі.
  4. Select Візуальне зображення з джерелом і метою, Потім виберіть Створювати.
  5. Виберіть перший викликаний вузол Джерело даних – сегмент S3. Тут ми вказуємо наші вхідні дані.
  6. на Властивості джерела даних вкладка, виберіть Розташування S3 і перейдіть до завантаженого файлу.
  7. для Формат данихвиберіть CSV, А для Delimiterвиберіть таб.
    AWS Glue Studio - S3
  8. Ми можемо вибрати вкладку Output schema, щоб перевірити, чи схема правильно вивела стовпці.
  9. Якщо схема не відповідає вашим очікуванням, виберіть Редагувати для редагування схеми.
    AWS Glue Studio - Поля

Далі ми перетворюємо ці дані відповідно до вимог схеми для Amazon Personalize.

  1. Виберіть Трансформувати – застосувати відображення вузол і, на ст Перетворення оновіть цільовий ключ і типи даних.
    Amazon Personalize, як мінімум, очікує таку структуру для набір даних взаємодії:
    • user_id (рядок)
    • item_id (рядок)
    • timestamp (довгий, у форматі часу епохи Unix)
      AWS Glue Studio – відображення полів

У цьому прикладі ми виключаємо фільми з низьким рейтингом із набору даних.

  1. Для цього видаліть останній вузол під назвою S3 bucket і додайте вузол фільтра на Перетворення Вкладка.
  2. Вибирати додавати стан і відфільтрувати дані, де рейтинг < 3.5.
    AWS Glue Studio – вихід

Тепер ми записуємо результат назад в Amazon S3.

  1. Розгорнути Мета меню та вибрати Amazon S3.
  2. для S3 Цільове розташування, виберіть папку з назвою transformed.
  3. Вибирати CSV як формат і суфікс Цільове розташування з interactions/.

Далі ми виводимо список користувачів, для яких ми хочемо отримати рекомендації.

  1. Виберіть ApplyMapping знову, а потім розгорніть Перетворення меню та вибрати ApplyMapping.
  2. Опустіть усі поля, крім user_id і перейменуйте це поле на userId. Amazon Personalize очікує, що це поле буде названо ідентифікатор користувача.
  3. Розгорнути Мета меню ще раз і виберіть Amazon S3.
  4. Цього разу вибирайте JSON як формат, а потім виберіть перетворену папку S3 і додайте до неї суфікс batch_users_input/.

Це виробляє а JSON список користувачів як вхідні дані для Amazon Personalize. Тепер ми повинні мати діаграму, яка виглядає наступним чином.

AWS Glue Studio – повний робочий процес

Тепер ми готові виконувати наше завдання трансформації.

  1. На консолі IAM створіть роль під назвою glue-service-role та додайте такі керовані політики:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Додаткову інформацію про те, як створити ролі служби IAM, див Створення ролі для делегування дозволів службі AWS.

  1. Поверніться до завдання AWS Glue Studio та виберіть Деталі роботи Вкладка.
  2. Встановіть назву завдання як batch-personalize-input-transform-job.
  3. Виберіть щойно створену роль IAM.
  4. Збережіть значення за замовчуванням для всього іншого.
    AWS Glue Studio - Деталі роботи
  5. Вибирати зберегти.
  6. Коли будете готові, вибирайте прогін і контролювати роботу в Runs Вкладка.
  7. Після завершення завдання перейдіть до консолі Amazon S3, щоб переконатися, що вихідний файл успішно створено.

Тепер ми сформували наші дані у формат і структуру, необхідні Amazon Personalize. Перетворений набір даних повинен мати такі поля та формат:

  • Набір даних про взаємодії – Формат CSV з полями USER_ID, ITEM_ID, TIMESTAMP
  • Набір даних, введений користувачем – Формат JSON з елементом userId

Створіть рішення Amazon Personalize за допомогою трансформованого набору даних

Завдяки нашому набору даних про взаємодію та введеним користувачем даним у правильному форматі ми тепер можемо створити наше рішення Amazon Personalize. У цьому розділі ми створюємо нашу групу набору даних, імпортуємо наші дані, а потім створюємо завдання пакетного висновку. Група набору даних організовує ресурси в контейнери для компонентів Amazon Personalize.

  1. На консолі Amazon Personalize виберіть Створювати група наборів даних.
  2. для Областьвиберіть виготовлений на замовлення.
  3. Вибирати Створіть групу набору даних і продовжуйте.
    Amazon Personalize - створити групу набору даних

Далі створіть набір даних про взаємодію.

  1. Введіть назву набору даних і виберіть Створіть нову схему.
  2. Вибирати Створіть набір даних і продовжуйте.
    Amazon Personalize - створіть набір даних про взаємодію

Тепер ми імпортуємо дані про взаємодію, створені раніше.

  1. Перейдіть до сегмента S3, у якому ми створили набір даних CSV про взаємодію.
  2. на Дозволи додайте таку політику доступу до сегмента, щоб Amazon Personalize мав доступ. Оновіть політику, включивши назву сегмента.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

Поверніться до Amazon Personalize і виберіть Створіть завдання імпорту набору даних. Наш набір даних про взаємодію тепер має імпортуватися в Amazon Personalize. Перш ніж перейти до наступного кроку, зачекайте, поки завдання імпорту завершиться зі статусом «Активно». Це має зайняти приблизно 8 хвилин.

  1. На консолі Amazon Personalize виберіть огляд на панелі навігації та виберіть Створіть рішення.
    Amazon Personalize - Інформаційна панель
  2. Введіть назву рішення.
  3. для Тип рішеннявиберіть Рекомендація щодо товару.
  4. для Рецепт, виберіть aws-user-personalization рецепт.
  5. Вибирати Створення та навчання рішення.
    Amazon Personalize – створіть рішення

Рішення тепер тренується на наборі даних про взаємодію, який було імпортовано з рецептом персоналізації користувача. Стежте за станом цього процесу Версії рішення. Зачекайте, поки він завершиться, перш ніж продовжити. Це має зайняти приблизно 20 хвилин.
Персоналізація Amazon – статус

Тепер ми створюємо наше завдання пакетного висновку, яке генерує рекомендації для кожного користувача, присутніго у вхідних даних JSON.

  1. На панелі навігації під Спеціальні ресурсивиберіть Завдання пакетного висновку.
  2. Введіть назву роботи та для рішення, виберіть рішення, створене раніше.
  3. Вибирати Створити завдання пакетного висновку.
    Amazon Personalize - створюйте завдання пакетного висновку
  4. для Конфігурація вхідних даних, введіть шлях S3, де знаходиться batch_users_input файл.

Це файл JSON, який містить userId.

  1. для Конфігурація вихідних даних шлях, виберіть підібраний шлях у S3.
  2. Вибирати Створити завдання пакетного висновку.

Цей процес займає приблизно 30 хвилин. Після завершення завдання рекомендації для кожного користувача, указаного у файлі введення користувача, зберігаються у вихідному місці S3.

Ми успішно створили набір рекомендацій для всіх наших користувачів. Однак наразі ми реалізували рішення лише за допомогою консолі. Щоб переконатися, що цей пакетний висновок виконується регулярно з останнім набором даних, нам потрібно створити робочий процес оркестровки. У наступному розділі ми покажемо вам, як створити робочий процес оркестровки за допомогою покрокових функцій.

Створіть робочий процес крокових функцій, щоб організувати робочий процес пакетного висновку

Щоб організувати конвеєр, виконайте такі кроки:

  1. На консолі крокових функцій виберіть Створіть державну машину.
  2. Select Створіть свій робочий процес візуально, Потім виберіть МАЙБУТНІ.
    AWS Step Functions - Створення робочого процесу
  3. перетягніть CreateDatasetImportJob вузол зліва (ви можете шукати цей вузол у вікні пошуку) на полотно.
  4. Виберіть вузол, і ви повинні побачити параметри API конфігурації праворуч. Запишіть ARN.
  5. Введіть власні значення в Параметри API текстове вікно.

Це викликає CreateDatasetImportJob API із значеннями параметрів, які ви вказуєте.

Робочий процес крокових функцій AWS

  1. перетягніть CreateSolutionVersion вузол на полотно.
  2. Оновіть параметри API за допомогою ARN рішення, яке ви записали.

Це створює нову версію рішення з щойно імпортованими даними шляхом виклику CreateSolutionVersion API.

  1. перетягніть CreateBatchInferenceJob node на полотно та подібним чином оновіть параметри API відповідними значеннями.

Переконайтеся, що ви використовуєте $.SolutionVersionArn синтаксис для отримання параметра ARN версії рішення з попереднього кроку. Ці параметри API передаються в CreateBatchInferenceJob API.

Робочий процес крокових функцій AWS

Нам потрібно побудувати логіку очікування в робочому процесі Step Functions, щоб переконатися, що завдання пакетного висновку рекомендації завершиться до завершення робочого процесу.

  1. Знайдіть і перетягніть у вузол очікування.
  2. У конфігурації для Почекай, введіть 300 секунд.

Це довільне значення; вам слід змінити цей час очікування відповідно до конкретного випадку використання.

  1. Виберіть CreateBatchInferenceJob вузол знову та перейдіть до Помилка обробки Вкладка.
  2. для Залучайте Помилки, введіть Personalize.ResourceInUseException.
  3. для Резервний станвиберіть Почекай.

Цей крок дає нам змогу періодично перевіряти статус завдання, і він виходить із циклу лише після завершення завдання.

  1. для Шлях результату, введіть $.errorMessage.

Фактично це означає, що коли надходить виняток «ресурс у використанні», завдання чекає x секунд, перш ніж повторити спробу з тими самими вхідними даними.

Робочий процес крокових функцій AWS

  1. Вибирати зберегти, а потім виберіть Почніть виконання.

Ми успішно організували наш пакет рекомендацій для Amazon Personalize. Як необов'язковий крок ви можете використовувати Amazon EventBridge планувати запуск цього робочого процесу на регулярній основі. Для отримання додаткової інформації див EventBridge (CloudWatch Events) для змін статусу виконання покрокових функцій.

Прибирати

Щоб уникнути майбутніх витрат, видаліть ресурси, які ви створили для цього покрокового керівництва.

Висновок

У цій публікації ми продемонстрували, як створити груповий конвеєр рекомендацій за допомогою комбінації AWS Glue, Amazon Personalize і Step Functions, не потребуючи жодного рядка коду чи досвіду ML. Ми використовували AWS Glue, щоб підготувати наші дані до формату, який вимагає Amazon Personalize. Потім ми використали Amazon Personalize, щоб імпортувати дані, створити рішення з рецептом персоналізації користувача та створити завдання пакетного висновку, яке генерує за замовчуванням 25 рекомендацій для кожного користувача на основі попередніх взаємодій. Потім ми організували ці кроки за допомогою покрокових функцій, щоб ми могли виконувати ці завдання автоматично.

Щоб розглянути наступні кроки, сегментація користувачів — це один із нових рецептів у Amazon Personalize, який ви можете вивчити, щоб створити сегменти користувачів для кожного рядка вхідних даних. Для отримання додаткової інформації див Отримання групових рекомендацій і сегментів користувачів.


Про автора

Максін Ві

Максін Ві є архітектором рішень AWS Data Lab. Maxine працює з клієнтами над їх сценаріями використання, розробляє рішення для вирішення їхніх бізнес-проблем і направляє їх у створенні масштабованих прототипів. До роботи з AWS Максін допомагала клієнтам впроваджувати проекти BI, сховища даних і озера даних в Австралії.

Часова мітка:

Більше від AWS Машинне навчання