Aanbevelingssystemen zijn een van de meest gebruikte technologieën voor machine learning (ML) in real-world toepassingen, variërend van sociale netwerken tot e-commerceplatforms. Gebruikers van veel online systemen vertrouwen op aanbevelingssystemen om nieuwe vriendschappen te sluiten, nieuwe muziek te ontdekken op basis van voorgestelde muzieklijsten of zelfs e-commerce aankoopbeslissingen te nemen op basis van de aanbevolen producten. In sociale netwerken is een veelvoorkomende use case het aanbevelen van nieuwe vrienden aan een gebruiker op basis van de andere connecties van de gebruiker. Gebruikers met gemeenschappelijke vrienden kennen elkaar waarschijnlijk. Daarom zouden ze een hogere score moeten hebben voor een aanbevelingssysteem om voor te stellen als ze nog niet zijn aangesloten.
Sociale netwerken kunnen natuurlijk worden uitgedrukt in een grafiek, waarbij de knooppunten mensen vertegenwoordigen en de verbindingen tussen mensen, zoals vriendschap of collega's, worden weergegeven door randen. Het volgende illustreert zo'n sociaal netwerk. Laten we ons voorstellen dat we een sociaal netwerk hebben met de leden (nodes) Bill, Terry, Henry, Gary en Alistair. Hun relaties worden weergegeven door een link (edge) en de interesses van elke persoon, zoals sport, kunst, games en strips, worden weergegeven door knooppunteigenschappen.
Het doel hier is om te voorspellen of er een potentiële ontbrekende schakel is tussen leden. Moeten we bijvoorbeeld een verband tussen Henry en Terry aanbevelen? Als we naar de grafiek kijken, kunnen we zien dat ze twee gemeenschappelijke vrienden hebben, Gary en Alistair. Daarom is de kans groot dat Henry en Terry elkaar al kenden of elkaar binnenkort leren kennen. Hoe zit het met Henry en Bill? Ze hebben geen gemeenschappelijke vrienden, maar ze hebben wel een zwakke band via de connecties van hun vrienden. Bovendien hebben ze allebei dezelfde interesses in kunst, strips en games. Moeten we deze verbinding promoten? Al deze vragen en intuïties vormen de kernlogica van aanbevelingssystemen voor sociale netwerken.
Een mogelijke manier om dit te doen is het aanbevelen van relaties op basis van grafiekverkenning. In grafische querytalen, zoals Apache TinkerPop Gremlin, de implementatie van regelsets, zoals het tellen van gemeenschappelijke vrienden, is relatief eenvoudig en kan worden gebruikt om de link tussen Henry en Terry te bepalen. Deze regelsets zullen echter erg gecompliceerd zijn als we rekening willen houden met andere attributen zoals knooppunteigenschappen, verbindingssterkte, enz. Laten we ons een regelset voorstellen om de link tussen Henry en Bill te bepalen. Deze regelset moet rekening houden met hun gemeenschappelijke belangen en hun zwakke verbindingen via bepaalde paden in de grafiek. Om de robuustheid te vergroten, moeten we mogelijk ook een afstandsfactor toevoegen om sterke verbindingen te bevoordelen en de zwakke te bestraffen. Evenzo zouden we een factor willen die gemeenschappelijke belangen behartigt. Binnenkort zullen de regelsets die complexe verborgen patronen kunnen onthullen onmogelijk zijn om op te sommen.
Met ML-technologie kunnen we verborgen patronen ontdekken door algoritmen te leren. Een voorbeeld is XGBoost, dat veel wordt gebruikt voor classificatie- of regressietaken. Algoritmen zoals XGBoost gebruiken echter een conventionele ML-benadering op basis van een gegevensindeling in tabelvorm. Deze benaderingen zijn niet geoptimaliseerd voor grafische datastructuren en ze vereisen complexe feature-engineering om met deze datapatronen om te gaan.
In het voorgaande sociale netwerkvoorbeeld is de grafiekinteractie-informatie van cruciaal belang voor het verbeteren van de aanbevelingsnauwkeurigheid. Graph Neural Network (GNN) is een deep learning-framework (DL) dat kan worden toegepast op grafiekgegevens om voorspellingstaken op randniveau, op knooppuntniveau of op grafiekniveau uit te voeren. GNN's kunnen zowel individuele knooppuntkenmerken als informatie over de grafiekstructuur gebruiken bij het leren van de grafische weergave en onderliggende patronen. Daarom hebben op GNN gebaseerde methoden de afgelopen jaren nieuwe normen gesteld voor veel benchmarks van aanbevelingssystemen. Zie meer gedetailleerde informatie in recente onderzoeksdocumenten: Een uitgebreid onderzoek naar neurale netwerken van grafieken en Op Graph Learning gebaseerde aanbevelingssystemen: een overzicht.
Het volgende is een beroemd voorbeeld van een dergelijke use case. Onderzoekers en ingenieurs van Pinterest hebben getraind Graph convolutionele neurale netwerken voor aanbevelingssystemen op webschaal, genaamd PinSage, met drie miljard knooppunten die pinnen en borden vertegenwoordigen, en 18 miljard randen. PinSage genereert insluitingen van hoge kwaliteit die pinnen vertegenwoordigen (visuele bladwijzers naar online inhoud). Deze kunnen worden gebruikt voor een breed scala aan stroomafwaartse aanbevelingstaken, zoals het opzoeken van naaste buren in de geleerde inbeddingsruimte voor het ontdekken van inhoud en aanbevelingen.
In dit bericht laten we u zien hoe u GNN's kunt gebruiken voor use-cases voor aanbevelingen door dit te casten als een linkvoorspellingsprobleem. We zullen ook illustreren hoe Neptune ML de implementatie kan vergemakkelijken. Wij zullen ook voorzien voorbeeldcode op GitHub om uw eerste GNN te trainen met Neptune ML, en aanbevelingsconclusies te trekken over de demograaf door middel van linkvoorspellingstaken.
Linkvoorspelling met Graph Neural Networks
Gezien het vorige voorbeeld van het sociale netwerk, willen we Henry graag nieuwe vrienden aanbevelen. Zowel Terry als Bill zouden goede kandidaten zijn. Terry heeft meer gemeenschappelijke vrienden (Gary, Alistair) met Henry, maar geen gemeenschappelijke interesses. Terwijl Bill gemeenschappelijke interesses (kunst, strips, games) deelt met Henry, maar geen gemeenschappelijke vrienden. Welke zou een betere aanbeveling zijn? Wanneer geframed als een linkvoorspellingsprobleem, is het de taak om een score toe te kennen aan elke mogelijke link tussen de twee knooppunten. Hoe hoger de linkscore, hoe groter de kans dat deze aanbeveling zal convergeren. Door linkstructuren te leren die al in de grafiek aanwezig zijn, kan een linkvoorspellingsmodel nieuwe linkvoorspellingen generaliseren die de grafiek 'voltooien'.
De parameters van de functie f
die de linkscore voorspelt, wordt geleerd tijdens de trainingsfase. Sinds de functie f
een voorspelling doet voor twee willekeurige knooppunten in de grafiek, zijn de kenmerkvectoren die bij de knooppunten horen essentieel voor het leerproces. Om de linkscore tussen Henry en Bill te voorspellen, hebben we een reeks onbewerkte gegevensfuncties (kunst, strips, games) die Henry en Bill kunnen vertegenwoordigen. We transformeren dit, samen met de verbindingen in de grafiek, met behulp van een GNN-netwerk om nieuwe representaties te vormen die bekend staan als node-inbeddingen. We kunnen de initiële onbewerkte kenmerken ook aanvullen of vervangen door vectoren uit een opzoektabel voor inbedding die tijdens het trainingsproces kunnen worden geleerd. Idealiter zouden de ingebedde kenmerken voor Henry en Bill hun interesses moeten vertegenwoordigen, evenals hun topologische informatie uit de grafiek.
Hoe GNN's werken
Een GNN transformeert de initiële knooppuntkenmerken naar knooppuntinbeddingen met behulp van een techniek genaamd bericht overslaan. Het proces voor het doorgeven van berichten wordt geïllustreerd in de volgende afbeelding. In het begin worden de knooppuntattributen of features omgezet in numerieke attributen. In ons geval doen we eenmalige codering van de categorische kenmerken (Henry's interesses: kunst, strips, games). Vervolgens verzamelt de eerste laag van GNN alle ruwe kenmerken van de buren (Gary en Alistair) (in zwart) om een nieuwe set kenmerken (in geel) te vormen. Een gebruikelijke benadering is de lineaire transformatie van alle naburige kenmerken, ze vervolgens samen te voegen tot een genormaliseerde som en de resultaten door te geven aan een niet-lineaire activeringsfunctie, zoals ReLU, om een nieuwe vectorset te genereren. De volgende afbeelding illustreert hoe het doorgeven van berichten werkt voor node Henry. H, het GNN-algoritme voor het doorgeven van berichten, berekent representaties voor alle grafiekknooppunten. Deze worden later gebruikt als invoerkenmerken voor de tweede laag.
De tweede laag van een GNN herhaalt hetzelfde proces. Het neemt het eerder berekende object (in geel) van de eerste laag als invoer, verzamelt alle nieuwe ingebedde objecten van de buren van Gary en Alistair en genereert objectvectoren van de tweede laag voor Henry (in oranje). Zoals je kunt zien, hebben we, door het mechanisme voor het doorgeven van berichten te herhalen, de functie-aggregatie uitgebreid naar 2-hop buren. In onze illustratie beperken we ons tot buren met 2 hops, maar uitbreiding naar buren met 3 hops kan op dezelfde manier worden gedaan door nog een GNN-laag toe te voegen.
De definitieve inbeddingen van Henry en Bill (in oranje) worden gebruikt voor het berekenen van de score. Tijdens het trainingsproces wordt de linkscore gedefinieerd als 1 wanneer de rand bestaat tussen de twee knooppunten (positieve steekproef), en als 0 wanneer de randen tussen de twee knooppunten niet bestaan (negatieve steekproef). Vervolgens de fout of het verlies tussen de werkelijke score en de voorspelling f(e1,e2)
wordt teruggepropageerd in vorige lagen om de gewichten aan te passen. Zodra de training is voltooid, kunnen we vertrouwen op de ingebedde functievectoren voor elk knooppunt om hun linkscores te berekenen met onze functie f
.
In dit voorbeeld hebben we de leertaak op a vereenvoudigd homogene grafiek, waarbij alle knopen en randen van hetzelfde type zijn. Alle knooppunten in de grafiek zijn bijvoorbeeld van het type "Mensen" en alle randen zijn van het type "vrienden met". Het leeralgoritme ondersteunt echter ook heterogene grafieken met verschillende knooppunt- en randtypen. We kunnen de vorige use case uitbreiden om producten aan te bevelen aan verschillende gebruikers die vergelijkbare interacties en interesses delen. Zie meer details in dit onderzoeksdocument: Modellering van relationele gegevens met grafische convolutionele netwerken.
Op AWS re:Invent 2020 hebben we geïntroduceerd Amazon Neptunus ML, waarmee onze klanten ML-modellen kunnen trainen op grafiekgegevens, zonder noodzakelijkerwijs diepgaande ML-expertise te hebben. In dit voorbeeld laten we u met behulp van Neptune ML zien hoe u uw eigen aanbevelingssysteem kunt bouwen op grafiekgegevens.
Train uw Graph Convolution Network met Amazon Neptune ML
Neptune ML maakt gebruik van neurale netwerktechnologie voor grafieken om automatisch ML-modellen te creëren, trainen en implementeren op uw grafiekgegevens. Neptune ML ondersteunt algemene grafiekvoorspellingstaken, zoals knooppuntclassificatie en -regressie, randclassificatie en -regressie en linkvoorspelling.
Het wordt mogelijk gemaakt door:
- Amazone Neptunus: een snelle, betrouwbare en volledig beheerde grafische database, die is geoptimaliseerd voor het opslaan van miljarden relaties en het opvragen van de grafiek met milliseconde latentie. Amazon Neptune ondersteunt drie open standaarden voor het bouwen van grafische toepassingen: Apache TinkerPop Gremlin, RDF SPARQL en openCypher. Meer informatie op Overzicht van Amazon Neptune-functies.
- Amazon Sage Maker: een volledig beheerde service die elke ontwikkelaar en datawetenschapper de mogelijkheid biedt om snel ML-modellen voor te bereiden, te trainen en te implementeren.
- Diepe Grafiekbibliotheek (DGL): een open source, krachtig en schaalbaar Python-pakket voor DL op grafieken. Het biedt snelle en geheugenefficiënte primitieven voor het doorgeven van berichten voor het trainen van Graph Neural Networks. Neptune ML gebruikt DGL om automatisch het beste ML-model voor uw workload te kiezen en te trainen. Hierdoor kunt u op ML gebaseerde voorspellingen doen op grafiekgegevens in uren in plaats van weken.
De eenvoudigste manier om aan de slag te gaan met Neptune ML is door de AWS CloudFormation snelstartsjabloon. De sjabloon installeert alle benodigde componenten, inclusief een Neptune DB-cluster, en stelt de netwerkconfiguraties, IAM-rollen en bijbehorende SageMaker-notebookinstantie in met vooraf ingevulde notebookvoorbeelden voor Neptune ML.
De volgende afbeelding illustreert verschillende stappen voor Neptune ML om een GNN-gebaseerd aanbevelingssysteem te trainen. Laten we inzoomen op elke stap en onderzoeken wat het inhoudt:
-
Configuratie van gegevensexport
De eerste stap in ons Neptune ML-proces is het exporteren van de grafiekgegevens van het Neptune-cluster. We moeten de parameters en modelconfiguratie specificeren voor de gegevensexporttaak. We gebruiken de Neptune-werkbank voor alle configuraties en aanbevelingen. Met de workbench kunnen we werken met het Neptune DB-cluster met behulp van Jupyter-notebooks die worden gehost door Amazon SageMaker. Daarnaast biedt het een aantal magische commando's in de notebooks die veel tijd en moeite besparen. Hier is ons voorbeeld van exportparameters:
In export_params
, moeten we de basisinstellingen configureren, zoals het Neptune-cluster en de uitvoer Amazon eenvoudige opslagservice (S3) pad voor geëxporteerde gegevensopslag. De configuratie gespecificeerd in additionalParams
is het type ML-taak dat moet worden uitgevoerd. In dit voorbeeld wordt linkvoorspelling optioneel gebruikt om een bepaald edge-type te voorspellen (User—FRIEND—User). Als er geen doeltype is opgegeven, gaat Neptune ML ervan uit dat de taak Link Prediction is. De parameters specificeren ook details over de gegevens die in onze grafiek zijn opgeslagen en hoe het ML-model die gegevens zal interpreteren (we hebben "Gebruiker" als knooppunt en "interesses" als knooppunteigenschap).
Gebruik eenvoudig Neptune workbench-opdrachten om elke stap in het ML-bouwproces uit te voeren. De Neptunus werkbank bevat een lijnmagie en een celmagie die u veel tijd kan besparen bij het beheren van deze stappen. Gebruik de opdracht Neptune workbench om de gegevensexport uit te voeren: %neptune_ml export start
Zodra de exporttaak is voltooid, laten we de Neptune-grafiek exporteren naar CSV-indeling en opslaan in een S3-bucket. Er zijn twee soorten bestanden: nodes.csv
en edges.csv
. Een bestand met de naam training-data-configuration.json
zal ook worden gegenereerd met de configuratie die nodig is voor Neptune ML om modeltraining uit te voeren.
Bekijk Exporteer gegevens van Neptune voor Neptune ML voor meer informatie.
-
Data voorverwerking
Neptune ML voert functie-extractie en codering uit als onderdeel van de gegevensverwerkingsstappen. Veelvoorkomende typen voorverwerking van eigenschappen zijn onder meer: categorische kenmerken coderen via one-hot codering, numerieke kenmerken in een bucket plaatsen of word2vec gebruiken om een tekenreekseigenschap of andere vrije teksteigenschapswaarden te coderen.
In ons voorbeeld gebruiken we gewoon de eigenschap "belangen". Neptune ML codeert de waarden als multi-categorisch. Als een categorische waarde echter complex is (meer dan drie woorden per knooppunt), leidt Neptune ML af dat het eigenschapstype tekst is en gebruikt het de text_word2vec-codering.
Gebruik de volgende Neptune notebook magic-opdracht om gegevensvoorverwerking uit te voeren: %neptune_ml dataprocessing start
Aan het einde van deze stap wordt een DGL-grafiek gegenereerd uit de geëxporteerde dataset voor gebruik door de modeltrainingsstap. Neptune ML stemt het model automatisch af met Hyperparameter Optimization Tuning jobs gedefinieerd in training-data-configuration.json
. We kunnen dit bestand downloaden en aanpassen om de hyperparameters van het model af te stemmen, zoals batchgrootte, num-hidden, num-epochs, dropout, enz. Hier is een voorbeeld van het configuratie.json-bestand.
Bekijk Verwerken van de grafiekgegevens geëxporteerd uit Neptune voor training voor meer informatie.
-
Modeltraining
De volgende stap is het geautomatiseerd trainen van het GNN-model. De modeltraining wordt in twee fasen uitgevoerd. De eerste fase gebruikt een SageMaker Processing-taak om een modeltrainingsstrategie te genereren. Dit is een configuratieset die specificeert welk type model en modelhyperparameterbereiken zullen worden gebruikt voor de modeltraining.
Vervolgens wordt een SageMaker-taak voor het afstemmen van hyperparameters gestart. De SageMaker Hyperparameter Tuning Optimization-taak voert een vooraf gespecificeerd aantal proeftrainingen voor modeltraining uit op de verwerkte gegevens, probeert verschillende hyperparametercombinaties volgens de model-hpo-configuration.json
-bestand en slaat de modelartefacten op die door de training zijn gegenereerd op de Amazon S3-uitvoerlocatie.
Om de trainingsstap te starten, kunt u de %neptune_ml training start
opdracht.
Zodra alle trainingstaken zijn voltooid, worden de artefacten van het best presterende model door de afstemmingstaak Hyperparameter opgeslagen, die worden gebruikt voor gevolgtrekkingen.
Aan het einde van de training zal Neptune ML SageMaker instrueren om het getrainde model, de onbewerkte inbeddingen berekend voor de knooppunten en randen, en de mappinginformatie tussen de inbeddingen en knooppuntindices op te slaan.
Bekijk Een model trainen met Neptune ML voor meer informatie.
-
Maak een inferentie-eindpunt in Amazon SageMaker
Nu de grafiekrepresentatie is geleerd, kunnen we het geleerde model achter een eindpunt inzetten om deductieverzoeken uit te voeren. De modelinvoer is de gebruiker waarvoor we aanbevelingen van vrienden moeten genereren, samen met het edge-type, en de uitvoer is de lijst met waarschijnlijk aanbevolen vrienden voor die gebruiker.
Gebruik het %neptune_ml endpoint create
opdracht.
-
Vraag het ML-model op met Gremlin
Zodra het eindpunt gereed is, kunnen we het gebruiken voor query's voor het afleiden van grafieken. Neptune ML ondersteunt query's voor grafiekinferentie in Gremlin of SPARQL. In ons voorbeeld kunnen we nu de vriendenaanbeveling controleren met Neptune ML op gebruiker "Henry". Het vereist bijna dezelfde syntaxis om de edge te doorlopen, en het vermeldt de andere gebruikers die via de FRIEND-verbinding met Henry zijn verbonden.
Neptune#ml.prediction
retourneert de verbinding bepaald door Neptune ML-voorspellingen met behulp van het model dat we zojuist hebben getraind op de sociale grafiek. Rekening wordt net als onze verwachting geretourneerd.
Hier is nog een voorbeeld van een voorspellingsquery die wordt gebruikt om de acht beste gebruikers te voorspellen die het meest waarschijnlijk verbinding maken met Henry:
De resultaten zijn gerangschikt van sterkere verbinding tot zwakkere, waar link Henry — FRIEND — Colin and Henry — FRIEND — Terry
wordt ook voorgesteld. Deze propositie is via op grafieken gebaseerde ML, waar complexe interactiepatronen op grafieken kunnen worden onderzocht.
Bekijk Gremlin-deductiequery's in Neptune ML voor meer informatie.
Modeltransformatie of omscholing wanneer grafiekgegevens veranderen
Een andere vraag die je zou kunnen stellen is: wat als mijn sociale netwerk verandert, of als ik aanbevelingen wil doen voor nieuw toegevoegde gebruikers? In deze scenario's, waarbij u continu veranderende grafieken heeft, moet u mogelijk ML-voorspellingen bijwerken met de nieuwste grafiekgegevens. De gegenereerde modelartefacten na training zijn direct gekoppeld aan de trainingsgrafiek. Dit betekent dat het gevolgtrekkingseindpunt moet worden bijgewerkt zodra de entiteiten in de oorspronkelijke trainingsgrafiek veranderen.
U hoeft echter niet het hele model opnieuw te trainen om voorspellingen te doen over de bijgewerkte grafiek. Met een inferentieworkflow voor incrementele modellen hoeft u alleen de Neptune DB-gegevens te exporteren, een incrementele gegevensvoorverwerking uit te voeren, een modelbatchtransformatietaak uit te voeren en vervolgens het deductie-eindpunt bij te werken. De modeltransformatiestap neemt het getrainde model uit de hoofdwerkstroom en de resultaten van de incrementele gegevensvoorverwerkingsstap als invoer. Vervolgens voert het een nieuw modelartefact uit om te gebruiken voor gevolgtrekking. Dit nieuwe modelartefact is gemaakt op basis van de up-to-date grafiekgegevens.
Een speciale focus ligt hier op de stapopdracht model-transformatie. Het kan modelartefacten berekenen op grafiekgegevens die niet zijn gebruikt voor modeltraining. De inbeddingen van knooppunten worden opnieuw berekend en alle bestaande inbeddingen van knooppunten worden overschreven. Neptune ML past de geleerde GNN-encoder van het vorige getrainde model toe op de nieuwe grafiekgegevensknooppunten met hun nieuwe functies. Daarom moeten de nieuwe grafiekgegevens worden verwerkt met dezelfde kenmerkcoderingen en moeten ze voldoen aan hetzelfde grafiekschema als de oorspronkelijke grafiekgegevens. Zie meer Neptune ML-implementatiedetails op Het genereren van nieuwe modelartefacten.
Bovendien kunt u het hele model opnieuw trainen als de grafiek ingrijpend verandert of als het eerder getrainde model de onderliggende interacties niet langer nauwkeurig weergeeft. In dit geval kan het hergebruik van de geleerde modelparameters in een nieuwe grafiek geen vergelijkbare modelprestaties garanderen. U moet uw model opnieuw trainen op de nieuwe grafiek. Om het zoeken naar hyperparameters te versnellen, kan Neptune ML gebruikmaken van de informatie van de vorige modeltrainingstaak met een warme start: de resultaten van eerdere trainingstaken worden gebruikt om goede combinaties van hyperparameters te selecteren om over de nieuwe afstemmingstaak te zoeken.
Bekijk workflows voor het verwerken van evoluerende grafiekgegevens voor meer details.
Conclusie
In dit bericht heb je gezien hoe Neptune ML en GNN's je kunnen helpen aanbevelingen te doen over grafiekgegevens met behulp van een linkvoorspellingstaak door informatie uit de complexe interactiepatronen in de grafiek te combineren.
Linkvoorspelling is een manier om een aanbevelingssysteem in een grafiek te implementeren. U kunt uw aanbeveling op veel andere manieren samenstellen. U kunt de inbeddingen die tijdens de linkvoorspellingstraining zijn geleerd, gebruiken om de knooppunten zonder toezicht in verschillende segmenten te clusteren en items aan te bevelen die tot hetzelfde segment behoren. Bovendien kunt u de inbeddingen verkrijgen en deze als invoerfunctie invoeren in een stroomafwaarts op gelijkenis gebaseerd aanbevelingssysteem. Nu codeert deze extra invoerfunctie ook de semantische informatie die is afgeleid van de grafiek en kan deze de algehele precisie van het systeem aanzienlijk verbeteren. Lees meer over Amazon Neptune ML door een bezoek te brengen aan de van de of stel gerust vragen in de comments!
Over de auteurs
Yanwei Cui, PhD, is een Machine Learning Specialist Solutions Architect bij AWS. Hij begon met machine learning-onderzoek bij IRISA (Research Institute of Computer Science and Random Systems), en heeft meerdere jaren ervaring met het bouwen van door kunstmatige intelligentie aangedreven industriële toepassingen in computervisie, natuurlijke taalverwerking en online voorspelling van gebruikersgedrag. Bij AWS deelt hij de domeinexpertise en helpt hij klanten om zakelijke mogelijkheden te ontsluiten en bruikbare resultaten te behalen met machine learning op schaal. Naast zijn werk houdt hij van lezen en reizen.
Wil Badr is een Principal AI/ML Specialist SA die deel uitmaakt van het wereldwijde Amazon Machine Learning-team. Will is gepassioneerd over het gebruik van technologie op innovatieve manieren om een positieve impact te hebben op de gemeenschap. In zijn vrije tijd gaat hij graag duiken, voetballen en de Pacifische eilanden verkennen.
- '
- "
- 100
- 2020
- 7
- Over
- Volgens
- Account
- toevoeging
- Extra
- algoritme
- algoritmen
- Alles
- al
- Amazone
- Amazon machinaal leren
- Amazon Sage Maker
- apache
- toepassingen
- kunstmatig
- kunstmatige intelligentie
- Kunst
- geautomatiseerde
- AWS
- AWS re: Invent
- Begin
- BEST
- Bill
- Miljard
- Zwart
- bouw
- Gebouw
- bedrijfsdeskundigen
- gevallen
- uitdagingen
- classificatie
- code
- Gemeen
- gemeenschap
- complex
- Berekenen
- Computer Science
- Computer visie
- computergebruik
- Configuratie
- versterken
- aansluitingen
- troosten
- content
- convergeren
- kon
- Klanten
- gegevens
- data scientist
- gegevensopslag
- Database
- transactie
- diepgaand leren
- Ontwikkelaar
- anders
- ontdekking
- afstand
- ecommerce
- rand
- Endpoint
- Engineering
- Ingenieurs
- etc
- voorbeeld
- ervaring
- exploratie
- exporteren
- extractie
- SNELLE
- Kenmerk
- Voordelen
- Figuur
- Voornaam*
- Focus
- formulier
- formaat
- Achtergrond
- Gratis
- Vriendschap
- functie
- Spellen
- voortbrengen
- Globaal
- goed
- grafiek neurale netwerken
- groot
- Behandeling
- hulp
- helpt
- hier
- Hoe
- How To
- HTTPS
- IAM
- Impact
- uitvoering
- het verbeteren van
- Inclusief
- Laat uw omzet
- individueel
- industrieel
- informatie
- innovatieve
- Intelligentie
- wisselwerking
- belangen
- IT
- Jobomschrijving:
- Vacatures
- taal
- Talen
- LEARN
- geleerd
- leren
- Hefboomwerking
- Bibliotheek
- Lijn
- LINK
- Lijst
- lijsten
- plaats
- op zoek
- lookup
- machine learning
- Leden
- milliseconde
- ML
- model
- Muziek
- Natuurlijke taal
- Natural Language Processing
- nodig
- buren
- netwerk
- netwerken
- Neural
- neuraal netwerk
- neurale netwerken
- Nieuwe mogelijkheden
- knooppunten
- laptops
- online.
- open
- Overige
- Pacific
- Papier
- Mensen
- prestatie
- fase
- platforms
- Spelen
- precisie
- voorspelling
- Voorspellingen
- presenteren
- Principal
- probleem
- Producten
- Profiel
- promoten
- eigendom
- voorstellen
- zorgen voor
- biedt
- inkomsten
- Python
- vraag
- reeks
- Rauw
- ruwe data
- RE
- lezing
- regressie
- Relaties
- vervangen
- onderzoek
- Resultaten
- heropleiding
- Retourneren
- lopen
- sagemaker
- Scale
- Wetenschap
- Ontdek
- reeks
- Delen
- Aandelen
- gelijk
- Eenvoudig
- Klein
- Voetbal
- Social
- sociale grafiek
- sociaal netwerk
- sociale netwerken
- Oplossingen
- Tussenruimte
- Sport
- Stadium
- normen
- begin
- gestart
- mediaopslag
- winkels
- Strategie
- aanvullen
- steunen
- Enquête
- system
- Systems
- doelwit
- Technologies
- Technologie
- De grafiek
- Door
- niet de tijd of
- top
- Trainingen
- Transformeren
- Transformatie
- bijwerken
- us
- gebruikers
- waarde
- visie
- Wat
- WIE
- wijd
- Wikipedia
- zonder
- woorden
- Mijn werk
- workflow
- Bedrijven
- zou
- jaar
- zoom