Modelle und Modelltraining in Amazon Neptune ML - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Modelle und Modelltraining in Amazon Neptune ML

Neptune ML verwendet Graph Neural Networks (GNN), um Modelle für die verschiedenen Machine-Learning-Aufgaben zu erstellen. Es wurde gezeigt, dass neuronale Graphennetzwerke state-of-the-art Ergebnisse für Aufgaben des maschinellen Lernens mit Graphen erzielen und hervorragend darin sind, informative Muster aus graphstrukturierten Daten zu extrahieren.

Neuronale Netzwerke (GNNs) in Neptune ML grafisch darstellen

Graph Neural Networks (GNNs) gehören zu einer Familie neuronaler Netze, die Knotenrepräsentationen berechnen, indem sie die Struktur und Merkmale nahegelegener Knoten berücksichtigen. GNNs ergänzen andere traditionelle Methoden des maschinellen Lernens und neuronaler Netzwerke, die für Graphdaten nicht gut geeignet sind.

GNNs werden verwendet, um Aufgaben des maschinellen Lernens wie Knotenklassifizierung und Regression (Vorhersage der Eigenschaften von Knoten) und Kantenklassifizierung und Regression (Vorhersage der Eigenschaften von Kanten) oder Linkvorhersage (Vorhersage, ob zwei Knoten im Graphen miteinander verbunden sein sollten oder nicht) zu lösen.

Im Allgemeinen umfasst die Verwendung eines GNN für eine Machine-Learning-Aufgabe zwei Phasen:

  • Eine Kodierungsphase, in der das GNN für jeden Knoten im Diagramm einen d-dimensionalen Vektor berechnet. Diese Vektoren werden auch Repräsentationen oder Einbettungen genannt.

  • Eine Dekodierungsphase, in der auf Grundlage der kodierten Repräsentationen Vorhersagen erstellt werden.

Bei der Klassifizierung und Regression von Knoten werden die Knotenrepräsentationen direkt für die Klassifizierungs- und Regressionsaufgaben verwendet. Bei der Klassifizierung und Regression von Kanten werden die Knotendarstellungen der Vorfallknoten an einer Kante als Eingabe für die Klassifizierung oder Regression verwendet. Für die Linkvorhersage wird anhand eines Paars von Knotenrepräsentationen und einer Kantentypdarstellung ein Kantenwahrscheinlichkeitswert berechnet.

Die Deep Graph Library (DGL) ermöglicht die effiziente Definition und Schulung dieser Aufgaben. GNNs

Verschiedene GNN-Modelle sind unter der Formulierung der Nachrichtenübergabe konsolidiert. In dieser Ansicht wird die Darstellung eines Knotens in einem Diagramm anhand der Darstellungen der Knotennachbarn (der Nachrichten) zusammen mit der ursprünglichen Darstellung des Knotens berechnet. In Neptune ML wird die ursprüngliche Darstellung eines Knotens von den Features abgeleitet, die aus dessen Eigenschaften extrahiert wurden. Sie kann auch erlernbar und von der Identität des Knotens abhängig sein.

Neptune ML ermöglicht auch die Verkettung von Knoten-Features und erlernbaren Knotendarstellungen, um als ursprüngliche Knotendarstellung verwendet zu werden.

Für die verschiedenen Aufgaben in Neptune ML, die Diagramme mit Knoteneigenschaften beinhalten, wird in der Kodierungsphase das Relational Graph Convolutional Network (R-GCN) verwendet. R-GCN ist eine GNN-Architektur, die gut für Diagramme mit mehreren Knoten- und Kantentypen geeignet ist (als heterogene Diagramme bezeichnet).

Das R-GCN-Netzwerk besteht aus einer festen Anzahl von Ebenen, die aufeinander gestapelt sind. Jede R-GCN-Ebene verwendet ihre erlernbaren Modellparameter, um Informationen aus der unmittelbaren 1-Hop-Nachbarschaft eines Knotens zu aggregieren. Da nachfolgende Ebenen die Ausgabedarstellungen der vorherigen Ebene als Eingabe verwenden, ist der Radius der Diagrammnachbarschaft, der die endgültige Einbettung eines Knotens beeinflusst, von der Anzahl der Ebenen (num-layer) des R-GCN-Netzwerks abhängig.

Das bedeutet beispielsweise, dass ein Netzwerk mit 2 Ebenen Informationen aus Knoten verwendet, die 2 Hops entfernt sind.

Weitere Informationen dazu finden Sie unter Umfassender Überblick über GNNs neuronale Graphennetzwerke. Weitere Informationen zur Deep Graph Library (DGL) finden Sie auf der DGL-Website. Ein praktisches Tutorial zur Verwendung von DGL mit GNNs finden Sie unter Lernen neuronaler Graphennetze mit der Deep Graph Library.

