Meet de zakelijke impact van Amazon Personalize Recommendations

Meet de zakelijke impact van Amazon Personalize Recommendations

Bronknooppunt: 1958091

We zijn verheugd om dat aan te kondigen Amazon personaliseren laat je nu meet hoe uw gepersonaliseerde aanbevelingen u kunnen helpen uw zakelijke doelen te bereiken. Nadat u de statistieken hebt opgegeven die u wilt bijhouden, kunt u bepalen welke campagnes en aanbevelers de meeste impact hebben en krijgt u inzicht in de impact van aanbevelingen op uw bedrijfsstatistieken.

Alle klanten willen de statistiek bijhouden die het belangrijkst is voor hun bedrijf. Een applicatie voor online winkelen kan bijvoorbeeld twee statistieken willen bijhouden: de klikfrequentie (CTR) voor aanbevelingen en het totale aantal aankopen. Een video-on-demand-platform met carrousels met verschillende aanbevelingen die aanbevelingen doen, wil misschien de CTR of kijkduur vergelijken. U kunt ook de totale omzet of marge van een bepaald evenementtype controleren, bijvoorbeeld wanneer een gebruiker een artikel koopt. Met deze nieuwe mogelijkheid kun je de impact meten van Amazon Personalize-campagnes en -aanbevelers, evenals interacties die worden gegenereerd door oplossingen van derden.

In dit bericht laten we zien hoe u uw statistieken kunt bijhouden en de impact van uw Personalize-aanbevelingen in een gebruiksscenario voor e-commerce kunt evalueren.

Overzicht oplossingen

Voorheen moest u, om het effect van gepersonaliseerde aanbevelingen te begrijpen, workflows handmatig orkestreren om bedrijfsmetrische gegevens vast te leggen en deze vervolgens in zinvolle weergaven presenteren om vergelijkingen te maken. Nu heeft Amazon Personalize deze operationele overhead geรซlimineerd door u in staat te stellen de statistieken die u wilt volgen te definiรซren en te bewaken. Amazon Personalize kan prestatiegegevens verzenden naar Amazon Cloud Watch voor visualisatie en monitoring, of als alternatief in een Eenvoudige opslagservice van Amazon (Amazon S3) bucket waar u toegang heeft tot statistieken en deze kunt integreren in andere business intelligence-tools. Hierdoor kunt u effectief meten hoe gebeurtenissen en aanbevelingen de bedrijfsdoelstellingen beรฏnvloeden, en kunt u de uitkomst observeren van elke gebeurtenis die u wilt monitoren.

Om de impact van aanbevelingen te meten, definieert u een 'metrische attributie', een lijst met gebeurtenistypen waarover u wilt rapporteren met behulp van de Amazon Personalize-console of API's. Voor elk gebeurtenistype definieert u eenvoudig de metriek en functie die u wilt berekenen (som of steekproeftelling), en Amazon Personalize voert de berekening uit en stuurt de gegenereerde rapporten naar CloudWatch of Amazon S3.

Het volgende diagram laat zien hoe u statistieken van een enkele aanbeveling of campagne kunt bijhouden:

Afbeelding 1. Functieoverzicht: De interactiedataset wordt gebruikt om een โ€‹โ€‹aanbeveling of campagne te trainen. Wanneer gebruikers vervolgens interactie hebben met aanbevolen items, worden deze interacties naar Amazon Personalize verzonden en toegeschreven aan de bijbehorende aanbeveling of campagne. Vervolgens worden deze statistieken geรซxporteerd naar Amazon S3 en CloudWatch, zodat u ze kunt volgen en de statistieken van elke aanbeveling of campagne kunt vergelijken.

Met metrische attributies kunt u ook een eventAttributionSource, voor elke interactie, die het scenario specificeert dat de gebruiker doormaakte toen ze interactie hadden met een item. Het volgende diagram laat zien hoe je statistieken van twee verschillende adviseurs kunt volgen met behulp van de Amazon Personalize metric attributie.

