Mät affärseffekten av Amazons personliga rekommendationer

Mät affärseffekten av Amazons personliga rekommendationer

Källnod: 1958091

Vi är glada att meddela det Amazon Anpassa nu låter dig mäta hur dina personliga rekommendationer kan hjälpa dig att nå dina affärsmål. Efter att ha angett de mätvärden som du vill spåra kan du identifiera vilka kampanjer och rekommendationer som har störst effekt och förstå effekten av rekommendationer på dina affärsmått.

Alla kunder vill spåra det mått som är viktigast för deras verksamhet. Till exempel kan en onlineshoppingapplikation vilja spåra två mätvärden: klickfrekvensen (CTR) för rekommendationer och det totala antalet köp. En video-on-demand-plattform som har karuseller med olika rekommendationer som ger rekommendationer kanske vill jämföra CTR eller visningslängd. Du kan också övervaka den totala intäkten eller marginalen för en angiven händelsetyp, till exempel när en användare köper en vara. Denna nya funktion låter dig mäta effekten av Amazon Personalize-kampanjer och rekommendationer, såväl som interaktioner som genereras av tredjepartslösningar.

I det här inlägget visar vi hur du spårar dina mätvärden och utvärderar effekten av dina Personalise-rekommendationer i ett e-handelsfall.

Lösningsöversikt

Tidigare, för att förstå effekten av personliga rekommendationer, var du tvungen att manuellt orkestrera arbetsflöden för att fånga affärsdata och sedan presentera dem i meningsfulla representationer för att göra jämförelser. Nu har Amazon Personalize eliminerat denna operativa omkostnad genom att låta dig definiera och övervaka de mätvärden som du vill spåra. Amazon Personalize kan skicka prestandadata till amazoncloudwatch för visualisering och övervakning, alternativt till en Amazon Simple Storage Service (Amazon S3) där du kan komma åt mätvärden och integrera dem i andra affärsinformationsverktyg. Detta låter dig effektivt mäta hur händelser och rekommendationer påverkar affärsmålen och observera resultatet av alla händelser som du vill övervaka.

För att mäta effekten av rekommendationer definierar du en "metrisk attribution", som är en lista över händelsetyper som du vill rapportera om med antingen Amazon Personalize-konsolen eller API:er. För varje händelsetyp definierar du helt enkelt måttet och funktionen som du vill beräkna (summa eller provantal), och Amazon Personalize utför beräkningen och skickar de genererade rapporterna till CloudWatch eller Amazon S3.

Följande diagram visar hur du kan spåra mätvärden från en enda rekommendator eller kampanj:

Figur 1. Funktionsöversikt: Interaktionsdataset används för att träna en rekommendator eller kampanj. Sedan, när användare interagerar med rekommenderade föremål, skickas dessa interaktioner till Amazon Personalize och tillskrivs motsvarande rekommendator eller kampanj. Därefter exporteras dessa mätvärden till Amazon S3 och CloudWatch så att du kan övervaka dem och jämföra mätvärdena för varje rekommenderad eller kampanj.

Metriska attributioner låter dig också tillhandahålla en eventAttributionSource, för varje interaktion, som anger scenariot som användaren upplevde när de interagerade med ett objekt. Följande diagram visar hur du kan spåra mätvärden från två olika rekommendatorer med hjälp av Amazon Personalize-mätvärdestillskrivningen.

Figur 2. Mätning av affärseffekten av rekommendationer i två scenarier: Interaktionsdataset används för att träna två rekommendatorer eller kampanjer, i detta fall betecknade "Blå" och "Orange". Sedan, när användare interagerar med de rekommenderade föremålen, skickas dessa interaktioner till Amazon Personalize och tillskrivs motsvarande rekommendator, kampanj eller scenario som användaren exponerades för när de interagerade med föremålet. Därefter exporteras dessa mätvärden till Amazon S3 och CloudWatch så att du kan övervaka dem och jämföra mätvärdena för varje rekommenderad eller kampanj.

I det här exemplet går vi igenom processen med att definiera mätvärdesattributioner för din interaktionsdata i Amazon Personalize. Först importerar du din data och skapar två attributionsstatistik för att mäta rekommendationernas affärseffekt. Sedan skapar du två rekommendationer för detaljhandeln – det är samma process om du använder en anpassad rekommendationslösning – och skickar händelser att spåra med hjälp av mätvärdena. För att komma igång behöver du bara interaktionsdataset. Men eftersom en av mätvärdena vi spårar i det här exemplet är marginal, visar vi dig också hur du importerar objektdatauppsättningen. Ett kodexempel för detta användningsfall finns tillgängligt på GitHub.

Förutsättningar

Du kan använda AWS-konsolen eller stöds API: er för att skapa rekommendationer med Amazon Personalize, till exempel med hjälp av AWS-kommandoradsgränssnitt or AWS SDK för Python.

