Luo eräsuositusputki käyttämällä Amazon Personalizea ilman koodia PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Luo eräsuositusputki Amazon Personalizella ilman koodia

Koska räätälöity sisältö lisää todennäköisemmin asiakkaiden sitoutumista, yritykset pyrkivät jatkuvasti tarjoamaan räätälöityä sisältöä asiakkaan profiilin ja käyttäytymisen perusteella. Suositusjärjestelmät pyrkivät erityisesti ennustamaan, minkälaisen mieltymyksen loppukäyttäjä antaisi tuotteelle. Joitakin yleisiä käyttötapauksia ovat tuotesuositukset verkkokaupoissa, uutiskirjeiden personointi, musiikkisoittolistasuositusten luominen tai jopa samanlaisen sisällön löytäminen verkkomediapalveluista.

Tehokkaan suositusjärjestelmän luominen voi kuitenkin olla haastavaa mallikoulutuksen, algoritmien valinnan ja alustan hallinnan monimutkaisuuden vuoksi. Amazon Muokkaa Sen avulla kehittäjät voivat parantaa asiakkaiden sitoutumista henkilökohtaisten tuote- ja sisältösuositusten avulla ilman koneoppimisen (ML) asiantuntemusta. Kehittäjät voivat alkaa houkutella asiakkaita heti käyttämällä tallennettuja käyttäjien käyttäytymistietoja. Kulissien takana Amazon Personalize tutkii nämä tiedot, tunnistaa merkitykselliset, valitsee oikeat algoritmit, kouluttaa ja optimoi tietoihisi mukautetun personointimallin sekä antaa suosituksia API-päätepisteen kautta.

Vaikka suositusten antaminen reaaliajassa voi auttaa lisäämään sitoutumista ja tyytyväisyyttä, joskus sitä ei välttämättä vaadita, ja sen suorittaminen erässä ajoitettuna voi yksinkertaisesti olla kustannustehokkaampi ja hallittavampi vaihtoehto.

Tämä viesti näyttää, kuinka voit käyttää AWS-palveluita suositusten luomisen lisäksi myös eräsuositusputkiston käyttöönottamiseksi. Käymme läpi päästä päähän -ratkaisun ilman yhtä koodiriviä. Keskustelemme kahdesta aiheesta yksityiskohtaisesti:

Ratkaisun yleiskatsaus

Tässä ratkaisussa käytämme MovieLens tietojoukko. Tämä tietojoukko sisältää 86,000 2,113 arviota elokuville XNUMX XNUMX käyttäjältä. Yritämme käyttää näitä tietoja suositusten luomiseen jokaiselle näistä käyttäjistä.

Tietojen valmistelu on erittäin tärkeää, jotta voimme varmistaa, että saamme asiakkaiden käyttäytymistiedot muodossa, joka on valmis Amazon Personalize -sovellukselle. Tässä viestissä kuvattu arkkitehtuuri käyttää AWS Gluea, palvelimetonta tietojen integrointipalvelua, suorittamaan raakatietojen muuntamisen muotoon, joka on valmis Amazon Personalize -sovellukselle. Ratkaisu käyttää Amazon Personalizea eräsuositusten luomiseen kaikille käyttäjille eräpäätelmän avulla. Käytämme sitten Step Functions -työnkulkua, jotta automatisoitu työnkulku voidaan suorittaa kutsumalla Amazon Personalize API:ita toistettavalla tavalla.

Seuraava kaavio esittää tämän ratkaisun.Arkkitehtuurikaavio

Rakennamme tämän ratkaisun seuraavilla vaiheilla:

  1. Luo datan muunnostyö muuttaaksesi raakatietomme AWS Glue -liimalla.
  2. Rakenna Amazon Personalize -ratkaisu muunnetun tietojoukon avulla.
  3. Luo Step Functions -työnkulku järjestääksesi eräpäätelmien luomisen.

Edellytykset

Tarvitset seuraavaa tätä läpikäyntiä varten:

Luo tietojen muunnostyö raakadatan muuntamiseksi AWS Gluella

Amazon Personalizessa syöttötiedoilla on oltava tietty skeema ja tiedostomuoto. Käyttäjien ja kohteiden välisten vuorovaikutusten tietojen on oltava CSV-muodossa tietyillä sarakkeilla, kun taas käyttäjäluettelon, joille haluat luoda suosituksia, on oltava JSON-muodossa. Tässä osiossa käytämme AWS Glue Studiota muuntaaksemme raakasyöttötiedot Amazon Personalize -sovelluksen vaadittuihin rakenteisiin ja muotoihin.

AWS Glue Studio tarjoaa graafisen käyttöliittymän, joka on suunniteltu helpottamaan purkamis-, muunnos- ja lataustöiden (ETL) luomista ja suorittamista. Voit luoda visuaalisesti datan muunnostyökuormia yksinkertaisilla vedä ja pudota -toiminnoilla.

