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.
Rezept für Benutzerpersonalisierung
Wichtig
Wir empfehlen die Verwendung des Rezepts User-Personalization-v2. Es kann bis zu 5 Millionen Elemente mit schnellerem Training berücksichtigen und relevantere Empfehlungen mit geringerer Latenz generieren.
Das Rezept für User-Personalization (aws-user-personalization) ist für alle Szenarien mit personalisierten Empfehlungen optimiert. Es prognostiziert die Elemente, mit denen ein Benutzer am wahrscheinlichsten interagieren wird. Sie können die Benutzerpersonalisierung verwenden, um personalisierte Filmempfehlungen für eine Streaming-App oder personalisierte Produktempfehlungen für eine Einzelhandels-App zu generieren.
Mit der Benutzerpersonalisierung generiert Amazon Personalize Empfehlungen, die hauptsächlich auf Daten zur Interaktion mit Benutzerartikeln in einem Datensatz mit Artikelinteraktionen basieren. Es kann auch beliebige Artikel- und Benutzermetadaten in Ihren Datensätzen „Artikel“ und „Benutzer“ verwenden. Weitere Informationen zu den verwendeten Daten finden Sie unterErforderliche und optionale Datensätze.
Themen
- Merkmale des Rezepts
- Erforderliche und optionale Datensätze
- Eigenschaften und Hyperparameter
- Schulung mit dem Rezept für Benutzerpersonalisierung (Konsole)
- Training mit dem Rezept für Benutzerpersonalisierung (Python) SDK
- Empfehlungen abrufen und Eindrücke aufzeichnen (SDKfür Python (Boto3))
- Beispiel für ein Jupyter-Notizbuch
Merkmale des Rezepts
Die Benutzerpersonalisierung verwendet bei der Generierung von Artikelempfehlungen die folgenden Rezeptfunktionen von Amazon Personalize:
-
Personalisierung in Echtzeit — Mit der Personalisierung in Echtzeit aktualisiert Amazon Personalize die Artikelempfehlungen und passt sie an das sich entwickelnde Interesse eines Benutzers an. Weitere Informationen finden Sie unter Personalisierung in Echtzeit.
-
Erkundung — Bei der Erkundung schließen Empfehlungen neue Artikel oder Artikel mit weniger Interaktionsdaten ein. Dies verbessert die Auffindbarkeit und das Kundeninteresse, wenn Sie einen sich schnell ändernden Katalog haben oder wenn neue Artikel, wie Nachrichtenartikel oder Werbeaktionen, für Nutzer relevanter sind, wenn sie frisch sind. Weitere Informationen zur Erkundung finden Sie unterExploration (Erkundung).
-
Automatische Updates — Bei automatischen Updates aktualisiert Amazon Personalize automatisch alle zwei Stunden das neueste Modell (Lösungsversion), um neue Artikel für Empfehlungen zu berücksichtigen. Weitere Informationen finden Sie unter Automatische Updates.
Erforderliche und optionale Datensätze
Um die Benutzerpersonalisierung verwenden zu können, müssen Sie einen Datensatz mit Artikelinteraktionen erstellen und mindestens 1000 Artikelinteraktionen importieren. Amazon Personalize generiert Empfehlungen hauptsächlich auf der Grundlage von Artikelinteraktionsdaten.
Mit der Benutzerpersonalisierung kann Amazon Personalize Artikelinteraktionsdaten verwenden, die Folgendes beinhalten:
-
Daten zu Ereignistyp und Ereigniswert — Amazon Personalize verwendet Ereignistypdaten wie Klick- oder Beobachtungsereignisse, um anhand von Verhaltensmustern die Absicht und das Interesse von Benutzern zu ermitteln. Außerdem können Sie Daten zu Ereignistypen und Ereigniswerten verwenden, um Datensätze vor dem Training zu filtern. Weitere Informationen finden Sie unter Daten zu Ereignistyp und Ereigniswert.
-
Kontextuelle Metadaten — Bei kontextuellen Metadaten handelt es sich um Interaktionsdaten, die Sie zum Zeitpunkt eines Ereignisses in der Umgebung des Benutzers sammeln, z. B. dessen Standort oder Gerätetyp. Weitere Informationen finden Sie unter Kontextuelle Metadaten.
-
Impressionsdaten — Impressionen sind Listen von Elementen, die für einen Nutzer sichtbar waren, wenn er mit einem bestimmten Objekt interagiert hat (angeklickt, angesehen, gekauft usw.). Weitere Informationen finden Sie unter Daten zu Eindrücken.
Die folgenden Datensätze sind optional und können die Empfehlungen verbessern:
-
Benutzerdatensatz — Amazon Personalize kann Daten in Ihrem Benutzerdatensatz verwenden, um Ihre Benutzer und deren Interessen besser zu verstehen. Sie können auch Daten in einem Benutzerdatensatz verwenden, um Empfehlungen zu filtern. Informationen zu den Benutzerdaten, die Sie importieren können, finden Sie unterBenutzer-Metadaten.
-
Artikeldatensatz — Amazon Personalize kann Daten in Ihrem Artikeldatensatz verwenden, um Zusammenhänge und Verhaltensmuster zu identifizieren. Dies hilft Amazon Personalize, Ihre Benutzer und deren Interessen zu verstehen. Sie können auch Daten in einem Artikeldatensatz verwenden, um Empfehlungen zu filtern. Informationen zu den Artikeldaten, die Sie importieren können, finden Sie unterArtikel-Metadaten.
Eigenschaften und Hyperparameter
Das Rezept für die Benutzerpersonalisierung hat die folgenden Eigenschaften:
-
Name (Name –
aws-user-personalization
-
Rezept Amazon-Ressourcenname (ARN) —
arn:aws:personalize:::recipe/aws-user-personalization
-
Algorithmus ARN —
arn:aws:personalize:::algorithm/aws-user-personalization
Weitere Informationen finden Sie unter Ein Rezept wählen.
In der folgenden Tabelle werden die Hyperparameter für das Rezept für die Benutzerpersonalisierung beschrieben. Ein Hyperparameter ist ein Algorithmusparameter, den Sie anpassen können, um die Modellleistung zu verbessern. Algorithmus-Hyperparameter steuern die Leistung des Modells. Hyperparameter zur Entwicklung von Funktionen steuern, wie die Daten für die Schulung gefiltert werden. Der Prozess der Auswahl des besten Werts für einen Hyperparameter wird als Hyperparameter-Optimierung () bezeichnet. HPO Weitere Informationen finden Sie unter Hyperparameter und HPO.
Die Tabelle enthält die folgenden Informationen für jeden Hyperparameter:
-
Bereich: [Untergrenze, Obergrenze]
-
Werttyp: Ganzzahl, kontinuierlich (float), kategorisch (boolean, Liste, Zeichenfolge)
-
HPOabstimmbar: Kann der Parameter daran teilnehmen? HPO
Name | Beschreibung |
---|---|
Hyperparameter des Algorithmus | |
hidden_dimension |
Anzahl der ausgeblendeten Variablen im Modell. Ausgeblendete Variablen erstellen die Kaufhistorie und Elementstatistiken der Benutzer neu, um die Rangfolge zu generieren. Geben Sie eine größere Anzahl ausgeblendeter Dimensionen an, wenn Ihr Datensatz für Artikelinteraktionen kompliziertere Muster enthält. Je mehr ausgeblendete Dimensionen verwendet werden, desto größer muss das Dataset sein und desto länger dauert die Verarbeitung. Um sich für den besten Wert zu entscheiden, verwenden SieHPO. Um zu verwendenHPO, legen Sie fest Standardwert Bereich: [32, 256] Werttyp: Ganzzahl HPOabstimmbar: Ja |
bptt |
Legt fest, ob die Technik „Backpropagation über Zeit“ verwendet werden soll. DieBackpropagation über Zeit ist eine Technik, die Gewichtungen in wiederkehrenden neuronalen netzwerkbasierten Algorithmen aktualisiert. Verwenden Sie Standardwert: 32 Bereich: [2, 32] Werttyp: Ganzzahl HPOabstimmbar: Ja |
recency_mask |
Legt fest, ob das Modell die neuesten Beliebtheitstrends im Datensatz Artikelinteraktionen berücksichtigen soll. Neueste Beliebtheitstrends können plötzliche Änderungen in den zugrunde liegenden Mustern von Interaktionsereignissen umfassen. Um ein Modell zu schulen, das aktuelle Ereignisse stärker gewichtet, legen Sie Standardwert: Bereich: Werttyp: Boolescher Wert HPOabstimmbar: Ja |
Hyperparameter zur Featureinstellung | |
min_user_history_length_percentile |
Das Mindestperzentil der Benutzerhistorienlängen, das in die Modellschulung einbezogen werden muss. Historienlänge ist die Gesamtmenge der Daten zu einem Benutzer. Verwenden Sie Wenn Sie beispielsweise Standardwert: 0.0 Bereich: [0,0, 1,0]. Werttyp: Gleitkommazahl HPOabstimmbar: Nein |
max_user_history_length_percentile |
Das maximale Perzentil der Benutzerhistorienlänge, das in die Modellschulung einbezogen werden kann. Historienlänge ist die Gesamtmenge der Daten zu einem Benutzer. Verwenden Sie Wenn Sie beispielsweise Standardwert: 0.99 Bereich: [0,0, 1,0]. Werttyp: Gleitkommazahl HPOabstimmbar: Nein |
Hyperparameter für die Konfiguration der Kampagne zur Erkundung von Objekten | |
exploration_weight |
Legt fest, wie häufig Empfehlungen Artikel mit weniger Daten oder Relevanz zur Artikelinteraktion enthalten. Je näher der Wert an 1,0 liegt, desto mehr Erkundungen werden durchgeführt. Bei einem Wert von Null findet keine Erkundung statt und die Empfehlungen basieren auf aktuellen Daten (Relevanz). Weitere Informationen finden Sie unter CampaignConfig. Standardwert: 0.3 Bereich: [0,0, 1,0]. Werttyp: Gleitkommazahl HPOabstimmbar: Nein |
exploration_item_age_cut_off |
Geben Sie das maximale Artikelalter in Tagen seit der letzten Interaktion für alle Artikel im Datensatz Artikelinteraktionen an. Dies definiert den Umfang der Artikelsuche auf der Grundlage des Artikelalters. Amazon Personalize bestimmt das Alter eines Artikels anhand seines Erstellungszeitstempels oder, falls Daten zum Erstellungszeitstempel fehlen, anhand der Artikelinteraktionsdaten. Weitere Informationen darüber, wie Amazon Personalize das Alter eines Artikels bestimmt, finden Sie unterZeitstempeldaten der Erstellung. Um die Anzahl der Artikel zu erhöhen, die Amazon Personalize bei der Suche berücksichtigt, geben Sie einen höheren Wert ein. Das Minimum ist 1 Tag und die Standardeinstellung ist 30 Tage. Die Empfehlungen können Artikel enthalten, die älter sind als das von Ihnen angegebene Mindestalter für Artikel. Dies liegt daran, dass diese Artikel für den Benutzer relevant sind und sie bei der Erkundung nicht identifiziert wurden. Standardwert: 30.0 Bereich: Positive Gleitkommazahlen Werttyp: Gleitkommazahl HPOabstimmbar: Nein |
Schulung mit dem Rezept für Benutzerpersonalisierung (Konsole)
Um das Rezept für Benutzerpersonalisierung zur Generierung von Empfehlungen in der Konsole zu verwenden, trainieren Sie zunächst eine neue Lösungsversion anhand des Rezepts. Stellen Sie dann eine Kampagne mit der Lösungsversion bereit und verwenden Sie die Kampagne, um Empfehlungen zu erhalten.
Schulung einer neuen Lösungsversion mit dem Rezept für Benutzerpersonalisierung (Konsole)
-
Öffnen Sie zu https://console.aws.amazon.com/personalize/Hause
die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an. -
Erstellen Sie eine benutzerdefinierte Datensatzgruppe mit einem neuen Schema und laden Sie Ihren Datensatz mit Impressionsdaten hoch. Fügen Sie optional CREATION_ TIMESTAMP und Unstrukturierte Textmetadaten Daten in Ihren Artikeldatensatz ein, damit Amazon Personalize das Alter eines Artikels genauer berechnen und kalte Artikel identifizieren kann.
Weitere Informationen zum Importieren von Daten finden Sie unterTrainingsdaten in Amazon Personalize Personalize-Datensätze importieren.
-
Wählen Sie auf der Seite Datensatzgruppen die neue Datensatzgruppe aus, die den Datensatz oder die Datensätze mit Impressionsdaten enthält.
-
Wählen Sie im Navigationsbereich Lösungen und Rezepte und anschließend Lösung erstellen aus.
-
Geben Sie auf der Seite Lösung erstellen als Lösungsnamen den Namen Ihrer neuen Lösung ein.
-
Wählen Sie als Lösungstyp die Option Artikelempfehlung aus, um Artikelempfehlungen für Ihre Benutzer zu erhalten.
-
Wählen Sie für Rezept die Option aws-user-personalization. Der Abschnitt Lösungskonfiguration wird angezeigt und bietet mehrere Konfigurationsoptionen.
-
Wenn Ihr Datensatz mit Artikelinteraktionen die Spalten EVENT _ TYPE oder beide VALUE Spalten _ TYPE und EVENT EVENT _ enthält, können Sie in der Konfiguration „Zusätzliche Konfiguration“ optional die Felder „Ereignistyp“ und „Schwellenwert für Ereignisse“ verwenden, um die Artikelinteraktionsdaten auszuwählen, die Amazon Personalize beim Trainieren des Modells verwendet. Weitere Informationen finden Sie unter Auswahl der für das Training verwendeten Artikelinteraktionsdaten.
-
Konfigurieren Sie optional Hyperparameter für Ihre Lösung. Eine Liste der Rezepteigenschaften und Hyperparameter für die Benutzerpersonalisierung finden Sie unter. Eigenschaften und Hyperparameter
-
Wählen Sie Lösung erstellen und trainieren, um mit dem Training zu beginnen. Die Dashboard-Seite wird angezeigt.
Sie können zur Seite mit den Lösungsdetails navigieren, um den Trainingsfortschritt im Abschnitt Lösungsversionen zu verfolgen. Wenn die Schulung abgeschlossen ist, lautet der Status Aktiv.
Eine Kampagne erstellen und Empfehlungen erhalten (Konsole)
Wenn der Status Ihrer Lösungsversion Aktiv lautet, sind Sie bereit, Ihre Kampagne zu erstellen und Empfehlungen wie folgt zu erhalten:
-
Wählen Sie entweder auf der Seite mit den Lösungsdetails oder der Seite Kampagnen die Option Neue Kampagne erstellen aus.
-
Geben Sie auf der Seite Neue Kampagne erstellen unter Kampagnendetails die folgenden Informationen ein:
-
Kampagnenname: Geben Sie den Namen der Kampagne ein. Der Text, den Sie hier eingeben, wird im Kampagnen-Dashboard und auf der Detailseite angezeigt.
-
Lösung: Wählen Sie die Lösung aus, die Sie gerade erstellt haben.
-
Lösungsversions-ID: Wählen Sie die ID der Lösungsversion, die Sie gerade erstellt haben.
-
Minimale bereitgestellte Transaktionen pro Sekunde: Legen Sie die Mindestanzahl bereitgestellter Transaktionen pro Sekunde fest, die Amazon Personalize unterstützt. Weitere Informationen finden Sie unter dem Vorgang CreateCampaign.
-
-
Geben Sie für die Campaign-Konfiguration die folgenden Informationen an:
-
Gewichtung der Erkundung: Legen Sie fest, wie viel untersucht werden soll, wobei die Empfehlungen auch Elemente mit weniger Daten zur Interaktion mit Objekten oder Relevanz enthalten, je mehr Erkundungen Sie angeben. Je näher der Wert an 1 liegt, desto mehr Erkundungen werden durchgeführt. Bei einem Wert von Null findet keine Untersuchung statt und die Empfehlungen basieren auf aktuellen Daten (Relevanz).
-
Mindestalter für das Explorationselement: Geben Sie das maximale Alter des Elements in Tagen seit der letzten Interaktion ein, um den Umfang der Artikelerkundung zu definieren. Um die Anzahl der Artikel zu erhöhen, die Amazon Personalize bei der Erkundung berücksichtigt, geben Sie einen höheren Wert ein.
Wenn Sie beispielsweise 10 eingeben, werden bei der Erkundung nur Artikel mit Artikelinteraktionsdaten aus den 10 Tagen seit der letzten Interaktion im Datensatz berücksichtigt.
Anmerkung
Zu den Empfehlungen können Artikel ohne Artikelinteraktionsdaten von außerhalb dieses Zeitraums gehören. Dies liegt daran, dass diese Elemente für die Interessen des Benutzers relevant sind und keine Untersuchung erforderlich war, um sie zu identifizieren.
-
-
Wählen Sie Create campaign (Kampagne erstellen).
-
Wenn der Kampagnenstatus auf der Seite mit den Kampagnendetails Aktiv lautet, können Sie die Kampagne verwenden, um Empfehlungen zu erhalten und Impressionen aufzuzeichnen. Weitere Informationen finden Sie Schritt 5: Empfehlungen einholen unter „Erste Schritte“.
Amazon Personalize aktualisiert Ihre neueste Lösungsversion automatisch alle zwei Stunden, um neue Daten aufzunehmen. Ihre Kampagne verwendet automatisch die aktualisierte Lösungsversion. Weitere Informationen finden Sie unter Automatische Updates.
Um die Kampagne manuell zu aktualisieren, erstellen und trainieren Sie zunächst mithilfe der Konsole oder der CreateSolutionVersion Operation eine neue Lösungsversion mit der
trainingMode
Einstellung aufupdate
. Anschließend aktualisieren Sie die Kampagne manuell auf der Kampagnenseite der Konsole oder mithilfe des UpdateCampaign Vorgangs.Anmerkung
Amazon Personalize aktualisiert Lösungsversionen, die Sie vor dem 17. November 2020 erstellt haben, nicht automatisch.
Training mit dem Rezept für Benutzerpersonalisierung (Python) SDK
Wenn Sie eine Datensatzgruppe erstellt und Ihre Datensätze mit Impressionsdaten hochgeladen haben, können Sie eine Lösung mit dem Rezept für Benutzerpersonalisierung trainieren. Fügen Sie optional CREATION_ TIMESTAMP und Unstrukturierte Textmetadaten Daten in Ihren Artikeldatensatz ein, damit Amazon Personalize das Alter eines Artikels genauer berechnen und kalte Artikel identifizieren kann. Weitere Informationen zum Erstellen von Datensatzgruppen und zum Hochladen von Trainingsdaten finden Sie unter. JSONSchemadateien für Amazon Personalize Personalize-Schemas erstellen
Um eine Lösung mit dem Rezept für Benutzerpersonalisierung zu trainieren, verwenden Sie AWS SDK
-
Erstellen Sie eine neue Lösung mit der
create_solution
Methode.solution name
Ersetzen Sie es durch Ihren Lösungsnamen unddataset group arn
durch den Amazon-Ressourcennamen (ARN) Ihrer Datensatzgruppe.import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution(name = '
solution name
', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', datasetGroupArn = 'dataset group arn
', ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)Eine Liste der aws-user-personalization Rezepteigenschaften und Hyperparameter finden Sie unterEigenschaften und Hyperparameter.
-
Erstellen Sie eine neue Lösungsversion mit den aktualisierten Trainingsdaten und stellen Sie
trainingMode
dieFULL
Verwendung des folgenden Codeausschnitts ein. Ersetzen Sie diesolution arn
durch die ARN Ihrer Lösung.import boto3 personalize = boto3.client('personalize') create_solution_version_response = personalize.create_solution_version(solutionArn = '
solution arn
', trainingMode='FULL') new_solution_version_arn = create_solution_version_response['solutionVersionArn'] print('solution_version_arn:', new_solution_version_arn) -
Wenn Amazon Personalize mit der Erstellung Ihrer Lösungsversion fertig ist, erstellen Sie Ihre Kampagne mit den folgenden Parametern:
-
Geben Sie eine neue
campaign name
und die in Schritt 2solution version arn
generierte Datei ein. -
Ändern Sie den Hyperparameter für die Konfiguration der
explorationWeight
Elementerkundung, um zu konfigurieren, wie viel untersucht werden soll. Artikel mit weniger Daten zur Artikelinteraktion oder Relevanz werden häufiger empfohlen, je näher der Wert an 1,0 liegt. Der Standardwert ist 0,3. -
Ändern Sie den Hyperparameter-Parameter für die Konfiguration der
explorationItemAgeCutOff
Elementerkundung, um die maximale Dauer in Tagen im Verhältnis zur letzten Interaktion anzugeben, für die Elemente untersucht werden sollen. Je größer der Wert, desto mehr Elemente werden bei der Untersuchung berücksichtigt.
Verwenden Sie den folgenden Python-Snippet, um eine neue Kampagne zu erstellen, bei der der Schwerpunkt auf der Erkundung liegt und der Explorationszeitraum bei 30 Tagen liegt. Das Erstellen einer Kampagne dauert in der Regel einige Minuten, kann aber auch über eine Stunde dauern.
import boto3 personalize = boto3.client('personalize') create_campaign_response = personalize.create_campaign( name = '
campaign name
', solutionVersionArn = 'solution version arn
', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3
", "explorationItemAgeCutOff": "30
"}} ) campaign_arn = create_campaign_response['campaignArn'] print('campaign_arn:', campaign_arn)Mit der Benutzerpersonalisierung aktualisiert Amazon Personalize Ihre Lösungsversion automatisch alle zwei Stunden, um neue Daten aufzunehmen. Ihre Kampagne verwendet automatisch die aktualisierte Lösungsversion. Weitere Informationen finden Sie unter Automatische Updates.
Um die Kampagne manuell zu aktualisieren, erstellen und trainieren Sie zunächst mithilfe der Konsole oder der CreateSolutionVersion Operation eine neue Lösungsversion mit der
trainingMode
Einstellung aufupdate
. Anschließend aktualisieren Sie die Kampagne manuell auf der Kampagnenseite der Konsole oder mithilfe des UpdateCampaign Vorgangs.Anmerkung
Amazon Personalize aktualisiert Lösungsversionen, die Sie vor dem 17. November 2020 erstellt haben, nicht automatisch.
-
Empfehlungen abrufen und Eindrücke aufzeichnen (SDKfür Python (Boto3))
Wenn Ihre Kampagne erstellt ist, können Sie sie verwenden, um Empfehlungen für einen Benutzer zu erhalten und Impressionen aufzuzeichnen. Informationen zum Abrufen von Batch-Empfehlungen finden Sie unter AWS SDKssieheEinen Batch-Inferenzjob erstellen ()AWS SDKs.
Um Empfehlungen zu erhalten und Eindrücke festzuhalten
-
Rufen Sie die
get_recommendations
-Methode auf. Ändern Sie dascampaign arn
zu ARN Ihrer neuen Kampagne unduser id
zu dem userId des Benutzers.import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = '
campaign arn
', userId = 'user id
') print(rec_response['recommendationId']) -
Erstellen Sie einen neuen Event-Tracker zum Senden von PutEvents Anfragen.
event tracker name
Ersetzen Sie ihn durch den Namen Ihres Event-Trackers unddataset group arn
durch den Namen ARN Ihrer Datensatzgruppe.import boto3 personalize = boto3.client('personalize') event_tracker_response = personalize.create_event_tracker( name = '
event tracker name
', datasetGroupArn = 'dataset group arn
' ) event_tracker_arn = event_tracker_response['eventTrackerArn'] event_tracking_id = event_tracker_response['trackingId'] print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id)) -
Verwenden Sie die
recommendationId
Anweisungen von Schritt 1 undevent tracking id
von Schritt 2, um eine neuePutEvents
Anfrage zu erstellen. Diese Anfrage protokolliert die neuen Impressionsdaten aus der Benutzersitzung. Ändern Sieuser id
das in die ID des Benutzers.import boto3 personalize_events.put_events( trackingId = '
event tracking id
', userId= 'user id
', sessionId = '1', eventList = [{ 'sentAt': datetime.now().timestamp(), 'eventType' : 'click', 'itemId' : rec_response['itemList'][0]['itemId'], 'recommendationId': rec_response['recommendationId
'], 'impression': [item['itemId'] for item in rec_response['itemList']], }] )