Hozzon létre egy kötegelt ajánlási folyamatot az Amazon Personalize használatával, kód nélküli PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

Hozzon létre egy kötegelt ajánlási folyamatot az Amazon Personalize segítségével kód nélkül

Mivel a személyre szabott tartalom nagyobb valószínűséggel növeli az ügyfelek elköteleződését, a vállalkozások folyamatosan igyekeznek személyre szabott tartalmat biztosítani ügyfeleik profilja és viselkedése alapján. Az ajánlórendszerek különösen arra törekszenek, hogy előre jelezzék, hogy a végfelhasználó milyen előnyben részesítené az adott terméket. Néhány gyakori felhasználási eset a termékajánlások az online kiskereskedelmi üzletekben, a hírlevelek személyre szabása, a zenei lejátszási listák ajánlásainak generálása, vagy akár hasonló tartalmak felfedezése az online médiaszolgáltatásokban.

A modellképzés, az algoritmusok kiválasztása és a platformkezelés bonyolultsága miatt azonban kihívást jelenthet hatékony ajánlási rendszer létrehozása. Az Amazon testreszabása lehetővé teszi a fejlesztők számára, hogy személyre szabott termék- és tartalomajánlások révén javítsák az ügyfelek elkötelezettségét anélkül, hogy gépi tanulási (ML) szakértelemre lenne szükség. A rögzített felhasználói viselkedési adatok segítségével a fejlesztők azonnal megkezdhetik az ügyfelek bevonását. A színfalak mögött az Amazon Personalize megvizsgálja ezeket az adatokat, azonosítja a jelentéstartalmat, kiválasztja a megfelelő algoritmusokat, betanítja és optimalizálja az adatokhoz szabott személyre szabott modellt, valamint ajánlásokat ad egy API-végponton keresztül.

Bár a valós idejű ajánlások elősegítik az elköteleződést és az elégedettséget, néha erre nincs is szükség, és ennek ütemezett, kötegelt végrehajtása egyszerűen költséghatékonyabb és kezelhetőbb megoldás lehet.

Ez a bejegyzés bemutatja, hogyan használhatja az AWS-szolgáltatásokat nemcsak ajánlások létrehozására, hanem egy kötegelt ajánlási folyamat működtetésére is. Egyetlen kódsor nélkül járjuk végig a végpontok közötti megoldást. Két témát tárgyalunk részletesen:

Megoldás áttekintése

Ebben a megoldásban a MovieLens adatkészlet. Ez az adatkészlet 86,000 felhasználó filmjének 2,113 XNUMX értékelését tartalmazza. Ezeket az adatokat arra próbáljuk felhasználni, hogy ajánlásokat készítsünk minden egyes felhasználó számára.

Az adatok előkészítése nagyon fontos annak biztosításához, hogy az ügyfelek viselkedési adatait olyan formátumba hozzuk, amely készen áll az Amazon Personalize számára. Az ebben a bejegyzésben leírt architektúra az AWS Glue-ot, egy kiszolgáló nélküli adatintegrációs szolgáltatást használja a nyers adatok olyan formátumba történő átalakítására, amely készen áll az Amazon Personalize számára. A megoldás az Amazon Personalize segítségével kötegelt következtetések segítségével kötegelt ajánlásokat hoz létre minden felhasználó számára. Ezután Step Functions munkafolyamatot használunk, így az automatizált munkafolyamat az Amazon Personalize API-k megismételhető módon történő meghívásával futtatható.

A következő ábra ezt a megoldást mutatja be.Építészeti diagram

Ezt a megoldást a következő lépésekkel készítjük el:

  1. Hozzon létre egy adatátalakítási feladatot nyers adataink átalakításához az AWS ragasztóval.
  2. Építsen egy Amazon Personalize megoldást az átalakított adatkészlettel.
  3. Hozzon létre egy Step Functions munkafolyamatot a kötegelt következtetések generálásához.

