Messen Sie die geschäftlichen Auswirkungen von Amazon Personalize Recommendations

Messen Sie die geschäftlichen Auswirkungen von Amazon Personalize Recommendations

Quellknoten: 1958091

Wir freuen uns, Ihnen mitteilen zu können, dass Amazon personalisieren lässt dich jetzt Messen Sie, wie Ihre personalisierten Empfehlungen Ihnen helfen können, Ihre Geschäftsziele zu erreichen. Nachdem Sie die Metriken angegeben haben, die Sie nachverfolgen möchten, können Sie ermitteln, welche Kampagnen und Empfehlungsgeber am wirkungsvollsten sind, und die Auswirkungen von Empfehlungen auf Ihre Geschäftsmetriken verstehen.

Alle Kunden möchten die Metrik verfolgen, die für ihr Unternehmen am wichtigsten ist. Beispielsweise möchte eine Online-Einkaufsanwendung möglicherweise zwei Metriken verfolgen: die Klickrate (CTR) für Empfehlungen und die Gesamtzahl der Einkäufe. Eine Video-on-Demand-Plattform mit Karussells mit verschiedenen Empfehlungsgebern möchte möglicherweise die CTR oder die Wiedergabedauer vergleichen. Sie können auch den Gesamtumsatz oder die Marge eines bestimmten Ereignistyps überwachen, beispielsweise wenn ein Benutzer einen Artikel kauft. Mit dieser neuen Funktion können Sie die Wirkung von Amazon Personalize-Kampagnen und -Empfehlungen sowie von Drittanbieterlösungen generierte Interaktionen messen.

In diesem Beitrag zeigen wir, wie Sie Ihre Metriken nachverfolgen und die Auswirkungen Ihrer Personalize-Empfehlungen in einem E-Commerce-Anwendungsfall bewerten.

Lösungsüberblick

Um die Wirkung personalisierter Empfehlungen zu verstehen, mussten Sie früher Workflows manuell orchestrieren, um Geschäftsmetrikdaten zu erfassen und sie dann in aussagekräftigen Darstellungen darzustellen, um Vergleiche zu ziehen. Jetzt hat Amazon Personalize diesen Betriebsaufwand eliminiert, indem es Ihnen ermöglicht, die Metriken zu definieren und zu überwachen, die Sie verfolgen möchten. Amazon Personalize kann Leistungsdaten an senden Amazon CloudWatch zur Visualisierung und Überwachung, oder alternativ in eine Einfacher Amazon-Speicherdienst (Amazon S3) Bucket, in dem Sie auf Metriken zugreifen und sie in andere Business-Intelligence-Tools integrieren können. Auf diese Weise können Sie effektiv messen, wie sich Ereignisse und Empfehlungen auf die Geschäftsziele auswirken, und das Ergebnis jedes Ereignisses beobachten, das Sie überwachen möchten.

Um die Auswirkungen von Empfehlungen zu messen, definieren Sie eine „metrische Zuordnung“, bei der es sich um eine Liste von Ereignistypen handelt, über die Sie mithilfe der Amazon Personalize-Konsole oder APIs berichten möchten. Für jeden Ereignistyp definieren Sie einfach die Metrik und Funktion, die Sie berechnen möchten (Summe oder Stichprobenanzahl), und Amazon Personalize führt die Berechnung durch und sendet die generierten Berichte an CloudWatch oder Amazon S3.

Das folgende Diagramm zeigt, wie Sie Messwerte von einem einzelnen Empfehlungsgeber oder einer einzelnen Kampagne verfolgen können:

Abbildung 1. Funktionsübersicht: Das Interaktions-Dataset wird verwendet, um einen Recommender oder eine Kampagne zu trainieren. Wenn Benutzer dann mit empfohlenen Artikeln interagieren, werden diese Interaktionen an Amazon Personalize gesendet und dem entsprechenden Empfehler oder der entsprechenden Kampagne zugeordnet. Als Nächstes werden diese Metriken nach Amazon S3 und CloudWatch exportiert, sodass Sie sie überwachen und die Metriken jedes Empfehlungsgebers oder jeder Kampagne vergleichen können.

Mit Metrikzuordnungen können Sie auch eine angeben eventAttributionSource, für jede Interaktion, die das Szenario angibt, das der Benutzer erlebt hat, als er mit einem Element interagiert hat. Das folgende Diagramm zeigt, wie Sie Metriken von zwei verschiedenen Empfehlern mithilfe der Amazon Personalize-Metrikzuordnung verfolgen können.

