Objekte und ihre Beziehungen sind in der Welt um uns herum allgegenwärtig, und Beziehungen können für das Verständnis eines Objekts genauso wichtig sein wie seine eigenen Attribute, isoliert betrachtet – man denke zum Beispiel an Transportnetzwerke, Produktionsnetzwerke, Wissensgraphen oder soziale Netzwerke. Diskrete Mathematik und Informatik haben eine lange Geschichte der Formalisierung solcher Netzwerke wie Grafikenbestehend aus Knoten verbunden über Kanten auf verschiedene unregelmäßige Weise. Dennoch ermöglichen die meisten Algorithmen des maschinellen Lernens (ML) nur regelmäßige und einheitliche Beziehungen zwischen Eingabeobjekten, beispielsweise ein Pixelraster, eine Wortfolge oder überhaupt keine Beziehung.
Zeichnen Sie neuronale Netzeoder kurz GNNs, haben sich als leistungsstarke Technik herausgestellt, um sowohl die Konnektivität des Graphen zu nutzen (wie in den älteren Algorithmen). DeepWalk Und Node2Vec) und die Eingabefunktionen an den verschiedenen Knoten und Kanten. GNNs können Vorhersagen für Graphen als Ganzes treffen (Reagiert dieses Molekül auf eine bestimmte Weise?), für einzelne Knoten (Was ist das Thema dieses Dokuments, angesichts seiner Zitate?) oder für potenzielle Kanten (Wird dieses Produkt wahrscheinlich zusammen mit jenem Produkt gekauft?). Abgesehen davon, dass sie Vorhersagen über Graphen treffen, sind GNNs ein leistungsfähiges Werkzeug, um die Kluft zu typischeren Anwendungsfällen neuronaler Netzwerke zu überbrücken. Sie kodieren die diskret, relational Informationen in einem kontinuierlich so dass es auf natürliche Weise in ein anderes Deep-Studying-System integriert werden kann.
Wir freuen uns, die Veröffentlichung von bekannt zu geben TensorFlow GNN 1.0 (TF-GNN), eine produktionserprobte Bibliothek zum Aufbau von GNNs in großem Maßstab. Es unterstützt sowohl die Modellierung und das Coaching in TensorFlow als auch die Extraktion von Eingabediagrammen aus riesigen Datenspeichern. TF-GNN wurde von Grund auf für heterogene Graphen entwickelt, bei denen Objekttypen und Beziehungen durch unterschiedliche Sätze von Knoten und Kanten dargestellt werden. Objekte der realen Welt und ihre Beziehungen kommen in unterschiedlichen Typen vor, und der heterogene Fokus von TF-GNN macht es natürlich, sie darzustellen.
In TensorFlow werden solche Diagramme durch Objekte des Typs dargestellt tfgnn.GraphTensor
. Dies ist ein zusammengesetzter Tensortyp (eine Sammlung von Tensoren in einer Python-Klasse), der als akzeptiert wird Bürger erster Klasse In tf.knowledge.Dataset
, tf.operate
usw. Es speichert sowohl die Diagrammstruktur als auch ihre an Knoten, Kanten und das Diagramm als Ganzes gebundenen Merkmale. Trainierbare Transformationen von GraphTensors können auf hoher Ebene als Layer-Objekte definiert werden Keras-APIoder direkt über die tfgnn.GraphTensor
Primitive.
GNNs: Vorhersagen für ein Objekt im Kontext treffen
Schauen wir uns zur Veranschaulichung eine typische Anwendung von TF-GNN an: die Vorhersage einer Eigenschaft eines bestimmten Knotentyps in einem Diagramm, das durch Querverweise auf Tabellen einer riesigen Datenbank definiert wird. Zum Beispiel eine Zitierdatenbank für arXiv-Aufsätze im Bereich Informatik (CS) mit Eins-zu-vielen-Zitaten und Viele-zu-eins-Zitatbeziehungen, in der wir den Themenbereich jedes Aufsatzes vorhersagen möchten.
Wie die meisten neuronalen Netze wird ein GNN anhand eines Datensatzes mit vielen markierten Beispielen (~ Millionen) trainiert, aber jeder Trainingsschritt besteht nur aus einer viel kleineren Menge an Trainingsbeispielen (z. B. Hunderten). Um auf Millionen zu skalieren, wird das GNN anhand eines Stroms einigermaßen kleiner Untergraphen aus dem zugrunde liegenden Graphen trainiert. Jeder Untergraph enthält genügend Originaldaten, um das GNN-Ergebnis für den markierten Knoten in seiner Mitte zu berechnen und das Modell zu trainieren. Dieser Prozess – typischerweise als Subgraph-Sampling bezeichnet – ist äußerst folgenreich für das GNN-Coaching. Die meisten vorhandenen Instruments führen die Stichprobenerhebung stapelweise durch und erzeugen statische Teilgraphen für das Coaching. TF-GNN bietet Instruments, um dies durch dynamisches und interaktives Sampling zu verbessern.
Abgebildet ist der Prozess des Subgraph-Samplings, bei dem kleine, nachvollziehbare Subgraphen aus einem größeren Graphen abgetastet werden, um Eingabebeispiele für das GNN-Coaching zu erstellen. |
TF-GNN 1.0 führt eine versatile Python-API ein, um dynamisches oder Batch-Subgraph-Sampling in allen relevanten Maßstäben zu konfigurieren: interaktiv in einem Colab-Notizbuch (wie Dieses hier), für die effiziente Stichprobennahme eines kleinen Datensatzes, der im Hauptspeicher eines einzelnen Trainingshosts gespeichert ist oder verteilt wird durch Apache Beam für riesige Datensätze, die in einem Netzwerkdateisystem gespeichert sind (bis zu Hunderten Millionen Knoten und Milliarden Kanten). Einzelheiten finden Sie in unseren Benutzerhandbüchern in Erinnerung Und strahlbasiert Probenahme bzw.
Auf denselben abgetasteten Teilgraphen besteht die Aufgabe des GNN darin, einen verborgenen (oder latenten) Zustand am Wurzelknoten zu berechnen; Der verborgene Zustand aggregiert und kodiert die relevanten Informationen der Nachbarschaft des Wurzelknotens. Ein klassischer Ansatz ist Nachrichtenübertragende neuronale Netze. In jeder Runde der Nachrichtenübermittlung empfangen Knoten Nachrichten von ihren Nachbarn entlang der eingehenden Kanten und aktualisieren ihren eigenen verborgenen Standing von ihnen. Nach N Runden spiegelt der verborgene Zustand des Wurzelknotens die aggregierten Informationen aller Knoten innerhalb N Kanten (siehe Abbildung unten für N = 2). Die Nachrichten und die neuen verborgenen Zustände werden von verborgenen Schichten des neuronalen Netzwerks berechnet. In einem heterogenen Diagramm ist es oft sinnvoll, separat trainierte verborgene Schichten für die verschiedenen Arten von Knoten und Kanten zu verwenden
Der Trainingsaufbau wird abgeschlossen, indem eine Ausgabeschicht über dem verborgenen Zustand des GNN für die gekennzeichneten Knoten platziert und berechnet wird Verlust (um den Vorhersagefehler zu messen) und Aktualisierung der Modellgewichte durch Backpropagation, wie es bei jedem neuronalen Netzwerktraining üblich ist.
Neben dem überwachten Coaching (d. h. der Minimierung eines durch Labels definierten Verlusts) können GNNs auch unüberwacht (d. h. ohne Labels) trainiert werden. Dies ermöglicht uns die Berechnung eines kontinuierlich Vertretung (oder Einbettung) des diskret Diagrammstruktur von Knoten und ihren Merkmalen. Diese Darstellungen werden dann typischerweise in anderen ML-Systemen verwendet. Auf diese Weise können die diskreten, relationalen Informationen, die von einem Diagramm codiert werden, in typischere Anwendungsfälle neuronaler Netzwerke einbezogen werden. TF-GNN unterstützt eine feinkörnige Spezifikation unbeaufsichtigter Ziele für heterogene Graphen.
Aufbau von GNN-Architekturen
Die TF-GNN-Bibliothek unterstützt den Aufbau und das Coaching von GNNs auf verschiedenen Abstraktionsebenen.
Auf der höchsten Ebene können Benutzer jedes der vordefinierten Modelle verwenden, die in der Bibliothek enthalten sind und in Keras-Ebenen ausgedrückt werden. Neben einer kleinen Sammlung von Modellen aus der Forschungsliteratur verfügt TF-GNN über eine hochgradig konfigurierbare Modellvorlage, die eine kuratierte Auswahl an Modellierungsoptionen bietet, die unserer Erfahrung nach eine solide Grundlage für viele unserer internen Probleme bieten. Die Vorlagen implementieren GNN-Ebenen; Benutzer müssen lediglich die Keras-Ebenen initialisieren.
Auf der untersten Ebene können Benutzer ein GNN-Modell von Grund auf neu schreiben, und zwar in Type von Grundelementen zum Weiterleiten von Daten im Diagramm, z. B. das Senden von Daten von einem Knoten an alle ausgehenden Kanten oder das Zusammenfassen von Daten in einem Knoten von allen eingehenden Kanten (z. B. Berechnen der Summe der eingehenden Nachrichten). Das Diagrammdatenmodell von TF-GNN behandelt Knoten, Kanten und ganze Eingabediagramme gleich, wenn es um Options oder verborgene Zustände geht, wodurch es einfach ist, nicht nur knotenzentrierte Modelle wie das oben diskutierte MPNN auszudrücken, sondern auch allgemeinere Formen von GraphNets. Dies kann, muss aber nicht, mit Keras als Modellierungsframework auf dem Kern von TensorFlow erfolgen. Weitere Einzelheiten und Zwischenebenen der Modellierung finden Sie im TF-GNN Benutzerhandbuch Und Modellsammlung.
Trainingsorchestrierung
Während fortgeschrittene Benutzer die Möglichkeit haben, ein benutzerdefiniertes Modelltraining durchzuführen, ist die TF-GNN-Läufer Bietet außerdem eine prägnante Möglichkeit, das Coaching von Keras-Modellen in den häufigsten Fällen zu orchestrieren. Ein einfacher Aufruf könnte so aussehen:
The Runner bietet gebrauchsfertige Lösungen für ML-Probleme wie verteiltes Coaching und tfgnn.GraphTensor
Polsterung für feste Formen auf Cloud-TPUs. Über das Coaching einer einzelnen Aufgabe hinaus (wie oben gezeigt) unterstützt es das gemeinsame Coaching mehrerer (zwei oder mehr) Aufgaben gleichzeitig. Beispielsweise können unbeaufsichtigte Aufgaben mit überwachten Aufgaben gemischt werden, um eine endgültige kontinuierliche Darstellung (oder Einbettung) mit anwendungsspezifischen induktiven Vorspannungen zu ermöglichen. Aufrufer müssen lediglich das Process-Argument durch eine Zuordnung von Duties ersetzen:
Darüber hinaus enthält der TF-GNN Runner auch eine Implementierung von integrierte Farbverläufe zur Verwendung bei der Modellzuordnung. Die integrierte Gradientenausgabe ist ein GraphTensor mit der gleichen Konnektivität wie der beobachtete GraphTensor, dessen Options jedoch durch Gradientenwerte ersetzt wurden, bei denen größere Werte mehr zur GNN-Vorhersage beitragen als kleinere Werte. Benutzer können Gradientenwerte überprüfen, um zu sehen, welche Options ihr GNN am häufigsten verwendet.
Abschluss
Kurz gesagt, wir hoffen, dass TF-GNN nützlich sein wird, um die Anwendung von GNNs in TensorFlow im großen Maßstab voranzutreiben und weitere Innovationen auf diesem Gebiet voranzutreiben. Wenn Sie neugierig sind und mehr erfahren möchten, probieren Sie bitte unsere aus Colab-Demo Durchsuchen Sie den Relaxation unseres Angebots mit dem beliebten OGBN-MAG-Benchmark (in Ihrem Browser, keine Set up erforderlich). Benutzerhandbücher und Colabsoder werfen Sie einen Blick auf unsere Papier.
Danksagungen
Die TF-GNN-Model 1.0 wurde in Zusammenarbeit mit Google Analysis entwickelt: Sami Abu-El-Haija, Neslihan Bulut, Bahar Fatemi, Johannes Gasteiger, Pedro Gonnet, Jonathan Halcrow, Liangze Jiang, Silvio Lattanzi, Brandon Mayer, Vahab Mirrokni, Bryan Perozzi, Anton Tsitsulin, Dustin Zelle, Google Core ML: Arno Eigenwillig, Oleksandr Ferludin, Parth Kothari, Mihir Paradkar, Jan Pfeifer, Rachael Tamakloe und Google DeepMind: Alvaro Sanchez-Gonzalez und Lisa Wang.