Előfeltételek

Ehhez az áttekintéshez a következőkre lesz szüksége:

Hozzon létre egy adatátalakítási feladatot a nyers adatok AWS ragasztóval történő átalakításához

Az Amazon Personalize segítségével a bemeneti adatoknak meghatározott sémával és fájlformátummal kell rendelkezniük. A felhasználók és az elemek közötti interakciókból származó adatoknak CSV-formátumban kell lenniük meghatározott oszlopokkal, míg azon felhasználók listájának, amelyek számára ajánlásokat szeretne generálni, JSON-formátumúnak kell lennie. Ebben a részben az AWS Glue Studio segítségével alakítjuk át a nyers bemeneti adatokat az Amazon Personalize számára szükséges struktúrákra és formátumokra.

Az AWS Glue Studio grafikus felületet biztosít a kivonatolási, átalakítási és betöltési (ETL) feladatok egyszerű létrehozására és futtatására. Egyszerű fogd és vidd műveletekkel vizuálisan hozhat létre adatátalakítási munkaterheléseket.

Először elkészítjük forrásadatainkat Amazon egyszerű tárolási szolgáltatás (Amazon S3), majd kód nélkül átalakítjuk az adatokat.

  1. Az Amazon S3 konzolon hozzon létre egy S3 tárolót három mappával: nyers, átalakított és válogatott.
  2. Töltse le a MovieLens adatkészlet és töltse fel a user_ratingmovies-timestamp.dat nevű tömörítetlen fájlt a nyers mappa alatti vödörbe.
  3. Az AWS Glue Studio konzolon válassza a lehetőséget Állások a navigációs ablaktáblában.
  4. választ Vizuális forrással és célponttal, majd válassza ki Teremt.
  5. Válassza ki az első nevű csomópontot Adatforrás – S3 vödör. Itt adjuk meg a bemeneti adatainkat.
  6. A Adatforrás tulajdonságai lapon válassza ki a lehetőséget S3 hely és tallózással keresse meg a feltöltött fájlt.
  7. A Adat formátuma, választ CSV, Valamint a delimiter, választ Tab.
    AWS Glue Studio - S3
  8. A Kimeneti séma lapot kiválasztva ellenőrizhetjük, hogy a séma helyesen következtetett-e ki az oszlopokra.
  9. Ha a séma nem felel meg az elvárásainak, válasszon szerkesztése a séma szerkesztéséhez.
    AWS Glue Studio - Fields

Ezután átalakítjuk ezeket az adatokat az Amazon Personalize sémakövetelményeinek megfelelően.

  1. Válassza a Átalakítás – Leképezés alkalmazása csomópont és a Átalakítás lapon frissítse a célkulcsot és az adattípusokat.
    Az Amazon Personalize legalább a következő struktúrát várja el a interakciós adatkészlet:
    • user_id (húr)
    • item_id (húr)
    • timestamp (hosszú, Unix epoch időformátumban)
      AWS Glue Studio – Mezőtérkép

Ebben a példában kizárjuk a rosszul minősített filmeket az adatkészletből.

  1. Ehhez távolítsa el az utolsó csomópontot, az úgynevezett S3 vödört, és adjon hozzá egy szűrőcsomópontot Átalakítás Tab.
  2. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a hozzáad feltétel és szűrje ki azokat az adatokat, ahol az értékelés < 3.5.
    AWS Glue Studio - Kimenet

A kimenetet most visszaírjuk az Amazon S3-ba.

  1. Bontsa ki a cél menüben és válasszon Amazon S3.
  2. A S3 célhely, válassza ki a nevű mappát transformed.
  3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a CSV mint a formátum és az utótag a Cél val vel interactions/.