Abbildung 2. Messung der geschäftlichen Auswirkungen von Empfehlungen in zwei Szenarien: Der Interaktionsdatensatz wird verwendet, um zwei Empfehler oder Kampagnen zu trainieren, in diesem Fall als „Blau“ und „Orange“ bezeichnet. Wenn Benutzer dann mit den empfohlenen Artikeln interagieren, werden diese Interaktionen an Amazon Personalize gesendet und der entsprechenden Empfehlung, Kampagne oder dem Szenario zugeordnet, dem der Benutzer ausgesetzt war, als er mit dem Artikel interagierte. Als Nächstes werden diese Metriken nach Amazon S3 und CloudWatch exportiert, sodass Sie sie überwachen und die Metriken jedes Empfehlungsgebers oder jeder Kampagne vergleichen können.

In diesem Beispiel gehen wir durch den Prozess der Definition von Metrikzuordnungen für Ihre Interaktionsdaten in Amazon Personalize. Zuerst importieren Sie Ihre Daten und erstellen zwei Attributionsmetriken, um die geschäftlichen Auswirkungen der Empfehlungen zu messen. Dann erstellen Sie zwei Retail Recommender – es ist derselbe Prozess, wenn Sie eine benutzerdefinierte Empfehlungslösung verwenden – und senden Ereignisse, um sie mithilfe der Metriken zu verfolgen. Zu Beginn benötigen Sie nur das Interaktions-Dataset. Da jedoch eine der Metriken, die wir in diesem Beispiel verfolgen, die Marge ist, zeigen wir Ihnen auch, wie Sie den Artikeldatensatz importieren. Ein Codebeispiel für diesen Anwendungsfall ist unter verfügbar GitHub.

Voraussetzungen:

Sie können die AWS-Konsole oder unterstützt verwenden APIs um Empfehlungen mit Amazon Personalize zu erstellen, zum Beispiel mit der AWS-Befehlszeilenschnittstelle or AWS SDK für Python.

Um die Auswirkungen von Empfehlungen zu berechnen und zu melden, müssen Sie zunächst einige AWS-Ressourcen einrichten.

Sie müssen eine erstellen AWS Identitäts- und Zugriffsverwaltung (IAM) Rolle, die Amazon Personalize übernimmt, mit einem entsprechenden Richtliniendokument zur Rollenübernahme. Sie müssen auch Richtlinien anhängen, damit Amazon Personalize auf Daten aus einem S3-Bucket zugreifen und Daten an CloudWatch senden kann. Weitere Informationen finden Sie unter Gewähren Sie Amazon Personalize Zugriff auf Ihren Amazon S3-Bucket machen Gewähren von Amazon Personalize-Zugriff auf CloudWatch.

