Виміряйте бізнес-вплив персоналізованих рекомендацій Amazon

Виміряйте бізнес-вплив персоналізованих рекомендацій Amazon

Вихідний вузол: 1958091

Ми раді повідомити про це Амазонка персоналізувати тепер дозволяє вам виміряти, як ваші персоналізовані рекомендації можуть допомогти вам досягти бізнес-цілей. Визначивши показники, які потрібно відстежувати, ви зможете визначити, які кампанії та рекомендації є найефективнішими, і зрозуміти вплив рекомендацій на ваші бізнес-показники.

Усі клієнти хочуть відстежувати показник, який є найважливішим для їхнього бізнесу. Наприклад, програма онлайн-покупок може знадобитися відстежувати два показники: рейтинг кліків (CTR) для рекомендацій і загальну кількість покупок. Платформа відео на замовлення, яка має каруселі з різними рекомендаціями, які надають рекомендації, може забажати порівняти CTR або тривалість перегляду. Ви також можете відстежувати загальний дохід або маржу певного типу події, наприклад, коли користувач купує товар. Ця нова можливість дає вам змогу вимірювати вплив кампаній і рекомендацій Amazon Personalize, а також взаємодії, створені рішеннями сторонніх розробників.

У цій публікації ми демонструємо, як відстежувати ваші показники та оцінювати вплив ваших рекомендацій Personalize у випадку використання електронної комерції.

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

Раніше, щоб зрозуміти ефект персоналізованих рекомендацій, вам доводилося вручну організовувати робочі процеси для збору даних бізнес-метрик, а потім представляти їх у значущих представленнях для порівняння. Тепер Amazon Personalize усунув ці операційні витрати, дозволивши вам визначати та контролювати показники, які ви хочете відстежувати. Amazon Personalize може надсилати дані про продуктивність Amazon CloudWatch для візуалізації та моніторингу, або альтернативно в an Служба простого зберігання Amazon (Amazon S3) відро, де можна отримати доступ до показників та інтегрувати їх в інші інструменти бізнес-аналітики. Це дає змогу ефективно вимірювати, як події та рекомендації впливають на бізнес-цілі, і спостерігати за результатами будь-якої події, яку ви бажаєте контролювати.

Щоб виміряти вплив рекомендацій, ви визначаєте «метричну атрибуцію», яка є списком типів подій, про які ви хочете звітувати за допомогою консолі Amazon Personalize або API. Для кожного типу події ви просто визначаєте метрику та функцію, які ви хочете обчислити (сума чи кількість вибірки), а Amazon Personalize виконує обчислення, надсилаючи створені звіти до CloudWatch або Amazon S3.

На наведеній нижче схемі показано, як можна відстежувати показники одного рекомендувача або кампанії.

Малюнок 1. Огляд функцій: Набір даних про взаємодію використовується для навчання рекомендувача або кампанії. Потім, коли користувачі взаємодіють із рекомендованими елементами, ці взаємодії надсилаються в Amazon Personalize і приписуються відповідному рекомендувачу або кампанії. Далі ці показники експортуються в Amazon S3 і CloudWatch, щоб ви могли контролювати їх і порівнювати показники кожного рекомендувача або кампанії.

Атрибуції показників також дозволяють надати eventAttributionSource, для кожної взаємодії, яка визначає сценарій, який переживав користувач під час взаємодії з елементом. На наступній діаграмі показано, як можна відстежувати показники від двох різних рекомендувачів за допомогою атрибуції показників Amazon Personalize.

Рисунок 2. Вимірювання впливу рекомендацій на бізнес у двох сценаріях: набір даних про взаємодію використовується для навчання двох рекомендувачів або кампаній, у цьому випадку позначених як «синій» і «помаранчевий». Потім, коли користувачі взаємодіють із рекомендованими елементами, ці взаємодії надсилаються в Amazon Personalize і приписуються відповідному рекомендацію, кампанії чи сценарію, до якого користувач піддавався під час взаємодії з елементом. Далі ці показники експортуються в Amazon S3 і CloudWatch, щоб ви могли контролювати їх і порівнювати показники кожного рекомендувача або кампанії.

У цьому прикладі ми розглядаємо процес визначення атрибуції метрик для даних вашої взаємодії в Amazon Personalize. Спочатку ви імпортуєте свої дані та створюєте дві метрики атрибуції для вимірювання впливу рекомендацій на бізнес. Потім ви створюєте два роздрібні рекомендації – це той самий процес, якщо ви використовуєте спеціальне рішення для рекомендацій – і надсилаєте події для відстеження за допомогою показників. Щоб почати, вам потрібен лише набір даних про взаємодію. Однак, оскільки одним із показників, який ми відстежуємо в цьому прикладі, є маржа, ми також покажемо вам, як імпортувати набір даних елементів. Зразок коду для цього випадку використання доступний на GitHub.

Передумови

Ви можете використовувати консоль AWS або підтримувану Інтерфейси для створення рекомендацій за допомогою Amazon Personalize, наприклад за допомогою Інтерфейс командного рядка AWS or AWS SDK для Python.

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