Trainieren von Graph Neural Networks

Im Machine Learning wird der Vorgang, in dem ein Modell lernt, gute Vorhersagen für eine Aufgabe zu erstelen, als Modelltraining bezeichnet. Dies erfolgt in der Regel durch die Angabe eines Optimierungsziels und eines Algorithmus für die Ausführung dieser Optimierung.

Dieser Vorgang wird verwendet, um ein GNN für die Erstellung guter Darstellungen auch der nachgelagerten Aufgaben zu trainieren. Für diese Aufgabe wird eine Zielfunktion erstellt, die während des Modelltrainings minimiert wird. Für die Knotenklassifizierung verwenden CrossEntropyLosswir beispielsweise das Ziel, wodurch Fehlklassifizierungen bestraft werden, und für die Knotenregression minimieren wir. MeanSquareError

Das Ziel ist in der Regel eine Verlustfunktion, bei der die Modellvorhersagen für einen bestimmten Datenpunkt mit dem Grundwahrheitswert für diesen Datenpunkt verglichen werden. Sie gibt den Verlustwert zurück, der angibt, wie weit die Vorhersagen des Modells abweichen. Das Ziel des Trainings ist, den Verlust zu minimieren und sicherzustellen, dass Modellvorhersagen der Grundwahrheit nahe kommen.

Der Optimierungsalgorithmus, der beim Deep Learning für das Training verwendet wird, ist in der Regel eine Variante des Gradientenabstiegs. In Neptune ML wird Adam verwendet, ein Algorithmus für die gradientenbasierte Optimierung erster Ordnung für stochastische Zielfunktionen, der auf adaptiven Schätzungen von Momenten niedrigerer Ordnung basiert.

Während das Modelltraining sicherstellen soll, dass die erlernten Modellparameter nahe bei den Mindestwerten der Zielfunktion liegen, ist die Gesamtleistung eines Modells auch von dessen Hyperparametern abhängig. Dies sind Modelleinstellungen, die nicht vom Trainingsalgorithmus erlernt werden. Beispielsweise ist die Dimensionalität der erlernten Knotendarstellung (num-hidden) ein Hyperparameter, der sich auf die Modellleistung auswirkt. Daher wird im Machine Learning in der Regel eine Hyperparameter-Optimierung (HPO) durchgeführt, um geeignete Hyperparameter auszuwählen.

Neptune ML verwendet einen SageMaker KI-Hyperparameter-Tuning-Job, um mehrere Instanzen von Modelltraining mit unterschiedlichen Hyperparameter-Konfigurationen zu starten, um zu versuchen, das beste Modell für eine Reihe von Hyperparameter-Einstellungen zu finden. Siehe Anpassen von Modell-Hyperparameter-Konfigurationen in Neptune ML.

Modelle zur Einbettung von Wissensdiagrammen in Neptune ML

Wissensgraphen (KGs) sind Graphen, die Informationen über verschiedene Entitäten (Knoten) und ihre Beziehungen (Kanten) kodieren. In Neptune ML werden standardmäßig Modelle zur Einbettung von Wissensdiagrammen für Linkvorhersagen verwendet, wenn ein Diagramm keine Knoteneigenschaften, sondern lediglich Beziehungen zu anderen Knoten enthält. Obwohl für diese Diagramme auch R-GCN-Modelle mit erlernbaren Einbettungen verwendet werden können, indem der Modelltyp als "rgcn" angegeben wird, sind Modelle zur Einbettung von Wissensdiagrammen einfacher und eine effektive Lösung für das Erlernen von Darstellungen für umfangreiche Wissensdiagramme.

Modelle zur Einbettung von Wissensdiagrammen werden in Aufgaben für die Linkvorhersage verwendet, um die Knoten oder Beziehungen vorherzusagen, die ein Tripel (h, r, t) bilden, wobei h der Quellknoten, r der Beziehungstyp und t der Zielknoten ist.

Die in Neptune ML implementierten Modelle zur Einbettung von Wissensdiagrammen sind distmult, transE und rotatE. Weitere Informationen zu Modellen zur Einbettung von Wissensdiagrammen finden Sie unter DGL-KE.

Trainieren benutzerdefinierter Modelle in Neptune ML

Mit Neptune ML können Sie für bestimmte Szenarien eigene benutzerdefinierte Modelle definieren und implementieren. Informationen zur Implementierung eines benutzerdefinierten Modells und zum Trainieren dieses Modells in der Neptune-ML-Infrastruktur finden Sie unter Benutzerdefinierte Modelle in Neptune ML.