Beschreibung
Dieses GitHub-Repository beherbergt die offizielle Implementierung des Simplifying Graph Convolutional Networks (SGC)-Modells, wie im ICML2019-Paper detailliert beschrieben. SGC ist eine Weiterentwicklung von Graph Convolutional Networks (GCNs), die die Architektur durch Entfernen von Nichtlinearitäten und Kollabieren von Gewichtsmatrizen vereinfacht. Diese Transformation führt zu einem linearen Modell, das eine wettbewerbsfähige Leistung beibehält und gleichzeitig die Trainingszeit und den Rechenaufwand drastisch reduziert.
Die Implementierung unterstützt verschiedene Graph-Datensätze, darunter Zitationsnetzwerke wie Cora, Citeseer und Pubmed sowie soziale Netzwerke wie Reddit. Für Zitationsnetzwerke erzielt das Modell eine bemerkenswerte Genauigkeit, beispielsweise 81,0 % auf Cora, 71,9 % auf Citeseer und 78,9 % auf Pubmed, mit Trainingszeiten von nur 0,13 Sekunden auf einer GTX 1080 Ti. Für den Reddit-Datensatz erzielt es einen F1-Score von 94,9 % in 2,7 Sekunden.
Das Repository enthält Code für die Datenvorverarbeitung, Modelldefinition, Training und Evaluierung. Es bietet auch Anleitungen zur Hyperparameter-Optimierung, insbesondere für Weight Decay, unter Verwendung von Tools wie hyperopt. Praktische Ratschläge werden gegeben, wie z. B. die Normalisierung von Merkmalen auf einen Mittelwert von Null und eine Standardabweichung von eins, um die Konvergenz zu beschleunigen, eine Technik, die für SGC und andere lineare Modelle vorteilhaft ist.
Über die Kernimplementierung hinaus verweist das Repository auf zusätzliche Ressourcen und Referenzimplementierungen in beliebten Bibliotheken wie Deep Graph Library (DGL), PyTorch Geometric, Spektral, StellarGraph und tf_geometric. Es enthält auch einen Branch in Arbeit für Ablationsstudien und Code für nachgelagerte Aufgaben, beginnend mit der Textklassifizierung. Dieses Projekt ist eine wertvolle Ressource für Forscher und Praktiker, die effiziente und effektive Graph-Neuronale-Netzwerk-Modelle nutzen möchten.
Vereinfachung von Graph Convolutional Networks im Überblick
Offizielle Implementierung des Simplifying Graph Convolutional Networks (SGC)-Papers.
Optimierte Graph Convolutional Network (GCN)-Architektur.
Entfernt Nichtlinearitäten und kollabiert Gewichtsmatrizen für ein lineares Modell.
Deutlich reduzierte Trainingszeit im Vergleich zu herkömmlichen GCNs.
Erzielt wettbewerbsfähige Leistung auf Benchmark-Datensätzen.
Unterstützt Zitationsnetzwerke (Cora, Citeseer, Pubmed) und soziale Netzwerke (Reddit).
Enthält Code für Datenvorverarbeitung, Modelltraining und Evaluierung.
Bietet Anleitungen zur Hyperparameter-Optimierung.
Bietet praktische Ratschläge zur Merkmalsnormalisierung für beschleunigte Konvergenz.
Codebasis für nachgelagerte Aufgaben, einschließlich Textklassifizierung.
Referenzen zu Implementierungen in beliebten GNN-Bibliotheken.
Erste Schritte mit Vereinfachung von Graph Convolutional Networks
Modellzugriff: Klonen Sie das GitHub-Repository.
Umgebung einrichten: Installieren Sie Abhängigkeiten mit `pip install -r requirements.txt`.
Daten vorbereiten: Laden Sie den Reddit-Datensatz herunter und legen Sie ihn im Verzeichnis `data/` ab.
Training für Zitationsnetzwerke: Führen Sie `python citation.py --dataset [dataset_name] --tuned` aus.
Training für Reddit: Führen Sie `python reddit.py --inductive --test` aus.
Integrieren: Passen Sie die bereitgestellten Skripte für benutzerdefinierte Datensätze oder nachgelagerte Aufgaben an.
Vereinfachung von Graph Convolutional Networks's Anwendungsfälle
- Knotenklassifizierung
- Textklassifizierung
- Graph-Merkmalslernen
- Effizientes GNN-Training
- Benchmarking von GNNs







