Konfigurera Amazon Personalize med AWS-lim

Källnod: 748151

Data kan användas på olika sätt för att tillgodose behoven hos olika affärsenheter, såsom marknadsföring, försäljning eller produkt. I det här inlägget fokuserar vi på att använda data för att skapa personliga rekommendationer för att förbättra slutanvändarens engagemang. De flesta e-handelsapplikationer konsumerar en enorm mängd kunddata som kan användas för att ge personliga rekommendationer; dock kan den informationen kanske inte rensas eller i rätt format för att ge dessa värdefulla insikter.

Målet med detta inlägg är att visa hur man använder det AWS-lim för att extrahera, omvandla och ladda dina JSON-data till ett rengjort CSV-format. Vi visar dig sedan hur du kör en rekommendationsmotor som drivs av Amazon Anpassa på dina användarinteraktionsdata för att ge dina kunder en skräddarsydd upplevelse. Den resulterande produktionen från Amazon Personalize är rekommendationer som du kan generera från ett API.

Ett vanligt användningsfall är en e-handelsplattform som samlar in interaktionsdata för användarobjekt och föreslår liknande produkter eller produkter som en kund kanske gillar. I slutet av detta inlägg kommer du att kunna ta dina orenade JSON-data och generera personliga rekommendationer baserat på produkter som varje användare har interagerat med, vilket skapar en bättre upplevelse för dina slutanvändare. I detta inlägg hänvisas till detta användardata-interaktionsdataset för att bygga den här lösningen.

Resurserna för denna lösning kan medföra en kostnad för ditt AWS-konto. För prisinformation, se AWS Limprissättning och Amazon Anpassa priser.

Följande diagram illustrerar vår lösningsarkitektur.

Förutsättningar

För det här inlägget behöver du följande:

För instruktioner om hur du skapar en hink, se Steg 1: Skapa din första S3-hink. Se till att bifoga Amazon-anpassningspolicy.

Dessa är mycket tillåtna politik; i praktiken är det bäst att använda minst privilegium och bara ge åtkomst där det behövs. För instruktioner om hur du skapar en roll, se Steg 2: Skapa en IAM-roll för AWS-lim.

Genomsöker dina data med AWS Glue

Vi använder AWS-lim för att genomsöka JSON-filen för att bestämma schemat för dina data och skapa en metadatatabell i din AWS-limdatakatalog. Datakatalogen innehåller referenser till data som används som källor och mål för dina ETL-jobb i AWS Glue. AWS Glue är en serverlös dataförberedelsestjänst som gör det enkelt att extrahera, rengöra, berika, normalisera och ladda data. Det hjälper dig att förbereda dina data för analys eller maskininlärning (ML). I det här avsnittet går vi igenom hur du gör dina JSON-data redo för Amazon Personalize, vilket kräver en CSV-fil.

Dina data kan ha olika kolumner som du inte nödvändigtvis vill ha eller behöver köra via Amazon Personalize. I det här inlägget använder vi user-item-interaction.json fil och rensa den informationen med hjälp av AWS Glue för att bara inkludera kolumnerna user_id, item_idoch timestamp, samtidigt som den omvandlas till CSV-format. Du kan använda en sökrobot för att komma åt din datalager, extrahera metadata och skapa tabelldefinitioner i datakatalogen. Den upptäcker automatiskt nya data och extraherar schemadefinitioner. Detta kan hjälpa dig att få en bättre förståelse för dina data och vad du vill inkludera när du tränar din modell.

Smakämnen user-item-interaction JSON-data är en uppsättning poster. Sökroboten behandlar data som ett objekt: bara en matris. Vi skapar en anpassad klassificering för att skapa ett schema som är baserat på varje post i JSON-arrayen. Du kan hoppa över det här steget om dina data inte är en uppsättning poster.

  1. På AWS Lim-konsolen, under crawlersväljer klassificerare.
  2. Välja Lägg till klassificerare.
  3. För Klassificeringsnamnstiga på json_classifier.
  4. För Klassificeringstyp, Välj JSON.
  5. För JSON-väg, stiga på $[*].
  6. Välja Skapa.

Välj Skapa.

  1. Sida för sökrobotarväljer Lägg till sökrobot.
  2. För Sökrobotens namn, stiga på json_crawler.
  3. För Anpassade klassificerare, lägg till klassificatorn du skapade.

För anpassade klassificerare, lägg till klassificatorn du skapade.

  1. Välja Nästa.
  2. För Typ av sökrobotväljer Datalager.
  3. Lämna allt annat som standard och välj Nästa.
  4. För Välj ett datalager, ange Amazon S3-sökvägen till din JSON-datafil.
  5. Välja Nästa.

