Looge Amazon Personalize'i abil partii-soovituskonveier ilma koodita PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Looge partii-soovituskonveier, kasutades Amazon Personalize'i ilma koodita

Kuna isikupärastatud sisu suurendab tõenäolisemalt klientide kaasamist, püüavad ettevõtted pidevalt pakkuda kohandatud sisu, mis põhineb nende kliendi profiilil ja käitumisel. Eelkõige püüavad soovitussüsteemid ennustada, millise eelistuse lõppkasutaja üksusele annab. Mõned levinumad kasutusjuhtumid hõlmavad tootesoovitusi Interneti-jaemüügipoodides, uudiskirjade isikupärastamist, muusika esitusloendite soovituste koostamist või isegi sarnase sisu avastamist võrgumeediateenustes.

Tõhusa soovitussüsteemi loomine võib aga olla keeruline mudelikoolituse, algoritmide valiku ja platvormihalduse keerukuse tõttu. Isikupärastage Amazon võimaldab arendajatel parandada klientide kaasamist isikupärastatud toote- ja sisusoovituste kaudu, ilma et oleks vaja masinõppe (ML) teadmisi. Arendajad saavad koheselt hakata kliente kaasama, kasutades jäädvustatud kasutajakäitumise andmeid. Kulisside taga uurib Amazon Personalize neid andmeid, tuvastab, mis on tähendusrikas, valib õiged algoritmid, treenib ja optimeerib teie andmete jaoks kohandatud isikupärastamise mudeli ning annab soovitusi API lõpp-punkti kaudu.

Kuigi soovituste esitamine reaalajas võib aidata kaasatust ja rahulolu suurendada, ei pruugi see mõnikord tegelikult vajalik olla ning selle ajakava alusel partiidena esitamine võib olla lihtsalt kuluefektiivsem ja paremini juhitav valik.

See postitus näitab, kuidas kasutada AWS-i teenuseid mitte ainult soovituste loomiseks, vaid ka pakettsoovituste torustiku kasutamiseks. Me käime läbi täieliku lahenduse ilma ühegi koodireata. Arutame üksikasjalikult kahte teemat:

Lahenduse ülevaade

Selles lahenduses kasutame FilmLens andmestik. See andmestik sisaldab 86,000 2,113 hinnangut filmidele XNUMX kasutajalt. Püüame neid andmeid kasutada soovituste loomiseks igale sellisele kasutajale.

Andmete ettevalmistamine on väga oluline tagamaks, et saame klientide käitumise andmed vormingus, mis on Amazon Personalize'i jaoks valmis. Selles postituses kirjeldatud arhitektuur kasutab serverita andmete integreerimisteenust AWS Glue, et muuta töötlemata andmed vormingusse, mis on Amazon Personalize'i jaoks valmis tarbimiseks. Lahendus kasutab Amazon Personalize'i, et luua pakettjärelduse abil kõikidele kasutajatele partii soovitusi. Seejärel kasutame Step Functions töövoogu, et automatiseeritud töövoogu saaks käitada, kutsudes korrataval viisil välja Amazon Personalize API-sid.

Seda lahendust näitab järgmine diagramm.Arhitektuuriskeem

Ehitame selle lahenduse järgmiste sammudega:

  1. Looge andmete teisendustöö, et AWS-liimi abil meie toorandmeid teisendada.
  2. Looge teisendatud andmestikuga Amazoni isikupärastamise lahendus.
  3. Pakettjärelduste genereerimise korraldamiseks looge sammufunktsioonide töövoog.

Eeldused

Selle juhendi jaoks vajate järgmist.

Toorandmete teisendamiseks AWS Glue'iga looge andmete teisendustöö

Amazon Personalize'iga peab sisendandmetel olema konkreetne skeem ja failivorming. Kasutajate ja üksuste vaheliste interaktsioonide andmed peavad olema CSV-vormingus kindlate veergudega, samas kui kasutajate loend, kelle jaoks soovite soovitusi luua, peab olema JSON-vormingus. Selles jaotises kasutame AWS Glue Studiot, et muuta töötlemata sisendandmed Amazon Personalize'i jaoks vajalikeks struktuurideks ja vorminguks.

AWS Glue Studio pakub graafilist liidest, mis on loodud ekstrakti-, teisendus- ja laadimistööde (ETL) hõlpsaks loomiseks ja käitamiseks. Lihtsate pukseerimistoimingute abil saate visuaalselt luua andmete teisendamise töökoormusi.