Valmistelemme ensin lähdetietomme Amazonin yksinkertainen tallennuspalvelu (Amazon S3), sitten muunnamme tiedot ilman koodia.

  1. Luo Amazon S3 -konsolissa S3-säilö, jossa on kolme kansiota: raaka, muunnettu ja kuratoitu.
  2. Lataa MovieLens-tietojoukko ja lataa pakkaamaton tiedosto nimeltä user_ratingmovies-timestamp.dat raaka-kansioon.
  3. Valitse AWS Glue Studio -konsolista Työpaikat navigointipaneelissa.
  4. valita Visuaalinen lähde ja kohde, valitse sitten luoda.
  5. Valitse ensimmäinen solmu nimeltä Tietolähde – S3-ämpäri. Tässä määritämme syöttötietomme.
  6. On Tietolähteen ominaisuudet välilehti, valitse S3 sijainti ja selaa lataamaasi tiedostoon.
  7. varten Tietomuoto, valitse CSV, Ja delimiter, valitse Kieleke.
    AWS Glue Studio - S3
  8. Voimme valita Tulostusskeema-välilehden varmistaaksemme, että skeema on päätellyt sarakkeet oikein.
  9. Jos malli ei vastaa odotuksiasi, valitse muokata muokata kaaviota.
    AWS Glue Studio - Kentät

Seuraavaksi muunnamme nämä tiedot noudattamaan Amazon Personalize -sovelluksen skeemavaatimuksia.

  1. Valitse Muunna – Käytä kartoitus solmu ja, Muuttaa -välilehti, päivitä kohdeavain ja tietotyypit.
    Amazon Personalize odottaa vähintään seuraavan rakenteen vuorovaikutustietojoukko:
    • user_id (String)
    • item_id (String)
    • timestamp (pitkä, Unix epoch time -muodossa)
      AWS Glue Studio - Kentän kartoitus

Tässä esimerkissä suljemme pois huonosti arvioidut elokuvat tietojoukosta.

  1. Voit tehdä tämän poistamalla viimeisen solmun nimeltä S3-ämpäri ja lisäämällä siihen suodatinsolmu Muuttaa Tab.
  2. Valita Lisää ehto ja suodata tiedot, joiden arvosana on < 3.5.
    AWS Glue Studio - lähtö

Kirjoitamme nyt ulostulon takaisin Amazon S3:een.

  1. Laajenna Kohde valikosta ja valitse Amazon S3.
  2. varten S3 Kohdepaikka, valitse kansio nimeltä transformed.
  3. Valita CSV muodossa ja jälkiliitteenä Kohteen sijainti with interactions/.

Seuraavaksi annamme luettelon käyttäjistä, joille haluamme saada suosituksia.

  1. Valitse ApplyMapping solmu uudelleen ja laajenna sitten Muuttaa valikosta ja valitse ApplyMapping.
  2. Pudota kaikki kentät paitsi user_id ja nimeä kenttä uudelleen muotoon userId. Amazon Personalize odottaa, että kenttä nimetään käyttäjätunnus.
  3. Laajenna Kohde valikosta uudelleen ja valitse Amazon S3.
  4. Tällä kertaa valitse JSON muotoa ja valitse sitten muunnettu S3-kansio ja liitä se batch_users_input/.

Tämä tuottaa a JSON luettelo käyttäjistä syötteenä Amazon Personalizelle. Meillä pitäisi nyt olla kaavio, joka näyttää seuraavalta.

AWS Glue Studio - Koko työnkulku

Olemme nyt valmiita suorittamaan muutostyömme.

  1. Luo IAM-konsolissa rooli nimeltä glue-service-role ja liitä seuraavat hallitut käytännöt:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Lisätietoja IAM-palveluroolien luomisesta on kohdassa Roolin luominen oikeuksien delegoimiseksi AWS-palvelulle.

  1. Siirry takaisin AWS Glue Studio -työhön ja valitse Työn yksityiskohdat Tab.
  2. Aseta työn nimi muodossa batch-personalize-input-transform-job.
  3. Valitse juuri luotu IAM-rooli.
  4. Säilytä oletusarvot kaikelle muulle.
    AWS Glue Studio - Työn tiedot
  5. Valita Säästä.
  6. Kun olet valmis, valitse ajaa ja valvoa työtä Toimii Tab.
  7. Kun työ on valmis, siirry Amazon S3 -konsoliin vahvistaaksesi, että tulostiedostosi on luotu onnistuneesti.

