Ustvarite cevovod s paketnimi priporočili z uporabo Amazon Personalize brez kode PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Ustvarite cevovod s paketnimi priporočili z uporabo storitve Amazon Personalize brez kode

S prilagojeno vsebino, ki bo bolj verjetno spodbudila sodelovanje strank, si podjetja nenehno prizadevajo zagotoviti prilagojeno vsebino, ki temelji na profilu in vedenju stranke. Predvsem sistemi priporočil poskušajo predvideti prednost, ki bi jo končni uporabnik dal artiklu. Nekateri pogosti primeri uporabe vključujejo priporočila za izdelke v spletnih maloprodajnih trgovinah, prilagajanje glasil, ustvarjanje priporočil za seznam predvajanja glasbe ali celo odkrivanje podobne vsebine v spletnih medijskih storitvah.

Vendar pa je lahko težko ustvariti učinkovit sistem priporočil zaradi zapletenosti pri usposabljanju modela, izbiri algoritmov in upravljanju platforme. Amazonska prilagoditev omogoča razvijalcem, da izboljšajo sodelovanje strank s prilagojenimi priporočili za izdelke in vsebino, ne da bi bilo potrebno strokovno znanje o strojnem učenju (ML). Razvijalci lahko takoj začnejo privabljati stranke z uporabo zajetih podatkov o vedenju uporabnikov. Amazon Personalize v zakulisju preuči te podatke, ugotovi, kaj je pomembno, izbere prave algoritme, uri in optimizira model personalizacije, ki je prilagojen vašim podatkom, ter zagotovi priporočila prek končne točke API.

Čeprav lahko zagotavljanje priporočil v realnem času pripomore k večji vključenosti in zadovoljstvu, včasih to dejansko ni potrebno, izvajanje tega v paketu po urniku pa je lahko preprosto bolj stroškovno učinkovita in obvladljiva možnost.

Ta objava vam pokaže, kako uporabljati storitve AWS za ustvarjanje priporočil, tudi za operacionalizacijo cevovoda paketnih priporočil. Sprehodimo se skozi rešitev od konca do konca brez ene vrstice kode. Podrobno obravnavamo dve temi:

Pregled rešitev

V tej rešitvi uporabljamo FilmLens nabor podatkov. Ta nabor podatkov vključuje 86,000 ocen filmov od 2,113 uporabnikov. Te podatke poskušamo uporabiti za ustvarjanje priporočil za vsakega od teh uporabnikov.

Priprava podatkov je zelo pomembna za zagotovitev, da dobimo podatke o vedenju strank v obliki, ki je pripravljena za Amazon Personalize. Arhitektura, opisana v tej objavi, uporablja AWS Glue, storitev za integracijo podatkov brez strežnika, za pretvorbo neobdelanih podatkov v obliko, ki je pripravljena za uporabo v Amazon Personalize. Rešitev uporablja Amazon Personalize za ustvarjanje paketnih priporočil za vse uporabnike z uporabo paketnega sklepanja. Nato uporabimo potek dela Step Functions, tako da lahko avtomatizirani potek dela zaženemo s klicanjem API-jev Amazon Personalize na ponovljiv način.

Naslednji diagram prikazuje to rešitev.Arhitekturni diagram

To rešitev bomo zgradili z naslednjimi koraki:

  1. Zgradite opravilo za pretvorbo podatkov za pretvorbo naših neobdelanih podatkov z uporabo AWS Glue.
  2. Zgradite rešitev Amazon Personalize s preoblikovanim naborom podatkov.
  3. Zgradite delovni tok stopenjskih funkcij za orkestriranje generiranja paketnih sklepov.

Predpogoji

Za to predstavitev potrebujete naslednje:

Zgradite opravilo za pretvorbo podatkov za pretvorbo neobdelanih podatkov z AWS Glue

Z Amazon Personalize morajo imeti vhodni podatki določeno shemo in obliko datoteke. Podatki o interakcijah med uporabniki in elementi morajo biti v formatu CSV z določenimi stolpci, medtem ko mora biti seznam uporabnikov, za katere želite ustvariti priporočila, v formatu JSON. V tem razdelku uporabljamo AWS Glue Studio za pretvorbo neobdelanih vhodnih podatkov v zahtevane strukture in obliko za Amazon Personalize.

AWS Glue Studio ponuja grafični vmesnik, ki je zasnovan za enostavno ustvarjanje in izvajanje opravil ekstrahiranja, preoblikovanja in nalaganja (ETL). S preprostimi operacijami povleci in spusti lahko vizualno ustvarite delovne obremenitve za pretvorbo podatkov.

Najprej pripravimo izvorne podatke v Preprosta storitev shranjevanja Amazon (Amazon S3), nato podatke transformiramo brez kode.

  1. Na konzoli Amazon S3 ustvarite vedro S3 s tremi mapami: surovo, transformirano in kurirano.
  2. Prenos Nabor podatkov MovieLens in naložite nestisnjeno datoteko z imenom user_ratingmovies-timestamp.dat v svoje vedro pod mapo raw.
  3. Na konzoli AWS Glue Studio izberite Delovna mesta v podoknu za krmarjenje.
  4. Izberite Vizualno z virom in ciljem, nato izberite ustvarjanje.
  5. Izberite prvo poklicano vozlišče Vir podatkov – vedro S3. Tukaj določimo naše vhodne podatke.
  6. o Lastnosti vira podatkov jeziček, izberite S3 lokacija in poiščite naloženo datoteko.
  7. za Oblika podatkov, izberite CSVIn za Delititer, izberite Tab.
    AWS Glue Studio - S3
  8. Izberemo lahko zavihek Izhodna shema, da preverimo, ali je shema pravilno ugotovila stolpce.
  9. Če shema ne ustreza vašim pričakovanjem, izberite Uredi za urejanje sheme.
    AWS Glue Studio - Polja

Nato te podatke preoblikujemo tako, da sledijo zahtevam sheme za Amazon Personalize.

  1. Izberite Transformacija – Uporabi preslikavo vozlišče in na Transform posodobite ciljni ključ in vrste podatkov.
    Amazon Personalize pričakuje vsaj naslednjo strukturo za nabor podatkov o interakcijah:
    • user_id (vrvica)
    • item_id (vrvica)
    • timestamp (dolgo, v časovni obliki epohe Unix)
      AWS Glue Studio - Kartiranje polj

V tem primeru iz nabora podatkov izvzamemo slabo ocenjene filme.

  1. Če želite to narediti, odstranite zadnje vozlišče, imenovano vedro S3, in dodajte vozlišče filtra na Transform tab.
  2. Izberite Dodaj stanje in filtrira podatke, kjer je ocena < 3.5.
    AWS Glue Studio – izhod

Zdaj zapišemo izhod nazaj v Amazon S3.

  1. Razširi ciljna izberite in izberite Amazon S3.
  2. za S3 Ciljna lokacija, izberite mapo z imenom transformed.
  3. Izberite CSV kot oblika in pripona the Ciljna lokacija z interactions/.

Nato izpišemo seznam uporabnikov, za katere želimo dobiti priporočila.

  1. Izberite ApplyMapping znova in nato razširite Transform izberite in izberite ApplyMapping.
  2. Spustite vsa polja razen za user_id in preimenujte to polje v userId. Amazon Personalize pričakuje, da bo to polje poimenovano Uporabniško ime.
  3. Razširi ciljna znova meni in izberite Amazon S3.
  4. Tokrat izberite JSON kot format, nato pa izberite preoblikovano mapo S3 in jo priponite z batch_users_input/.

To proizvaja a JSON seznam uporabnikov kot vnos za Amazon Personalize. Zdaj bi morali imeti diagram, ki je videti takole.

AWS Glue Studio – Celoten potek dela

Zdaj smo pripravljeni za izvedbo našega preoblikovanja.

  1. Na konzoli IAM ustvarite vlogo z imenom glue-service-role in priložite naslednje upravljane pravilnike:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Za več informacij o ustvarjanju storitvenih vlog IAM glejte Ustvarjanje vloge za delegiranje dovoljenj za storitev AWS.

  1. Pomaknite se nazaj do svojega opravila AWS Glue Studio in izberite Podrobnosti o delovnem mestu tab.
  2. Nastavite ime opravila kot batch-personalize-input-transform-job.
  3. Izberite novo ustvarjeno vlogo IAM.
  4. Za vse ostalo obdržite privzete vrednosti.
    AWS Glue Studio - podrobnosti o delu
  5. Izberite Shrani.
  6. Ko ste pripravljeni, izberite Run in spremlja delo v Teče tab.
  7. Ko je opravilo končano, se pomaknite do konzole Amazon S3, da preverite, ali je bila vaša izhodna datoteka uspešno ustvarjena.

Zdaj smo svoje podatke oblikovali v obliko in strukturo, ki jo zahteva Amazon Personalize. Pretvorjeni nabor podatkov mora imeti naslednja polja in obliko:

  • Nabor podatkov o interakcijah – Format CSV s polji USER_ID, ITEM_ID, TIMESTAMP
  • Uporabniški vnos podatkov – Format JSON z elementom userId

Zgradite rešitev Amazon Personalize s preoblikovanim naborom podatkov

Z našim naborom podatkov o interakcijah in podatki o uporabniških vnosih v pravi obliki lahko zdaj ustvarimo našo rešitev Amazon Personalize. V tem razdelku ustvarimo skupino nabora podatkov, uvozimo naše podatke in nato ustvarimo opravilo paketnega sklepanja. Skupina nabora podatkov organizira vire v vsebnike za komponente Amazon Personalize.

  1. Na konzoli Amazon Personalize izberite ustvarjanje skupina podatkovnih zbirk.
  2. za Domenatako, da izberete po meri.
  3. Izberite Ustvarite skupino nabora podatkov in nadaljujte.
    Amazon Personalize - ustvarite skupino nabora podatkov

Nato ustvarite nabor podatkov o interakcijah.

  1. Vnesite ime nabora podatkov in izberite Ustvarite novo shemo.
  2. Izberite Ustvarite nabor podatkov in nadaljujte.
    Amazon Personalize – ustvarite nabor podatkov o interakcijah

Zdaj uvozimo podatke o interakcijah, ki smo jih ustvarili prej.

  1. Pomaknite se do vedra S3, v katerem smo ustvarili naš nabor podatkov CSV o interakcijah.
  2. o Dovoljenja dodajte naslednjo politiko dostopa do vedra, da bo Amazon Personalize imel dostop. Posodobite pravilnik, da bo vključeval ime vašega vedra.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

Pomaknite se nazaj na Amazon Personalize in izberite Ustvarite opravilo za uvoz nabora podatkov. Naš nabor podatkov o interakcijah bi se zdaj moral uvažati v Amazon Personalize. Preden nadaljujete z naslednjim korakom, počakajte, da se opravilo uvoza zaključi s statusom Aktivno. To naj bi trajalo približno 8 minut.

  1. Na konzoli Amazon Personalize izberite Pregled v navigacijskem podoknu in izberite Ustvari rešitev.
    Amazon Personalize – Nadzorna plošča
  2. Vnesite ime rešitve.
  3. za Vrsta rešitve, izberite Priporočilo artikla.
  4. za Recept, izberite aws-user-personalization recept.
  5. Izberite Ustvarite in usposobite rešitev.
    Amazon Personalize – ustvari rešitev

Rešitev se zdaj usposablja glede na nabor podatkov o interakcijah, ki je bil uvožen z receptom za personalizacijo uporabnika. Spremljajte stanje tega postopka pod Različice rešitve. Počakajte, da se dokonča, preden nadaljujete. To naj bi trajalo približno 20 minut.
Amazon Personalize – stanje

Zdaj ustvarimo naše paketno sklepanje, ki ustvari priporočila za vsakega uporabnika, prisotnega v vnosu JSON.

  1. V podoknu za krmarjenje pod Viri po meri, izberite Paketna opravila sklepanja.
  2. Vnesite ime delovnega mesta in za Rešitev, izberite prej ustvarjeno rešitev.
  3. Izberite Ustvarite opravilo paketnega sklepanja.
    Amazon Personalize - ustvarite opravilo paketnega sklepanja
  4. za Konfiguracija vhodnih podatkov, vnesite pot S3, kjer je batch_users_input datoteka.

To je datoteka JSON, ki vsebuje userId.

  1. za Konfiguracija izhodnih podatkov pot, izberite izbrano pot v S3.
  2. Izberite Ustvarite opravilo paketnega sklepanja.

Ta postopek traja približno 30 minut. Ko je opravilo končano, se priporočila za vsakega uporabnika, podanega v uporabniški vhodni datoteki, shranijo na izhodno lokacijo S3.

Uspešno smo ustvarili niz priporočil za vse naše uporabnike. Vendar smo do zdaj rešitev implementirali samo s konzolo. Da zagotovimo, da se to paketno sklepanje izvaja redno z najnovejšim naborom podatkov, moramo zgraditi potek dela za orkestracijo. V naslednjem razdelku vam pokažemo, kako ustvarite potek dela orkestracije z uporabo funkcij korakov.

Zgradite delovni tok stopenjskih funkcij za orkestracijo delovnega toka sklepanja paketov

Če želite organizirati svoj cevovod, izvedite naslednje korake:

  1. Na konzoli Step Functions izberite Ustvari državni stroj.
  2. Izberite Oblikujte svoj potek dela vizualno, nato izberite Naslednji.
    Funkcije korakov AWS - ustvarite potek dela
  3. Povlecite CreateDatasetImportJob vozlišče z leve (to vozlišče lahko poiščete v iskalnem polju) na platno.
  4. Izberite vozlišče in na desni bi morali videti konfiguracijske parametre API-ja. Posnemite ARN.
  5. Vnesite svoje vrednosti v Parametri API-ja Polje z besedilom.

To pokliče CreateDatasetImportJob API z vrednostmi parametrov, ki jih določite.

Potek dela korakov AWS

  1. Povlecite CreateSolutionVersion vozlišče na platno.
  2. Posodobite parametre API z ARN rešitve, ki ste si jo zapisali.

To ustvari novo različico rešitve z novo uvoženimi podatki s klicem CreateSolutionVersion API.

  1. Povlecite CreateBatchInferenceJob vozlišča na platno in podobno posodobite parametre API z ustreznimi vrednostmi.

Prepričajte se, da uporabljate $.SolutionVersionArn sintakso za pridobitev parametra ARN različice rešitve iz prejšnjega koraka. Ti parametri API-ja se posredujejo v CreateBatchInferenceJob API.

Potek dela korakov AWS

Zgraditi moramo čakalno logiko v poteku dela funkcij korakov, da zagotovimo, da se opravilo sklepanja priporočenega paketa konča, preden se potek dela zaključi.

  1. Poiščite in povlecite v vozlišču Wait.
  2. V konfiguraciji za Čakaj, vnesite 300 sekund.

To je poljubna vrednost; ta čakalni čas bi morali spremeniti glede na vaš specifični primer uporabe.

  1. Izberite CreateBatchInferenceJob znova in se pomaknite do Napaka pri ravnanju tab.
  2. za wrestling napake, vnesite Personalize.ResourceInUseException.
  3. za Nadomestno stanje, izberite Čakaj.

Ta korak nam omogoča občasno preverjanje statusa opravila in izstopi iz zanke šele, ko je opravilo končano.

  1. za ResultPath, vnesite $.errorMessage.

To dejansko pomeni, da ob prejemu izjeme »vir v uporabi« opravilo čaka x sekund, preden znova poskusi z istimi vnosi.

Potek dela korakov AWS

  1. Izberite Shrani, nato pa izberite Začnite z izvedbo.

Uspešno smo orkestrirali naš cevovod paketnih priporočil za Amazon Personalize. Kot izbirni korak lahko uporabite Amazon EventBridge da redno načrtujete sprožitev tega poteka dela. Za več podrobnosti glejte EventBridge (CloudWatch Events) za spremembe statusa izvajanja funkcij koraka.

Čiščenje

Da se izognete prihodnjim stroškom, izbrišite vire, ki ste jih ustvarili za ta korak.

zaključek

V tej objavi smo pokazali, kako ustvariti cevovod s priporočili serije z uporabo kombinacije AWS Glue, Amazon Personalize in funkcij Step, ne da bi potrebovali eno samo vrstico kode ali izkušnje z ML. Za pripravo podatkov v obliko, ki jo zahteva Amazon Personalize, smo uporabili AWS Glue. Nato smo uporabili Amazon Personalize za uvoz podatkov, ustvarjanje rešitve z receptom za personalizacijo uporabnika in ustvarjanje opravila paketnega sklepanja, ki ustvari privzeto 25 priporočil za vsakega uporabnika na podlagi preteklih interakcij. Te korake smo nato orkestrirali s funkcijami korakov, tako da lahko ta opravila izvajamo samodejno.

Za naslednje korake, ki jih je treba upoštevati, je segmentacija uporabnikov eden od novejših receptov v storitvi Amazon Personalize, ki bi ga morda želeli raziskati za ustvarjanje segmentov uporabnikov za vsako vrstico vhodnih podatkov. Za več podrobnosti glejte Pridobivanje skupinskih priporočil in segmentov uporabnikov.


O avtorju

Maxine Wee

Maxine Wee je AWS Data Lab Solutions Architect. Maxine sodeluje s strankami na njihovih primerih uporabe, oblikuje rešitve za reševanje njihovih poslovnih težav in jih vodi skozi izdelavo razširljivih prototipov. Maxine je pred svojim potovanjem z AWS pomagala strankam pri implementaciji projektov poslovne inteligence, skladiščenja podatkov in podatkovnega jezera v Avstraliji.

Časovni žig:

Več od Strojno učenje AWS