Ezután kiadjuk azoknak a felhasználóknak a listáját, akiknek ajánlásokat szeretnénk kapni.

  1. Válassza a ApplyMapping csomópont újra, majd bontsa ki a Átalakítás menüben és válasszon ApplyMapping.
  2. Minden mezőt el kell dobni, kivéve: user_id és nevezze át a mezőt erre userId. Az Amazon Personalize elvárja, hogy ezt a mezőt elnevezzék Felhasználói azonosító.
  3. Bontsa ki a cél menüt újra, és válassza ki Amazon S3.
  4. Ezúttal válassz JSON formátumként, majd válassza ki az átalakított S3 mappát, és utószóval rögzítse batch_users_input/.

Ez előállítja a JSON a felhasználók listája az Amazon Personalize bemeneteként. Most egy diagramot kell kapnunk, amely így néz ki.

AWS Glue Studio – teljes munkafolyamat

Most készen állunk az átalakítási munkánk végrehajtására.

  1. Az IAM-konzolon hozzon létre egy glue-service-role nevű szerepet, és csatolja a következő felügyelt házirendeket:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Az IAM szolgáltatási szerepkörök létrehozásával kapcsolatos további információkért tekintse meg a Szerepkör létrehozása az AWS-szolgáltatás engedélyeinek delegálásához.

  1. Lépjen vissza az AWS Glue Studio feladatához, és válassza ki a Munka részletei Tab.
  2. Állítsa be a feladat nevét így batch-personalize-input-transform-job.
  3. Válassza ki az újonnan létrehozott IAM-szerepet.
  4. Minden másnál tartsa meg az alapértelmezett értékeket.
    AWS Glue Studio – Munka részletei
  5. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Megtakarítás.
  6. Ha készen állsz, válassz futás és figyelemmel kíséri a munkát a Runs Tab.
  7. Amikor a feladat befejeződött, navigáljon az Amazon S3 konzolra, és ellenőrizze, hogy a kimeneti fájl sikeresen létrejött-e.

Adatainkat most az Amazon Personalize által megkívánt formátumra és szerkezetre alakítottuk. Az átalakított adatkészletnek a következő mezőkkel és formátummal kell rendelkeznie:

  • Interakciók adatkészlete – CSV formátum mezőkkel USER_ID, ITEM_ID, TIMESTAMP
  • Felhasználói beviteli adatkészlet – JSON formátum elemmel userId

Építsen egy Amazon Personalize megoldást az átalakított adatkészlettel

Interakciós adatkészletünkkel és felhasználói bemeneti adatainkkal a megfelelő formátumban létrehozhatjuk Amazon Personalize megoldásunkat. Ebben a szakaszban létrehozzuk az adatkészlet-csoportunkat, importáljuk az adatainkat, majd létrehozunk egy kötegelt következtetési feladatot. Egy adatkészlet-csoport tárolókba rendezi az erőforrásokat az Amazon Personalize összetevőihez.

  1. Az Amazon Personalize konzolon válassza a lehetőséget Teremt adatkészlet csoport.
  2. A Doménválassza szokás.
  3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Hozzon létre adatkészlet-csoportot, és folytassa.
    Amazon Personalize – adatkészlet-csoport létrehozása

Ezután hozza létre az interakciós adatkészletet.

  1. Adja meg az adatkészlet nevét, és válassza ki Hozzon létre új sémát.
  2. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Adatkészlet létrehozása és folytatás.
    Amazon Personalize – interakciós adatkészlet létrehozása

Most importáljuk a korábban létrehozott interakciós adatokat.

  1. Keresse meg az S3-csoportot, amelyben létrehoztuk interakciós CSV-adatkészletünket.
  2. A Engedélyek lapon adja hozzá a következő csoport hozzáférési szabályzatot, hogy az Amazon Personalize hozzáférhessen. Frissítse az irányelvet, hogy tartalmazza a csoport nevét.
    {
       "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> /*"
             ]
          }
       ]
    }