Välj Nästa.

  1. Hoppa över avsnittet Lägg till ytterligare ett datalager.
  2. I Välj en IAM-roll avsnitt, välj Välj en befintlig IAM-roll.
  3. För IAM-roll, välj den roll du skapade tidigare (AWSGlueServiceRole-xxx).
  4. Välja Nästa.

Välj Nästa.

  1. Lämna frekvensen som Kör på begäran.
  2. Produktion sida, välj Lägg till databas.
  3. För Databas namn, stiga på json_data.
  4. Välja Finish.
  5. Välja Kör det nu. 

Du kan också köra din sökrobot genom att gå till crawlers sida, välja din sökrobot och välja Kör sökrobot.

Använda AWS Glue för att konvertera dina filer från CSV till JSON

När din sökrobot är klar, gå till Bord sidan på AWS-limkonsolen. Navigera till tabellen som sökroboten skapade. Här kan du se schemat för dina data. Notera de fält du vill använda med din Amazon Personalize-data. För det här inlägget vill vi behålla user_id, item_idoch tidsstämpelkolumner för Amazon Personalize.

För det här inlägget vill vi behålla kolumnerna user_id, item_id och timestamp för Amazon Personalize.

Vid den här tiden har du konfigurerat din databas. Amazon Personalize kräver CSV-filer, så du måste förvandla data från JSON-format till tre rengjorda CSV-filer som endast innehåller de data du behöver i Amazon Personalize. Följande tabell visar exempel på de tre CSV-filer som du kan inkludera i Amazon Personalize. Det är viktigt att notera det interaktioner uppgifter krävs, medan användare och objektet datametadata är valfritt.

Dataset typ Obligatoriska fält Reserverade nyckelord
användare

USER_ID (sträng)

1 metadatafält

objekt

ITEM_ID (sträng)

1 metadatafält

CREATION_TIMESTAMP(lång)
Interaktioner

USER_ID (sträng)

ITEM_ID (sträng)

TIMESTAMP (lång)

EVENT_TYPE (sträng)

IMPRESSION (sträng)

EVENT_VALUE (flyta, null)

Det är också viktigt att se till att du har minst 1,000 unika kombinerade historiska och händelseinteraktioner för att träna modellen. För mer information om kvoter, se Kvoter i Amazon Anpassa.

För att spara data som en CSV måste du köra ett AWS-limjobb på data. Ett jobb är den affärslogik som utför ETL-arbetet i AWS Lim. Jobbet ändrar formatet från JSON till CSV. Mer information om dataformatering finns i Formatera dina inmatade data.

  1. AWS Lim Dashboardväljer AWS Lim Studio.

AWS Lim Studio är ett lättanvänt grafiskt gränssnitt för att skapa, köra och övervaka AWS Glue ETL-jobb.

  1. Välja Skapa och hantera jobb.
  2. Välja Källa och mål läggs till i diagrammet.
  3. För Källaväljer S3.
  4. För Måletväljer S3.
  5. Välja Skapa.

Välj Skapa.

  1. Välj datakällan S3-hink.
  2. Datakällegenskaper - S3 fliken, lägg till databasen och tabellen som vi skapade tidigare.

På fliken Datakälla - S3 lägger du till databasen och tabellen som vi skapade tidigare.

  1. Förvandla markera rutorna som ska släppas user_login och location.

I det här inlägget använder vi inga ytterligare metadata för att köra vår personaliseringsalgoritm.

I det här inlägget använder vi inga ytterligare metadata för att köra vår personaliseringsalgoritm.

  1. Välj data-mål S3-hink.
  2. Egenskaper för datamål - S3 flik, för bildadväljer CSV.
  3. För S3 Målplats, ange S3-sökvägen för ditt mål. 

För det här inlägget använder vi samma hink som vi använde för JSON-filen.

För det här inlägget använder vi samma hink som vi använde för JSON-filen.

  1. Jobb detaljer sida, för Namn , ange ett namn för ditt jobb (för det här inlägget, json_to_csv).
  2. För IAM-roll, välj den roll du skapade tidigare.

Du borde också ha inkluderat AmazonS3FullAccess tidigare.

  1. Lämna resten av fälten i standardinställningarna.

Lämna resten av fälten i standardinställningarna.

  1. Välja Save.
  2. Välja Körning.

Det kan ta några minuter innan jobbet körs.

I din Amazon S3-hink bör du nu se CSV-filen som du använder i nästa avsnitt.

Konfigurera Amazon Personalize