Esmalt valmistame oma lähteandmed sisse Amazoni lihtne salvestusteenus (Amazon S3), siis teisendame andmed ilma koodita.

  1. Looge Amazon S3 konsoolis kolme kaustaga S3 ämber: töötlemata, teisendatud ja kureeritud.
  2. Lae alla MovieLensi andmestik ja laadige tihendamata fail nimega user_ratingmovies-timestamp.dat oma toorkausta alla olevasse ämbrisse.
  3. Valige AWS Glue Studio konsoolil Tööturg navigeerimispaanil.
  4. valima Visuaal koos allika ja sihtmärgiga, siis vali Looma.
  5. Valige esimene sõlm, mida kutsutakse Andmeallikas – S3 ämber. Siin täpsustame oma sisendandmed.
  6. Kohta Andmeallika omadused vahekaardil valige S3 asukoht ja sirvige üleslaaditud faili.
  7. eest Andmete vorming, vali CSVNing Eraldaja, vali Tab.
    AWS liimistuudio – S3
  8. Saame valida vahekaardi Väljundskeem, et kontrollida, kas skeem on veerud õigesti järeldanud.
  9. Kui skeem ei vasta teie ootustele, valige Edit skeemi redigeerimiseks.
    AWS Glue Studio – väljad

Järgmisena teisendame need andmed, et järgida Amazon Personalize'i skeeminõudeid.

  1. Vali Teisenda – rakenda kaardistamist sõlm ja, kohta Muutma värskendage sihtvõtit ja andmetüüpe.
    Amazon Personalize eeldab vähemalt järgmist struktuuri interaktsioonide andmestik:
    • user_id (string)
    • item_id (string)
    • timestamp (pikk, Unixi ajastu formaadis)
      AWS Glue Studio – väljade kaardistamine

Selles näites jätame andmestikust välja halva hinnanguga filmid.

  1. Selleks eemaldage viimane sõlm nimega S3 kopp ja lisage filtrisõlm Muutma Tab.
  2. Vali lisama seisund ja filtreerige välja andmed, mille hinnang <3.5.
    AWS Glue Studio – väljund

Nüüd kirjutame väljundi tagasi Amazon S3-sse.

  1. Laienda sihtmärk menüü ja valige Amazon S3.
  2. eest S3 Sihtkoht, valige nimega kaust transformed.
  3. Vali CSV vorminguna ja järelliide Sihtkoht koos interactions/.

Järgmisena väljastame kasutajate loendi, kelle kohta soovime soovitusi saada.

  1. Vali Rakenda kaardistamist sõlme uuesti ja seejärel laiendage Muutma menüü ja valige Rakenda kaardistamist.
  2. Loobuge kõik väljad, välja arvatud user_id ja nimetage see väli ümber userId. Amazon Personalize eeldab, et sellele väljale antakse nimi kasutaja ID.
  3. Laienda sihtmärk menüü uuesti ja valige Amazon S3.
  4. Seekord vali JSON vorminguna ja seejärel valige teisendatud S3 kaust ja lisage see batch_users_input/.

See tekitab a JSON kasutajate loend Amazon Personalize'i sisendiks. Nüüd peaks meil olema diagramm, mis näeb välja järgmine.

AWS Glue Studio – kogu töövoog

Oleme nüüd valmis oma ümberkujundamistööd täitma.

  1. Looge IAM-konsoolis roll nimega glue-service-role ja lisage järgmised hallatavad eeskirjad.
    • AWSGlueServiceRole
    • AmazonS3FullAccess

IAM-i teenuserollide loomise kohta lisateabe saamiseks vaadake jaotist Rolli loomine AWS-teenusele õiguste delegeerimiseks.

  1. Navigeerige tagasi oma AWS Glue Studio töö juurde ja valige Töö üksikasjad Tab.
  2. Määra töö nimeks batch-personalize-input-transform-job.
  3. Valige äsja loodud IAM-i roll.
  4. Säilitage kõige muu jaoks vaikeväärtused.
    AWS Glue Studio – töö üksikasjad
  5. Vali Säästa.
  6. Kui olete valmis, valige jooks ja jälgida tööd Jookseb Tab.
  7. Kui töö on lõpetatud, liikuge Amazon S3 konsooli, et kontrollida, kas teie väljundfail on edukalt loodud.