Lépjen vissza az Amazon Personalize oldalra, és válassza a lehetőséget Hozza létre az adatkészlet-importálási feladatot. Az interakciós adatkészletünket most importálni kell az Amazon Personalize szolgáltatásba. Várja meg, amíg az importálási feladat Aktív állapottal befejeződik, mielőtt folytatná a következő lépéssel. Ez körülbelül 8 percet vesz igénybe.

  1. Az Amazon Personalize konzolon válassza a lehetőséget Áttekintés a navigációs ablakban, és válassza ki Hozzon létre megoldást.
    Amazon Personalize – Irányítópult
  2. Adja meg a megoldás nevét.
  3. A Megoldás típusa, választ Tétel ajánlás.
  4. A Recept, válaszd a aws-user-personalization recept.
  5. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Megoldás létrehozása és betanítása.
    Amazon Personalize – hozzon létre megoldást

A megoldás most a felhasználói személyre szabási recepttel együtt importált interakciós adatkészlethez igazodik. Kövesse nyomon a folyamat állapotát a alatt Megoldás verziók. A folytatás előtt várja meg, amíg befejeződik. Ez körülbelül 20 percet vesz igénybe.
Amazon Personalize - Állapot

Most létrehozzuk a kötegelt következtetési feladatunkat, amely ajánlásokat generál a JSON-bemenetben jelen lévő minden egyes felhasználó számára.

  1. A navigációs ablakban a Egyéni források, választ Kötegelt következtetési feladatok.
  2. Adja meg a munka nevét, és a számára Megoldás, válassza ki a korábban elkészített megoldást.
  3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Kötegelt következtetési feladat létrehozása.
    Amazon Personalize – kötegelt következtetési feladat létrehozása
  4. A Bemeneti adatok konfigurációja, adja meg az S3 útvonalat, ahol a batch_users_input fájl található.

Ez a JSON fájl, amely tartalmazza userId.

  1. A Kimeneti adatok konfigurációja ösvény, válassza ki a kurált elérési utat az S3-ban.
  2. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Kötegelt következtetési feladat létrehozása.

Ez a folyamat körülbelül 30 percet vesz igénybe. Amikor a feladat befejeződött, a felhasználói beviteli fájlban megadott összes felhasználóhoz tartozó ajánlások mentésre kerülnek az S3 kimeneti helyre.

Sikeresen létrehoztunk egy sor ajánlást minden felhasználónk számára. A megoldást azonban eddig csak a konzol használatával valósítottuk meg. Annak érdekében, hogy ez a kötegelt következtetés rendszeresen lefusson a legújabb adatokkal, fel kell építenünk egy hangszerelési munkafolyamatot. A következő részben bemutatjuk, hogyan hozhat létre hangszerelési munkafolyamatot a Step Functions segítségével.

Hozzon létre egy Step Functions munkafolyamatot a kötegelt következtetés munkafolyamatának összehangolásához

A csővezeték hangszereléséhez hajtsa végre a következő lépéseket:

  1. A Step Functions konzolon válassza a lehetőséget Állapotgép létrehozása.
  2. választ Tervezze meg munkafolyamatát vizuálisan, majd válassza ki Következő.
    AWS Step Functions – Munkafolyamat létrehozása
  3. Húzza a CreateDatasetImportJob csomópont balról (ezt a csomópontot a keresőmezőben keresheti) a vászonra.
  4. Válassza ki a csomópontot, és a jobb oldalon látnia kell a konfigurációs API paramétereket. Rögzítse az ARN-t.
  5. Adja meg saját értékeit a API-paraméterek szövegdoboz.

Ezt hívják a CreateDatasetImportJob API a megadott paraméterértékekkel.

AWS Step Functions munkafolyamat

  1. Húzza a CreateSolutionVersion csomópont a vászonra.
  2. Frissítse az API-paramétereket a feljegyzett megoldás ARN-jével.

Ez létrehoz egy új megoldásverziót az újonnan importált adatokkal a CreateSolutionVersion API.

  1. Húzza a CreateBatchInferenceJob csomópontot a vászonra, és hasonló módon frissítse az API paramétereket a megfelelő értékekkel.

