Attraverso questo articolo, mi propongo di presentarti un algoritmo di deep learning sempre più popolare, Graph Neural Networks (GNN). Le GNN stanno gradualmente emergendo dal campo della ricerca e stanno già dimostrando risultati impressionanti sui problemi del mondo reale, suggerendo il loro vasto potenziale. L’obiettivo principale di questo articolo è demistificare questo algoritmo. Se, alla fine, riesci a rispondere a domande del tipo: Perché dovrei usare una GNN? Come funziona una GNN? Considererei la mia missione compiuta.
Prima di approfondire l’argomento è necessario richiamare due concetti intrinsecamente legati al nostro argomento:
Grafici e incorporamenti
Grafici in informatica
Cominciamo con un breve promemoria di cosa è un grafico. I grafici sono utilizzati in innumerevoli domini. In particolare in informatica, un grafo è una struttura dati composta da due elementi: un insieme di vertici, o nodi, e un insieme di archi che collegano questi nodi.
Un grafico può essere diretto o non orientato. Un grafico diretto è un grafico in cui gli spigoli hanno una direzione, come mostrato di seguito.
Quindi, un grafico è una rappresentazione delle relazioni (bordi) tra oggetti (nodi).
Incorporamenti
Gli incorporamenti sono un modo per rappresentare le informazioni. Lasciatemi spiegare con un esempio prima di discuterne in modo più formale. Supponiamo che io abbia un insieme di 10.000 oggetti da conoscere. La rappresentazione “naturale” di questi oggetti è la rappresentazione discreta, che è un vettore con tante componenti quanti sono gli elementi dell’insieme. Quindi, nell’immagine, la rappresentazione discreta è quella a destra, dove solo una delle componenti del vettore è 1 (nero) e le restanti sono 0.
Questa rappresentazione pone chiaramente un problema di dimensionalità. È qui che entrano in gioco gli incorporamenti. Riducono la dimensionalità del problema rappresentando i dati in uno spazio dimensionale molto inferiore. La rappresentazione è continua, il che significa che i valori delle componenti del vettore sono diversi da 0 e 1. Tuttavia, determinare cosa rappresenta ciascuna componente in questo nuovo spazio non è semplice, come nel caso della rappresentazione discreta.
Fonte: towardsdatascience.com