See kolmeosaline seeria näitab, kuidas kasutada graafi närvivõrke (GNN) ja Amazon Neptuun filmisoovituste loomiseks kasutades IMDb ja Box Office Mojo Movies/TV/OTT litsentseeritav andmepakett, mis pakub laias valikus meelelahutuse metaandmeid, sealhulgas üle 1 miljardi kasutaja hinnangu; krediiti enam kui 11 miljonile näitleja- ja meeskonnaliikmele; 9 miljonit filmi, telesaadet ja meelelahutust; ja globaalsed kassaaruannete andmed enam kui 60 riigist. Paljud AWS-i meedia- ja meelelahutuskliendid litsentseerivad IMDb-andmeid selle kaudu AWS-i andmevahetus parandada sisu avastamist ning suurendada klientide seotust ja hoidmist.
Järgmine diagramm illustreerib selle seeria osana rakendatud terviklikku arhitektuuri.
In Osa 1, arutasime GNN-ide rakendusi ja seda, kuidas oma IMDb-andmeid teadmiste graafikuks (KG) teisendada ja ette valmistada. Laadisime andmed alla AWS Data Exchange'ist ja töötlesime need sisse AWS liim KG-failide genereerimiseks. KG-failid salvestati Amazoni lihtne salvestusteenus (Amazon S3) ja seejärel sisse laaditud Amazon Neptuun.
In Osa 2, näitasime, kuidas kasutada Amazon Neptune ML (in Amazon SageMaker) KG koolitamiseks ja KG manuste loomiseks.
Selles postituses tutvustame teile, kuidas rakendada meie koolitatud KG manuseid Amazon S3-s kataloogiväliste otsingute kasutusjuhtudel, kasutades Amazon OpenSearchi teenus ja AWS Lambda. Samuti juurutate interaktiivse otsingukogemuse jaoks kohaliku veebirakenduse. Kõiki selles postituses kasutatud ressursse saab luua üheainsa abil AWS pilvearenduskomplekt (AWS CDK) käsk, nagu on postituses hiljem kirjeldatud.
Taust
Kas olete kunagi tahtmatult otsinud sisu pealkirja, mis polnud video voogesituse platvormil saadaval? Kui jah, avastate, et tühja otsingutulemuste lehe asemel leiate sama žanri filmide loendi koos näitlejate või meeskonnaliikmetega. See on kataloogiväline otsingukogemus!
Kataloogiväline otsing (OOC) on siis, kui sisestate otsingupäringu, millel pole kataloogis otsest vastet. See sündmus esineb sageli video voogesituse platvormidel, mis ostavad piiratud aja jooksul pidevalt mitmesugust sisu mitmelt müüjalt ja tootmisettevõttelt. Voogedastusettevõtte kataloogi asjakohasuse või kaardistamise puudumine filmide ja saadete suurte teadmistebaasidega võib põhjustada OOC-sisu päringuid tegevate klientide jaoks madalama otsingukogemuse, vähendades seeläbi platvormiga suhtlemisaega. Seda vastendamist saab teha sagedaste OOC-päringute käsitsi vastendamise teel kataloogi sisuga või automatiseerida masinõppe (ML) abil.
Selles postituses illustreerime, kuidas käsitleda OOC-d, kasutades IMDb-andmestiku (ülemaailmse meelelahutuse metaandmete peamine allikas) ja teadmiste graafikuid.
OpenSearch Service on täielikult hallatav teenus, mis muudab interaktiivse logianalüüsi, reaalajas rakenduste jälgimise, veebisaidiotsingu ja muu lihtsa teostamise. OpenSearch on avatud lähtekoodiga hajutatud otsingu- ja analüüsikomplekt, mis on tuletatud Elasticsearchist. OpenSearch Service pakub OpenSearchi uusimaid versioone, toetab 19 Elasticsearchi versiooni (versioonid 1.5–7.10) ning visualiseerimisvõimalusi, mida toidavad OpenSearchi juhtpaneelid ja Kibana (versioonid 1.5–7.10). OpenSearch Service'il on praegu kümneid tuhandeid aktiivseid kliente ja sadu tuhandeid hallatavaid klastreid, mis töötlevad triljoneid päringuid kuus. OpenSearch Service pakub kNN-otsingut, mis võib täiustada otsingut kasutusjuhtudel, nagu tootesoovitused, pettuste tuvastamine ning pilt, video ja mõned konkreetsed semantilised stsenaariumid, nagu dokumendi ja päringu sarnasus. Lisateavet OpenSearch Service loomuliku keele mõistmisel põhinevate otsingufunktsioonide kohta leiate aadressilt NLU-toega otsingurakenduse loomine Amazon SageMakeri ja Amazon OpenSearch Service KNN funktsiooniga.
Lahenduse ülevaade
Selles postituses tutvustame lahendust OOC olukordade käsitlemiseks teadmiste graafikupõhise manustamisotsingu kaudu, kasutades OpenSearch Service'i k-lähima naabri (kNN) otsinguvõimalusi. Selle lahenduse rakendamiseks kasutatavad peamised AWS-teenused on OpenSearch Service, SageMaker, Lambda ja Amazon S3.
Kontrollima Osa 1 ja Osa 2 sellest seeriast, et saada lisateavet teadmiste graafikute loomise ja GNN-i manustamise kohta Amazon Neptune ML-i abil.
Meie OOC-lahendus eeldab, et teil on kombineeritud KG, mis on saadud voogedastusettevõtte KG ja IMDb KG ühendamisel. Seda saab teha lihtsate tekstitöötlustehnikate abil, mis vastavad pealkirjadele koos pealkirja tüübiga (film, sari, dokumentaalfilm), näitlejate ja meeskonnaga. Lisaks tuleb seda ühist teadmiste graafikut õpetada genereerima teadmiste graafiku manuseid jaotises mainitud torujuhtmete kaudu. Osa 1 ja Osa 2. Järgmine diagramm illustreerib kombineeritud KG lihtsustatud vaadet.
OOC-i otsingufunktsiooni demonstreerimiseks lihtsa näitega jagasime IMDb teadmiste graafiku kliendikataloogiks ja kliendiväliseks kataloogiks. Pealkirjad, mis sisaldavad “Toy Story”, märgime kliendivälise kataloogi ressursiks ja ülejäänud IMDb teadmiste graafiku kliendikataloogiks. Stsenaariumi korral, kus kliendikataloogi ei täiustata ega liideta väliste andmebaasidega, tagastaks otsing „mänguasjalugu” mis tahes pealkirja, mille metaandmetes on sõnad „mänguasi” või „lugu”, koos OpenSearchi tekstiotsinguga. Kui kliendikataloog oleks kaardistatud IMDb-ga, oleks lihtsam aru saada, et kataloogis pole päringut "mänguasjalugu" ja et IMDb-s on parimad vasted "Toy Story", "Toy Story 2", "Toy". 3. lugu, 4. mängulugu ja Charlie: mänguasjalugu kahanevas järjestuses teksti vastega. Kõigi nende vastete kataloogisiseste tulemuste saamiseks saame OpenSearch teenuse kaudu luua viis lähimat filmi kliendikataloogipõhises kNN-i (ühise KG) manustamises.
Tüüpiline OOC-kogemus järgib järgmisel joonisel näidatud voolu.
Järgmises videos näidatakse viit parimat (tabamuste arv) OOC tulemust päringule "mänguasjalugu" ja asjakohaseid vasteid kliendikataloogis (soovituste arv).
Siin sobitatakse päring teadmiste graafikuga, kasutades OpenSearch Service'i tekstiotsingut. Seejärel vastendame tekstivaste manused kliendikataloogi pealkirjadega, kasutades OpenSearch Service kNN indeksi. Kuna kasutajapäringut ei saa otse vastendada teadmiste graafiku olemitega, kasutame kaheastmelist lähenemisviisi, et esmalt leida pealkirjapõhised päringu sarnasused ja seejärel teadmiste graafiku manustamist kasutades pealkirjaga sarnased üksused. Järgmistes jaotistes käsitleme OpenSearch Service'i klastri seadistamist, teadmiste graafikute indeksite loomist ja üleslaadimist ning lahenduse veebirakendusena juurutamist.
Eeldused
Selle lahenduse rakendamiseks peaks teil olema AWS-i konto, OpenSearch Service'i, SageMakeri, Lambda ja AWS CloudFormationja olete toimingud täitnud Osa 1 ja Osa 2 sellest sarjast.
Käivitage lahendusressursse
Järgmine arhitektuuriskeem näitab kataloogivälist töövoogu.
OOC-i otsingurakenduste jaoks vajalike ressursside varustamiseks kasutate AWS-i pilvearenduskomplekti (CDK). Nende ressursside käivitamise kood teostab järgmisi toiminguid.
- Loob ressursside jaoks VPC.
- Loob otsingurakendusele OpenSearch Service'i domeeni.
- Loob Lambda funktsiooni filmi metaandmete töötlemiseks ja laadimiseks ning OpenSearch Service indeksitesse (
**-ReadFromOpenSearchLambda-**
). - Loob lambda funktsiooni, mis võtab sisendiks kasutaja päringu veebirakendusest ja tagastab asjakohased pealkirjad OpenSearchist (
**-LoadDataIntoOpenSearchLambda-**
). - Loob API lüüsi, mis lisab veebirakenduse kasutajaliidese ja Lambda vahele täiendava turvakihi.
Alustamiseks toimige järgmiselt.
- Käivitage kood ja märkmikud aadressilt Osa 1 ja Osa 2.
- Liikuge
part3-out-of-catalog
kausta koodihoidlas.
- Käivitage AWS CDK terminalist käsuga
bash launch_stack.sh
. - Esitage sisendiks kaks osas 3 loodud S2 failiteed:
- Filmi manustamise CSV-faili S3 tee.
- S3 tee filmisõlme failini.
- Oodake, kuni skript varustab kõik vajalikud ressursid ja lõpetab käitamise.
- Kopeerige API lüüsi URL, mille AWS CDK skript välja prindib, ja salvestage see. (Kasutame seda hiljem rakenduse Streamlit jaoks).
Looge OpenSearch teenuse domeen
Illustreerimiseks loote otsingudomeeni ühes saadavuse tsoonis r6g.large.search eksemplaris turvalises VPC-s ja alamvõrgus. Pange tähele, et parim tava oleks seadistada kolm saadavustsooni ühe esmase ja kahe koopiaeksemplariga.
Looge OpenSearch Service'i register ja laadige andmed üles
OpenSearch Service'i indeksite loomiseks kasutate Lambda funktsioone (loodud AWS CDK käivituspinu käsuga). Indeksi loomise alustamiseks toimige järgmiselt.
- Avage Lambda konsoolil
LoadDataIntoOpenSearchLambda
Lambda funktsioon. - Kohta test valige vahekaart test andmete loomiseks ja sisestamiseks OpenSearch Service'i registrisse.
Selle lambda funktsiooni järgmise koodi leiate part3-out-of-catalog/cdk/ooc/lambdas/LoadDataIntoOpenSearchLambda/lambda_handler.py
:
Funktsioon täidab järgmisi ülesandeid:
- Laadib IMDB KG filmisõlme faili, mis sisaldab filmi metaandmeid ja sellega seotud manuseid S3 failiteedelt, mis edastati virna loomise faili
launch_stack.sh
. - Ühendab kaks sisendfaili, et luua indeksi loomiseks üks andmeraamistik.
- Initsialiseerib OpenSearch Service'i kliendi Boto3 Pythoni teegi abil.
- Loob teksti jaoks kaks indeksit (
ooc_text
) ja kNN-i manustamise otsing (ooc_knn
) ja hulgiüleslaadimine kombineeritud andmeraamist läbiingest_data_into_ops
funktsiooni.
See andmete sisestamise protsess võtab aega 5–10 minutit ja seda saab jälgida Amazon CloudWatch logib peal Järelevalve Lambda funktsiooni vahekaart.
Tekstipõhise otsingu ja kNN-i manustamispõhise otsingu lubamiseks loote kaks indeksit. Tekstiotsing vastendab kasutaja sisestatud vabas vormis päringu filmi pealkirjadega. KNN-i manustamisotsing leiab KG varjatud ruumist parimale tekstivastetusele k kõige lähedasemat filmi, et väljundina naasta.
Juurutage lahendus kohaliku veebirakendusena
Nüüd, kui teil on OpenSearch Service'is töötav tekstiotsing ja kNN-indeks, olete valmis looma ML-toega veebirakendust.
Me kasutame streamlit
Pythoni pakett selle rakenduse jaoks esiotsa illustratsiooni loomiseks. The IMDb-Knowledge-Graph-Blog/part3-out-of-catalog/run_imdb_demo.py
Pythoni fail meie hulgas GitHub repo omab selle võimaluse uurimiseks kohaliku veebirakenduse käivitamiseks vajalikku koodi.
Koodi käivitamiseks toimige järgmiselt.
- Paigaldage
streamlit
jaaws_requests_auth
Pythoni pakett teie kohalikus virtuaalses Pythoni keskkonnas järgmiste käskude jaoks teie terminalis:
- Asendage koodis API lüüsi URL-i kohatäide järgmiselt AWS CDK loodud kohatäidetega:
api = '<ENTER URL OF THE API GATEWAY HERE>/opensearch-lambda?q={query_text}&numMovies={num_movies}&numRecs={num_recs}'
- Käivitage veebirakendus käsuga
streamlit run run_imdb_demo.py
oma terminalist.
See skript käivitab Streamliti veebirakenduse, millele pääseb juurde teie veebibrauseris. Veebirakenduse URL-i saab hankida skripti väljundist, nagu on näidatud järgmisel ekraanipildil.
Rakendus aktsepteerib uusi otsingustringe, tabamuste arvu ja soovituste arvu. Tabamuste arv vastab sellele, kui palju sobivaid OOC pealkirju peaksime välisest (IMDb) kataloogist hankima. Soovituste arv vastab sellele, kui palju lähimaid naabreid peaksime kNN-i manustamisotsingu põhjal kliendikataloogist välja otsima. Vaadake järgmist koodi:
See sisend (päring, tabamuste arv ja soovitused) edastatakse kasutajale **-ReadFromOpenSearchLambda-**
Lambda-funktsioon, mille on loonud AWS CDK API lüüsi päringu kaudu. Seda tehakse järgmise funktsiooniga:
Lambda funktsiooni väljundtulemused OpenSearch Service'ist edastatakse API Gatewayle ja kuvatakse rakenduses Streamlit.
Koristage
Saate kustutada kõik AWS CDK loodud ressursid käsu kaudu npx cdk destroy –app “python3 appy.py” --all
samal juhul (sees cdk
kaust), mida kasutati virna käivitamiseks (vt järgmist ekraanipilti).
Järeldus
Selles postituses näitasime teile, kuidas luua lahendus OOC-otsinguks, kasutades teksti- ja kNN-põhist otsingut, kasutades SageMakeri ja OpenSearch Service'i. Kasutasite kohandatud teadmiste graafiku mudeli manuseid, et leida oma kataloogist IMDb pealkirjadele lähimad naabrid. Nüüd saate näiteks otsida teistelt voogedastusplatvormidelt Amazon Prime Video välja töötatud fantaasiasarja "The Rings of Power" ja põhjendada, kuidas nad oleksid võinud otsingutulemust optimeerida.
Selle postituse koodinäidise kohta lisateabe saamiseks vaadake GitHub repo. Lisateavet Amazon ML Solutions Labiga koostöö tegemise kohta, et luua sarnaseid tipptasemel ML-rakendusi, vt Amazoni masinõppelahenduste labor. Lisateavet IMDb andmekogumite litsentsimise kohta leiate aadressilt developer.imdb.com.
Autoritest
Divya Bhargavi on andmeteadlane ning meedia ja meelelahutuse vertikaaljuht Amazon ML Solutions Labis, kus ta lahendab masinõpet kasutades AWS-i klientide jaoks väärtuslikke äriprobleeme. Ta tegeleb piltide/videote mõistmise, teadmiste graafikute soovitussüsteemide ja ennustavate reklaamide kasutamise juhtumitega.
Gaurav Rele on andmeteadlane Amazon ML Solution Labis, kus ta teeb koostööd AWS-i klientidega erinevatest vertikaalidest, et kiirendada nende masinõppe ja AWS-i pilveteenuste kasutamist nende äriprobleemide lahendamiseks.
Matthew Rhodes on andmeteadlane, kes töötan Amazon ML Solutions Labis. Ta on spetsialiseerunud masinõppe torujuhtmete ehitamisele, mis hõlmavad selliseid mõisteid nagu loomuliku keele töötlemine ja arvutinägemine.
Karan Sindwani on andmeteadlane Amazon ML Solutions Labis, kus ta koostab ja juurutab süvaõppe mudeleid. Ta on spetsialiseerunud arvutinägemise valdkonnale. Vabal ajal naudib ta matkamist.
Soji Adeshina on AWS-i rakendusteadlane, kus ta töötab välja graafikute närvivõrgupõhiseid mudeleid masinõppeks graafikute ülesannete jaoks koos rakendustega pettuse ja kuritarvitamise, teadmiste graafikute, soovitussüsteemide ja bioteaduste jaoks. Vabal ajal meeldib talle lugeda ja süüa teha.
Vidya Sagar Ravipati on Amazon ML Solutions Labi juht, kus ta kasutab oma tohutut kogemust suuremahuliste hajutatud süsteemide vallas ja kirge masinõppe vastu, et aidata AWS-i klientidel erinevates tööstusharudes kiirendada nende tehisintellekti ja pilve kasutuselevõttu.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/machine-learning/power-recommendations-and-search-using-an-imdb-knowledge-graph-part-3/
- 1
- 10
- 100
- 11
- 116
- 7
- 9
- a
- MEIST
- kuritarvitamise
- kiirendama
- Nõustub
- pääses
- üle
- aktiivne
- Täiendavad lisad
- Lisaks
- Lisab
- Vastuvõtmine
- reklaam
- AI
- Materjal: BPA ja flataatide vaba plastik
- Amazon
- Amazon ML Solutions Lab
- Amazon Neptuun
- Amazon Neptune ML
- Amazon OpenSearchi teenus
- Amazon SageMaker
- analytics
- ja
- API
- app
- taotlus
- rakendused
- rakendatud
- kehtima
- lähenemine
- arhitektuur
- PIIRKOND
- seotud
- Automatiseeritud
- kättesaadavus
- saadaval
- AWS
- AWS-i andmevahetus
- põhineb
- sest
- BEST
- vahel
- Miljard
- Kast
- piletikassa
- brauseri
- ehitama
- Ehitus
- Ehitab
- äri
- võimeid
- juhtudel
- kataloog
- väljakutseid
- Vali
- klient
- Cloud
- pilve adopteerimine
- pilvteenustest
- Cluster
- kood
- koostööd
- kombineeritud
- Ettevõtted
- ettevõte
- Ettevõtte omad
- täitma
- Lõpetatud
- arvuti
- Arvuti visioon
- mõisted
- konsool
- pidevalt
- sisaldab
- sisu
- vastab
- võiks
- riikides
- looma
- loodud
- loomine
- loomine
- Autorid
- Praegune
- Praegu
- tava
- klient
- Kliendi kaasamine
- Kliendid
- andmed
- Andmevahetus
- andmeteadlane
- andmebaasid
- andmekogumid
- sügav
- sügav õpe
- näitama
- Näidatud
- juurutada
- juurutamine
- juurutab
- Tuletatud
- kirjeldatud
- hävitama
- Detection
- arenenud
- & Tarkvaraarendus
- arendab
- erinev
- otsene
- otse
- avastus
- arutatud
- jagatud
- hajutatud süsteemid
- dokument
- dokumentaalfilm
- Ei tee
- domeen
- iga
- lihtsam
- võimaldama
- tegevus
- tõhustatud
- sisene
- Siseneb
- meelelahutus
- üksuste
- keskkond
- sündmus
- KUNAGI
- näide
- vahetamine
- kogemus
- uurima
- väline
- lisatasu
- ees
- Tuttav
- FANTASY
- Joonis
- fail
- Faile
- leidma
- leiab
- esimene
- voog
- Järel
- järgneb
- avastatud
- pettus
- pettuste avastamine
- sage
- sageli
- Alates
- täielikult
- funktsioon
- funktsionaalsused
- funktsionaalsus
- funktsioonid
- värav
- tekitama
- saama
- Globaalne
- graafik
- graafikud
- käepide
- päised
- aitama
- Tulemus
- Hits
- Kuidas
- Kuidas
- HTML
- HTTPS
- sajad
- pilt
- rakendada
- rakendatud
- parandama
- in
- Kaasa arvatud
- Suurendama
- indeks
- indeksid
- Indeksid
- tööstus
- info
- sisend
- paigaldama
- Näiteks
- selle asemel
- suhtlemist
- interaktiivne
- Interface
- kaasama
- IT
- kirjed
- Võti
- teadmised
- Teadmised graafik
- labor
- keel
- suur
- suuremahuline
- hiljemalt
- algatama
- käivitab
- kiht
- viima
- Õppida
- õppimine
- võimendab
- Raamatukogu
- litsents
- litsentsimine
- elu
- Maaülikooli
- piiratud
- nimekiri
- koormus
- kohalik
- masin
- masinõpe
- TEEB
- juhitud
- juhtimine
- juht
- käsitsi
- palju
- kaart
- kaardistus
- kaardid
- märk
- Vastama
- sobitamine
- Meedia
- liikmed
- mainitud
- ühinevad
- Metaandmed
- miljon
- protokoll
- ML
- mudel
- mudelid
- jälgitakse
- järelevalve
- kuu
- rohkem
- film
- Filmid
- mitmekordne
- Natural
- Natural Language Processing
- naabrid
- Neptuun
- võrgupõhine
- võrgustikud
- närvivõrgud
- Uus
- sõlme
- number
- saadud
- Pakkumised
- Office
- ONE
- avatud
- avatud lähtekoodiga
- Operations
- optimeeritud
- et
- OS
- Muu
- pakend
- osa
- Vastu võetud
- kirg
- tee
- täitma
- täidab
- kohatäide
- inimesele
- Platvormid
- Platon
- Platoni andmete intelligentsus
- PlatoData
- palun
- post
- võim
- sisse
- tava
- peaminister
- Valmistama
- esitada
- esmane
- Peamine
- pildid
- probleeme
- protsess
- Töödeldud
- töötlemine
- Toode
- Produktsioon
- annab
- säte
- ostma
- eesmärkidel
- Python
- valik
- hinnangust
- Lugemine
- valmis
- reaalajas
- põhjus
- Soovitus
- soovitused
- asjakohasus
- asjakohane
- vastus
- Aruandlus
- Hoidla
- taotleda
- Taotlusi
- nõutav
- ressurss
- Vahendid
- vastus
- REST
- kaasa
- Tulemused
- säilitamine
- tagasipöördumine
- Tulu
- jooks
- jooksmine
- salveitegija
- sama
- Säästa
- stsenaariumid
- TEADUSED
- teadlane
- Otsing
- lõigud
- kindlustama
- turvalisus
- Seeria
- teenus
- Teenused
- komplekt
- kehtestamine
- seaded
- peaks
- näidatud
- Näitused
- sarnane
- sarnasused
- lihtne
- lihtsustatud
- ühekordne
- olukordades
- lahendus
- Lahendused
- LAHENDAGE
- Lahendab
- mõned
- allikas
- Ruum
- spetsialiseerunud
- konkreetse
- jagada
- Kestab
- algus
- alustatud
- modernne
- Sammud
- ladustamine
- ladustatud
- Lugu
- streaming
- alamvõrgu
- selline
- komplekt
- toetama
- süsteemid
- Võtma
- võtab
- ülesanded
- tehnikat
- terminal
- .
- Piirkond
- liiges
- oma
- sellega
- tuhandeid
- kolm
- Läbi
- aeg
- Kapslid
- pealkirjad
- et
- ülemine
- Rong
- koolitatud
- Muutma
- triljoneid
- tv
- tüüpiline
- all
- mõistmine
- Üleslaadimine
- URL
- kasutama
- Kasutaja
- Kasutajaliides
- kasutades
- sort
- suur
- müüjad
- vertikaalid
- Video
- vaade
- virtuaalne
- nägemus
- visualiseerimine
- web
- Veebirakendus
- veebibrauseri
- veebisait
- mis
- lai
- Lai valik
- will
- jooksul
- sõna
- sõnad
- töö
- töötab
- oleks
- sa
- Sinu
- sephyrnet
- tsoonid