Olemme nyt muokanneet tietomme sellaiseen muotoon ja rakenteeseen, jota Amazon Personalize vaatii. Muunnetussa tietojoukossa tulee olla seuraavat kentät ja muoto:

  • Vuorovaikutustiedot – CSV-muoto kentillä USER_ID, ITEM_ID, TIMESTAMP
  • Käyttäjän syöttämä tietojoukko – JSON-muoto elementillä userId

Rakenna Amazon Personalize -ratkaisu muunnetun tietojoukon avulla

Vuorovaikutustietojoukkomme ja käyttäjän syöttämien tietojen avulla oikeassa muodossa voimme nyt luoda Amazon Personalize -ratkaisumme. Tässä osiossa luomme tietojoukkoryhmämme, tuomme tietomme ja luomme sitten eräpäättelytyön. Tietojoukkoryhmä järjestää resurssit säilöihin Amazon Personalize -komponentteja varten.

  1. Valitse Amazon Personalise -konsolissa luoda tietojoukoryhmä.
  2. varten Domainvalitse Mittatilaus.
  3. Valita Luo tietojoukkoryhmä ja jatka.
    Amazon Personalize - luo tietojoukkoryhmä

Luo seuraavaksi vuorovaikutustietojoukko.

  1. Anna tietojoukon nimi ja valitse Luo uusi malli.
  2. Valita Luo tietojoukko ja jatka.
    Amazon Personalize – luo vuorovaikutustietojoukko

