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. Graph Neural Networks erzielen modernste Ergebnisse für Diagramm-Machine-Learning-Aufgaben und sind hervorragend geeignet, um informative Muster aus strukturierten Diagrammdaten zu extrahieren.

Graph Neural Networks (GNNs) in Neptune ML

Graph Neural Networks (GNNs) gehören zu einer Familie neuronaler Netzwerke, die Knotenrepräsentationen unter Berücksichtigung von Struktur und Features von Knoten in der Nähe berechnen. GNNs ergänzen andere, herkömmliche Methoden in den Bereichen Machine Learning und neuronale Netzwerke, die für Diagrammdaten nicht gut geeignet sind.

GNNs werden verwendet, um Machine-Learning-Aufgaben zu lösen, wie die Klassifizierung und Regression von Knoten (Vorhersage von Knoteneigenschaften) und Kanten (Vorhersage von Kanteneigenschaften) oder die Linkvorhersage (Vorhersage, ob zwei Knoten im Diagramm 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 das effiziente Training von GNNs für diese Aufgaben.

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 zu GNNs finden Sie unter Umfassende Übersicht über Graph Neural Networks. Weitere Informationen zur Deep Graph Library (DGL) finden Sie auf der DGL-Website. Ein praxisorientiertes Tutorial zur Verwendung der DGL mit GNNs finden Sie unter Einführung in Graph Neural Networks mit 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. Bei der Knotenklassifizierung wird beispielsweise CrossEntropyLoss als Ziel verwendet, um Fehlklassifizierungen zu sanktionieren. Bei der Knotenregression wird MeanSquareError minimiert.

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 Hyperparameter-Optimierungsauftrag aus SageMaker, um mehrere Modelltrainings-Instances mit unterschiedlichen Hyperparameter-Konfigurationen zu starten, um das beste Modell für verschiedene Hyperparameter-Einstellungen zu ermitteln. Siehe Anpassen von Modell-Hyperparameter-Konfigurationen in Neptune ML.

Modelle zur Einbettung von Wissensdiagrammen in Neptune ML

Wissensdiagramme (Knowledge Graphs, KGs) sind Diagramme, die Informationen zu verschiedenen Entitäten (Knoten) und ihren 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.