Figuur 2. Meten van de zakelijke impact van aanbevelingen in twee scenario's: De interactiedataset wordt gebruikt om twee adviseurs of campagnes te trainen, in dit geval aangeduid als "Blauw" en "Oranje". Wanneer gebruikers vervolgens interactie hebben met de aanbevolen items, worden deze interacties verzonden naar Amazon Personalize en toegeschreven aan de bijbehorende aanbeveling, campagne of scenario waaraan de gebruiker werd blootgesteld toen ze interactie hadden met het item. Vervolgens worden deze statistieken geรซxporteerd naar Amazon S3 en CloudWatch, zodat u ze kunt volgen en de statistieken van elke aanbeveling of campagne kunt vergelijken.

In dit voorbeeld doorlopen we het proces van het definiรซren van metrische attributies voor uw interactiegegevens in Amazon Personalize. Eerst importeert u uw gegevens en maakt u twee attributiestatistieken om de zakelijke impact van de aanbevelingen te meten. Vervolgens maakt u twee retailaanbevelers - het is hetzelfde proces als u een aangepaste aanbevelingsoplossing gebruikt - en verzendt u gebeurtenissen om bij te houden met behulp van de statistieken. Om aan de slag te gaan, hebt u alleen de interactiedataset nodig. Aangezien een van de statistieken die we in dit voorbeeld bijhouden echter marge is, laten we u ook zien hoe u de gegevensset met items importeert. Een codevoorbeeld voor deze use case is beschikbaar op GitHub.

Voorwaarden

U kunt de AWS-console gebruiken of ondersteund APIs om aanbevelingen te maken met Amazon Personalize, bijvoorbeeld met behulp van de AWS-opdrachtregelinterface or AWS SDK voor Python.

Om de impact van aanbevelingen te berekenen en te rapporteren, moet u eerst enkele AWS-bronnen instellen.

U moet een AWS identiteits- en toegangsbeheer (IAM) rol die Amazon Personalize op zich zal nemen met een relevant rolbeleidsdocument. U moet ook beleid toevoegen om Amazon Personalize toegang te geven tot gegevens uit een S3-bucket en om gegevens naar CloudWatch te verzenden. Voor meer informatie, zie Amazon Personalize toegang geven tot uw Amazon S3-bucket en Amazon Personalize toegang geven tot CloudWatch.

Vervolgens moet u enkele Amazon Personalize-bronnen maken. Maak uw datasetgroep, laad uw gegevens en train aanbevelers. Zie voor volledige instructies Aan de slag.

  1. Een datasetgroep maken. U kunt metrische attributies gebruiken in domein dataset groepen en aangepaste datasetgroepen.
  2. Maak een Interactions dataset met behulp van het volgende: 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. Maak een Items dataset met behulp van het volgende: 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"
    }

Voordat we onze gegevens importeren in Amazon Personalize, zullen we de metrische attributie definiรซren.

Metrische attributies maken

Om te beginnen met het genereren van statistieken, specificeert u de lijst met gebeurtenissen waarvoor u statistieken wilt verzamelen. Voor elk van de gekozen gebeurtenistypen definieert u de functie die Amazon Personalize toepast bij het verzamelen van gegevens. De twee beschikbare functies zijn  SUM(DatasetType.COLUMN_NAME) en SAMPLECOUNT(), Waar DatasetType kan de INTERACTIONS or ITEMS gegevensset. Amazon Personalize kan metrische gegevens naar CloudWatch sturen voor visualisatie en monitoring, of deze exporteren naar een S3-bucket.

Nadat u een statistische attributie heeft gemaakt en gebeurtenissen heeft vastgelegd of incrementele bulkgegevens heeft geรฏmporteerd, worden er maandelijkse CloudWatch-kosten per statistiek in rekening gebracht. Voor informatie over CloudWatch-prijzen, zie de CloudWatch-prijzen bladzijde. Om te stoppen met het verzenden van statistieken naar CloudWatch, verwijder de metrische attributie.