Anschließend müssen Sie einige Amazon Personalize-Ressourcen erstellen. Erstellen Sie Ihre Datensatzgruppe, laden Sie Ihre Daten und trainieren Sie Empfehlungsgeber. Vollständige Anweisungen finden Sie unter Erste Schritte.

  1. Erstellen Sie eine Datensatzgruppe. Sie können Metrikzuordnungen in verwenden Domänen-Dataset-Gruppen machen benutzerdefinierte Datensatzgruppen.
  2. Erstellen Sie ein Interactions Datensatz mit dem folgenden Schema:
    { "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. Erstellen Sie ein Items Datensatz mit dem folgenden Schema:
    { "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"
    }

Bevor wir unsere Daten in Amazon Personalize importieren, definieren wir die Zuordnung der Metriken.

Erstellen von Metrikattributen

Um mit dem Generieren von Metriken zu beginnen, geben Sie die Liste der Ereignisse an, für die Sie Metriken sammeln möchten. Für jeden der ausgewählten Ereignistypen definieren Sie die Funktion, die Amazon Personalize beim Sammeln von Daten anwenden wird – die beiden verfügbaren Funktionen sind  SUM(DatasetType.COLUMN_NAME) machen SAMPLECOUNT(), Wobei DatasetType kann das sein INTERACTIONS or ITEMS Datensatz. Amazon Personalize kann Metrikdaten zur Visualisierung und Überwachung an CloudWatch senden oder sie alternativ in einen S3-Bucket exportieren.

Nachdem Sie eine Metrikzuordnung erstellt und Ereignisse aufgezeichnet oder inkrementelle Massendaten importiert haben, entstehen Ihnen einige monatliche CloudWatch-Kosten pro Metrik. Informationen zu den CloudWatch-Preisen finden Sie unter CloudWatch-Preise Buchseite. Um das Senden von Metriken an CloudWatch zu beenden, Löschen Sie die Messwertzuordnung.

In diesem Beispiel erstellen wir zwei Metrikzuordnungen:

  1. Zählen Sie die Gesamtzahl der „View“-Ereignisse mithilfe von SAMPLECOUNT(). Diese Funktion erfordert nur die INTERACTIONS Datensatz.
  2. Berechnen Sie die Gesamtmarge, wenn Kaufereignisse auftreten, indem Sie die verwenden SUM(DatasetType.COLUMN_NAME) In diesem Fall DatasetType is ITEMS und die Spalte ist MARGIN weil wir die Marge für den Artikel beim Kauf nachverfolgen. Der Purchase Ereignis wird in aufgezeichnet INTERACTIONS Datensatz. Beachten Sie, dass Sie, damit die Marge durch das Kaufereignis ausgelöst wird, ein Kaufereignis für jede einzelne Einheit jedes gekauften Artikels senden würden, selbst wenn es sich um Wiederholungen handelt – z. B. zwei Hemden des gleichen Typs. Wenn Ihre Benutzer mehrere Artikel jedes Artikels kaufen können, wenn sie zur Kasse gehen, und Sie nur ein Kaufereignis für alle senden, ist eine andere Metrik besser geeignet.

Die Funktion zur Berechnung der Probenanzahl ist nur für verfügbar INTERACTIONS Datensatz. Die Gesamtmarge erfordert jedoch, dass Sie die haben ITEMS Datensatz und zur Konfiguration der Berechnung. Für jeden von ihnen geben wir die an eventType dass wir die verwendete Funktion verfolgen und ihr eine geben metricName Dadurch werden die Metriken identifiziert, sobald wir sie exportiert haben. Für dieses Beispiel haben wir ihnen die Namen „countViews“ und „sumMargin“ gegeben.

Das Codebeispiel ist in Python.

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

Wir definieren auch, wohin die Daten exportiert werden. In diesem Fall zu einem S3-Bucket.

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

Dann generieren wir die Metrikattribution.

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

metric_attribution_arn = response['metricAttributionArn']

Sie müssen eine geben name der Metrikzuordnung hinzufügen und die Datensatzgruppe angeben, aus der die Metriken mithilfe von zugeordnet werden datasetGroupArnund der metricsOutputConfig machen metrics Objekte, die wir zuvor erstellt haben.

Nachdem Sie nun die Metrikattribution erstellt haben, können Sie mit dem Dataset-Importjob fortfahren, der unsere Artikel- und Interaktions-Datasets aus unserem S3-Bucket in die zuvor konfigurierten Dataset-Gruppen lädt.

Informationen zum Ändern oder Löschen einer vorhandenen Metrikzuordnung finden Sie unter Verwalten einer Metrikzuordnung.

Importieren von Daten und Erstellen von Empfehlungsgebern

Erstens Importieren Sie die Interaktionsdaten zu Amazon Personalize von Amazon S3. Für dieses Beispiel verwenden wir Folgendes Datendatei. Wir haben die synthetischen Daten basierend auf dem Code in generiert Einzelhandels-Demo-Store-Projekt. Weitere Informationen zu den synthetischen Daten und möglichen Verwendungszwecken finden Sie im GitHub-Repository.

Dann, Erstellen Sie einen Empfehlungsgeber. In diesem Beispiel erstellen wir zwei Recommender:

  1. „Für Sie empfohlen“-Recommender. Dieser Empfehlungstyp erstellt basierend auf einem von Ihnen angegebenen Benutzer personalisierte Empfehlungen für Elemente.
  2. Kunden, die X angesehen haben, haben auch angesehen. Dieser Empfehlungstyp erstellt Empfehlungen für Artikel, die Kunden ebenfalls angesehen haben, basierend auf einem von Ihnen angegebenen Artikel.

Senden Sie Ereignisse an Amazon Personalize und weisen Sie sie den Empfehlern zu

Um Interaktionen an Amazon Personalize zu senden, müssen Sie eine erstellen Ereignisprotokoll.

Für jedes Ereignis kann Amazon Personalize die aufzeichnen eventAttributionSource. Daraus lässt sich schließen recommendationId oder Sie können es explizit angeben und in Berichten im angeben EVENT_ATTRIBUTION_SOURCE Spalte. Ein eventAttributionSource kann eine Empfehlung, ein Szenario oder ein von Drittanbietern verwalteter Teil der Seite sein, auf der Interaktionen stattgefunden haben.

  • Wenn Sie eine recommendationId, dann leitet Amazon Personalize automatisch die Quellkampagne oder den Recommender ab.
  • Wenn Sie beide Attribute angeben, verwendet Amazon Personalize nur die Quelle.
  • Wenn Sie keine Quelle oder a recommendationId, dann benennt Amazon Personalize die Quelle SOURCE_NAME_UNDEFINED in Berichten.

Der folgende Code zeigt, wie eine bereitgestellt wird eventAttributionSource für eine Veranstaltung in a PutEvents Erfassung sind.

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)

