Optimierung einer Lösung für ein zusätzliches Ziel - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Optimierung einer Lösung für ein zusätzliches Ziel

Wichtig

Standardmäßig verwenden alle neuen Lösungen automatisches Training. Bei der automatischen Schulung fallen für Sie Schulungskosten an, solange Ihre Lösung aktiv ist. Um unnötige Kosten zu vermeiden, können Sie die Lösung aktualisieren, wenn Sie fertig sind, sodass das automatische Training deaktiviert wird. Informationen zu den Schulungskosten finden Sie unter Amazon Personalize Personalize-Preise.

Wenn Sie das Rezept für die Benutzerpersonalisierung oder das Rezept für personalisiertes Ranking verwenden, können Sie eine Amazon Personalize Personalize-Lösung nicht nur für maximale Relevanz, sondern auch für ein bestimmtes Ziel optimieren, z. B. die Maximierung des Umsatzes.

Bei Rezepturen für Artikelempfehlungen besteht das Hauptziel von Amazon Personalize darin, anhand von historischen und Echtzeit-Artikelinteraktionsdaten die relevantesten Artikel für Ihre Nutzer vorherzusagen. Dies sind die Artikel, mit denen Ihre Benutzer am wahrscheinlichsten interagieren werden (z. B. die Artikel, auf die sie höchstwahrscheinlich klicken werden). Wenn Sie ein zusätzliches Ziel verfolgen, z. B. die Maximierung der Streaming-Minuten oder die Steigerung des Umsatzes, können Sie eine Lösung entwickeln, die Empfehlungen generiert, die sowohl auf der Relevanz als auch auf Ihrem Ziel basieren.

Um eine Lösung für ein zusätzliches Ziel zu optimieren, erstellen Sie eine neue Lösung mit dem Rezept für Benutzerpersonalisierung oder Personalisiertes Ranking und wählen Sie die numerische Metadatenspalte in Ihrem Artikeldatensatz aus, die sich auf Ihr Ziel bezieht. Bei der Generierung von Empfehlungen misst Amazon Personalize Artikeln mit höheren Werten für diese Datenspalte mehr Bedeutung bei. Sie könnten beispielsweise eine LENGTH Spalte VIDEO _ wählen, um die Streaming-Minuten zu maximieren, oder eine PRICE Spalte, um den Umsatz zu maximieren.

Sie können die Amazon Personalize Personalize-Konsole, AWS Command Line Interface (AWS CLI) oder AWS SDKs verwenden. Informationen zur Verwendung der Amazon Personalize-Konsole finden Sie unterEine Lösung erstellen (Konsole).

Richtlinien und Anforderungen

Die objektiven Anforderungen lauten wie folgt:

  • Sie können nur eine Spalte für Ihr Ziel auswählen.

  • Die Spalte muss in Ihrem Schema einen numerischen Typ haben.

  • Die Spalte darf keinen null Typ in Ihrem Schema haben.

Weitere Informationen zu Schemas und Datentypen finden Sie unterJSONSchemadateien für Amazon Personalize Personalize-Schemas erstellen.

Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz

Es kann einen Kompromiss geben, wenn Sie Artikel empfehlen, die eher auf Ihrem Ziel als auf Ihrer Relevanz basieren. Wenn Sie beispielsweise den Umsatz durch Empfehlungen steigern möchten, könnten Empfehlungen, die nur teure Artikel enthalten, dazu führen, dass Artikel für Ihre Nutzer weniger relevant sind und die Nutzerbindung und die Konversionsrate sinken.

Um das Gleichgewicht zwischen Relevanz und Ihrem Ziel zu konfigurieren, wählen Sie bei der Erstellung der Lösung eine der folgenden Zielempfindlichkeitsstufen aus:

  • Aus: Amazon Personalize verwendet hauptsächlich Daten zu Artikelinteraktionen, um die relevantesten Artikel für Ihren Benutzer vorherzusagen.

  • Niedrig: Amazon Personalize legt weniger Wert auf Ihr Ziel. Die Relevanz anhand von Daten zu Artikelinteraktionen ist wichtiger.

  • Medium: Amazon Personalize legt gleichen Wert auf Ihr Ziel und Ihre Relevanz anhand von Artikelinteraktionsdaten.

  • Hoch: Amazon Personalize legt mehr Wert auf Ihr Ziel. Die Relevanz anhand von Daten zu Artikelinteraktionen ist weniger wichtig.

Messung der Optimierungsleistung

Wenn Sie eine Lösungsversion (ein Modell trainieren) für eine Lösung mit einem Optimierungsziel erstellen, generiert Amazon Personalize eine average_rewards_at_k Metrik. Die Punktzahl für average_rewards_at_k gibt an, wie gut die Lösungsversion bei der Erreichung Ihres Ziels abschneidet. Um diese Metrik zu berechnen, berechnet Amazon Personalize die Prämien für jeden Benutzer wie folgt:

rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations

Der Endwert average_rewards_at_k ist der Durchschnitt aller Werte, rewards_per_user normalisiert auf einen Dezimalwert kleiner oder gleich 1 und größer als 0. Je näher der Wert an 1 liegt, desto mehr Gewinne können Sie von Empfehlungen im Durchschnitt pro Benutzer erwarten.

Wenn Ihr Ziel beispielsweise darin besteht, den Umsatz aus Klicks zu maximieren, berechnet Amazon Personalize die einzelnen Benutzerwerte, indem der Gesamtumsatz, der durch die Artikel generiert wurde, auf die der Benutzer aus seinen 25 teuersten Empfehlungen geklickt hat, durch den Umsatz aller empfohlenen Artikel dividiert wird, auf die der Benutzer geklickt hat. Amazon Personalize gibt dann einen normalisierten Durchschnitt aller Benutzerbewertungen zurück. Je näher der average_rewards_at_k Wert an 1 liegt, desto mehr Umsatz können Sie im Durchschnitt pro Benutzer aus Empfehlungen erwarten.

Weitere Informationen zur Generierung von Metriken finden Sie unterEvaluierung einer Amazon Personalize Personalize-Lösungsversion mit Metriken.

Optimierung einer Lösung (AWS CLI)

Sie können die Optimierung für ein bestimmtes Ziel nur mit dem Rezept „Benutzerpersonalisierung“ oder „Personalisiertes Ranking“ durchführen. Um eine Lösung für ein zusätzliches Ziel mithilfe von zu optimieren AWS CLI, erstellen Sie eine neue Lösung und geben Sie Ihre Zieldetails mithilfe des Schlüssels im optimizationObjective Objekt an. solutionConfig Das optimizationObjective hat die folgenden Felder:

  • itemAttribute: Geben Sie den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz an, die sich auf Ihr Ziel bezieht.

  • objectiveSensitivity: Geben Sie an, wie viel Gewicht die Lösung bei der Generierung von Empfehlungen auf Ihr Ziel legt. Die Sensitivitätsstufe für Zielsetzungen legt fest, wie Amazon Personalize anhand von Artikelinteraktionsdaten ein Gleichgewicht zwischen Artikelempfehlung und Relevanz zwischen Artikelempfehlungen und deren Relevanz herstellt. Das objectiveSensitivity kann, oder sein. OFF LOW MEDIUM HIGH Weitere Informationen finden Sie unter Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz.

Im Folgenden finden Sie ein Beispiel für den create-solution AWS CLI -Befehl. Ersetzen Sie die recipe arn Werte solution namedataset group arn, und durch Ihre eigenen.

COLUMN_NAMEErsetzen Sie sie durch den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz, der sich auf Ihr Ziel bezieht. optimizationObjective Geben Sie für objectiveSensitivityOFF, LOWMEDIUM, oder anHIGH.

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn \ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME\",\"objectiveSensitivity\":\"MEDIUM\"}}"

Wenn Ihre Lösung fertig ist, erstellen Sie eine neue Lösungsversion (einen Beispielbefehl finden Sie unterEine Lösung erstellen ()AWS CLI). Sobald Sie eine Lösungsversion erstellt haben, können Sie die Optimierungsleistung anhand der Metriken zur Lösungsversion anzeigen. Siehe Messung der Optimierungsleistung.

Optimierung einer Lösung (AWS SDKs)

Sie können die Optimierung für ein bestimmtes Ziel nur mit dem Rezept „Benutzerpersonalisierung“ oder „Personalisiertes Ranking“ durchführen.

Um mithilfe von eine Lösung für ein zusätzliches Ziel zu optimieren AWS SDKs, erstellen Sie eine neue Lösung und geben Sie Ihre Zieldetails anhand des optimizationObjective Schlüssels im Objekt für die Lösung an. solutionConfig Das optimizationObjective hat die folgenden Felder:

  • itemAttribute: Geben Sie den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz der Datensatzgruppe an, die sich auf Ihr Ziel bezieht.

  • objectiveSensitivity: Geben Sie an, wie viel Gewicht die Lösung bei der Generierung von Empfehlungen auf Ihr Ziel legt. Die Sensitivitätsstufe für Zielsetzungen legt fest, wie Amazon Personalize anhand von Artikelinteraktionsdaten ein Gleichgewicht zwischen Artikelempfehlung und Relevanz zwischen Artikelempfehlungen und deren Relevanz herstellt. Das objectiveSensitivity kann, oder sein. OFF LOW MEDIUM HIGH Weitere Informationen finden Sie unter Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz.

Verwenden Sie den folgenden Code, um eine Lösung mit einem zusätzlichen Ziel mit dem AWS SDK for Python (Boto3) oder dem zu erstellen AWS SDK for Java 2.x.

Wenn Ihre Lösung fertig ist, erstellen Sie eine neue Lösungsversion (Beispielcode finden Sie unterEine Lösungsversion erstellen ()AWS SDKs). Sobald Sie eine Lösungsversion erstellt haben, können Sie sich die Optimierungsleistung anhand der Metriken zur Lösungsversion ansehen. Siehe Messung der Optimierungsleistung.

SDK for Python (Boto3)

Verwenden Sie die folgende create_solution Methode, um eine Lösung zu erstellen, die für ein zusätzliches Ziel optimiert ist. Ersetzen Sie die recipe arn Werte solution namedataset group arn, und durch Ihre eigenen.

COLUMN_NAMEErsetzen Sie sie durch den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz, der sich auf Ihr Ziel bezieht. optimizationObjective Geben Sie für objectiveSensitivityOFF, LOWMEDIUM, oder anHIGH.

import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name= 'solution name', recipeArn = 'recipe arn', datasetGroupArn = 'dataset group arn', solutionConfig = { "optimizationObjective": { "itemAttribute": "COLUMN_NAME", "objectiveSensitivity": "MEDIUM" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x

Um eine Lösung zu erstellen, die für ein zusätzliches Ziel optimiert ist, verwenden Sie die folgende createPersonalizeSolution Methode und übergeben Sie Folgendes als Parameter: einen Amazon Personalize Personalize-Service-Client, den Amazon-Ressourcennamen (ARN) der Datensatzgruppe, einen Lösungsnamen, das RezeptARN, das Artikelattribut und die Zielsensitivitätsstufe.

public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn, String itemAttribute, String objectiveSensitivity) { try { OptimizationObjective optimizationObjective = OptimizationObjective.builder() .itemAttribute(itemAttribute) .objectiveSensitivity(objectiveSensitivity) .build(); SolutionConfig solutionConfig = SolutionConfig.builder() .optimizationObjective(optimizationObjective) .build(); CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .solutionConfig(solutionConfig) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "";
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateSolutionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create the personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION"}); // set the solution parameters. export const createSolutionParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ recipeArn: 'RECIPE_ARN', /* required */ name: 'NAME', /* required */ solutionConfig: { optimizationObjective: { itemAttribute: "COLUMN_NAME", /* specify the numerical column from the Items dataset related to your objective */ objectiveSensitivity: "MEDIUM" /* specify OFF, LOW, MEDIUM, or HIGH */ } } }; export const run = async () => { try { const response = await personalizeClient.send(new CreateSolutionCommand(createSolutionParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Beispiel für ein Jupyter-Notizbuch

Ein Beispiel für ein Jupyter-Notizbuch, das zeigt, wie eine Lösung erstellt wird, die für zusätzliche objektive Elementmetadaten optimiert ist, finden Sie im Ordner objective_optimization des Amazon Personalize Personalize-Beispiel-Repositorys GitHub