In dit voorbeeld maken we twee metrische attributies:

  1. Tel het totale aantal "View" -gebeurtenissen met behulp van de SAMPLECOUNT(). Deze functie vereist alleen de INTERACTIONS gegevensset.
  2. Bereken de totale marge wanneer aankoopgebeurtenissen plaatsvinden met behulp van de SUM(DatasetType.COLUMN_NAME) In dit geval, de DatasetType is ITEMS en de kolom is MARGIN omdat we de marge voor het artikel bijhouden toen het werd gekocht. De Purchase evenement wordt geregistreerd in de INTERACTIONS gegevensset. Houd er rekening mee dat, om de marge te activeren door de aankoopgebeurtenis, u een aankoopgebeurtenis zou sturen voor elke individuele eenheid van elk gekocht item, zelfs als het herhalingen zijn - bijvoorbeeld twee shirts van hetzelfde type. Als uw gebruikers een veelvoud van elk item kunnen kopen wanneer ze afrekenen en u verzendt slechts รฉรฉn aankoopgebeurtenis voor alle items, dan is een andere statistiek geschikter.

De functie om het aantal monsters te berekenen is alleen beschikbaar voor de INTERACTIONS gegevensset. De totale marge vereist echter dat u de ITEMS gegevensset en om de berekening te configureren. Voor elk van hen specificeren we de eventType dat we zullen volgen, de gebruikte functie, en geef het een metricName die de statistieken zal identificeren zodra we ze exporteren. Voor dit voorbeeld hebben we ze de namen "countViews" en "sumMargin" gegeven.

Het codevoorbeeld is in Python.

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

We definiรซren ook waar de gegevens naartoe worden geรซxporteerd. In dit geval naar een S3 emmer.

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

Vervolgens genereren we de metrische attributie.

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

metric_attribution_arn = response['metricAttributionArn']

Je moet een geven name aan de metrische attributie, en geef de datasetgroep aan waaruit de metrische gegevens zullen worden toegeschreven met behulp van de datasetGroupArnEn metricsOutputConfig en metrics objecten die we eerder hebben gemaakt.

Nu de metrische attributie is gemaakt, kunt u doorgaan met de dataset-importtaak die onze items en interacties-datasets uit onze S3-bucket laadt in de datasetgroepen die we eerder hebben geconfigureerd.

Zie voor informatie over het wijzigen of verwijderen van een bestaande metriekattributie Een metrische attributie beheren.

Gegevens importeren en aanbevelingen maken

Eerste, importeer de interactiegegevens naar Amazon Personaliseren vanuit Amazon S3. Voor dit voorbeeld gebruiken we het volgende databestand. We hebben de synthetische gegevens gegenereerd op basis van de code in de Retail Demo Store-project. Raadpleeg de GitHub-repository voor meer informatie over de synthetische gegevens en mogelijke toepassingen.

Vervolgens maak een aanbevelingsbrief aan. In dit voorbeeld maken we twee adviseurs:

  1. Aanbeveler "Aanbevolen voor jou". Dit type aanbeveler maakt gepersonaliseerde aanbevelingen voor items op basis van een gebruiker die u opgeeft.
  2. Klanten die X bekeken, bekeken ook. Dit type aanbeveling doet aanbevelingen voor artikelen die klanten ook hebben bekeken op basis van een artikel dat u opgeeft.

Stuur gebeurtenissen naar Amazon Personalize en wijs ze toe aan de aanbevelers

Om interacties naar Amazon Personalize te sturen, moet je een Gebeurtenis-tracker.

Voor elk evenement kan Amazon Personalize de eventAttributionSource. Het kan worden afgeleid uit de recommendationId of u kunt het expliciet specificeren en identificeren in rapporten in de EVENT_ATTRIBUTION_SOURCE kolom. Een eventAttributionSource kan een aanbeveling, scenario of door een derde partij beheerd deel zijn van de pagina waar interacties plaatsvonden.

  • Als u een recommendationId, leidt Amazon Personalize automatisch de broncampagne of aanbeveling af.
  • Als u beide kenmerken opgeeft, gebruikt Amazon Personalize alleen de bron.
  • Als u geen bron of een recommendationId, waarna Amazon Personalize de bron labelt SOURCE_NAME_UNDEFINED bij rapporten.