Vid den här tiden har du dina data formaterade i en filtyp som Amazon Personalize kan använda. Amazon Personalize är en fullständigt hanterad tjänst som använder ML och över 20 års rekommendationserfarenhet på Amazon.com så att du kan förbättra slutanvändarnas engagemang genom att driva realtidsanpassade produkt- och innehållsrekommendationer och riktade marknadsföringskampanjer. I det här avsnittet går vi igenom hur du skapar en Amazon Personalize-lösning för att använda dina data för att skapa personliga upplevelser.

  1. På Amazon Personalize-konsolen, under Nya datasetgrupperväljer KOM IGÅNG.
  2. Ange namnet på din datasetgrupp.

En datasetgrupp innehåller datamängder, lösningar och API för händelseintag.

  1. Ange ett datanamn och ange schemainformationen baserat på dina data.

För denna dataset använder vi följande schema. Du kan ändra schemat enligt värdena i din dataset.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } 

  1. Välja Nästa.
  2. Ange ditt datasatsimportjobbnamn för att importera data från Amazon S3.

Se till att din IAM-tjänstroll har åtkomst till Amazon S3 och Amazon Personalize, och att din hink har rätt hinkpolicy.

  1. Ange sökvägen till dina data (Amazon S3-hinken från föregående avsnitt).
  2. Dashboard sida för dina datasetgrupper, under Ladda upp datamängder, importera user-item-interactions data (användardata och artikeldata är valfria men kan förbättra lösningen).

På sidan Dashboard för dina datasetgrupper, under Upload datasets,

Vi inkluderar ett exempel item.csv fil i GitHub repo. Följande skärmdump visar ett exempel på artikeldata.

Följande skärmdump visar ett exempel på artikeldata.

  1. Enligt Skapa lösningar, För Lösningar utbildningväljer Start.

En lösning är en utbildad modell av de data du angav med algoritmen eller receptet som du väljer.

  1. För Lösningens namn, stiga på aws-user-personalization.
  2. Välja Nästa.
  3. Granska och välj Finish.
  4. På instrumentbrädan, under Starta kampanjer, För Kampanjskapandeväljer Start.

En kampanj gör att din ansökan kan få rekommendationer från din lösningsversion.

  1. För kampanj namn, ange ett namn.
  2. Välj den lösning du skapade.
  3. Välja Skapa kampanj.

Du har nu framgångsrikt använt data från din datasjö och skapat en rekommendationsmodell som kan användas för att få olika rekommendationer. Med denna dataset kan du få personliga rekommendationer för hushållsprodukter baserade på användarens interaktion med andra produkter i datasetet.

Använd Amazon Personalize för att få dina rekommendationer

För att testa din lösning, gå till kampanjen du skapade. I Testa kampanjresultat avsnitt, under Användar-ID, ange ett ID för att få rekommendationer för. En lista med ID visas tillsammans med en relativ poäng. Artikel-ID: n korrelerar med specifika produkter som rekommenderas.

Följande skärmdump visar en sökning efter användar-ID 1. De har rekommenderats artikel-ID 59, som korrelerar med en träbildram. Poängen som listas bredvid artikeln ger dig den förutsagda relevansen för varje artikel för din användare.

Följande skärmdump visar en sökning efter användar-ID 1.

För att lära dig mer om Amazon Personalize-poäng, se Introduktion av rekommendationsresultat i Amazon Personalize.

För att generera rekommendationer kan du ringa GetRecommendations or GetPersonalizedRanking API med hjälp av AWS-kommandoradsgränssnitt (AWS CLI) eller ett språk-specifikt SDK. Med Amazon Personalize kan dina rekommendationer ändras när användaren klickar på artiklarna för mer realtidsanvändningsfall. För mer information, se Få rekommendationer i realtid.

Slutsats

AWS erbjuder ett brett utbud av AI / ML och analytics tjänster som du kan använda för att få insikter och styra bättre affärsbeslut. I det här inlägget använde du en JSON-dataset som innehöll ytterligare datakolumner och rensade och transformerade den med AWS Glue. Dessutom byggde du en anpassad modell med Amazon Personalize för att ge rekommendationer till dina kunder.

För att lära dig mer om Amazon Personalize, se utvecklarguide. Prova den här lösningen och låt oss veta om du har några frågor i kommentarerna.


Om författarna

Zoish PithwafaZoish Pithawala är en Startup Solutions Architect på Amazon Web Services baserad i San Francisco. Hon arbetar främst med startkunder för att hjälpa dem att bygga säkra och skalbara lösningar på AWS.

Sam TranSam Tran är en Startup Solutions Architect på Amazon Web Services baserad i Seattle. Han fokuserar på att hjälpa sina kunder att skapa välarkitekterade lösningar på AWS.

Källa: https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

Tidsstämpel:

Mer från AWS-maskininlärningsblogg