För att beräkna och rapportera effekten av rekommendationer måste du först ställa in några AWS-resurser.

Du måste skapa en AWS Identity and Access Management (IAM) roll som Amazon Personalize kommer att ta på sig med ett relevant policydokument för att ta rollen. Du måste också bifoga policyer för att låta Amazon Personalise komma åt data från en S3-bucket och för att skicka data till CloudWatch. För mer information, se Ge Amazon Personalize tillgång till din Amazon S3-hink och Ge Amazon Personalize tillgång till CloudWatch.

Sedan måste du skapa några Amazon Personalize-resurser. Skapa din datauppsättningsgrupp, ladda din data och utbilda rekommendationer. För fullständiga instruktioner, se Komma igång.

  1. Skapa en datauppsättningsgrupp. Du kan använda mätvärdestillskrivningar i domändatauppsättningsgrupper och anpassade datasetgrupper.
  2. Skapa ett Interactions dataset med hjälp av följande 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. Skapa ett Items dataset med hjälp av följande 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"
    }

Innan vi importerar vår data till Amazon Personalize kommer vi att definiera tillskrivningen av måtten.

Skapa metriska attributioner

För att börja generera mätvärden anger du listan över händelser som du vill samla in mätvärden för. För var och en av de valda händelsetyperna definierar du funktionen som Amazon Personalize kommer att tillämpa när den samlar in data – de två tillgängliga funktionerna är  SUM(DatasetType.COLUMN_NAME) och SAMPLECOUNT()Där DatasetType kan vara INTERACTIONS or ITEMS dataset. Amazon Personalize kan skicka mätdata till CloudWatch för visualisering och övervakning, eller alternativt exportera den till en S3-hink.

När du har skapat en mätvärdestillskrivning och registrerat händelser eller importerat inkrementell massdata kommer du att få en månatlig CloudWatch-kostnad per mätvärde. För information om CloudWatch-priser, se CloudWatch-priser sida. För att sluta skicka mätvärden till CloudWatch, ta bort mätvärdestillskrivningen.

I det här exemplet skapar vi två mätvärdestillskrivningar:

  1. Räkna det totala antalet "Visa"-händelser med hjälp av SAMPLECOUNT(). Denna funktion kräver endast INTERACTIONS datasätt.
  2. Beräkna den totala marginalen när köphändelser inträffar med hjälp av SUM(DatasetType.COLUMN_NAME) I det här fallet DatasetType is ITEMS och kolumnen är MARGIN eftersom vi spårar marginalen för varan när den köptes. De Purchase händelsen registreras i INTERACTIONS dataset. Observera att, för att marginalen ska triggas av köphändelsen, skulle du skicka en köphändelse för varje enskild enhet av varje köpt vara, även om de är upprepade – till exempel två skjortor av samma typ. Om dina användare kan köpa flera av varje vara när de går till kassan, och du bara skickar en köphändelse för dem alla, är en annan mätning lämpligare.

Funktionen för att beräkna antal prov är endast tillgänglig för INTERACTIONS dataset. Den totala marginalen kräver dock att du har ITEMS dataset och för att konfigurera beräkningen. För var och en av dem anger vi eventType som vi kommer att spåra, funktionen som används och ge den ett metricName som kommer att identifiera mätvärdena när vi exporterar dem. För det här exemplet har vi gett dem namnen "countViews" och "sumMargin".

Kodexemplet finns i Python.

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

Vi definierar även vart data ska exporteras. I det här fallet till en S3-skopa.

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

Sedan genererar vi den metriska attributionen.

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

metric_attribution_arn = response['metricAttributionArn']

Du måste ge en name till mätvärdestillskrivningen, samt ange datauppsättningsgruppen från vilken mätvärdena kommer att tillskrivas med hjälp av datasetGroupArn, Och den metricsOutputConfig och metrics objekt vi skapat tidigare.

Nu med den metriska attributionen som skapats, kan du fortsätta med datauppsättningsimportjobbet som kommer att ladda våra objekt- och interaktionsdatauppsättningar från vår S3-bucket till datauppsättningsgrupperna som vi tidigare konfigurerade.

För information om hur du ändrar eller tar bort en befintlig metrisk attribution, se Hantera en mätvärdestillskrivning.

Importera data och skapa rekommendationer

Först, importera interaktionsdata till Amazon Anpassa från Amazon S3. För detta exempel använder vi följande datafil. Vi genererade syntetiska data baserat på koden i Retail Demo Store-projekt. Se GitHub-förvaret för att lära dig mer om syntetiska data och potentiella användningsområden.

