Anbefalingssystemer er en av de mest brukte teknologiene for maskinlæring (ML) i virkelige applikasjoner, alt fra sosiale nettverk til e-handelsplattformer. Brukere av mange nettbaserte systemer er avhengige av anbefalingssystemer for å knytte nye vennskap, oppdage ny musikk i henhold til foreslåtte musikklister, eller til og med ta kjøpsbeslutninger for netthandel basert på de anbefalte produktene. I sosiale nettverk er en vanlig brukssak å anbefale nye venner til en bruker basert på brukernes andre forbindelser. Brukere med felles venner kjenner hverandre sannsynligvis. Derfor bør de ha en høyere poengsum for et anbefalingssystem å foreslå hvis de ikke har blitt koblet til ennå.
Sosiale nettverk kan naturlig uttrykkes i en graf, hvor nodene representerer mennesker, og forbindelsene mellom mennesker, som vennskap eller medarbeidere, er representert av kanter. Det følgende illustrerer et slikt sosialt nettverk. La oss forestille oss at vi har et sosialt nettverk med medlemmene (nodene) Bill, Terry, Henry, Gary og Alistair. Relasjonene deres er representert av en lenke (kant), og hver persons interesser, som sport, kunst, spill og tegneserier, er representert av nodeegenskaper.
Målet her er å forutsi om det er en potensiell manglende kobling mellom medlemmene. Skal vi for eksempel anbefale en forbindelse mellom Henry og Terry? Når vi ser på grafen, kan vi se at de har to felles venner, Gary og Alistair. Derfor er det en god sjanse for at Henry og Terry enten kjente hverandre allerede eller kanskje blir kjent med hverandre snart. Hva med Henry og Bill? De har ingen felles venner, men de har en svak forbindelse gjennom vennenes forbindelser. I tillegg har de begge lignende interesser innen kunst, tegneserier og spill. Bør vi fremme denne forbindelsen? Alle disse spørsmålene og intuisjonene er kjernelogikken i anbefalingssystemer for sosiale nettverk.
En mulig måte å gjøre dette på er å anbefale relasjoner basert på grafutforskning. I grafiske spørringsspråk, som f.eks Apache TinkerPop Gremlin, implementeringen av regelsett som å telle felles venner, er relativt enkel, og den kan brukes til å bestemme koblingen mellom Henry og Terry. Disse regelsettene vil imidlertid være svært kompliserte når vi ønsker å ta hensyn til andre attributter som nodeegenskaper, tilkoblingsstyrke osv. La oss forestille oss et regelsett for å bestemme koblingen mellom Henry og Bill. Dette regelsettet må ta hensyn til deres felles interesser og deres svake forbindelser gjennom visse stier i grafen. For å øke robustheten må vi kanskje også legge til en avstandsfaktor for å favorisere sterke forbindelser og straffe de svake. På samme måte ønsker vi en faktor som favoriserer felles interesser. Snart vil regelsettene som kan avsløre komplekse skjulte mønstre bli umulige å regne opp.
ML-teknologi lar oss oppdage skjulte mønstre ved å lære algoritmer. Et eksempel er XGBoost, som er mye brukt til klassifiserings- eller regresjonsoppgaver. Algoritmer som XGBoost bruker imidlertid en konvensjonell ML-tilnærming basert på et tabellformat. Disse tilnærmingene er ikke optimalisert for grafiske datastrukturer, og de krever kompleks funksjonsteknikk for å takle disse datamønstrene.
I det foregående eksempelet på sosiale nettverk er grafinteraksjonsinformasjonen avgjørende for å forbedre anbefalingens nøyaktighet. Graph Neural Network (GNN) er et rammeverk for dyp læring (DL) som kan brukes på grafdata for å utføre prediksjonsoppgaver på kantnivå, nodenivå eller grafnivå. GNN-er kan utnytte individuelle nodekarakteristikker så vel som grafstrukturinformasjon når de lærer grafrepresentasjonen og underliggende mønstre. Derfor har GNN-baserte metoder de siste årene satt nye standarder for mange anbefalingssystemer. Se mer detaljert informasjon i nyere forskningsartikler: En omfattende undersøkelse om grafiske nevrale nettverk og Graflæringsbaserte anbefalingssystemer: en gjennomgang.
Følgende er et kjent eksempel på en slik brukssituasjon. Forskere og ingeniører ved Pinterest har utdannet seg Graf konvolusjonelle nevrale nettverk for web-skala-anbefalingssystemer, kalt PinSage, med tre milliarder noder som representerer pinner og brett, og 18 milliarder kanter. PinSage genererer høykvalitets innebygginger som representerer pinner (visuelle bokmerker til nettinnhold). Disse kan brukes til et bredt spekter av nedstrøms anbefalingsoppgaver, for eksempel oppslag til nærmeste nabo i det lærte innebyggingsrommet for innholdsoppdagelse og anbefalinger.
I dette innlegget vil vi lede deg gjennom hvordan du bruker GNN-er for brukstilfeller for anbefalinger ved å kaste dette som et koblingsprediksjonsproblem. Vi skal også illustrere hvordan Neptune ML kan lette implementeringen. Vi vil også gi eksempelkode på GitHub å trene din første GNN med Neptune ML, og foreta anbefalingsslutninger på demografen gjennom koblingsprediksjonsoppgaver.
Link prediksjon med Graph Neural Networks
Med tanke på det forrige eksempelet på sosiale nettverk, vil vi anbefale nye venner til Henry. Både Terry og Bill ville være gode kandidater. Terry har flere felles venner (Gary, Alistair) med Henry, men ingen felles interesser. Mens Bill deler felles interesser (kunst, tegneserier, spill) med Henry, men ingen felles venner. Hvilken ville vært en bedre anbefaling? Når det er innrammet som et koblingsprediksjonsproblem, er oppgaven å tildele en poengsum til enhver mulig kobling mellom de to nodene. Jo høyere koblingsscore, desto mer sannsynlig vil denne anbefalingen konvergere. Ved å lære koblingsstrukturer som allerede er til stede i grafen, kan en lenkeprediksjonsmodell generalisere nye koblingsprediksjoner som 'fullfører' grafen.
Parametrene til funksjonen f
som forutsier at linkpoengsummen læres i løpet av treningsfasen. Siden funksjonen f
gjør en prediksjon for hvilke som helst to noder i grafen, er funksjonsvektorene knyttet til nodene avgjørende for læringsprosessen. For å forutsi koblingsscore mellom Henry og Bill, har vi et sett med rådatafunksjoner (kunst, tegneserier, spill) som kan representere Henry og Bill. Vi transformerer dette, sammen med forbindelsene i grafen, ved å bruke et GNN-nettverk for å danne nye representasjoner kjent som node-innbygginger. Vi kan også supplere eller erstatte de innledende råfunksjonene med vektorer fra en innebygd oppslagstabell som kan læres under opplæringsprosessen. Ideelt sett bør de innebygde funksjonene for Henry og Bill representere deres interesser så vel som deres topologiske informasjon fra grafen.
Hvordan GNN-er fungerer
En GNN transformerer de første nodefunksjonene til nodeinnbygginger ved å bruke en teknikk kalt melding passerer. Prosessen med å sende meldinger er illustrert i følgende figur. I begynnelsen blir nodeattributtene eller funksjonene konvertert til numeriske attributter. I vårt tilfelle foretar vi en varm koding av de kategoriske funksjonene (Henrys interesser: kunst, tegneserier, spill). Deretter samler det første laget av GNN alle naboenes (Gary og Alistair) råfunksjoner (i svart) for å danne et nytt sett med funksjoner (i gult). En vanlig tilnærming er den lineære transformasjonen av alle nabotrekkene, for deretter å aggregere dem gjennom en normalisert sum, og overføre resultatene til en ikke-lineær aktiveringsfunksjon, for eksempel ReLU, for å generere et nytt vektorsett. Følgende figur illustrerer hvordan meldingsoverføring fungerer for node Henry. H, GNN-meldingsoverføringsalgoritmen, vil beregne representasjoner for alle grafnodene. Disse blir senere brukt som inngangsfunksjoner for det andre laget.
Det andre laget av en GNN gjentar den samme prosessen. Den tar den tidligere beregnede funksjonen (i gult) fra det første laget som input, samler alle Gary og Alistairs naboers nye innebygde funksjoner, og genererer andre lags funksjonsvektorer for Henry (i oransje). Som du kan se, ved å gjenta meldingsoverføringsmekanismen utvidet vi funksjonaggregeringen til 2-hop-naboer. I illustrasjonen vår begrenser vi oss til 2-hop-naboer, men utvidelse til 3-hop-naboer kan gjøres på samme måte ved å legge til et annet GNN-lag.
De endelige innbyggingene fra Henry og Bill (i oransje) brukes til å beregne poengsummen. Under treningsprosessen er koblingsskåren definert som 1 når kanten eksisterer mellom de to nodene (positiv prøve), og som 0 når kantene mellom de to nodene ikke eksisterer (negativ prøve). Deretter feilen eller tapet mellom den faktiske poengsummen og prediksjonen f(e1,e2)
forplantes tilbake til tidligere lag for å justere vektene. Når opplæringen er fullført, kan vi stole på de innebygde funksjonsvektorene for hver node for å beregne koblingsskårene deres med funksjonen vår f
.
I dette eksemplet forenklet vi læringsoppgaven på en homogen graf, hvor alle nodene og kantene er av samme type. For eksempel er alle nodene i grafen av typen "People", og alle kantene er typen "venner med". Læringsalgoritmen støtter imidlertid også heterogene grafer med forskjellige node- og kanttyper. Vi kan utvide den tidligere brukssaken til å anbefale produkter til forskjellige brukere som deler lignende interaksjoner og interesser. Se flere detaljer i denne forskningsoppgaven: Modellering av relasjonsdata med Graph Convolutional Networks.
På AWS re:Invent 2020 introduserte vi Amazon Neptune ML, som lar våre kunder trene ML-modeller på grafdata, uten nødvendigvis å ha dyp ML-ekspertise. I dette eksemplet, ved hjelp av Neptune ML, vil vi vise deg hvordan du bygger ditt eget anbefalingssystem på grafdata.
Tren Graph Convolution Network med Amazon Neptune ML
Neptune ML bruker grafnevrale nettverksteknologi for automatisk å lage, trene og distribuere ML-modeller på grafdataene dine. Neptune ML støtter vanlige grafprediksjonsoppgaver, for eksempel nodeklassifisering og regresjon, kantklassifisering og regresjon, og koblingsprediksjon.
Den drives av:
- Amazon Neptun: en rask, pålitelig og fullstendig administrert grafdatabase, som er optimalisert for å lagre milliarder av relasjoner og spørre grafen med millisekunders latency. Amazon Neptune støtter tre åpne standarder for å bygge grafapplikasjoner: Apache TinkerPop Gremlin, RDF SPARQL og openCypher. Lær mer på Oversikt over Amazon Neptune-funksjoner.
- Amazon SageMaker: en fullstendig administrert tjeneste som gir alle utviklere og dataforskere muligheten til å forberede bygge, trene og distribuere ML-modeller raskt.
- Deep Graph Library (DGL): en åpen kildekode, høy ytelse og skalerbar Python-pakke for DL på grafer. Den gir raske og minneeffektive meldingsoverføringsprimitiver for trening av Graph Neural Networks. Neptune ML bruker DGL for automatisk å velge og trene den beste ML-modellen for arbeidsmengden din. Dette lar deg lage ML-baserte spådommer på grafdata i timer i stedet for uker.
Den enkleste måten å komme i gang med Neptune ML er å bruke AWS CloudFormation hurtigstartmal. Malen installerer alle de nødvendige komponentene, inkludert en Neptune DB-klynge, og setter opp nettverkskonfigurasjoner, IAM-roller og tilhørende SageMaker notatbokforekomst med forhåndsutfylte notatbokeksempler for Neptune ML.
Følgende figur illustrerer forskjellige trinn for Neptune ML for å trene et GNN-basert anbefalingssystem. La oss zoome inn på hvert trinn og utforske hva det innebærer:
-
Konfigurasjon av dataeksport
Det første trinnet i vår Neptune ML-prosess er å eksportere grafdataene fra Neptune-klyngen. Vi må spesifisere parametere og modellkonfigurasjon for dataeksportoppgaven. Vi bruker Neptune arbeidsbenken for alle konfigurasjonene og roser. Arbeidsbenken lar oss jobbe med Neptune DB-klyngen ved å bruke Jupyter-notatbøker hostet av Amazon SageMaker. I tillegg gir den en rekke magiske kommandoer i notatbøkene som sparer mye tid og krefter. Her er vårt eksempel på eksportparametere:
In export_params
, må vi konfigurere det grunnleggende oppsettet, for eksempel Neptun-klyngen og utgang Amazon Simple Storage Service (S3) bane for eksportert datalagring. Konfigurasjonen spesifisert i additionalParams
er typen ML-oppgave som skal utføres. I dette eksemplet brukes koblingsprediksjon valgfritt for å forutsi en bestemt kanttype (Bruker—FRIEND—Bruker). Hvis ingen måltype er spesifisert, vil Neptune ML anta at oppgaven er Link Prediction. Parametrene spesifiserer også detaljer om dataene som er lagret i grafen vår og hvordan ML-modellen vil tolke disse dataene (vi har "Bruker" som node og "interesser" som nodeegenskap).
For å kjøre hvert trinn i ML byggeprosessen, bruk ganske enkelt Neptune arbeidsbenkkommandoer. De Neptune arbeidsbenk inneholder en linjemagi og en cellemagi som kan spare deg for mye tid på å administrere disse trinnene. For å kjøre dataeksporten, bruk kommandoen Neptune workbench: %neptune_ml export start
Når eksportjobben er fullført, vil vi få Neptun-grafen eksportert til CSV-format og lagret i en S3-bøtte. Det vil være to typer filer: nodes.csv
og edges.csv
. En fil som heter training-data-configuration.json
vil også bli generert som har konfigurasjonen som trengs for at Neptune ML skal utføre modelltrening.
Se Eksporter data fra Neptune for Neptune ML for mer informasjon.
-
Forbehandling av data
Neptune ML utfører funksjonsekstraksjon og koding som en del av databehandlingstrinnene. Vanlige typer egenskapsforbehandling inkluderer: koding av kategoriske funksjoner gjennom én-hot-koding, bucketing numeriske funksjoner, eller bruk av word2vec for å kode en strengegenskap eller andre friformede tekstegenskapsverdier.
I vårt eksempel vil vi ganske enkelt bruke eiendommen "interesser". Neptune ML koder verdiene som multikategoriske. Imidlertid, hvis en kategorisk verdi er kompleks (mer enn tre ord per node), utleder Neptune ML at egenskapstypen er tekst og bruker text_word2vec-kodingen.
For å kjøre dataforbehandling, bruk følgende Neptune notebook magic-kommando: %neptune_ml dataprocessing start
På slutten av dette trinnet genereres en DGL-graf fra det eksporterte datasettet for bruk av modelltreningstrinnet. Neptune ML justerer automatisk modellen med Hyperparameter Optimization Tuning-jobber definert i training-data-configuration.json
. Vi kan laste ned og endre denne filen for å justere modellens hyperparametre, for eksempel batch-størrelse, num-hidden, num-epoker, dropout, osv. Her er en eksempel configuration.json-fil.
Se Behandler grafdataene eksportert fra Neptun for trening for mer informasjon.
-
Modelltrening
Neste trinn er automatisert opplæring av GNN-modellen. Modellopplæringen gjøres i to trinn. Det første trinnet bruker en SageMaker Processing-jobb for å generere en modelltreningsstrategi. Dette er et konfigurasjonssett som spesifiserer hvilken type modell og modell hyperparameterområder som skal brukes for modellopplæringen.
Deretter vil en SageMaker-hyperparameterinnstillingsjobb bli lansert. De SageMaker Hyperparameter Tuning Optimization jobb kjører et forhåndsspesifisert antall modelltreningsjobbforsøk på de behandlede dataene, prøver forskjellige hyperparameterkombinasjoner i henhold til model-hpo-configuration.json
fil, og lagrer modellartefaktene generert av treningen i Amazon S3-utgangen.
For å starte treningstrinnet kan du bruke %neptune_ml training start
kommando.
Når alle treningsjobbene er fullført, vil Hyperparameter-innstillingsjobben lagre artefaktene fra modellen med best ytelse, som vil bli brukt for slutninger.
På slutten av opplæringen vil Neptune ML instruere SageMaker om å lagre den trente modellen, råinnbyggingene beregnet for nodene og kantene, og kartleggingsinformasjonen mellom innbyggingene og nodeindeksene.
Se Trening av en modell med Neptune ML for mer informasjon.
-
Opprett et slutningsendepunkt i Amazon SageMaker
Nå som grafrepresentasjonen er lært, kan vi distribuere den lærte modellen bak et endepunkt for å utføre slutningsforespørsler. Modellinndata vil være brukeren som vi trenger for å generere venners anbefalinger, sammen med kanttypen, og utdataene vil være listen over sannsynlige anbefalte venner for den brukeren.
For å distribuere modellen til SageMaker-endepunktforekomsten, bruk %neptune_ml endpoint create
kommando.
-
Spørr ML-modellen ved å bruke Gremlin
Når endepunktet er klart, kan vi bruke det til grafiske inferensspørringer. Neptune ML støtter grafinferensspørringer i Gremlin eller SPARQL. I vårt eksempel kan vi nå sjekke venneanbefalingen med Neptune ML på brukeren "Henry". Det krever nesten samme syntaks for å krysse kanten, og det viser de andre brukerne som er koblet til Henry gjennom FRIEND-forbindelsen.
Neptune#ml.prediction
returnerer forbindelsen bestemt av Neptune ML-spådommer ved å bruke modellen som vi nettopp har trent på den sosiale grafen. Bill er returnert akkurat som vår forventning.
Her er et annet eksempel på prediksjonsspørring som brukes til å forutsi de åtte beste brukerne som er mest sannsynlig å få kontakt med Henry:
Resultatene er rangert fra sterkere tilknytning til svakere, der kobling Henry — FRIEND — Colin and Henry — FRIEND — Terry
er også foreslått. Dette forslaget er gjennom grafbasert ML der komplekse interaksjonsmønstre på grafer kan utforskes.
Se Gremlin-inferensspørringer i Neptune ML for mer informasjon.
Modelltransformasjon eller omskolering når grafdata endres
Et annet spørsmål du kan stille er: hva om det sosiale nettverket mitt endres, eller hvis jeg vil gi anbefalinger for nylig lagt til brukere? I disse scenariene, hvor du har grafer i stadig endring, må du kanskje oppdatere ML-spådommer med de nyeste grafdataene. De genererte modellartefaktene etter trening er direkte knyttet til treningsgrafen. Dette betyr at slutningsendepunktet må oppdateres når enhetene i den opprinnelige treningsgrafen endres.
Du trenger imidlertid ikke å omskolere hele modellen for å lage spådommer på den oppdaterte grafen. Med en arbeidsflyt for inkrementell modellslutning trenger du bare å eksportere Neptune DB-data, utføre en inkrementell dataforbehandling, kjøre en batch-transformasjonsjobb for modell og deretter oppdatere slutningsendepunktet. Modelltransformeringstrinnet tar den trente modellen fra hovedarbeidsflyten og resultatene av trinnet for trinnvis dataforbehandling som input. Deretter sender den ut en ny modellartefakt som kan brukes til slutning. Denne nye modellartefakten er laget fra de oppdaterte grafdataene.
Et spesielt fokus her er for trinnkommandoen modelltransform. Den kan beregne modellartefakter på grafdata som ikke ble brukt til modelltrening. Nodeinnbyggingene beregnes på nytt og eventuelle eksisterende nodeinnbygginger overstyres. Neptune ML bruker den lærte GNN-koderen fra den forrige trente modellen til de nye grafdatanodene med sine nye funksjoner. Derfor må de nye grafdataene behandles med de samme funksjonskodingene, og de må følge det samme grafskjemaet som de originale grafdataene. Se flere detaljer om implementering av Neptune ML på Genererer nye modellartefakter.
Dessuten kan du trene om hele modellen hvis grafen endres dramatisk, eller hvis den tidligere trente modellen ikke lenger kunne representere de underliggende interaksjonene nøyaktig. I dette tilfellet kan ikke gjenbruk av de lærte modellparametrene på en ny graf garantere en lignende modellytelse. Du må omskolere modellen din på den nye grafen. For å akselerere hyperparametersøket kan Neptune ML utnytte informasjonen fra den forrige modelltreningsoppgaven med varm start: resultatene fra tidligere treningsjobber brukes til å velge gode kombinasjoner av hyperparametre for å søke over den nye tuningjobben.
Se arbeidsflyter for håndtering av grafdata i utvikling for mer informasjon.
konklusjonen
I dette innlegget har du sett hvordan Neptune ML og GNN-er kan hjelpe deg med å gi anbefalinger om grafdata ved å bruke en koblingsprediksjonsoppgave ved å kombinere informasjon fra de komplekse interaksjonsmønstrene i grafen.
Linkprediksjon er en måte å implementere et anbefalingssystem på grafen. Du kan konstruere anbefaleren din på mange andre måter. Du kan bruke innebyggingene som ble lært under koblingsprediksjonstrening til å gruppere nodene i forskjellige segmenter på en uovervåket måte, og anbefale elementer til den som tilhører samme segment. Videre kan du få tak i innebyggingene og mate dem inn i et nedstrøms likhetsbasert anbefalingssystem som en inndatafunksjon. Nå koder denne ekstra inndatafunksjonen også den semantiske informasjonen hentet fra grafen og kan gi betydelige forbedringer av systemets generelle presisjon. Lær mer om Amazon Neptune ML ved å besøke nettsted eller still gjerne spørsmål i kommentarfeltet!
Om forfatterne
Yanwei Cui, PhD, er en maskinlæringsspesialistløsningsarkitekt ved AWS. Han startet forskning på maskinlæring ved IRISA (Research Institute of Computer Science and Random Systems), og har flere års erfaring med å bygge kunstig intelligens-drevne industrielle applikasjoner innen datasyn, naturlig språkbehandling og online brukeratferdsprediksjon. Hos AWS deler han domeneekspertisen og hjelper kundene med å låse opp forretningspotensialer og å oppnå handlingsrettede resultater med maskinlæring i stor skala. Utenom jobben liker han å lese og reise.
Will Badr er en Principal AI/ML Specialist SA som jobber som en del av det globale Amazon Machine Learning-teamet. Will brenner for å bruke teknologi på innovative måter for å påvirke samfunnet positivt. På fritiden liker han å dykke, spille fotball og utforske Stillehavsøyene.
- '
- "
- 100
- 2020
- 7
- Om oss
- Ifølge
- Logg inn
- tillegg
- Ytterligere
- algoritme
- algoritmer
- Alle
- allerede
- Amazon
- Amazon maskinlæring
- Amazon SageMaker
- Apache
- søknader
- kunstig
- kunstig intelligens
- Arts
- Automatisert
- AWS
- AWS re: Oppfinne
- Begynnelsen
- BEST
- Bill
- Milliarder
- Svart
- bygge
- Bygning
- virksomhet
- saker
- utfordringer
- klassifisering
- kode
- Felles
- samfunnet
- komplekse
- Beregn
- informatikk
- Datamaskin syn
- databehandling
- Konfigurasjon
- tilkobling
- Tilkoblinger
- Konsoll
- innhold
- konvergerer
- kunne
- Kunder
- dato
- dataforsker
- datalagring
- Database
- avtale
- dyp læring
- Utvikler
- forskjellig
- Funnet
- avstand
- e-handel
- Edge
- Endpoint
- Ingeniørarbeid
- Ingeniører
- etc
- eksempel
- erfaring
- leting
- eksportere
- utdrag
- FAST
- Trekk
- Egenskaper
- Figur
- Først
- Fokus
- skjema
- format
- Rammeverk
- Gratis
- Vennskap
- funksjon
- Games
- generere
- Global
- god
- grafiske nevrale nettverk
- flott
- Håndtering
- hjelpe
- hjelper
- her.
- Hvordan
- Hvordan
- HTTPS
- IAM
- Påvirkning
- implementere
- bedre
- Inkludert
- Øke
- individuelt
- industriell
- informasjon
- innovative
- Intelligens
- interaksjon
- interesser
- IT
- Jobb
- Jobb
- Språk
- språk
- LÆRE
- lært
- læring
- Leverage
- Bibliotek
- linje
- LINK
- Liste
- lister
- plassering
- ser
- oppslag
- maskinlæring
- medlemmer
- millisekund
- ML
- modell
- musikk
- Naturlig språk
- Natural Language Processing
- nødvendig
- naboer
- nettverk
- nettverk
- neural
- nevrale nettverket
- nevrale nettverk
- Nye funksjoner
- noder
- notatbøker
- på nett
- åpen
- Annen
- Pacific
- Papir
- Ansatte
- ytelse
- fase
- Plattformer
- Spille
- Precision
- prediksjon
- Spådommer
- presentere
- Principal
- Problem
- prosess
- Produkter
- Profil
- fremme
- eiendom
- foreslå
- gi
- gir
- Kjøp
- Python
- spørsmål
- område
- Raw
- rådata
- RE
- Lesning
- regresjon
- Relasjoner
- erstatte
- forskning
- Resultater
- omskolering
- avkastning
- Kjør
- sagemaker
- Skala
- Vitenskap
- Søk
- sett
- Del
- Aksjer
- lignende
- Enkelt
- liten
- Fotball
- selskap
- sosial graf
- sosiale nettverk
- sosiale nettverk
- Solutions
- Rom
- Sports
- Scene
- standarder
- Begynn
- startet
- lagring
- butikker
- Strategi
- supplere
- Støtter
- Survey /Inspeksjonsfartøy
- system
- Systemer
- Target
- Technologies
- Teknologi
- Grafen
- Gjennom
- tid
- topp
- Kurs
- Transform
- Transformation
- Oppdater
- us
- Brukere
- verdi
- syn
- Hva
- HVEM
- allment
- Wikipedia
- uten
- ord
- Arbeid
- arbeidsflyt
- virker
- ville
- år
- zoom