Zephyrnet-logo

Aan de slag met Graph Machine Learning

Datum:

grafiek machine learning

Deze blog is een onderdeel van mijn "deep learning-update" serie en ik wil het openen met een vraag: wat heb ik geleerd over Graph ML in 2+ maanden?

Niets? Als dat je eerste gedachte was, geen zorgen, het is waarschijnlijk waar. 😅

(Slechte) grappen terzijde, mijn "relatieve kennis" (de kennis die ik "bezit" versus de kennis waarvan ik me bewust ben) nadert asymptotisch 0 terwijl mijn "absolute kennis" de afgelopen 2 maanden behoorlijk is gegroeid.

Maar je ziet nooit alle verbazingwekkende dingen die je hebt geleerd, dat zie je 0. Je hebt dat rare gevoel dat 0 staart naar je. Ik heb het tenminste, soms.

Als deze diepgaande educatieve inhoud nuttig voor u is, abonneer u op onze AI-research mailinglijst om gewaarschuwd te worden wanneer we nieuw materiaal uitbrengen.

Het is altijd zo. Je nadert een nieuw veld en je hebt het waanachtige gevoel dat je alleen A (bijv. word2vec/node2vec), B (bijv. GPT/GCN) en C (bijv. BERT/GAT) hoeft te leren en je zult het vak onder de knie krijgen .

Het is eindig. Je kunt het voltooien. Het is als een spel.

Maar terwijl je blijft leren en ontdekken, ontdek je een hele nieuwe wereld van ideeën en terminologieVan onze medewerkers en geschiedenis. En dat gevoel is mooi en beangstigend tegelijk, en ik neem aan dat dat de reden is dat veel mensen het opgeven.

Onderzoek en leren kan intimiderend worden omdat je je er zo klein door voelt. Het beste advies dat ik je kan geven is: geef nooit op. Ik meen het. Ik zal je GitHub- (of Fortnite?) -Account verwijderen als je dat doet. Ik zweer.

Leuk, laten we, nadat we je een micro-existentiële crisis hebben bezorgd en je daarna hebben opgevoed ❤️, verder gaan.

Als je mijn reis volgde, wist je dat ik Graph ML nu ga aanpakken. in mijn laatste blog update over transformatoren, 2 maanden geleden zei ik dat mijn volgende onderzoeksgebied Graph ML is, dus hier zijn we dan.

Maar eerst, wat is Graph ML?

Simpel gezegd, Graph ML is een tak van machine learning die zich bezighoudt met grafiekgegevens. Grafieken bestaan ​​uit knooppunten, waaraan mogelijk kenmerkvectoren zijn gekoppeld, en randen, waaraan al dan niet kenmerkvectoren zijn gekoppeld.

Grafieken zijn er in verschillende soorten, we kunnen hebben ongerichte en gerichte grafieken, multi- en hypergrafieken, grafieken met of zonder zelfkanten. Er is een heel gebied van wiskunde met de toepasselijke naam grafiek theorie dat gaat over grafieken.

En u hoeft voorlopig niet alle bovenstaande definities te kennen.

Grafiekgegevens zijn er in overvloed overal om ons heen. Noem maar op! Sociale netwerken zijn natuurlijk grafieken, moleculen kunnen worden weergegeven als grafieken (atomen zijn knopen en bindingen zijn randen), elke vorm van interactie in de natuurkunde kan worden gemodelleerd als een grafiek, enzovoort!

So wat kunnen we doen met grafieken?

Veelvoorkomende taken zijn onder meer grafiekclassificatie/regressie en knoop-/randclassificatie/regressie. Over abstractie gesproken, toch? 😅

Laat ik een van deze minder abstract maken. Misschien zijn de knooppunten in uw grafieken tweets en je wilt teruggaan naar de waarschijnlijkheid dat een bepaalde tweet is nepnieuws verspreiden. Uw model zou een getal tussen 0 en 1 aan dat knooppunt koppelen en dat zou een voorbeeld zijn van een knooppuntregressietaak.

Maar hoe doen we dat?

Meestal hebben we neurale netwerken die met grafieken te maken hebben en we noemen deze Graph Neural Networks (ik vereenvoudig het nu een beetje). Het is oké om voorlopig niet te begrijpen hoe deze precies werken, blijf gewoon bij me.

Laat me je nu vertellen waarom je meer over dit vakgebied zou moeten leren. ❤️🌍

De geweldige wereld van Graph ML

Er zijn zoveel spannende toepassingen. Ik meen het. Ik heb nog nooit een veld gezien met zoveel spannende toepassingen!

Overal in de wetenschap zul je zien dat GNN's (Graph Neural Networks) op dit moment worden ingezet. Alles wat je kunt modelleren als een grafiek (en dat is zo ongeveer alles! 😅) en je kunt er een GNN naar gooien. 💻

Aanbevelingssystemen op grote schaal, deeltjesfysica, computationele farmacologie/chemie/biologie, verkeersvoorspelling, detectie van nepnieuws, en de lijst gaat maar door.

Geloof je me nog steeds niet? Dat is geweldig. Ik wil niet dat je mijn woord voor lief neemt, je bent een critische denker laat me het je bewijzen!

Uber eet maakt gebruik van GNN's om u eten en restaurants aan te bevelen.

Voedsel ontdekken met Uber Eats: Graph Learning gebruiken om aanbevelingen te versterken

Pinterest ingezet PinSage GNN minstens 2 jaar geleden naar hun platform en het is nu je homefeed beheren en het suggereert je de meest relevante pinnen.

PinSage: een nieuw grafisch convolutief neuraal netwerk voor aanbevelingssystemen op webschaal