Ви повинні створити AWS Identity and Access Management (IAM) роль, яку Amazon Personalize візьме на себе з відповідним документом про політику щодо ролі. Ви також повинні додати політики, щоб дозволити Amazon Personalize отримувати доступ до даних із сегмента S3 і надсилати дані до CloudWatch. Для отримання додаткової інформації див Надання Amazon Personalize доступу до вашого сегмента Amazon S3 та  Надання Amazon Personalize доступу до CloudWatch.

Потім ви повинні створити ресурси Amazon Personalize. Створіть свою групу набору даних, завантажте свої дані та навчіть рекомендувачів. Повні інструкції див Приступаючи до роботи.

  1. Створіть групу набору даних. Ви можете використовувати метричні атрибуції в групи наборів даних домену та спеціальні групи наборів даних.
  2. створити Interactions набір даних, використовуючи наступне схема:
    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" }, { "name": "EVENT_TYPE", "type": "string" }
    ], "version": "1.0" }

  3. створити Items набір даних, використовуючи наступне схема:
    { "type": "record", "name": "Items", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "ITEM_ID", "type": "string" }, { "name": "PRICE", "type": "float" }, { "name": "CATEGORY_L1", "type": ["string"], "categorical": True }, { "name": "CATEGORY_L2", "type": ["string"], "categorical": True }, { "name": "MARGIN", "type": "double" } ], "version": "1.0"
    }

Перш ніж імпортувати наші дані в Amazon Personalize, ми визначимо атрибуцію показників.

Створення метричних атрибутів

Щоб почати генерувати показники, ви вказуєте список подій, для яких ви хочете зібрати показники. Для кожного з вибраних типів подій ви визначаєте функцію, яку Amazon Personalize застосовуватиме під час збору даних – дві доступні функції:  SUM(DatasetType.COLUMN_NAME) та SAMPLECOUNT(), Де DatasetType може бути INTERACTIONS or ITEMS набір даних. Amazon Personalize може надсилати дані показників у CloudWatch для візуалізації та моніторингу або експортувати їх у сегмент S3.

Після того, як ви створите атрибуцію метрики та запишете події або імпортуєте додаткові масові дані, ви будете нести певну щомісячну вартість CloudWatch за метрику. Інформацію про ціни на CloudWatch див Ціни CloudWatch сторінки. Щоб припинити надсилання метрик до CloudWatch, видалити метричну атрибуцію.

У цьому прикладі ми створимо два атрибуції показників:

  1. Підрахуйте загальну кількість подій «Перегляд» за допомогою SAMPLECOUNT(). Ця функція потребує лише INTERACTIONS набір даних.
  2. Обчисліть загальну маржу, коли відбуваються події покупки, використовуючи SUM(DatasetType.COLUMN_NAME) У цьому випадку, DatasetType is ITEMS і колонка є MARGIN тому що ми відстежуємо націнку товару, коли його було придбано. The Purchase подія записана в INTERACTIONS набір даних. Зауважте, що для того, щоб маржа була викликана подією покупки, ви повинні надсилати подію покупки для кожної окремої одиниці кожного придбаного товару, навіть якщо вони повторюються, наприклад, дві сорочки одного типу. Якщо ваші користувачі можуть купувати кілька одиниць кожного товару під час оформлення замовлення, а ви надсилаєте лише одну подію покупки для всіх них, тоді інший показник буде доцільнішим.

Функція обчислення кількості зразків доступна лише для INTERACTIONS набір даних. Однак загальна маржа вимагає від вас наявності ITEMS набір даних і налаштувати обчислення. Для кожного з них ми вказуємо свій eventType яку ми відстежуватимемо, використовувану функцію та надамо їй a metricName який визначить показники, коли ми їх експортуємо. Для цього прикладу ми дали їм назви «countViews» і «sumMargin».

Зразок коду написано на Python.

import boto3 personalize = boto3.client('personalize') metrics_list = [{ "eventType": "View", "expression": "SAMPLECOUNT()", "metricName": "countViews" }, { "eventType": "Purchase", "expression": "SUM(ITEMS.MARGIN)", "metricName": "sumMargin"
}]

Ми також визначаємо, куди будуть експортовані дані. У цьому випадку до відра S3.

output_config = { "roleArn": role_arn, "s3DataDestination": { "path": path_to_bucket }
}

Потім ми генеруємо метричну атрибуцію.

response = personalize.create_metric_attribution(
name = metric_attribution_name,
datasetGroupArn = dataset_group_arn,
metricsOutputConfig = output_config,
metrics = metrics_list
)

metric_attribution_arn = response['metricAttributionArn']

Ви повинні дати а name до атрибуції метрики, а також вказати групу набору даних, з якої буде віднесено метрики за допомогою datasetGroupArn, А metricsOutputConfig та metrics об’єктів, які ми створили раніше.

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

Щоб отримати відомості про те, як змінити або видалити наявну атрибуцію метрики, див Управління атрибуцією показників.

Імпорт даних і створення Рекомендаторів

