Che cosa sono le reti neurali dei grafi? Spiegazione e applicazioni [con diagrammi]

Pubblicato: 2021-01-08

Sommario

introduzione

Negli ultimi tempi, Neural Networks ha guadagnato un'enorme popolarità grazie alla sua applicazione e alla sua facilità d'uso nel campo del riconoscimento di pattern e del data mining. L'applicazione del Deep Learning a compiti come il rilevamento di oggetti e il riconoscimento vocale utilizzando tecniche come CNN, RNN e autoencoder ha portato un'enorme quantità di lavoro nella ricerca e nello sviluppo delle reti neurali.

L'applicazione del Deep Learning su dati come immagini, testo e video è facilmente eseguibile poiché si basano su dati euclidei. Che dire delle applicazioni in cui i dati sono rappresentati come grafici (non euclidei) con relazioni altamente complesse tra oggetti?

È qui che introduciamo il concetto di Graph Neural Networks (GNN). In questo articolo, analizzeremo le definizioni e le basi di Grafici e GNN e vedremo alcune delle ultime applicazioni delle Reti Neurali Grafici.

Che cos'è un grafico?

Dal titolo – Graph Neural Networks, vediamo che la parte più fondamentale di GNN è un grafico.

In Informatica, un grafico è definito come una struttura di dati con due componenti. Vertici e bordi. Un grafo G, può essere definito come G = VE . Dove V è l'insieme dei vertici ed E sono i bordi tra di loro. I termini vertici e nodi sono spesso usati in modo intercambiabile. Se c'è un segno di freccia sui bordi chiamato dipendenza direzionale, allora è un grafico diretto. In caso contrario, sono grafici non orientati.

Fonte

Un grafico può rappresentare diverse cose: rete di social media, rete di città, molecole ecc. Considera il grafico seguente che rappresenta una rete di città. Le città sono rappresentate come nodi e le strade che le collegano sono i bordi.

Fonte

Utilizzando la rete del grafico sopra, possiamo risolvere diversi problemi relativi a queste città, come trovare quali città sono ben collegate o trovare la distanza più breve tra due città.

Cosa sono le reti neurali dei grafi?

Poiché i Grafici hanno poteri espressivi estremamente forti, stanno guadagnando ampiamente l'attenzione nel campo del Machine Learning. Ad ogni nodo è associato un incorporamento. Tale incorporamento definisce il nodo nello spazio dati. Graph Neural Networks si riferisce alle architetture di rete neurale che operano su un grafo.

L'obiettivo principale di un'architettura GNN è quello di apprendere un embedding che contenga informazioni sul suo vicinato. Usando questo incorporamento, possiamo risolvere diversi problemi come l'etichettatura del nodo, la previsione di nodi e bordi, ecc.

In altre parole, Graph Neural Networks è una classe aggiuntiva di metodi di Deep Learning progettati per eseguire inferenze sui dati forniti dai grafici. Vengono applicati su grafici e possono eseguire facilmente attività di previsione a livello di nodo, livello di bordo e livello di grafico.

Perché non la CNN?

Il principale vantaggio di GNN è che può svolgere compiti che le Reti Neurali Convoluzionali (CNN) non sono riuscite a svolgere. Le CNN vengono utilizzate per eseguire attività come il rilevamento di oggetti, la classificazione e il riconoscimento delle immagini. Utilizzando livelli convoluzionali nascosti e livelli di pooling, la CNN raggiunge questo obiettivo.

È computazionalmente difficile eseguire la CNN sui dati del grafico poiché è una topologia altamente arbitraria e complessa, il che significa che non esiste una località spaziale. Inoltre, esiste un ordinamento dei nodi non fisso che rende più difficile l'applicazione della CNN.

Grafico delle reti neurali

Pertanto, si comprende che, come viene chiamato, GNN è una rete neurale che viene applicata direttamente ai grafici fornendo un modo conveniente per attività di previsione a livello di bordo, livello di nodo e livello di grafico. Esistono principalmente tre tipi di reti neurali a grafo:

  1. Rete neurale a grafo ricorrente
  2. Rete convoluzionale spaziale
  3. Rete convoluzionale spettrale