Tuomme nyt aiemmin luomamme vuorovaikutustiedot.

  1. Siirry S3-alueeseen, jossa loimme interaktioiden CSV-tietojoukon.
  2. On Oikeudet -välilehti, lisää seuraava ryhmäkäyttökäytäntö, jotta Amazon Personalizella on pääsy. Päivitä käytäntö lisäämällä ryhmän 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> /*"
             ]
          }
       ]
    }

Siirry takaisin Amazon Personalize -sovellukseen ja valitse Luo tietojoukon tuontityö. Vuorovaikutustietojoukomme pitäisi nyt tuoda Amazon Personalizeen. Odota, että tuontityö valmistuu ja sen tila on aktiivinen, ennen kuin jatkat seuraavaan vaiheeseen. Tämän pitäisi kestää noin 8 minuuttia.

  1. Valitse Amazon Personalise -konsolissa Yleiskatsaus navigointiruudussa ja valitse Luo ratkaisu.
    Amazon Personalize - Dashboard
  2. Anna ratkaisun nimi.
  3. varten Ratkaisun tyyppi, valitse Kohteen suositus.
  4. varten Resepti, Valitse aws-user-personalization resepti.
  5. Valita Luo ja kouluta ratkaisu.
    Amazon Personalize - luo ratkaisu

Ratkaisu harjoittelee nyt vuorovaikutustietojoukkoa vastaan, joka tuotiin käyttäjän personointireseptin kanssa. Seuraa tämän prosessin tilaa kohdasta Ratkaisuversiot. Odota sen valmistumista ennen kuin jatkat. Tämän pitäisi kestää noin 20 minuuttia.
Amazon Personalize - Tila

Luomme nyt eräpäätelmätyömme, joka luo suosituksia jokaiselle JSON-syötteen käyttäjälle.

  1. Navigointiruudun kohdassa Mukautetut resurssit, valitse Erän päättelytyöt.
  2. Anna työn nimi ja for Ratkaisu, valitse aiemmin luotu ratkaisu.
  3. Valita Luo eräpäätelty työ.
    Amazon Personalize - luo eräpäättelytyö
  4. varten Syötetietojen konfigurointi, syötä S3-polku, jossa batch_users_input tiedosto sijaitsee.

Tämä on JSON-tiedosto, joka sisältää userId.

  1. varten Lähtötietojen konfigurointi polku, valitse kuratoitu polku S3:ssa.
  2. Valita Luo eräpäätelty työ.

Tämä prosessi kestää noin 30 minuuttia. Kun työ on valmis, suositukset kullekin käyttäjän syöttötiedostossa määritetylle käyttäjälle tallennetaan S3-tulostuspaikkaan.

Olemme onnistuneesti luoneet suosituksia kaikille käyttäjillemme. Olemme kuitenkin toistaiseksi toteuttaneet ratkaisun vain konsolin avulla. Jotta voimme varmistaa, että tämä eräpäättely suoritetaan säännöllisesti uusimpien tietojen kanssa, meidän on rakennettava orkestrointityönkulku. Seuraavassa osiossa näytämme, kuinka voit luoda orkestrointityönkulun Step Functions -toiminnolla.

Luo Step Functions -työnkulku eräpäätelmän työnkulkua varten

Suunnittele putkisto suorittamalla seuraavat vaiheet:

  1. Valitse Step Functions -konsolista Luo tilakone.
  2. valita Suunnittele työnkulkusi visuaalisesti, valitse sitten seuraava.
    AWS Step Functions - Luo työnkulku
  3. Vedä CreateDatasetImportJob solmu vasemmalta (voit etsiä tätä solmua hakukentästä) kankaalle.
  4. Valitse solmu, ja sinun pitäisi nähdä konfigurointi-API-parametrit oikealla. Tallenna ARN.
  5. Syötä omat arvosi kohtaan API-parametrit tekstilaatikko.

Tämä kutsuu CreateDatasetImportJob API määrittämilläsi parametriarvoilla.

AWS Step Functions -työnkulku

  1. Vedä CreateSolutionVersion solmu kankaalle.
  2. Päivitä API-parametrit muistiin kirjoittamasi ratkaisun ARN-numerolla.

Tämä luo uuden ratkaisuversion juuri tuoduista tiedoista soittamalla CreateSolutionVersion API.

  1. Vedä CreateBatchInferenceJob solmu kankaalle ja päivittää vastaavasti API-parametrit asiaankuuluvilla arvoilla.

Varmista, että käytät $.SolutionVersionArn syntaksi noutaaksesi ratkaisuversion ARN-parametrin edellisestä vaiheesta. Nämä API-parametrit välitetään CreateBatchInferenceJob API.

AWS Step Functions -työnkulku

Meidän on rakennettava odotuslogiikka Step Functions -työnkulkuun varmistaaksemme, että suosituseräpäätelmätyö päättyy ennen työnkulun valmistumista.

  1. Etsi ja vedä odotussolmu.
  2. Konfiguraatiossa for Odota, syötä 300 sekuntia.

Tämä on mielivaltainen arvo; sinun tulee muuttaa tätä odotusaikaa käyttötapasi mukaan.

  1. Valitse CreateBatchInferenceJob solmu uudelleen ja navigoi kohtaan Virheiden käsittely Tab.
  2. varten paini virheet, tulla sisään Personalize.ResourceInUseException.
  3. varten Varatila, valitse Odota.

Tämän vaiheen avulla voimme säännöllisesti tarkistaa työn tilan ja se poistuu silmukasta vasta, kun työ on valmis.

  1. varten ResultPath, tulla sisään $.errorMessage.

Tämä tarkoittaa käytännössä sitä, että kun "resurssi käytössä" -poikkeus vastaanotetaan, työ odottaa x sekuntia ennen kuin yrittää uudelleen samoilla tuloilla.

AWS Step Functions -työnkulku

  1. Valita Säästä, ja valitse sitten Aloita suoritus.

Olemme onnistuneesti organisoineet Amazon Personalize -erasuositusputkemme. Valinnaisena vaiheena voit käyttää Amazon EventBridge ajoittaaksesi tämän työnkulun käynnistyksen säännöllisesti. Katso lisätietoja osoitteesta EventBridge (CloudWatch Events) Step Functions -suorituksen tila muuttuu.

Puhdistaa

Vältä tulevia maksuja poistamalla tätä ohjetta varten luomasi resurssit.

Yhteenveto

Tässä viestissä osoitimme, kuinka luoda eräsuositusputki käyttämällä AWS Glue-, Amazon Personalize- ja Step Functions -toimintojen yhdistelmää tarvitsematta yhtä koodiriviä tai ML-kokemusta. Käytimme AWS-liimaa valmistelemaan tietomme Amazon Personalize -sovelluksen vaatimaan muotoon. Sitten käytimme Amazon Personalizea tietojen tuomiseen, ratkaisun luomiseen käyttäjän mukauttamisreseptillä ja eräpäättelytyön luomiseen, joka luo oletusarvoisesti 25 suositusta kullekin käyttäjälle aiempien vuorovaikutusten perusteella. Sitten organisoimme nämä vaiheet Step Functions -toiminnolla, jotta voimme suorittaa nämä työt automaattisesti.

Seuraavaksi harkittavia vaiheita varten käyttäjien segmentointi on yksi Amazon Personalize -ohjelman uudemmista resepteistä, joita kannattaa ehkä tutkia luodaksesi käyttäjäsegmenttejä kullekin syöttötietojen riville. Katso lisätietoja osoitteesta Eräsuositusten ja käyttäjäsegmenttien saaminen.


Kirjailijasta

Maxine Wee

Maxine Wee on AWS Data Lab Solutions -arkkitehti. Maxine työskentelee asiakkaiden kanssa heidän käyttötapauksissaan, suunnittelee ratkaisuja heidän liiketoimintaongelmiinsa ja opastaa heitä skaalautuvien prototyyppien rakentamisessa. Ennen matkaansa AWS:n kanssa Maxine auttoi asiakkaita toteuttamaan BI-, tietovarastointi- ja datajärviprojekteja Australiassa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen