

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
<a name="optimizing-solution-for-objective"></a>

**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](updating-solution.md) automatische Training deaktiviert wird. Informationen zu den Schulungskosten finden Sie unter [Amazon Personalize Personalize-Preise](https://aws.amazon.com/personalize/pricing/).

 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 VIDEO\$1LENGTH-Spalte 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 unter[Eine Lösung erstellen (Konsole)](create-solution.md#configure-solution-console). 

**Topics**
+ [Richtlinien und Anforderungen](#optimize-objective-guidelines-req)
+ [Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz](#balancing-objective-emphasis)
+ [Messung der Optimierungsleistung](#measuring-performance)
+ [Optimierung einer Lösung (AWS CLI)](#optimizing-solution-cli)
+ [Optimierung einer Lösung (AWS SDKs)](#optimizing-solution-sdk)
+ [Beispiel für ein Jupyter-Notizbuch](#optimization-objective-sample-notebooks)

## Richtlinien und Anforderungen
<a name="optimize-objective-guidelines-req"></a>

 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 unter[JSON-Schema-Dateien für Amazon Personalize Personalize-Schemas erstellen](how-it-works-dataset-schema.md).

## Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz
<a name="balancing-objective-emphasis"></a>

 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 Sensitivitätsstufen für Zielsetzungen 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
<a name="measuring-performance"></a>

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 unter[Evaluierung einer Amazon Personalize Personalize-Lösungsversion mit Metriken](working-with-training-metrics.md).

## Optimierung einer Lösung (AWS CLI)
<a name="optimizing-solution-cli"></a>

 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. `objectiveSensitivity`Sie kann, NIEDRIG oder`OFF`, sein. `MEDIUM` `HIGH` Weitere Informationen finden Sie unter [Ein ausgewogenes Verhältnis zwischen objektiver Betonung und Relevanz](#balancing-objective-emphasis). 

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

`COLUMN_NAME`Ersetzen Sie sie durch den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz, der sich auf Ihr Ziel bezieht. `optimizationObjective` Geben Sie für `objectiveSensitivity` AUS, NIEDRIG, MITTEL oder HOCH ein.

```
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 unter[Eine Lösung erstellen ()AWS CLI](create-solution.md#configure-solution-cli)). Sobald Sie eine Lösungsversion erstellt haben, können Sie die Optimierungsleistung anhand der Metriken zur Lösungsversion anzeigen. Siehe [Messung der Optimierungsleistung](#measuring-performance).

## Optimierung einer Lösung (AWS SDKs)
<a name="optimizing-solution-sdk"></a>

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](#balancing-objective-emphasis).

Verwenden Sie den folgenden Code, um eine Lösung mit einem zusätzlichen Ziel mit dem AWS SDK für 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 unter[Eine Lösungsversion erstellen ()AWS SDKs](creating-a-solution-version.md#create-solution-version-sdk)). Sobald Sie eine Lösungsversion erstellt haben, können Sie sich die Optimierungsleistung anhand der Metriken zur Lösungsversion ansehen. Siehe [Messung der Optimierungsleistung](#measuring-performance).

------
#### [ 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 name``dataset group arn`, und durch Ihre eigenen. 

`COLUMN_NAME`Ersetzen Sie sie durch den Namen der numerischen Metadatenspalte aus dem Artikeldatensatz, der sich auf Ihr Ziel bezieht. `optimizationObjective` Geben Sie für `objectiveSensitivity` AUS, NIEDRIG, MITTEL oder HOCH ein.

```
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, den Rezept-ARN, 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
<a name="optimization-objective-sample-notebooks"></a>

[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\$1optimization](https://github.com/aws-samples/amazon-personalize-samples/tree/master/next_steps/core_use_cases/objective_optimization) des Amazon Personalize Personalize-Beispiel-Repositorys](https://github.com/aws-samples/amazon-personalize-samples) GitHub 