Twitter gebruikt GNN's naar nepnieuws detecteren (en hopelijk filteren).

De betrouwbare gebruikers zijn blauw gekleurd en de onbetrouwbare (die vatbaar zijn voor het verspreiden van nepnieuws) in het rood.

Dit kan dankzij het feit dat nep- en echt nieuws zich op sociale media anders verspreiden! Zo kunnen we het verspreidingspatroon van nepnieuws in de loop van de tijd benutten als een waardevol signaal.

Op de bovenstaande afbeelding kun je een interessant patroon opmerken dat waarschijnlijke mensen de neiging hebben om samen te clusteren - niets nieuws daar 😎. Als de grafiek die eigenschap heeft (verbonden knopen delen een soortgelijk label) noemen we het homofiel (van het Oudgrieks: "homo's"-dezelfde, "Philie"– liefde/vriendschap).

Laten we verder gaan in de fundamentele wetenschap!

wij zijn neutrinodeeltjes detecterenrino op de zuidpool in het IceCube-lab, en we classificeren ze GNN's gebruiken!

Ijsblokje is een 1 km3 neutrino-observatorium op de Zuidpool en het primaire doel is om te zoeken naar hoogenergetische (boven 100 gigaelektronvolts (GeV)) neutrino's!

Het bestaat in feite uit een zeshoekig raster van lichtgevoelige sensoren die de Cherenkov licht die voortkomen uit de interacties tussen geladen deeltjes met het ijs.

Je kunt modelleer deze sensorstructuur mooi als een grafiek! Elke lichtsensor is een hoekpunt en er is een 6-dimensionale kenmerkvector aan gekoppeld (3 XYZ-coördinaten + wat informatie over energie en aankomsttijd).

Maar laten we de technische details voor wat later verlaten en de Odyssey voortzetten. ️

We kunnen GNN's gebruiken om helpen kanker te verslaan! Door de eiwit / gen- en geneesmiddelinteractiegegevens te nemen en het probleem in een grafiek te modelleren en wat te gooien GNN wapens weapon daarin kunnen we een lijst vinden van moleculen die kanker helpen verslaan/voorkomen.