Anzeigen Ihrer Metriken

Amazon Personalize sendet die Metriken an Amazon CloudWatch oder Amazon S3:

Wenn Sie bei der Erstellung Ihrer Metrikzuordnung für alle Massendaten einen Amazon S3-Bucket angeben, können Sie Metrikberichte in Ihrem Amazon S3-Bucket veröffentlichen. Sie müssen dies jedes Mal tun, wenn Sie einen Dataset-Importauftrag für Interaktionsdaten erstellen.

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)

Wählen Sie beim Importieren Ihrer Daten den richtigen Importmodus INCREMENTAL or FULL und Amazon Personalize anweisen, die Metriken nach Einstellung zu veröffentlichen publishAttributionMetricsToS3 zu True. Weitere Informationen zum Veröffentlichen von Metrikberichten in Amazon S3 finden Sie unter Veröffentlichen von Metriken in Amazon S3.

Aussichten für PutEvents-Daten über den Event Tracker gesendet und z inkrementelle Massendatenimporte, sendet Amazon Personalize automatisch Metriken an CloudWatch. Sie können Daten der letzten 2 Wochen in Amazon CloudWatch anzeigen – ältere Daten werden ignoriert.

Du kannst dich eine Metrik direkt in der CloudWatch-Konsole grafisch darstellen indem Sie als Suchbegriff den Namen angeben, den Sie der Metrik beim Erstellen der Metrikattribution gegeben haben. Weitere Informationen dazu, wie Sie diese Metriken in CloudWatch anzeigen können, finden Sie unter Anzeigen von Metriken in CloudWatch.

Figure 3: Ein Beispiel für den Vergleich von zwei CTRs von zwei Recommenders, die in der CloudWatch-Konsole angezeigt werden.

Importieren und Veröffentlichen von Metriken in Amazon S3

Wenn Sie Ihre Daten über einen Datensatz-Importauftrag auf Amazon Personalize hochladen und in Ihrer Metrikzuordnung einen Pfad zu Ihrem Amazon S3-Bucket angegeben haben, können Sie Ihre Metriken in Amazon S3 anzeigen, wenn der Auftrag abgeschlossen ist.

Jedes Mal, wenn Sie Metriken veröffentlichen, erstellt Amazon Personalize eine neue Datei in Ihrem Amazon S3-Bucket. Der Dateiname gibt die Importmethode und das Datum an. Das Feld EVENT_ATTRIBUTION_SOURCE gibt die Ereignisquelle an, dh unter welchem ​​Szenario die Interaktion stattgefunden hat. Mit Amazon Personalize können Sie die angeben EVENT_ATTRIBUTION_SOURCE Wenn Sie dieses Feld explizit verwenden, kann dies ein Drittanbieter-Recommender sein. Weitere Informationen finden Sie unter Veröffentlichen von Metriken in Amazon S3.

Zusammenfassung

Durch das Hinzufügen von Metrikzuordnungen können Sie die Auswirkungen nachverfolgen, die Empfehlungen auf Geschäftsmetriken haben. Sie erstellen diese Metriken, indem Sie Ihrer Datensatzgruppe eine Metrikzuordnung hinzufügen und die Ereignisse auswählen, die Sie nachverfolgen möchten, sowie die Funktion zum Zählen der Ereignisse oder zum Aggregieren eines Datensatzfelds. Anschließend können Sie die Metriken, an denen Sie interessiert sind, in CloudWatch oder in der exportierten Datei in Amazon S3 sehen.

Weitere Informationen zu Amazon Personalize finden Sie unter Was ist Amazon Personalize?


Über die Autoren

Anna Grübler ist ein Specialist Solutions Architect bei AWS mit Schwerpunkt auf künstlicher Intelligenz. Sie verfügt über mehr als 10 Jahre Erfahrung in der Unterstützung von Kunden bei der Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen. Ihre Leidenschaft ist es, neue Technologien in die Hände aller zu legen und schwierige Probleme zu lösen, indem sie die Vorteile der Verwendung von KI in der Cloud nutzt.


Gabrielle Dompreh ist Specialist Solutions Architect bei AWS für künstliche Intelligenz und maschinelles Lernen. Sie lernt gerne die neuen Innovationen des maschinellen Lernens kennen und hilft Kunden dabei, ihre Fähigkeiten mit gut durchdachten Lösungen voll auszuschöpfen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen