Modelli e addestramento dei modelli in Amazon Neptune ML - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Modelli e addestramento dei modelli in Amazon Neptune ML

Neptune ML utilizza reti neurali a grafo (GNN) per creare modelli per le varie attività di machine learning. È stato dimostrato che le reti neurali a grafo ottengono risultati all'avanguardia per le attività di machine learning a grafo e sono eccellenti nell'estrazione di modelli informativi da dati strutturati a grafo.

Reti neurali a grafo (GNN) in Neptune ML

Le reti neurali a grafo (GNN) appartengono a una famiglia di reti neurali che calcolano le rappresentazioni dei nodi tenendo conto della struttura e delle funzionalità dei nodi vicini. Le GNN si aggiungono ad altri metodi tradizionali di machine learning e delle rete neurali che non sono adatti per i dati a grafo.

Le GNN consentono di risolvere attività di machine learning come la classificazione e la regressione dei nodi (per prevedere le proprietà dei nodi), la classificazione e la regressione degli archi (per prevedere le proprietà degli archi) o la previsione dei collegamenti (per prevedere se due nodi nel grafo devono essere connessi o meno).

In generale, l'utilizzo di una GNN per un'attività di machine learning prevede due fasi:

  • Una fase di codifica, in cui la GNN calcola un vettore d-dimensionale per ogni nodo del grafo. Questi vettori sono anche chiamati rappresentazioni o incorporamenti.

  • Una fase di decodifica, che effettua previsioni basate sulle rappresentazioni codificate.

Per la classificazione e la regressione dei nodi, le rappresentazioni dei nodi vengono utilizzate direttamente per le attività di classificazione e regressione. Per la classificazione e la regressione degli archi, le rappresentazioni dei nodi incidenti su un arco vengono utilizzate come input per la classificazione o la regressione. Per la previsione dei collegamenti, viene calcolato un punteggio di probabilità degli archi utilizzando una coppia di rappresentazioni di nodi e una rappresentazione del tipo di arco.

La Deep Graph Library (DGL) facilita la definizione e l'addestramento efficienti delle GNN per queste attività.

Diversi modelli di GNN sono unificati sotto la formulazione del passaggio dei messaggi. Da questo punto di vista, la rappresentazione di un nodo in un grafo viene calcolata utilizzando le rappresentazioni dei vicini del nodo (i messaggi), insieme alla rappresentazione iniziale del nodo. In Neptune ML la rappresentazione iniziale di un nodo deriva dalle funzionalità estratte dalle proprietà del nodo oppure è apprendibile e dipende dall'identità del nodo.

Neptune ML consente inoltre di concatenare le funzionalità dei nodi e le rappresentazioni dei nodi apprendibili per fungere da rappresentazione del nodo originale.

Per le varie attività di Neptune ML che coinvolgono grafi con proprietà dei nodi, viene usata la rete Relational Graph Convolutional Network (R-GCN) per eseguire la fase di codifica. La R-GCN è un'architettura GNN adatta per i grafi con più tipi di nodi e archi (noti come grafi eterogenei).

La rete R-GCN è costituita da un numero fisso di livelli, impilati uno dopo l'altro. Ogni livello della rete R-GCN utilizza i relativi parametri del modello apprendibili per aggregare informazioni dal neighborhood a 1 hop di un nodo. Poiché i livelli successivi utilizzano le rappresentazioni di output del livello precedente come input, il raggio del neighborhood del grafo che influenza l'incorporamento finale di un nodo dipende dal numero di livelli (num-layer) della rete R-GCN.

Questo significa ad esempio che una rete a 2 livelli utilizza le informazioni provenienti da nodi che si trovano a 2 hop di distanza.

Per ulteriori informazioni sulle reti GNN, consulta A Comprehensive Survey on Graph Neural Networks. Per ulteriori informazioni sulla Deep Graph Library (DGL), visita la pagina web di DGL. Per un tutorial pratico sull'uso della DGL con le reti GNN, consulta Learning graph neural networks with Deep Graph Library.

Addestramento delle reti neurali a grafo

Nel machine learning il processo che consente a un modello di apprendere come fare previsioni valide per un'attività è denominato addestramento del modello. Questa operazione viene in genere eseguita specificando un obiettivo particolare da ottimizzare e un algoritmo da utilizzare per eseguire tale ottimizzazione.

Questo processo viene impiegato anche per addestrare una rete GNN ad apprendere rappresentazioni valide anche per l'attività a valle. Per tale attività viene creata una funzione obiettivo che viene ridotta al minimo durante l'addestramento del modello. Ad esempio, per la classificazione dei nodi si usa CrossEntropyLoss come obiettivo per penalizzare le classificazioni errate, mentre per la regressione dei nodi si riduce al minimo MeanSquareError.

L'obiettivo è in genere una funzione di perdita che accetta le previsioni del modello per un punto dati specifico e le confronta con il valore ground-truth per tale punto dati. Restituisce il valore di perdita, che mostra quanto siano lontane le previsioni del modello. L'obiettivo del processo di addestramento è ridurre al minimo le perdite e garantire che le previsioni dei modelli siano vicine al valore ground-truth.

L'algoritmo di ottimizzazione utilizzato nel deep learning per il processo di addestramento è in genere una variante della discesa del gradiente. In Neptune ML, utilizziamo Adam, un algoritmo per l'ottimizzazione basata su gradiente del primo ordine di funzioni obiettivo stocastiche basate su stime adattive di momenti di ordine inferiore.

Sebbene il processo di addestramento del modello tenti di garantire che i parametri del modello appresi siano vicini ai minimi della funzione obiettivo, le prestazioni complessive di un modello dipendono anche dagli iperparametri del modello, che sono impostazioni del modello che non vengono apprese dall'algoritmo di addestramento. Ad esempio, la dimensionalità della rappresentazione del nodo appresa, num-hidden, è un iperparametro che influisce sulle prestazioni del modello. Pertanto, nel machine learning è comune eseguire l'ottimizzazione degli iperparametri per scegliere gli iperparametri adatti.

Neptune ML utilizza un processo di ottimizzazione degli iperparametri di SageMaker per avviare più istanze di addestramento del modello con diverse configurazioni di iperparametri per tentare di trovare il modello migliore per una serie di impostazioni di iperparametri. Per informazioni, consultare Personalizzazione delle configurazioni degli iperparametri dei modelli in Neptune ML.

Modelli di incorporamento del grafo della conoscenza in Neptune ML

I grafi della conoscenza sono grafi che codificano informazioni su diverse entità (nodi) e le relative relazioni (archi). In Neptune ML i modelli di incorporamento del grafo della conoscenza vengono applicati per impostazione predefinita per eseguire la previsione dei collegamenti quando il grafo non contiene proprietà dei nodi, ma solo relazioni con altri nodi. Tuttavia, anche i modelli R-GCN con incorporamenti apprendibili possono essere utilizzati per questi grafi specificando il tipo di modello "rgcn", poiché i modelli di incorporamento dei grafi della conoscenza sono più semplici e progettati per essere efficaci per l'apprendimento di rappresentazioni per grafi della conoscenza su larga scala.

I modelli di incorporamento dei grafi della conoscenza vengono usati in un'attività di previsione dei collegamenti per prevedere i nodi o le relazioni che completano una tripla (h, r, t), dove h è il nodo di origine, r è il tipo di relazione e t è il nodo di destinazione.

I modelli di incorporamento del grafo della conoscenza implementati in Neptune ML sono distmult, transE e rotatE. Per ulteriori informazioni sui modelli di incorporamento del grafo della conoscenza, consulta DGL-KE.

Addestramento di modelli personalizzati in Neptune ML.

Neptune ML consente di definire e implementare modelli personalizzati, per scenari specifici. Per informazioni su come implementare un modello personalizzato e su come utilizzare l'infrastruttura di Neptune ML per addestrarlo, consulta Modelli personalizzati in Neptune ML..