По-перше, імпортувати дані взаємодії до Amazon Personalize з Amazon S3. Для цього прикладу ми використовуємо наступне файл даних. Ми згенерували синтетичні дані на основі коду в Роздрібний проект Demo Store. Зверніться до репозиторію GitHub, щоб дізнатися більше про синтетичні дані та потенційне використання.

Потім створити рекомендувача. У цьому прикладі ми створюємо два рекомендації:

  1. Рекомендатор «Рекомендовано для вас».. Цей тип рекомендувача створює персоналізовані рекомендації щодо елементів на основі вказаного вами користувача.
  2. Клієнти, які переглядали X, також переглядали. Цей тип рекомендувача створює рекомендації для елементів, які клієнти також переглядали, на основі елемента, який ви вказуєте.

Надсилайте події в Amazon Personalize і приписуйте їх тим, хто рекомендує

Щоб надіслати взаємодії в Amazon Personalize, ви повинні створити Відстежувач подій.

Для кожної події Amazon Personalize може записати eventAttributionSource. Це можна зробити висновок з recommendationId або ви можете вказати його явно та ідентифікувати у звітах у EVENT_ATTRIBUTION_SOURCE колонка. Ан eventAttributionSource може бути рекомендацією, сценарієм або керованою третьою стороною частиною сторінки, де відбувалися взаємодії.

  • Якщо ви надаєте а recommendationId, тоді Amazon Personalize автоматично визначає вихідну кампанію або рекомендацію.
  • Якщо ви надаєте обидва атрибути, Amazon Personalize використовує лише джерело.
  • Якщо ви не вкажете джерело або a recommendationId, тоді Amazon Personalize позначає джерело SOURCE_NAME_UNDEFINED у звітах.

Наступний код показує, як надати eventAttributionSource для події в а PutEvents операції.

response = personalize_events.put_events(
trackingId = 'eventTrackerId',
userId= 'userId',
sessionId = 'sessionId123',
eventList = [{ 'eventId': event_id, 'eventType': event_type, 'itemId': item_id, 'metricAttribution': {"eventAttributionSource": attribution_source}, 'sentAt': timestamp_in_unix_format
}
}]
)
print (response)

Перегляд ваших показників

Amazon Personalize надсилає показники в Amazon CloudWatch або Amazon S3:

Для всіх масових даних, якщо ви надаєте сегмент Amazon S3 під час створення атрибуції показників, ви можете публікувати звіти про показники у своєму сегменті Amazon S3. Вам потрібно робити це кожного разу, коли ви створюєте завдання імпорту набору даних для даних взаємодії.

import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_import_job( jobName = 'YourImportJob', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://bucket/file.csv'}, roleArn = 'role_arn', importMode = 'INCREMENTAL', publishAttributionMetricsToS3 = True
) print (response)

Імпортуючи дані, виберіть правильний режим імпорту INCREMENTAL or FULL і доручіть Amazon Personalize опублікувати показники за допомогою налаштування publishAttributionMetricsToS3 до True. Додаткову інформацію про публікацію звітів про показники в Amazon S3 див Публікація показників на Amazon S3.

для Дані PutEvents надіслано через Відстеження подій і для поступовий масовий імпорт даних, Amazon Personalize автоматично надсилає показники до CloudWatch. Ви можете переглядати дані за попередні 2 тижні в Amazon CloudWatch – старіші дані ігноруються.

Ти можеш побудувати графік метрики безпосередньо на консолі CloudWatch вказавши ім’я, яке ви дали метриці під час створення атрибуції метрики як термін пошуку. Додаткову інформацію про те, як можна переглядати ці показники в CloudWatch, див Перегляд показників у CloudWatch.

малюнок 3: приклад порівняння двох CTR від двох рекомендацій, які переглядаються на консолі CloudWatch.

Імпорт і публікація показників в Amazon S3

Якщо ви завантажуєте свої дані в Amazon Personalize за допомогою завдання імпорту набору даних і вказуєте шлях до сегмента Amazon S3 у своєму віднесенні показників, ви зможете переглядати свої показники в Amazon S3 після завершення завдання.

Кожного разу, коли ви публікуєте показники, Amazon Personalize створює новий файл у вашому сегменті Amazon S3. Ім'я файлу визначає метод імпорту та дату. Поле EVENT_ATTRIBUTION_SOURCE визначає джерело події, тобто за яким сценарієм відбулася взаємодія. Amazon Personalize дозволяє вказати EVENT_ATTRIBUTION_SOURCE явно використовуючи це поле, це може бути рекомендація третьої сторони. Для отримання додаткової інформації див Публікація показників на Amazon S3.

Підсумки

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

Додаткову інформацію про Amazon Personalize див Що таке Amazon Personalize?


Про авторів

Анна Грюблер є спеціалізованим архітектором рішень в AWS, який спеціалізується на штучному інтелекті. Вона має понад 10 років досвіду допомоги клієнтам у розробці та розгортанні програм машинного навчання. Її пристрасть полягає в тому, щоб використовувати нові технології та надавати їх кожному, а також вирішувати складні проблеми, використовуючи переваги використання штучного інтелекту в хмарі.


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

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

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