Ügyeljen arra, hogy használja a $.SolutionVersionArn szintaxist a megoldásverzió ARN paraméterének lekéréséhez az előző lépésből. Ezeket az API-paramétereket a rendszer átadja a CreateBatchInferenceJob API.

AWS Step Functions munkafolyamat

Fel kell építenünk egy várakozási logikát a Step Functions munkafolyamatban, hogy megbizonyosodjunk arról, hogy az ajánlási kötegelt következtetési feladat a munkafolyamat befejezése előtt befejeződik.

  1. Keressen meg és húzzon be egy Wait csomópontot.
  2. A konfigurációban Várjon, írja be a 300 másodpercet.

Ez egy tetszőleges érték; ezt a várakozási időt az adott használati esetnek megfelelően módosítania kell.

  1. Válassza a CreateBatchInferenceJob csomópont újra, és navigáljon a Hibakezelés Tab.
  2. A Fogás hibákat, belép Personalize.ResourceInUseException.
  3. A Tartalék állapot, választ Várjon.

Ez a lépés lehetővé teszi számunkra, hogy rendszeresen ellenőrizzük a feladat állapotát, és csak akkor lép ki a hurokból, ha a feladat befejeződött.

  1. A ResultPath, belép $.errorMessage.

Ez gyakorlatilag azt jelenti, hogy amikor a „használatban lévő erőforrás” kivétel érkezik, a job x másodpercet vár, mielőtt újra próbálkozna ugyanazokkal a bemenetekkel.

AWS Step Functions munkafolyamat

  1. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Megtakarítás, majd válassza ki Indítsa el a végrehajtást.

Sikeresen összeállítottuk kötegelt ajánlási folyamatunkat az Amazon Personalize számára. Opcionális lépésként használhatja Amazon EventBridge ennek a munkafolyamatnak a rendszeres ütemezéséhez. További részletekért lásd: Az EventBridge (CloudWatch Events) a Step Functions végrehajtási állapota megváltozik.

Tisztítsuk meg

A jövőbeni költségek elkerülése érdekében törölje az ehhez a bemutatóhoz létrehozott erőforrásokat.

Következtetés

Ebben a bejegyzésben bemutattuk, hogyan hozhatunk létre kötegelt ajánlási folyamatot az AWS Glue, az Amazon Personalize és a Step Functions kombinációjával anélkül, hogy egyetlen sornyi kódra vagy ML-tapasztalatra lenne szükségünk. Az AWS Glue segítségével készítettük elő adatainkat az Amazon Personalize által igényelt formátumra. Ezután az Amazon Personalize segítségével importáltuk az adatokat, létrehoztunk egy megoldást a felhasználó személyre szabásának receptjével, és létrehoztunk egy kötegelt következtetési feladatot, amely alapértelmezett 25 ajánlást generál minden felhasználó számára a múltbeli interakciók alapján. Ezután ezeket a lépéseket Step Functions segítségével hangszereltük, hogy ezeket a feladatokat automatikusan le tudjuk futtatni.

A következő lépések érdekében a felhasználói szegmentálás az Amazon Personalize egyik újabb receptje, amelyet érdemes lehet felfedezni, hogy felhasználói szegmenseket hozzon létre a bemeneti adatok minden sorához. További részletekért lásd: Kötegelt ajánlások és felhasználói szegmensek lekérése.


A szerzőről

Maxine Wee

Maxine Wee az AWS Data Lab Solutions Architect. A Maxine együttműködik az ügyfelekkel a használati eseteiken, megoldásokat tervez üzleti problémáik megoldására, és végigvezeti őket a méretezhető prototípusok építésén. Az AWS-hez való utazása előtt Maxine segített ügyfeleinek BI-, adattárház- és Data Lake-projektek megvalósításában Ausztráliában.

Időbélyeg:

Még több AWS gépi tanulás