Oleme nüüd kujundanud oma andmed Amazon Personalize'i nõutavasse vormingusse ja struktuuri. Teisendatud andmekogumil peaksid olema järgmised väljad ja vorming:

  • Interaktsioonide andmestik - CSV-vorming väljadega USER_ID, ITEM_ID, TIMESTAMP
  • Kasutaja sisestatud andmestik - JSON-vorming koos elemendiga userId

Looge teisendatud andmestikuga Amazoni isikupärastamise lahendus

Oma interaktsioonide andmestiku ja kasutaja sisestatud andmetega õiges vormingus saame nüüd luua oma Amazoni isikupärastamise lahenduse. Selles jaotises loome oma andmestikurühma, impordime andmed ja loome seejärel pakettjäreldamistöö. Andmestikurühm korraldab Amazon Personalize'i komponentide jaoks ressursid konteineritesse.

  1. Valige konsoolil Amazon Personalize Looma andmestiku rühm.
  2. eest Domeenvalige tava.
  3. Vali Looge andmestikurühm ja jätkake.
    Amazoni isikupärastamine – loo andmestikurühm

Järgmisena looge interaktsioonide andmestik.

  1. Sisestage andmestiku nimi ja valige Loo uus skeem.
  2. Vali Looge andmestik ja jätkake.
    Amazon Personalize – loo interaktsioonide andmekogum

Impordime nüüd varem loodud interaktsioonide andmed.

  1. Liikuge S3 ämbrisse, milles lõime oma interaktsioonide CSV-andmestiku.
  2. Kohta Õigused vahekaardil lisage järgmine ämbrijuurdepääsupoliitika, et Amazon Personalize'il oleks juurdepääs. Värskendage eeskirju, et lisada oma salga nimi.
    {
       "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> /*"
             ]
          }
       ]
    }

Navigeerige tagasi Amazoni isikupärastamisse ja valige Looge andmestiku importimise töö. Meie interaktsioonide andmestik peaks nüüd importima Amazon Personalize'i. Enne järgmise sammuga jätkamist oodake, kuni imporditöö on lõpule viidud ja olekuga Aktiivne. Selleks peaks kuluma umbes 8 minutit.

  1. Valige konsoolil Amazon Personalize Ülevaade navigeerimispaanil ja valige Loo lahendus.
    Amazoni isikupärastamine – armatuurlaud
  2. Sisestage lahenduse nimi.
  3. eest Lahenduse tüüp, vali Kauba soovitus.
  4. eest Retsept, Vali aws-user-personalization retsept.
  5. Vali Looge ja treenige lahendus.
    Amazon Personalize – loo lahendus

Lahendus treenib nüüd koos kasutaja isikupärastamise retseptiga imporditud interaktsioonide andmestikuga. Jälgige selle protsessi olekut jaotises Lahenduse versioonid. Enne jätkamist oodake, kuni see lõpeb. Selleks peaks kuluma umbes 20 minutit.
Amazoni isikupärastamine – olek

Loome nüüd oma partii järeldamistöö, mis genereerib soovitused iga JSON-sisendis oleva kasutaja jaoks.

  1. Navigeerimispaanil all Kohandatud ressursid, vali Partii järeldamistööd.
  2. Sisestage töö nimi ja jaoks Lahendus, valige varem loodud lahendus.
  3. Vali Looge partii järeldamistöö.
    Amazoni isikupärastamine – looge partii järeldamistöö
  4. eest Sisendandmete konfiguratsioon, sisestage S3 tee, kus batch_users_input fail asub.

See on JSON-fail, mis sisaldab userId.

  1. eest Väljundandmete konfiguratsioon tee, valige S3-s kureeritud tee.
  2. Vali Looge partii järeldamistöö.

See protsess võtab aega umbes 30 minutit. Kui töö on lõppenud, salvestatakse iga kasutaja sisendfailis määratud kasutaja soovitused S3 väljundi asukohta.

Oleme kõikidele kasutajatele edukalt koostanud soovituste komplekti. Kuid lahendust oleme seni juurutanud vaid konsooli kasutades. Veendumaks, et see partii järeldamine töötaks regulaarselt uusimate andmetega, peame looma orkestreerimise töövoo. Järgmises jaotises näitame teile, kuidas luua astmefunktsioonide abil orkestreerimise töövoogu.

Pakijäreldamise töövoo korraldamiseks looge sammufunktsioonide töövoog