Därefter, skapa en rekommendator. I det här exemplet skapar vi två rekommendationer:

  1. "Rekommenderas för dig"-rekommenderare. Den här typen av rekommendatorer skapar personliga rekommendationer för objekt baserat på en användare som du anger.
  2. Kunder som tittade på X tittade också. Den här typen av rekommendatorer skapar rekommendationer för artiklar som kunder också tittade på baserat på en vara som du anger.

Skicka händelser till Amazon Personalize och tillskriv dem till rekommendationerna

För att skicka interaktioner till Amazon Personalize måste du skapa en Händelsespårare.

För varje evenemang kan Amazon Personalize spela in eventAttributionSource. Det kan utläsas av recommendationId eller så kan du ange det explicit och identifiera det i rapporter i EVENT_ATTRIBUTION_SOURCE kolumn. En eventAttributionSource kan vara en rekommendator, ett scenario eller en tredjepartshanterad del av sidan där interaktioner inträffade.

  • Om du tillhandahåller en recommendationId, sedan sluter Amazon Personalize automatiskt källkampanjen eller rekommenderaren.
  • Om du anger båda attributen använder Amazon Personalize endast källan.
  • Om du inte anger en källa eller en recommendationId, sedan märker Amazon Personalize källan SOURCE_NAME_UNDEFINED i rapporter.

Följande kod visar hur man tillhandahåller en eventAttributionSource för ett evenemang i en PutEvents drift.

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)

Visa dina mätvärden

Amazon Personalize skickar mätvärdena till Amazon CloudWatch eller Amazon S3:

För all massdata, om du tillhandahåller en Amazon S3-bucket när du skapar din mätvärdestillskrivning, kan du välja att publicera statistikrapporter till din Amazon S3-bucket. Du måste göra detta varje gång du skapar ett datauppsättningsimportjobb för interaktionsdata.

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)

När du importerar dina data, välj rätt importläge INCREMENTAL or FULL och instruera Amazon Personalize att publicera mätvärdena genom att ställa in publishAttributionMetricsToS3 till True. För mer information om publicering av metriska rapporter till Amazon S3, se Publicera statistik till Amazon S3.

För PutEvents-data skickas via Event Tracker och för inkrementell massimport av data, Amazon Personalize skickar automatiskt mätvärden till CloudWatch. Du kan se data från de senaste två veckorna i Amazon CloudWatch – äldre data ignoreras.

Du kan rita ett mått direkt i CloudWatch-konsolen genom att ange namnet som du gav måtten när du skapade måttenhetsattributionen som sökterm. För mer information om hur du kan se dessa mätvärden i CloudWatch, se Visa mätvärden i CloudWatch.

Figur 3: Ett exempel på att jämföra två klickfrekvenser från två rekommendationer som visas i CloudWatch-konsolen.

Importera och publicera statistik till Amazon S3

När du laddar upp dina data till Amazon Personalize via ett datauppsättningsimportjobb och du har angett en sökväg till din Amazon S3-bucket i din metrikattribution, kan du se dina mätvärden i Amazon S3 när jobbet är klart.

Varje gång du publicerar mätvärden skapar Amazon Personalize en ny fil i din Amazon S3-hink. Filnamnet anger importmetoden och datumet. Fältet EVENT_ATTRIBUTION_SOURCE anger händelsekällan, dvs under vilket scenario interaktionen ägde rum. Amazon Personalize låter dig specificera EVENT_ATTRIBUTION_SOURCE När du uttryckligen använder det här fältet kan detta vara en tredjepartsrekommendator. För mer information, se Publicera statistik till Amazon S3.

Sammanfattning

Genom att lägga till mätvärdestillskrivning kan du spåra effekten som rekommendationer har på affärsmätvärden. Du skapar dessa mätvärden genom att lägga till en mätvärdestillskrivning till din datauppsättningsgrupp och välja de händelser som du vill spåra, samt funktionen för att räkna händelserna eller aggregera ett datauppsättningsfält. Efteråt kan du se de mätvärden som du är intresserad av i CloudWatch eller i den exporterade filen i Amazon S3.

För mer information om Amazon Personalize, se Vad är Amazon personifiera?


Om författarna

Anna Grüebler är en specialistlösningsarkitekt på AWS med fokus på artificiell intelligens. Hon har mer än 10 års erfarenhet av att hjälpa kunder att utveckla och distribuera applikationer för maskininlärning. Hennes passion är att ta ny teknik och lägga dem i händerna på alla, och lösa svåra problem genom att utnyttja fördelarna med att använda AI i molnet.


Gabrielle Dompreh är Specialist Solutions Architect på AWS inom artificiell intelligens och maskininlärning. Hon tycker om att lära sig om de nya innovationerna inom maskininlärning och att hjälpa kunder att utnyttja sin fulla kapacitet med väl utformade lösningar.

Tidsstämpel:

Mer från AWS maskininlärning