Ndërtoni rekomandime për mësimin e makinerisë në aplikacionin tuaj me AWS Personalize


AWS Personalize është një motor rekomandimi produkti që funksionon shumë si ai i përdorur për Amazon.com, i krijuar nga mbi 20 vjet përvojë personalizimi. Mund ta zbatoni si API-në tuaj për të fuqizuar sugjerimet e aplikacionit tuaj me mësimin e makinerive.

Çfarë është AWS Personalize?

Motori i rekomandimit të produktit është një term i përgjithshëm që mund të shtrihet për të zbatuar shumë gjëra, jo vetëm për blerjet në internet. Merrni YouTube për shembull. Nëse regjistroheni për një llogari të re në YouTube, do të merrni shumë video të përgjithshme që tërheqin një audiencë masive—gjëra që janë në trend, kryesisht. Sidoqoftë, nëse kërkoni për minecraft letsplay dhe shikoni një video gjysmë ore, algoritmi i rekomandimit të YouTube do ta marrë parasysh këtë. Ai do të shikojë etiketat, titullin, kanalin, datën e postimit dhe të dhëna të tjera meta nga videoja që ju pëlqeu, dhe më pas, duke përdorur mësimin e makinerive, do të përpiqet të gjejë video të tjera që janë të ngjashme me të dhe kanë pasur angazhim të ngjashëm nga përdorues të tjerë . Ndoshta do të merrni më shumë video nga e njëjta seri, pasi njerëzit do të priren t'i shikojnë gjërat në rend kronologjik. Ndoshta ka një kanal tjetër që prodhon përmbajtje të ngjashme, që mund t'ju pëlqejë gjithashtu.

E gjithë kjo mundësohet nga rekomandimet e mësimit të makinerive. Produkti mund të jetë çdo gjë - në rastin e Amazon, janë artikujt që ata kanë për shitje. Për YouTube, janë video. Për Spotify, janë këngë të reja për t'u luajtur. Për Facebook (ose çdo shërbim të mediave sociale, në të vërtetë), janë postime nga përdoruesit.

Ky motor është i paketuar në një PaaS të pavarur që nuk kërkon asnjë lloj njohurie specifike të mësimit të makinerive. Ju ushqeni veprimet e përdoruesit të motorit (klikoni në këtë postim, dëgjuat këtë këngë për X minuta, etj.) dhe motori do të nxjerrë rekomandime të reja nga katalogu i produktit tuaj kur t'ju kërkohet. Rekomandimet mund të fillojnë pak me njolla, por sapo modeli juaj të trajnohet mjaftueshëm, ato do të fillojnë të bëhen shumë të sakta.

Konfigurimi i AWS Personalize

Çdo projekt AWS Personalize do të ketë tre grupe të dhënash:

  • Përdoruesit që gjurmojnë meta të dhënat për vetë përdoruesit
  • Artikuj që funksionojnë si një katalog produktesh
  • Ndërveprimet, të cilat regjistrojnë ngjarjet e ndërveprimit midis përdoruesve dhe artikujve

Lista e Ndërveprimeve është ajo që është më e rëndësishmja, pasi gjurmon të gjitha ngjarjet dhe funksionon si bazë për trajnimin e modelit. Listat e përdoruesve dhe artikujve ofrojnë të dhëna shtesë që do ta ndihmojnë modelin të krijojë lidhje inteligjente. Për shembull, duke ditur moshën e një përdoruesi, Personalize mund t'u rekomandojë produkte të ndryshme grupmoshave të ndryshme, bazuar në gjasat e tyre për të qenë të zbatueshëm.

Opsioni i parazgjedhur është të importoni të dhëna historike nga një skedar CSV, megjithëse mund të përdorni API-në e gjurmuesit të ngjarjeve për të dërguar përditësime në kohë reale pasi të keni filluar gjithçka. Sidoqoftë, do t'ju duhet të keni disa të dhëna trajnimi për t'u importuar - importi do të dështojë nëse keni më pak se 1000 hyrje në listën tuaj të ndërveprimeve. Nëse thjesht po kërkoni të provoni Personalizimin, do t'ju duhet të krijoni një lloj të dhënash false që i përmbahen skemës tuaj përpara se të vazhdoni me importimin.