De volgende code laat zien hoe u een eventAttributionSource voor een evenement in een PutEvents operatie.

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)

Uw statistieken bekijken

Amazon Personalize stuurt de statistieken naar Amazon CloudWatch of Amazon S3:

Voor alle bulkgegevens: als u een Amazon S3-bucket opgeeft wanneer u uw metrische attributie maakt, kunt u ervoor kiezen om metrische rapporten te publiceren naar uw Amazon S3-bucket. U moet dit elke keer doen als u een dataset-importtaak voor interactiegegevens maakt.

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)

Selecteer bij het importeren van uw gegevens de juiste importmodus INCREMENTAL or FULL en instrueer Amazon Personalize om de statistieken per instelling te publiceren publishAttributionMetricsToS3 naar True. Zie voor meer informatie over het publiceren van metrische rapporten naar Amazon S3 Statistieken publiceren naar Amazon S3.

Voor PutEvents-gegevens verzonden via de Event Tracker en voor incrementele bulkgegevensimport, stuurt Amazon Personalize automatisch statistieken naar CloudWatch. U kunt gegevens van de afgelopen 2 weken bekijken in Amazon CloudWatch โ€“ oudere gegevens worden genegeerd.

Je kunt grafiek een metriek rechtstreeks in de CloudWatch-console door de naam op te geven die u aan de metriek hebt gegeven toen u de metriekattributie maakte als zoekterm. Zie voor meer informatie over hoe u deze statistieken in CloudWatch kunt bekijken Statistieken bekijken in CloudWatch.

Figuur 3: Een voorbeeld van het vergelijken van twee CTR's van twee adviseurs die worden bekeken in de CloudWatch Console.

Statistieken importeren en publiceren naar Amazon S3

Wanneer u uw gegevens uploadt naar Amazon Personalize via een dataset-importtaak en u een pad naar uw Amazon S3-bucket hebt opgegeven in uw metrische attributie, kunt u uw statistieken in Amazon S3 bekijken wanneer de taak is voltooid.

Elke keer dat u statistieken publiceert, maakt Amazon Personalize een nieuw bestand in uw Amazon S3-bucket. De bestandsnaam specificeert de importmethode en datum. Het veld EVENT_ATTRIBUTION_SOURCE specificeert de gebeurtenisbron, dwz onder welk scenario de interactie plaatsvond. Met Amazon Personalize kun je de EVENT_ATTRIBUTION_SOURCE dit veld expliciet gebruikt, kan dit een aanbeveling van een derde partij zijn. Voor meer informatie, zie Statistieken publiceren naar Amazon S3.

Samengevat

Door statistische attributie toe te voegen, kunt u het effect volgen dat aanbevelingen hebben op bedrijfsstatistieken. U maakt deze statistieken door een metrische attributie toe te voegen aan uw gegevenssetgroep en de gebeurtenissen te selecteren die u wilt volgen, evenals de functie om de gebeurtenissen te tellen of een gegevenssetveld samen te voegen. Daarna kunt u de statistieken bekijken waarin u geรฏnteresseerd bent in CloudWatch of in het geรซxporteerde bestand in Amazon S3.

Voor meer informatie over Amazon Personalize, zie: Wat is Amazon personaliseren?


Over de auteurs

Anna Gruebler is een Specialist Solutions Architect bij AWS gericht op kunstmatige intelligentie. Ze heeft meer dan 10 jaar ervaring met het helpen van klanten bij het ontwikkelen en implementeren van machine learning-applicaties. Het is haar passie om nieuwe technologieรซn in handen van iedereen te krijgen en moeilijke problemen op te lossen door gebruik te maken van de voordelen van het gebruik van AI in de cloud.


Gabrielle Dompreh is Specialist Solutions Architect bij AWS in Artificial Intelligence en Machine Learning. Ze leert graag over de nieuwe innovaties van machine learning en helpt klanten hun volledige capaciteiten te benutten met goed ontworpen oplossingen.

Tijdstempel:

Meer van AWS-machine learning