Torujuhtme korraldamiseks toimige järgmiselt.

  1. Valige sammufunktsioonide konsoolil Loo olekumasin.
  2. valima Kujundage oma töövoogu visuaalselt, siis vali järgmine.
    AWS-i sammufunktsioonid – looge töövoog
  3. lohista CreateDatasetImportJob sõlm vasakult (saate seda sõlme otsida otsingukastist) lõuendile.
  4. Valige sõlm ja paremal peaksite nägema konfiguratsiooni API parameetreid. Salvestage ARN.
  5. Sisestage oma väärtused API parameetrid tekstikasti.

See kutsub CreateDatasetImportJob API teie määratud parameetriväärtustega.

AWS-i sammufunktsioonide töövoog

  1. lohista CreateSolutionVersion sõlm lõuendile.
  2. Värskendage API parameetreid üles märgitud lahenduse ARN-iga.

See loob äsja imporditud andmetega uue lahenduse versiooni, helistades numbrile CreateSolutionVersion API.

  1. lohista CreateBatchInferenceJob sõlme lõuendile ja värskendage samamoodi API parameetreid asjakohaste väärtustega.

Veenduge, et kasutate $.SolutionVersionArn süntaks lahenduse versiooni ARN parameetri toomiseks eelmisest etapist. Need API parameetrid edastatakse Loo BatchInferenceJob API.

AWS-i sammufunktsioonide töövoog

Peame sammufunktsioonide töövoos üles ehitama ooteloogika, et veenduda, et soovituste partii järeldustöö lõpetatakse enne töövoo lõppemist.

  1. Otsige üles ja lohistage ootesõlm.
  2. Konfiguratsioonis jaoks Oota, sisestage 300 sekundit.

See on suvaline väärtus; peaksite seda ooteaega muutma vastavalt oma konkreetsele kasutusjuhtumile.

  1. Vali CreateBatchInferenceJob sõlm uuesti ja navigeerige Viga käsitlemisel Tab.
  2. eest maadlus vigu, sisenema Personalize.ResourceInUseException.
  3. eest Varuseisund, vali Oota.

See samm võimaldab meil perioodiliselt kontrollida töö olekut ja see väljub tsüklist alles siis, kui töö on lõpetatud.

  1. eest TulemusPath, sisenema $.errorMessage.

See tähendab tegelikult, et kui erand „kasutatud ressurss” on vastu võetud, ootab töö x sekundit, enne kui proovib uuesti samade sisenditega.

AWS-i sammufunktsioonide töövoog

  1. Vali Säästa, ja seejärel vali Alusta täitmist.

Oleme Amazon Personalize'i jaoks oma partiisoovituste torustiku edukalt korraldanud. Valikulise sammuna saate kasutada Amazon EventBridge selle töövoo käivitaja regulaarseks ajastamiseks. Lisateabe saamiseks vaadake EventBridge (CloudWatch Events) Step Functions'i täitmise oleku muutmiseks.

Koristage

Edaspidiste tasude vältimiseks kustutage selle juhise jaoks loodud ressursid.

Järeldus

Selles postituses demonstreerisime, kuidas luua AWS-liimi, Amazoni isikupärastamise ja sammufunktsioonide kombinatsiooni abil partii soovituste konveier, ilma et oleks vaja ühtegi koodirida või ML-i kogemust. Kasutasime AWS-liimi, et koostada oma andmed vormingusse, mida Amazon Personalize nõuab. Seejärel kasutasime andmete importimiseks Amazon Personalize'i, kasutaja isikupärastamise retseptiga lahenduse loomiseks ja pakettjäreldamistöö loomiseks, mis loob varasemate interaktsioonide põhjal iga kasutaja jaoks vaikimisi 25 soovitust. Seejärel korraldasime need sammud sammufunktsioonide abil, et saaksime neid töid automaatselt käivitada.

Järgmiseks kaalumiseks on kasutajate segmentimine üks Amazon Personalize'i uuemaid retsepte, mida võiksite uurida, et luua iga sisendandmete rea jaoks kasutajasegmente. Lisateabe saamiseks vaadake Pakkide soovituste ja kasutajasegmentide hankimine.


Andmeid autor

Maxine Wee

Maxine Wee on AWS Data Lab Solutionsi arhitekt. Maxine töötab klientidega nende kasutusjuhtudel, kavandab lahendusi nende äriprobleemide lahendamiseks ja juhendab neid skaleeritavate prototüüpide loomisel. Enne oma reisi AWS-iga aitas Maxine klientidel Austraalias BI-, andmeladu- ja andmejärve projekte rakendada.

Ajatempel:

Veel alates AWS-i masinõpe