Deskripsi
GraphSAINT adalah kerangka kerja umum dan fleksibel yang dirancang untuk melatih Jaringan Saraf Graf (GNN) dalam pada graf skala besar. Ini membedakan dirinya melalui metodologi pelatihan minibatch baru yang menggunakan pengambilan sampel graf, sebuah penyimpangan dari pendekatan pengambilan sampel lapisan konvensional. Teknik pengambilan sampel graf ini memungkinkan pembangunan lapisan GNN lengkap pada subgraph sampel kecil, daripada pengambilan sampel di dalam lapisan. Pergeseran fundamental dalam perspektif ini menghasilkan beberapa keuntungan utama.
Baca Selengkapnya
Akurasi ditingkatkan melalui teknik normalisasi yang sederhana namun efektif yang mengurangi bias yang diperkenalkan oleh pengambilan sampel graf. Selain itu, GraphSAINT mengusulkan sampler graf ringan yang mempertahankan tetangga penting berdasarkan karakteristik topologis, mengatasi kehilangan informasi yang melekat dalam proses pengambilan sampel apa pun. Ini juga dapat dilihat sebagai bentuk augmentasi data atau regularisasi pelatihan.
Efisiensi ditingkatkan secara signifikan dengan menyelesaikan masalah 'ledakan tetangga', tantangan umum dalam metode pengambilan sampel lapisan. Dengan membangun lapisan GNN yang lengkap dan tidak disampel pada subgraph, jumlah tetangga tetap konstan terlepas dari kedalaman jaringan, mengurangi biaya komputasi per minibatch dari eksponensial menjadi linier sehubungan dengan kedalaman GNN. Ini juga secara dramatis mengurangi overhead komunikasi dalam pengaturan terdistribusi.
Fleksibilitas adalah prinsip inti GraphSAINT. Propagasi lapisan pada subgraph minibatch sangat mirip dengan yang ada pada graf lengkap, memungkinkan pelatihan arsitektur GNN yang paling dirancang untuk graf lengkap secara mulus. Ini kontras dengan beberapa algoritma pengambilan sampel lapisan yang hanya mendukung arsitektur GNN terbatas. Skalabilitas dicapai di seluruh ukuran graf, ukuran model, dan sumber daya paralel. Ukuran subgraph tidak perlu tumbuh secara proporsional dengan ukuran graf, memungkinkan graf besar untuk muat dalam memori GPU. Biaya pelatihan diskalakan secara linier dengan lebar dan kedalaman GNN, dan pengambilan sampel graf sangat dapat diparalelkan.
Repositori menyediakan implementasi Python dalam TensorFlow dan PyTorch, bersama dengan implementasi C++ untuk teknik pelatihan paralel. Ini mendukung berbagai arsitektur GNN seperti GraphSAGE, GAT, dan JK-Net, serta beberapa sampler graf termasuk Node, Edge, RW, dan MRW. Kerangka kerja ini dirancang untuk peneliti dan praktisi yang bekerja dengan kumpulan data graf besar yang membutuhkan pelatihan GNN yang efisien dan akurat.
- KategoriPlatform Machine Learning
- Model HargaOpen source
- PenerapanCloud, Di-host sendiri
- PlatformLinux, Windows
Fitur Inti GraphSAINT
Pelatihan minibatch untuk GNN dalam pada graf besar
Metode pembelajaran induktif berbasis pengambilan sampel graf
Pendekatan pelatihan minibatch baru menggunakan pengambilan sampel graf
Menghilangkan bias yang diperkenalkan oleh pengambilan sampel graf melalui normalisasi
Sampler graf ringan untuk mempertahankan tetangga penting
Menyelesaikan masalah 'ledakan tetangga' untuk efisiensi
Skalabel sehubungan dengan ukuran graf, ukuran model, dan sumber daya paralel
Mendukung berbagai arsitektur GNN (GraphSAGE, GAT, JK-Net, GaAN, MixHop)
Mendukung berbagai sampler graf (Node, Edge, RW, MRW, Graf Lengkap)
Tersedia dalam implementasi TensorFlow dan PyTorch
Termasuk implementasi C++ untuk teknik pelatihan paralel
Memfasilitasi kustomisasi untuk dataset dan sampler Anda sendiri
Memulai dengan GraphSAINT
Akses model: Klon repositori GitHub.
Siapkan lingkungan: Instal dependensi termasuk Python, TensorFlow/PyTorch, Cython, dan g++.
Kompilasi sampler: Jalankan `python graphsaint/setup.py build_ext --inplace`.
Siapkan dataset: Format data graf Anda ke dalam `adj_full.npz`, `adj_train.npz`, `role.json`, `class_map.json`, dan `feats.npy`.
Konfigurasi pelatihan: Atur hyperparameter menggunakan file konfigurasi YAML di `./train_config/`.
Jalankan pelatihan: Eksekusi skrip pelatihan menggunakan `python -m graphsaint.<tensorflow/pytorch>_version.train` dengan flag yang sesuai untuk data, konfigurasi, dan penggunaan GPU.
Kasus Penggunaan GraphSAINT
- Pelatihan graf skala besar
- Pembelajaran induktif pada graf
- Pembelajaran representasi graf
- Klasifikasi node
- Prediksi tautan
- Prediksi tingkat graf
- Pengembangan GNN kustom