Una delle intuizioni di GNN è che i nodi sono definiti dai suoi vicini e connessioni. Possiamo visualizzarlo immaginando che se tutti i vicini di un nodo vengono rimossi, il nodo perderà tutte le sue informazioni. Pertanto, il concetto di vicini di un nodo e le connessioni ai vicini definiscono un nodo.

Con questo in mente, diamo a ogni nodo uno stato (x) per rappresentare il suo concetto. Possiamo usare lo stato del nodo (x) per produrre un output (o), che è la decisione sul concetto. Lo stato finale (x_n) del nodo è chiamato "incorporamento del nodo". Il compito principale di tutta la Graph Neural Network è quello di determinare il "node embedding" di ciascun nodo, osservando le informazioni sui suoi nodi vicini.

Iniziamo con la versione più potente di GNN, Recurrent Graph Neural Network o RecGNN

Rete neurale a grafo ricorrente

Come menzionato nel documento originale, RecGNN è costruito con un'assunzione del Teorema del punto fisso di Banach che afferma che: Sia (X,d) uno spazio metrico completo e sia (T:X→X) una mappatura di contrazione. Allora T ha un unico punto fisso (x∗) e per ogni x∈X la successione T_n(x) per n→∞ converge a (x∗). Ciò significa che se applico la mappatura T su x per k volte, x^k dovrebbe essere quasi uguale a x^(k-1).

Rete convoluzionale spaziale

L'intuizione di Spatial Convolutional Network è simile a quella della CNN. Come sappiamo alla CNN, l'idea è di eseguire la convoluzione sommando i pixel vicini attorno a un pixel centrale con un filtro e pesi apprendibili. Le reti convoluzionali spaziali adottano un'idea simile aggregando le caratteristiche dei nodi vicini verso il nodo centrale.

Fonte

Rete convoluzionale spettrale

A differenza di altre reti neurali grafiche, questo tipo di GNN ha solide basi matematiche. È sviluppato sulla teoria dell'elaborazione dei segnali dei grafici. Utilizza l'approssimazione polinomiale di Chebyshev per la semplificazione.

Cosa può fare una GNN?

I problemi che un GNN può risolvere sono ampiamente classificati in 3 categorie:

  1. Classificazione dei nodi
  2. Previsione di collegamento
  3. Classificazione dei grafici

Classificazione dei nodi

implica la previsione dell'incorporamento del nodo per ciascun nodo in un grafico. In questi casi, viene etichettata solo una parte del grafico e quindi questo è noto come grafico semi-supervisionato. Alcune applicazioni sono video di YouTube, raccomandazione di amici di Facebook, ecc.

Previsione di collegamento

il compito principale è identificare la relazione tra due entità in un grafico e prevedere se esiste una connessione tra le due entità. Ad esempio, si consideri un sistema di raccomandazione in cui a un modello viene fornita una serie di recensioni da parte di utenti di prodotti diversi. Il compito è prevedere le preferenze degli utenti e ottimizzare il sistema di suggerimenti per promuovere i prodotti che corrispondono all'interesse degli utenti.

Classificazione dei grafici

implica la classificazione dell'intero grafico in diverse categorie. È abbastanza simile all'attività di classificazione delle immagini, ma l'obiettivo qui è nel dominio del grafico. Esistono diversi esempi di classificazione dei grafi, ad esempio in chimica, a un modello viene assegnata una struttura molecolare sotto forma di grafo e il compito è classificare l'obiettivo in una particolare categoria.

Applicazioni in tempo reale di GNN

Dalla sua introduzione nel 2018, i GNN hanno trovato alcune applicazioni in tempo reale che sono riassunte di seguito.

Elaborazione del linguaggio naturale

GNN trova le sue applicazioni in un'ampia varietà di applicazioni NLP come Sentiment Classification, Text Classification, Sequence Labelling. Sono utilizzati nella PNL per la sua facilità di applicazione. Sono utilizzati anche nell'analisi dei social network come la previsione di post simili e la raccomandazione di contenuti specifici agli utenti.

Visione computerizzata