HyperFoods: machinaal intelligent in kaart brengen van kankerverwekkende moleculen in voedingsmiddelen (hoe groter het knooppunt, hoe diverser de set CBM's)

Zodra we de meest effectieve CBM's (kankerverwekkende moleculen) hebben, kunnen we een kaart maken van voedingsmiddelen die het rijkst zijn aan deze CBM's, ook wel hyperfood.

Hier is een TL;DR: de hyperfoods zijn: thee, druif, wortel, koriander, zoete sinaasappel, dille, kool en wilde selderij.

Maar neem geen overdosis met deze, ik smeek je! 😂

Ik weet dat ik na het lezen van dit artikel regelmatig groene thee ben gaan drinken. Wie zegt dat het lezen van onderzoekspapers niet gezond is!? 🍎

Overigens neem ik mijn voeding zeer serieus. Ik daag zowel mijn lichaam (ik hef gewichten, enz.) als mijn geest regelmatig tot het uiterste, dus het is erg belangrijk om ook aan het herstel en de rust te denken. Slaap van hoge kwaliteit, omega-3 vetzuren, noten, vitamine D, groene thee zijn enkele van mijn trucs.

Maar als je geen fan bent van voeding (en causaliteit in het algemeen 😜), dan kan het volgende onderzoek je misschien nog meer opwinden - het voorspellen van (polyfarmacie) bijwerkingen van medicijnen GNN's gebruiken!

Modellering van bijwerkingen van polyfarmacie met grafische convolutionele netwerken

Bijwerkingen van polyfarmacie (meerdere medicijnen tegelijkertijd gebruiken) is iets dat vrijwel iedereen zal ervaren en we weten dat onze grootouders het al ervaren.

We kunnen in principe niet met zekerheid zeggen wat er met je gebeurt als je 2+ willekeurige medicijnen gebruikt.

Het experimenteel screenen van elke combinatie van medicijnen op bijwerkingen is onmogelijk vanwege de combinatorische aard van het probleem - dus computationele methoden zoals GNN's om te redden!

Afgezien van het probleem van de bijwerkingen van polyfarmacie, worden we geconfronteerd met een steeds groter wordende dreiging van antibioticaresistente bacteriën die zich ontwikkelen dankzij ons onverantwoord gebruik van antibiotica.

Eerder in 2020 werd een superbekende toepassing van GNN's gepubliceerd in Cell - Een diepgaande leerbenadering van het ontdekken van antibiotica.

Opmerking: helaas geen gratis toegankelijke pdf (afaik), wat me verdrietig maakt

Kortom, door een GNN te trainen op een dataset van moleculen waarvan bekend is dat ze de groei van Escherichia coli, en later conclusies te trekken uit een dataset van onderzochte geneesmiddelen, "ontdekten" ze halicine - een molecuul dat eerder werd getest op zijn antidiabetische eigenschappen en nu opnieuw wordt gebruikt om te worden gebruikt als een krachtig antibioticum!

Ik heb veel spannende apps weggelaten, zoals voorspellen kwantumeigenschappen van moleculenhet voorspellen van de chemische eigenschap X van het molecuul (bijv. oplosbaarheid), enz.

Het is een oneindige lijst.

U kunt nu zien hoe saai en homogeen de computervisie en NLP-velden zijn! 😅

NLP: Ik manipuleer tekst. CV: Ik manipuleer beelden. Grafiek ML: houd mijn bier vast! ????

Afgezien van de grappen, zijn er enkele mooie verbanden tussen CV/NLP en Graph ML. U kunt transformatoren behandelen als Graph Attention Networks die werken op volledig verbonden grafieken (maar daarover later meer) en u kunt afbeeldingen/video's behandelen als gewone grafieken (ook wel grids genoemd).

Een voorbeeld van een afbeelding van 4 × 4 pixels - we kunnen een afbeelding behandelen als een rastergrafiek. Elke knoop heeft een scalaire (grijswaarden) of een 3D-vector ( (RGB) eraan gekoppeld. Dat is de grafiek signaal in dit voorbeeld.

Door deze lens is alles een grafiek. Of deze abstractie nu echt zinvol is, is probleemspecifiek. Gespecialiseerde modellen zoals CNN's hebben een aantal nuttige vooroordelen ingebakken en je zou een GNN waarschijnlijk niet rechtstreeks op beeldpixels willen toepassen (hoewel GNN's op de een of andere manier serieuze tractie krijgen in de CV-wereld).

Hopelijk heb ik je gehyped! Ik zal u nu enkele bronnen laten zien die ik nuttig vond bij het leren over Graph ML.

Opmerking: ik noem vaak GNN's, maar ze zijn slechts een subset van het veld Graph ML. Afgezien van GNN's zijn er methoden voor het insluiten van grafieken en vele andere.

Opmerking 2 (over hoe je (waarschijnlijk) het volgende hoofdstuk moet lezen): lees het eerst zonder af te dwalen in de bronnen die ik heb gelinkt en begin het dan pas als referentiehandleiding te gebruiken - want dat is wat deze blog is, het is niet jouw one-shot blog, lezen en vergeten, noup.

Fantastische GNN's en waar ze te vinden zijn

Het is niet mijn bedoeling u hier een uitgebreid overzicht van de Graph ML-literatuur te geven, en ik denk dat dat ook helemaal niet nuttig zou zijn.

Het dumpen van een heleboel bronnen (wat ik mensen vaak zie doen in GitHub-repo's) is niet zo handig - vooral niet voor beginners.

Wat ik zal proberen te doen, is een aantal van de bronnen, die ik nuttig vond, zo structureren dat de twee maanden jongere Aleksa super dankbaar zou zijn. ❤️

Laten we beginnen! Ik zal proberen je onderweg ook wat meer algemeen toepasbare onderzoekstips te geven.

Methoden voor het insluiten van grafieken

Als je in een nieuw veld probeert te duiken, is het super nuttig naar organiseer uw leermiddelen chronologisch (voor nerds: de tijdstempelfunctie van het onderzoekspaper is zeer waardevol - negeer het niet).

Voordat GNN's mainstream werden, gebruikten mensen methoden die analoog waren aan Word2Vec, die erg populair waren in de NLP-wereld.

De meeste hiervan waren eigenlijk rechtstreeks geïnspireerd door de Word2Vec-methode en om eerlijk te zijn, ben ik blij dat ik mijn NLP- en CV-achtergronden heb opgebouwd voordat ik in Graph ML sprong. Het vakgebied haalde veel inspiratie uit CV- en NLP-velden, zoals je snel zult zien.

Hier zijn enkele papieren die ik je aanraad om je reis mee te beginnen:

  • Diepe wandeling — het wordt teruggebracht tot Word2Vec als u het volgende doet: voorbeeld "zinnen" uit de grafiek door willekeurig te doen loopt.
  • Knooppunt2Vec — letterlijk hetzelfde idee als DeepWalk met de extra controle over hoe u uit uw grafiek gaat samplen (BFS/DFS). Als u BFS meer gewicht geeft, zullen de nauw gekoppelde knooppunten vergelijkbare inbeddingen hebben.
  • Planetoïde — een semi-gecontroleerde setting. Afgezien van willekeurige wandelingen (zonder toezicht), kunt u ook gebruikmaken van de labels (onder toezicht). Ze hebben er bovendien voor gezorgd dat hun methode in een inductieve setting kan worden gebruikt (bekijk mijn GAT Jupyter-notebook voor de korte uitleg van transductief versus inductief leren, gewoon ctrl+f het ️).

Een korte verduidelijking over DeepWalk: als u de knooppunten in de grafiek als woorden behandelt, neemt u bij een willekeurige wandeling in feite een willekeurige zin uit uw grafiek.

Zodra je de zin hebt, kun je de Word2Vec-magie doen en de inbedding van je knooppunten leren, zodat de knooppunten die de neiging hebben om dicht bij je zinnen te zijn, vergelijkbare inbeddingen hebben.

✅ Methoden voor het insluiten van grafieken

Okee! Nu ben je klaar voor wat GNN-magie! 😍

Grafiek neurale netwerken

Historisch gezien waren er 2 hoofdbenaderingen voor het ontwikkelen van GNN's:

  • Spectrale methoden
  • Ruimtelijke (bericht doorgeven) methoden

Beiden probeerden het wiskundige concept van kronkeling (dat werkte zo mooi in de CV-wereld) tot grafieken.

De spectrale methoden probeerden de strikt wiskundige notie van convolutie te behouden en moesten daarvoor hun toevlucht nemen tot het frequentiedomein (Laplace eigenbasis).

Aan de andere kant zijn de ruimtelijke methoden geen windingen in de strikte wiskundige zin van het woord, maar we noemen ze nog steeds informeel windingen, omdat ze heel losjes geïnspireerd waren door de spectrale methoden.

Om een ​​lang verhaal kort te maken, spectrale methoden zijn "uitgestorven" omdat ze:

  • Computationeel duur
  • Inherent transductief

Dat gezegd hebbende, ze zijn zeker nog steeds het onderzoeken waard en je zou op zijn minst een aantal basisfundamenten op spectrale methoden moeten bouwen, IMHO.

Maar voordat we verder gaan met spectrale/ruimtelijke GNN-papers, raad ik je ten zeerste aan wat tijd vrij te nemen om een ​​oppervlakkig, hoogstaand overzicht te maken van wat Graph ML is. Bouw eerst dat kennisskelet op voordat u de lege plekken gaat invullen. De benadering van boven naar beneden, ik ben er een grote fan van.

Ik raad aan om dit te kijken overzicht op hoog niveau van GNN's door Microsoft Research-mensen, evenals deze door Xavier Bresson (een van de grote namen in het veld Graph ML):

Daarnaast zijn hier enkele blogs om u kennis te laten maken met nieuwe terminologie en informatie, zodat u ze kunt laten bezinken:

Leuk!

✅ Een overzicht op hoog niveau van Graph ML

U bent nu klaar om in de wereld van Graph Neural Networks te duiken. 🌍

De spectrale methoden

De belangrijkste "tool" achter de spectrale methoden is de zogenaamde grafiek Laplace. Daarnaast is de ongerichte grafiek aanname is gemaakt zodat we een . kunnen hebben symmetrisch grafiek Laplace die een aantal mooie wiskundige eigenschappen heeft — namelijk het feit dat we een kunnen vinden orthonormale Laplace eigenbasis*.

* het is een generalisatie van de Fourier eigenbasis waarmee je bekend bent als je een cursus signaalverwerking hebt gevolgd, check out De video van 3B1B voor een zachte intro. In een speciaal geval waar de onderliggende grafiek een raster is (zoals een afbeelding), krijgen we sinusoïden, dat wil zeggen Fourier-eigenfuncties!!!

Nu is het belangrijkste idee om projecteer het grafieksignaal in die eigenbasis, filter het geprojecteerde grafieksignaal direct in het spectrale domein door een elementgewijze vermenigvuldiging met het filter, en herprojecteer het terug in het ruimtelijke domein.

Het is oké om dit hier en nu niet allemaal te begrijpen. Je hebt je openbaring moment vroeger of later. Hier zijn de belangrijkste spectrale documenten:

Het ChebNets-papier maakte het zo dat alleen... k-hop buurten kan de functieweergave van een bepaald knooppunt beïnvloeden en het ook maken also rekenkundig efficiënt om dit te doen — door a te gebruiken Chebyshev-polynooml van de grafiek Laplace is het niet nodig om de Laplace eigenbasis te berekenen, wat een dure operatie is (~O(n³)).

Opmerking: in papers over spectrale methoden zul je wat "zware" wiskunde zien die geen vereiste is voor het begrijpen van de ruimtelijke methoden (en ze zijn veel populairder, dus sla jezelf niet voor de gek als je dit niet de eerste keer snapt ).

Afgezien van de artikelen hier zijn enkele andere superhandige bronnen die u zullen helpen deze spectrale methoden beter te begrijpen:

En tenslotte Deze video maakte het voor mij een klik als het gaat om het begrijpen van de spectrale clusteringmethode die de Laplace-eigenvectoren gebruikt om de knooppunten te clusteren (elke extra intuïtie die u kunt verzamelen, zal nuttig zijn).

Dat is het. Ik heb wat minder belangrijke papieren weggelaten om de rommel te vermijden (en trouwens. Ik beveel alleen de bronnen aan die ik heb dit artikel lezen en nuttig gevonden).

✅ Spectrale methoden!

Laten we nu verder gaan naar het rijk van ruimtelijke methoden.

Ruimtelijke/Message-passing-methoden

Hier is een super informele uitleg op hoog niveau van methoden voor het doorgeven van berichten.

Het doel is om de weergave van elk knooppunt bij te werken. Je hebt de feature vectoren van je node en van zijn buren tot je beschikking. Je doet dan het volgende:

  1. Je transformeert op de een of andere manier de kenmerkvectoren (misschien een lineaire projectie)
  2. Je voegt ze op de een of andere manier samen (misschien weeg je ze met aandachtscoëfficiënten, voilà, we krijgen GAT (zie je wat ik daar deed))
  3. Je werkt de feature vector (op de een of andere manier) van het huidige knooppunt bij door zijn (getransformeerde) feature vector te combineren met de geaggregeerde buurtrepresentatie.

En dat is het zo'n beetje, je kunt veel verschillende GNN's in dit raamwerk passen.

Laten we nu enkele van de meest bekende ruimtelijke methoden verkennen:

  • GCN (Graph Convolutional Network) — vereenvoudigde de ChebNets-paper om te werken in 1-hop-buurten en maakte GNN's veel efficiënter en toepasbaar.

Ik heb de GCN-paper behandeld in deze video:

Mijn overzicht van het Graph Convolutional Network (GCN)
  • Grafiek Aandachtsnetwerk (GAT) — maakte GCN expressiever door het toe te staan leren de buurtaggregatiecoëfficiënten (GCN gebruikt constanten in plaats van leerbare gewichten).

Zoals je later zult zien Ik heb zelfs GAT . geïmplementeerd from scratch en Petar Veličković (de eerste auteur) zelf deze video aanbevolen dus ik denk dat het goed genoeg moet zijn! 😅

Mijn overzicht van de GAT-methode

Het probleem met GAT en GCN is dat ze oorspronkelijk waren niet schaalbare die nodig is voor veel real-world, grootschalige, grafische datasets zoals de grafiek van elk sociaal netwerk.

De volgende 2 artikelen maakten GNN's toepasbaar op enorme grafieken:

  • GrafiekSAGE - SAmple en aggreGatE, introduceerde het het concept van het samplen van je buurt en een paar optimalisatietrucs om het reken-/geheugenbudget te beperken. Het is een directe voorloper van PinSage, dat op Pinterest wordt ingezet als het aanbevelingssysteem!

Hier is mijn overzicht van GraphSage. Trouwens. als je je afvroeg, Graph ML is een vrij jong veld, dus je zult niet veel YT-overzichten van deze artikelen vinden, daarom koppel ik degene die ik heb gemaakt. Ik wil alleen de beste inhoud linken - als dat soms mijn inhoud is - laat het zo zijn. 😅 Hoe dan ook! Het tweede papier:

  • PinSage - Een van de beroemdste real-world toepassingen van GNN's - aanbevelingssysteem op Pinterest.

En hier is mijn video-overzicht:

Mijn overzicht van de PinSage methode

Dat waren enkele van de belangrijkste ruimtelijke GNN's. Hier verder gaand is een paper waarin alle bovenstaande netten zijn gegeneraliseerd in een zogenaamd Bericht overslaan kader:

  • MPNN (bericht dat neuraal netwerk passeert) - naast een theoretische betekenis van het verenigen van de ruimtelijke GNN's, introduceerde het ook een geweldige toepassing van GNN's: het voorspellen van kwantumeigenschappen van moleculen, bijvoorbeeld fundamentele trillingen, de energie die nodig is om het molecuul in bepaalde toestanden op te breken, enz.

Nog twee baanbrekende artikelen die u moet bekijken, zijn:

  • Gated grafiek NN — GRU gebruikt voor aggregatie van buurten en de methode toegepast om verificatie via de scheidingslogica te programmeren. Het is niet gemakkelijk te lezen, maar ik denk dat het de moeite waard is, het speelde een belangrijke rol bij het op gang brengen van de revolutie van de ruimtelijke methode.
  • Convolutionele neurale netwerken leren voor grafieken - gaf een idee van hoe we wat orde in de grafiekomgeving konden leggen (via labeling) en een convolutie konden toepassen die veel meer op CNN's lijkt. Ik denk dat het zou kunnen worden beschouwd als een derde manier om convolutie in grafieken te introduceren, maar deze benadering kreeg echter geen serieuze tractie.

Afsluiten met nog een geweldig artikel waaruit bleek dat we duidelijk niet weten wat we doen 😂:

Grappen terzijde, wat het liet zien is dat voor bepaalde grafiekfamilies GNN's zijn totaal niet nodig en een veel eenvoudigere basislijn (dat werkt als een simpele laagdoorlaat- filter) kan het nog beter!

Het is een enkellaags GNN dat eerst de aggregatie over de k-hop-buurt doet (het grootste deel van het voordeel komt hieruit voort), gevolgd door een eenvoudige lineaire projectie en een softmax.

In deze vroege dagen van ruimtelijke methoden misten we antwoorden op enkele fundamentele theoretische vragen zoals: waarom zijn GNN's zo oppervlakkig? (vergeleken met hun extreem diepe CNN-neven), wat zijn hun beperkingen, enz.

Dat brengt ons bij de volgende paragraaf.

✅ Baanbrekende ruimtelijke GNN-papers

Laten we gaan!

GNN expressiviteit

Vroege ruimtelijke methoden, zoals het beroemde GCN-artikel, begonnen enkele verbanden te leggen tussen GNN's en oude grafentheoriemethoden zoals de Weisfeiler Lehman-algoritme.

Weisfeiler Lehman (1-WL) ook bekend als de kleurverfijning algoritme is een eenvoudige graaf-isomorfismetest: gegeven 2 grafieken, controleer of ze hetzelfde zijn, ook al zijn hun knooppunt-ID's gepermuteerd. WL kan het je vertellen met zekerheid of uw 2 grafieken niet-isomorf zijn en het kan u vertellen met grote kans, of ze isomorf zijn.

Check out deze geweldige blog voor een goede uitleg over hoe WL werkt.

Nu zijn er bepaalde grafiekfamilies die de WL-test kunnen "verwarren". Hier is een voorbeeld van waar het WL-algoritme dezelfde kleurhistogrammen uitvoert (en dus "denkt" het dat deze 2 grafieken isomorf zijn - maar dat zijn ze niet):

Ok, nu denk je misschien dat dit allemaal leuk is Aleksa, je poetst onze fundamentele kennis van grafentheorie op, maar wat maakt het uit? Goed.

Dit baanbrekende artikel toonde aan dat MPNN's op zijn best zo krachtig als 1-WL:

Het introduceerde bepaalde vereisten die nodig zijn om de MPNN zo expressief te laten zijn als 1-WL zoals bij gebruik som als de aggregatiefunctie (hint het is injectief) in plaats van de populaire max en gemiddelde aggregatoren.

Michael Bronstein heeft een leuke serie van 3 blogs over dit onderwerp, dus check it out!

Na GIN probeerden veel methoden om GNN's te ontketenen en ze nog meer expressieve kracht te geven, en dus werden verschillende methoden geadviseerd die even krachtig waren als k-WL algoritmen.

Er werden ook andere families van methoden geadviseerd die totaal uit elkaar gingen met de WL-hiërarchie, zoals deze:

Het belangrijkste idee is dat, aangezien eerder onderzoek heeft aangetoond dat GNN's de mogelijkheid hebben om subgrafieken te tellen, we deze expliciet kunnen toevoegen als extra node/edge-functies.

driehoeken en paden tellen en die getallen toevoegen aan knooppuntkenmerken

En een andere recente krant genaamd Belangrijkste buurtaggregatie verder verbeterd op GIN en zijn theorie toepasbaar gemaakt op realistische use-cases (aangezien de originele GIN enkele vereenvoudigende aannames had, zoals alleen het gebruik van one-hot vectoren als kenmerkvectoren).

PNA liet zien dat we moeten gebruiken meerdere aggregators, gebruikten ze n-de statistische momenten - zoals gemiddelde, standaarddeviatie en hoger, om de theoretische garanties om onderscheid te kunnen maken tussen continue multisets zoals de stelling uit het artikel suggereert:

Om onderscheid te maken tussen multisets van grootte n waarvan de onderliggende set R is, zijn ten minste n aggregators nodig.

Waar multisets sets zijn waar de elementen meer dan één keer kunnen voorkomen (kenmerkvectoren van een knoop is een multiset in ons specifieke geval).

Opmerking over expressiviteit: als een model expressiever is, betekent dit dat het verschillende inbeddingen zou produceren voor 2 grafieken die niet-isomorf zijn met een grotere waarschijnlijkheid dan een minder expressief model (zoals we zagen dat sommige grafieken 1-WL-test (en dus MPNN's) verwarren) en dus in die gevallen zouden we dezelfde inbeddingen krijgen, ook al zijn de 2 grafieken niet-isomorf!)

Zoals je kunt zien, zou je precies dit deelgebied van Graph ML-onderzoek kunnen doen, omdat het vrij complex is en er nog veel open vragen zijn!

✅ GNN expressiviteit

Laten we een stap terug doen van de harde kerntheorie en enkele opwindende app-papers onderzoeken, waarvan ik er enkele in het vorige hoofdstuk heb genoemd.

Papers over spannende GNN-toepassingen

Ik heb er al een aantal genoemd:

Afgezien van al deze en de dingen die ik in het vorige hoofdstuk noemde, stel ik ook deze 2 blogs voor voor meer geweldige toepassingen:

Evenals dit artikel voor een holistisch overzicht van verschillende methoden die worden gebruikt in het veld Graph ML:

✅ Spannende toepassingen van GNN's

We komen steeds dichter bij het einde. 💪 Ga een groene thee drinken en ga terug. ️

Omgaan met dynamische grafieken

Tot nu toe hebben alle kranten die ik heb gelinkt betrekking op de zogenaamde so statische grafieken dwz zet dat in een grafiek evolueer niet in de loop van de tijd. Maar de waarheid is dat veel interessante grafieken in de loop van de tijd veranderen. Neem Twitter/Facebook/ grafiek als voorbeeld.

Hier zijn 2 aardige artikelen die gaan over dynamische grafieken met continue tijdstappen:

En nogmaals, hier is mijn overzicht van TGN-papier (Rossi onderschrijft het ️):

Tijdelijke grafieknetwerken uitgelegd

Dit was gewoon om je fantasie te prikkelen. Je kunt je voorstellen dat je een paar jaar onderzoek zou besteden aan alleen dit subonderwerp van Graph ML. Er zijn nog veel open vragen en technische problemen.

De 2 "hoofd" trucs zijn:

  • Vind een manier om tijd weer te geven en neem het op als een belangrijk kenmerk
  • Definieer een tijdelijke omgeving waarover geaggregeerd moet worden

✅ Dynamische grafieken

Tot slot wil ik u achterlaten met enkele volledig optionele papieren.

Opmerking: vrijwel elke subsectie, inclusief deze over dynamische grafieken, staat loodrecht op andere subsecties. Gewoon zeggen.

Ga zonder toezicht jonge ML-mens

Als je een passie hebt voor leren zonder supervisie, zul je deze 2 interessant vinden:

  • Diepe grafiek Infomax (DGI) — combineert de diepe infomax-theorie met grafieken.
  • VGAE — combineert de VAE (variational auto-encoder) met GCN.

Afgezien van het leren zonder toezicht, wil je misschien je voet in de Geometric-DLandia plaatsen (Geometric DL behandelt meestal variëteiten, hoewel er veel verbindingen zijn met het Graph ML-veld):

Geodetische CNN's op Riemann-spruitstuk (GCNN) - deze brak mijn geest 😂, het werken aan spruitstukken brengt zoveel nieuwe details met zich mee die ik nergens anders heb gezien in alle verschillende deep learning-velden die ik tot nu toe heb onderzocht.

Geometrisch diep leren: verder gaan dan Euclidische gegevens - nogmaals, echt wiskundig zwaar en omvat een complex overzicht van variëteiten, differentiële meetkunde, grafieken, verschillende methoden en verschillende toepassingen.

MoNets — Geometrische DL op grafieken/verdeelstukken met behulp van mengselmodellen. Het generaliseert enkele van de eerdere methoden, zoals de bovengenoemde GCNN.

Nogmaals, merk op dat er wat zware wiskunde, nieuwe jargons en terminologie bij betrokken zijn bij Geometric DL - beloof dat je niet overweldigd zult raken!

U hoeft deze niet te begrijpen om Graph ML te begrijpen.

✅ Diversen

Laten we deze hersendump van mij afronden. 🧠⚡

Toolkit voor grafiekvisualisatie, datasets, waar nu?

Hier zal ik een aantal van de andere dingen opsommen waar je om moet geven. Het gaat niet alleen om papieren. Gereedschap is super belangrijk. Gegevens zijn aantoonbaar nog belangrijker dan de algoritmen. Daar gaan we!

Deze blog bevat een mooi overzicht van verschillende grafiektekenpakketten:

Ik heb uiteindelijk gebruikt igraaf omdat het de krachtigste tool voor het tekenen van grafieken leek die ik rechtstreeks vanuit Python kon gebruiken.

Hier is een mooie beginnersvriendelijke introductie naar igraph en hier is de is officiële tutorial (het is best goed dat ik het heb gebruikt)

En nogmaals, grafieken tekenen is een subveld op zich! Je kunt een deel van je onderzoeksjaren besteden aan het onderzoeken van alleen dit onderwerp. Net zoals tokenization in transformatoren een subveld voor zichzelf is, ook al gebruiken we deze "tools" meestal als een zwarte doos.

Nu we het over visualisaties hebben, denk ik dat ik de grafische datasets moet noemen!

Allereerst zul je het zien CoraciteerPPIen Pubmed overal zijn dat de klassieke benchmarks (zoals MNIST in CV). Het probleem hiermee is, zoals mensen later ontdekten, dat ze zijn verraderlijk - we kunnen niet precies onderscheid maken tussen meer expressieve methoden en de minder expressieve.

Dus begonnen mensen nieuwe grafiekbenchmarks te adviseren, en we zouden allemaal moeten beseffen hoe belangrijk dit is. Als je uit de CV-achtergrond komt, zoals ik, weet je wat IMAGEnet deed voor de CV-wereld.

Het werd zelfs een metafoor! Mensen zeggen dat NLP zijn “ImageNet-moment” met de komst van big data, transfer learning en diepgecontextualiseerde representaties. Data is dus een groot goed! (woordspeling waarschijnlijk bedoeld)

Dus wat gebeurt er met ImageNet in Graph ML?

Grafiekbenchmark openen initiatief ziet er veelbelovend uit, de tijd zal het leren!

Ik wil graag deze geestverruimende blog afronden, die een pin probeer de Graph ML-literatuur te dekken, met 2 extra bronnen waarmee u rekening moet houden.

Als ik jou was zou ik elke afzonderlijke blog van Michael lezen (zoals ik deed):

En je zou Sergey's nieuwsbrief moeten volgen. Sebastian Ruder liet zien dat dit formaat wonderen doet voor de NLP-wereld, dus laten we eens kijken of Sergey hetzelfde maakt voor de Graph ML-wereld! 👑

We zijn klaar met de theorie! Zet je relaxte hoed op en laat me je door mijn GAT-project leiden. 😎

Grafiek Aandachtsnetwerk (GAT) Project

Zoals altijd ben ik er sterk van overtuigd dat het doorlezen van de theorie gewoon niet genoeg is. Je moet ook je begrip testen, want hoe zou je anders weten dat je niet alleen de trainingsdataset overbelast? 😅

En wat is een betere manier om dit te doen dan het helemaal opnieuw te ontwikkelen?

Als je het niet kunt bouwen, begrijp je het niet - iemand, ergens, ergens

Met die instelling besloot ik het Graph Attention Network te implementeren. Het voelde gewoon als een natuurlijke stap omdat ze een generalisatie van transformatoren en ik heb eerder geïmplementeerd Vaswani's transformator.

Ik bedoel: aandacht GNN's = ❤️, toch?

Bovendien heb ik het geluk dat ik mag chatten met Petar Veličkovic (de eerste auteur van de GAT-paper) op regelmatige basis - dus dat maakte het voor mij gemakkelijker om erachter te komen waarom bepaalde ontwerpbeslissingen werden genomen.

Dus na ~ 3 weken van mijn vrije tijd (inclusief weekends en afgezien van mijn dagelijkse baan bij Microsoft, ik ben gek, ik weet het), trok ik het eruit:

Ik heb echt veel geleerd.

Ik heb nog nooit met grafieken gespeeld (afgezien van uitvoering sommige klassieke CS-grafiekalgoritmen in C ++ vroeger), dus dit maakte me echt opgewonden.

Het begrijpen van grafiekgegevens en het visualiseren ervan gaf mij veel voldoening. Ik heb mijn toolkit uitgebreid met nieuwe pakketten zoals igraaf en NetwerkXen ik heb prachtige visualisaties gemaakt, zoals deze:

Cora citatienetwerk gevisualiseerd

ik heb de gebruikt Kamada Kawai layout om deze te tekenenduidelijkIk heb wat achtergrond in netwerkanalyse en grafiektekening.

En natuurlijk heb ik geleerd hoe ik GAT op veel verschillende manieren kan implementeren (ik heb uiteindelijk 3 implementaties gehad!). De belangrijkste afweging was tussen het gemak van begrip en efficiëntie - zoals vaak het geval is.

Nadat ik het model heb getraind, heb ik besloten om zoveel mogelijk visualisaties toe te voegen, zodat ik beter kan begrijpen wat er gebeurt. De 3 belangrijkste visualisaties die ik deed waren:

  • Visualisatie insluiten via t-GND
  • Buurt aandacht visualisatie via randdikte
  • Aandachtspatroon visualisatie via entropiehistogrammen

Zodra je de GAT op de Cora-dataset hebt getraind, ziet u hier hoe een enkele buurt eruitziet (ik heb hier een knooppunt met een hoge graad uitgekozen):

Het eerste dat opvalt, is dat de randen dezelfde dikte hebben - wat betekent dat GAT constante aandacht op Cora leert.

Voor meer details, kunt u kijken op de README en de bijbehorende Jupyter Notebook! (deze dekt Cora de andere dekt PPI)

Als je meer hulp nodig hebt bij het begrijpen van het project, heb ik een project-walkthrough-video gemaakt:

GAT-projectoverzicht (readme, jupyter-notebook, Cora en implementatie #3)

Ik heb de nadruk gelegd op het uitleggen van de moeilijkst te begrijpen implementatie (implementatie #3 zoals ik het heb genoemd), dus hopelijk, naast Jupyter Notebook, zal dit je helpen een diep begrip te krijgen van hoe GAT werkt.

Ik heb ook deze projectupdatevideo gemaakt terwijl ik aan GAT werkte, die je misschien interessant vindt als je geïnteresseerd bent in mijn reis:

GAT-projectupdate + mijn andere deep learning-projecten

Afgezien van mijn GAT-implementatie, wil ik vermelden dat je een geweldig framework tot je beschikking hebt genaamd PyTorch Geometrisch die je zou moeten gebruiken als je niet per se in de kleine details wilt graven, maar je gewoon snel wat GNN out-of-the-box wilt testen.

PyTorch Geometric is voor het Graph ML-veld wat HuggingFace is voor NLP. 👑

Een ander lib dat het vermelden waard is, is: DGL wiens PPI-dataset ik uiteindelijk gebruik.

Mijn volgende stappen

Opluchting. Als je het tot het einde hebt gehaald, congrats! ❤️

Ik hoop dat deze blog je zal inspireren om zelf Graph ML te gaan verkennen! Of deep learning/machine learning in het algemeen.

Een ding dat je opvalt wanneer je Graph ML begint te verkennen, is hoeveel gerelateerde velden (maar met een volledig nieuwe reeks terminologie, vergelijkingen en theorie) er zijn.

Voorbeelden zouden zijn:

  • Geometrisch diep leren (leren op variëteiten) - wat nauw verwant is aan Graph ML, aangezien beide zich bezighouden met leren op niet-Euclidische domeinen (grafieken/variëteiten).
  • Equivariantie diep leren (gebruik maken van symmetrieën om uw modellen statistisch efficiënt te maken, dwz minder gegevens gebruiken om dezelfde prestatie te bereiken) - gerelateerd aan CNN en geometrische deep learning-velden (ik heb het meestal in deze context gezien: groep CNN'ssferische CNNsCNN's meten (ze werken op spruitstukken)) maar is ook veel algemener toepasbaar (equivariante transformatoren, Enz.).
  • KG-veld (kennisgrafieken) - die ergens tussen grafiek ML en NLP ligt.

Ik heb wat "uitweidingen" in deze velden gedaan en ik zeg je - het kan overweldigend worden. Het is niet dat het moeilijk is, het is gewoon dat er veel nieuwe informatie is en dat het tijd kost.

Vooral interessant zijn GDL en equivalentie DL, waar je zult zien dat de natuurkundetheorie zijn tentakels verstoort en ideeën uit de kwantum-/deeltjes-/klassieke fysica in diep leren injecteert.

Je merkt dat je vragen stelt zoals hoe de algemene relativiteitstheorie hier terecht is gekomen, maar daar heb je het.

Als het gaat om mijn volgende stappen is er niets veranderd sinds mijn laatste blog post update. Over een paar dagen ga ik het (diepe) RL-veld verkennen!

Ik ben super enthousiast omdat enkele van de meest bekende AI-doorbraken precies in RL plaatsvonden, zoals de AlphaGo/AlphaZero/MuZero/AlphaStar onderzoekslijn afkomstig van DeepMind.

Zorg ervoor dat ik al deze uitgebreid op mijn YT-kanaal zal behandelen en nogmaals, ik zal waarschijnlijk een van deze helemaal opnieuw implementeren, hoewel ik me nog steeds niet bewust ben hoe ingewikkeld het is om iets soortgelijks te implementeren - dus ik' Ik blijf hier flexibel. 😅

Dankbaarheid

Ik wil ook zeggen dat ik super dankbaar en nederig ben over alle mooie dingen die de afgelopen maanden in mijn leven zijn gebeurd.

Ik kreeg veel kansen op mijn pad, zoals aangeboden worden om verschillende Graph ML-onderzoeken te doen met mensen van CERN en veel verschillende industrieën. Ik kreeg het aanbod om presentaties, webinars, podcasts en zelfs een bijeenkomst in Londen te houden (die zal waarschijnlijk plaatsvinden, dus houd ons in de gaten!).

Mensen vragen me om hen te begeleiden, Sergey Ivanov linkte mijn videoserie in zijn nieuwsbrief, Michael Bronstein, Thomas Kipf en vele andere invloedrijke AI-mensen deelden mijn werk.

Ik moet zeg nee te veel kansen omdat ik gewoon niet de tijd heb om ze allemaal te beheren (ook al zou ik dat graag willen!). Ik werk fulltime bij Microsoft en volg dit pad van mij ook vrijwel fulltime.

Ik krijg ook tonnen DM's en e-mails en ik wil hier alleen maar zeggen dat ik me bij voorbaat verontschuldig als mijn antwoorden vertraging oplopen (en ergens in de niet zo verre toekomst zal ik het gewoon niet allemaal zelf kunnen regelen).

Ik heb van velen van jullie veel mooie berichten van steun en liefde ontvangen en dat waardeer ik echt. ❤️ Het zorgt ervoor dat ik nog harder aan het werk ben.

Stuur me gerust een berichtje of:

  1. Maak verbinding en bereik me op LinkedIn en Twitter
  2. Abonneer op mijn Youtube kanaal voor AI-gerelateerde inhoud ❤️
  3. Volg me op Medium en GitHub

En als je de inhoud die ik maak nuttig vindt overweeg om Patreon te worden!

Veel liefs ️

Dit artikel is oorspronkelijk gepubliceerd op Medium en opnieuw gepubliceerd naar TOPBOTS met toestemming van de auteur.

Geniet van dit artikel? Meld u aan voor meer AI-updates.

We laten het je weten wanneer we meer technisch onderwijs vrijgeven.

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://www.topbots.com/get-started-with-graph-machine-learning/

spot_img

Laatste intelligentie

spot_img