Drejtohuni te AWS Personalize Management Console për të filluar. Krijo një grup të ri të dhënash, i cili do të funksionojë si një Aplikacion individual. Do të kërkojë një emër:

Klikoni tjetër dhe do të silleni automatikisht për të konfiguruar importin e ndërveprimeve. Jepini një emër (“ndërveprime”) dhe përcaktoni skemën tuaj. Kjo është në formatin Apache Avro dhe tregon Personalize se cilat fusha ka çdo ndërveprim (ose produkt/përdorues). Për ndërveprimet, më themelore është një lidhje e USER_ID me PRODUCT_ID, e cila përdoret për të kërkuar përdoruesit dhe produktet nga tabelat e tjera (një lidhje relacionale shumë-me-shumë).

Më pas do t'ju duhet të importoni të dhëna në Personalize, nga një skedar CSV në S3. Së pari, zgjidhni ose krijoni një rol shërbimi që mund të hyjë në këtë kovë. Ju gjithashtu do të duhet të bashkëngjitni politikën e mëposhtme të kovës në kovën e synuar për të lejuar Personalize të aksesojë atë, duke zëvendësuar emri i kovës me emrin e kovës tuaj:

{
    "Version": "2012-10-17",
    "Id": "PersonalizeS3BucketAccessPolicy",
    "Statement": [
        {
            "Sid": "PersonalizeS3BucketAccessPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "personalize.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

Pastaj mund të ngjitni në shtegun e skedarit:

Klikoni Finish dhe do të silleni në panelin e të dhënave, ku do të shihni se grupi i të dhënave të ndërveprimeve është konfiguruar tani. Ju do të duhet ta përsërisni këtë proces dy herë më shumë, duke krijuar grupe të dhënash për përdoruesit dhe produktet. Gjithçka me siguri do të marrë disa minuta për të importuar në varësi të madhësisë së të dhënave tuaja.

Pasi të importohet gjithçka, duhet të krijoni një zgjidhje, e cila është një model i trajnuar i bazuar në të dhënat tuaja, i cili mund të përdoret si bazë për fushatat që do të japin rekomandime aktuale. Krijo një nga paneli i kontrollit:

Jepini një emër dhe zgjidhni recetën që dëshironi të përdorni për të fuqizuar zgjidhjen. Ju mund ta zgjidhni këtë manualisht, ose mund të zgjidhni AutoML, e cila do të përdorë HRNN të AWS për të bërë parashikime. Nëse nuk jeni të sigurt, zgjidhni AutoML.

Zgjidhjet do të kenë versione të shumta për ta bërë më të lehtë menaxhimin e tyre. Kur krijoni zgjidhjen, do të krijohet edhe versioni fillestar.

Pasi versioni i zgjidhjes suaj të përfundojë inicializimi, mund të krijoni një fushatë: në thelb, një motor konkluzionesh instanciale, për marrjen e rekomandimeve aktuale. Ka një pikë fundore REST API të cilën mund ta kërkoni dhe përdorni nga aplikacioni juaj.

Nga skeda Fushata në shiritin anësor, krijoni një fushatë të re, vendosni një emër dhe zgjidhni zgjidhjen tuaj. Pasi të krijohet, duhet të jeni në gjendje ta provoni atë nga AWS CLI:

aws personalize-rec get-recommendations --campaign-arn $CAMPAIGN_ARN 
--user-id $USER_ID --query "itemList[*].itemId"

Kjo komandë do të marrë rekomandimet nga fushata juaj për ID-në e përdoruesit të specifikuar. Nëse gjithçka funksionon si duhet, duhet të shihni një listë të ID-ve të artikujve të rekomanduara për përdoruesin.

Për të shtuar të dhëna në kohë reale në zgjidhje, do t'ju duhet të krijoni një gjurmues ngjarjesh nga shiriti anësor. Kjo do t'ju japë një ID gjurmuese të cilën mund ta përdorni për të futur të dhëna.

Ka dy mënyra për ta konfiguruar këtë: nëse jeni duke përdorur AWS Amplify, kornizën mbështetëse të uebit dhe të aplikacioneve celulare të AWS, konfigurimi është i thjeshtë dhe thjesht do t'ju duhet ta konfiguroni atë nga tastiera Amplify. Nëse nuk jeni, do të duhet të konfiguroni një funksion Lambda për të përpunuar të dhënat dhe për t'i dërguar ato në Personalize.