La visione artificiale è un vasto campo che è cresciuto rapidamente con l'aiuto del Deep Learning in aree come la classificazione delle immagini, il rilevamento di oggetti, ecc. L'applicazione più popolare è le reti neurali convoluzionali. In ritardo, i GNN sono stati applicati anche in questo dominio. Sebbene l'applicazione di GNN in Computer Vision sia nella sua fase incipiente, mostra un enorme potenziale nei prossimi anni.

Scienza

I GNN sono anche ampiamente utilizzati nella scienza come i sistemi fisici, la previsione degli effetti collaterali e la classificazione delle malattie. I chimici stanno anche usando i GNN per studiare la struttura a grafo di composti e molecole.

Altri domini

L'applicazione di GNN non si limita solo ai compiti di cui sopra. Ci sono stati diversi tentativi di applicazione della GNN a una varietà di domini come i sistemi di raccomandazione, l'analisi dei social network ecc.

Conclusione

Negli ultimi anni da quando sono stati introdotti i GNN, sono diventati uno strumento forte e affidabile per risolvere problemi che possono essere modellati tramite grafici. Ciò è dovuto alla sua flessibilità, potenza espressiva e facilità di visualizzazione. Pertanto, i GNN sono una soluzione intuitiva per i dati non strutturati con un'ampia gamma di applicazioni del mondo reale.

Se vuoi saperne di più su GCN e sulle sue caratteristiche e vantaggi, registrati su upGrad Education Pvt. Ltd. E il corso post-laurea e diploma di IIITB su Machine Learning e Intelligenza Artificiale. Questo corso su Machine Learning e AI è progettato per studenti e professionisti che lavorano.

Il corso fornisce una raccolta di casi di studio e incarichi, sessioni di tutoraggio del settore, stato di Alumni IIIT Bangalore, assistenza per l'inserimento lavorativo con le migliori aziende e, soprattutto, una ricca esperienza di apprendimento.

Cosa intendi per rete neurale?

Le reti neurali sono algoritmi di rete che aiutano a identificare schemi e sono in qualche modo progettati secondo il cervello umano. Usano l'apprendimento automatico e l'intelligenza artificiale per comprendere input sensoriali, categorizzare o raggruppare dati grezzi. Tutte le statistiche reali, siano esse immagini, musica, testo o serie temporali, dovrebbero essere tradotte nei caratteri riconosciuti dalla rete neurale, che sono numerici e codificati in vettori. Aiutano nella classificazione e nel raggruppamento dei dati. Classificano i dati quando hanno un set di dati etichettato e aiutano a raggruppare i dati senza etichetta in base alle somiglianze tra gli input di esempio. Fanno parte di applicazioni di machine learning più estese che includono algoritmi per l'apprendimento per rinforzo, la varietà e la regressione.

Che cos'è una rete neurale convoluzionale?

Una rete neurale convoluzionale, nota anche come CNN o ConvNet, è una tecnica che può acquisire un'immagine di input e dare priorità a vari elementi nell'immagine, oltre a distinguerli. La quantità di elaborazione richiesta da una CNN è significativamente inferiore rispetto ad altri algoritmi. La CNN è stata progettata prendendo l'aiuto della corteccia visiva e ha uno schema simile ai neuroni nel nostro cervello. Anche nella CNN, i singoli neuroni possono reagire solo agli impulsi in una piccola area del campo visivo chiamata campo ricettivo.

In che modo le reti neurali sono diverse dall'apprendimento automatico?

L'apprendimento automatico è un insieme di potenti algoritmi che analizzano i dati, li studiano e applicano ciò che hanno studiato per trovare schemi intriganti. Una rete neurale, d'altra parte, è un gruppo di tecniche utilizzate nell'apprendimento automatico per modellare i dati utilizzando grafici di neuroni. Una rete neurale dispone gli algoritmi in modo tale da poter formulare giudizi affidabili da sola, mentre un modello di Machine Learning prende decisioni in base a ciò che ha appreso dai dati. Di conseguenza, sebbene i modelli di Machine Learning possano apprendere dai dati, potrebbero richiedere una certa interazione umana nelle fasi iniziali. Le reti neurali non richiedono l'interazione umana poiché gli strati sovrapposti al loro interno trasmettono input attraverso gerarchie di concetti distinti, consentendo loro di imparare dai propri errori.