Pengantar Ramah tentang Graph Neural Network
(distill.pub)- Graph Neural Network (GNN) adalah model yang menangani node, edge, konteks global, dan struktur koneksi secara bersamaan, sehingga cocok untuk data yang harus diperlakukan sebagai graf yang sama secara semantik meskipun urutan node berubah
- Selain molekul, jejaring sosial, dan jaringan sitasi, kisi piksel pada gambar serta urutan token teks juga dapat dilihat sebagai graf, tetapi graf sulit diperlakukan seperti input array biasa karena ukuran dan konektivitasnya sangat beragam
- Masalah prediksi GNN terbagi menjadi level seluruh graf, node, dan edge; model dari keluarga yang sama dapat memprediksi label pada level berbeda sambil mempertahankan struktur input
- Operasi intinya adalah message passing, yaitu mengumpulkan dan memperbarui informasi dari node dan edge tetangga; dengan menumpuk beberapa layer, informasi dari tetangga k-hop yang lebih jauh ikut tercermin dalam representasi
- Performa nyata bergantung pada kedalaman layer, dimensi embedding, fungsi agregasi, serta aliran pesan antara representasi node, edge, dan global; menambah parameter atau kedalaman tidak selalu menghasilkan hasil terbaik
Data graf dan konsep dasar GNN
- Graf terdiri dari node, yaitu entitas, dan edge, yaitu relasi antar-node
- Informasi tambahan dapat disimpan masing-masing pada node, edge, dan keseluruhan graf
- Node dapat memuat fitur seperti jenis atom, nilai RGB piksel, atau embedding dokumen
- Edge dapat memuat informasi seperti jenis ikatan atau jenis relasi
- Keseluruhan graf dapat memiliki konteks global
- Edge dapat direpresentasikan sebagai directed edge yang memiliki arah atau undirected edge yang tidak memiliki arah
- GNN harus mentransformasi node, edge, dan konteks global dengan cara yang dapat dipelajari, sambil tetap memperlakukan struktur graf yang sama dengan makna yang sama meskipun urutan node berubah
Data yang dapat direpresentasikan sebagai graf
- Gambar umumnya direpresentasikan sebagai array seperti 244×244×3, tetapi juga dapat dilihat sebagai graf reguler dengan setiap piksel sebagai node dan piksel yang berdekatan dihubungkan oleh edge
- Piksel yang bukan berada di batas memiliki tepat 8 tetangga
- Setiap node menyimpan vektor 3 dimensi yang merepresentasikan nilai RGB
- Teks dapat dilihat sebagai graf berarah dengan karakter, kata, atau token sebagai node dan edge yang mengarah ke token berikutnya
- Ini terkait dengan representasi urutan token pada RNN
- Transformer dapat dilihat sebagai graf terhubung penuh yang mempelajari relasi antar-token
- Gambar dan teks memiliki struktur yang sangat reguler sehingga representasi grafnya bisa bersifat redundan
- Matriks ketetanggaan gambar memiliki struktur seperti pita karena koneksi kisi
- Matriks ketetanggaan teks mendekati struktur diagonal karena tiap kata hanya terhubung dengan kata sebelum dan sesudahnya
- Molekul mudah direpresentasikan sebagai graf dengan atom sebagai node dan ikatan kovalen sebagai edge
- Jarak berbeda bergantung pada pasangan atom dan jenis ikatan seperti ikatan tunggal atau ikatan rangkap
- Jejaring sosial memodelkan orang, institusi, atau organisasi sebagai node, dan relasi sebagai edge
- Jaringan sitasi merepresentasikan makalah sebagai node, dan relasi ketika satu makalah mengutip makalah lain sebagai edge berarah
- Setiap node makalah dapat ditambahkan informasi seperti embedding kata dari abstrak
- Objek adegan dalam computer vision, model machine learning, kode pemrograman, dan persamaan matematika juga dapat direpresentasikan sebagai graf dengan variabel atau objek sebagai node, serta operasi atau relasi sebagai edge
Tiga level masalah prediksi graf
- Graph-level task memprediksi satu atribut untuk keseluruhan graf
- Contohnya adalah memprediksi bau apa yang dimiliki graf molekul, atau apakah ia akan berikatan dengan reseptor terkait penyakit
- Ini memberi satu label pada keseluruhan input, seperti klasifikasi gambar atau analisis sentimen kalimat
- Node-level task memprediksi atribut atau peran setiap node dalam graf
- Dataset Zach’s karate club adalah masalah mengklasifikasikan node individu berdasarkan akan loyal ke klub mana setelah konflik politik
- Ini mirip dengan memberi label peran setiap piksel dalam segmentasi gambar, atau memprediksi part-of-speech setiap kata dalam kalimat
- Edge-level task memprediksi atribut atau keberadaan edge
- Contohnya adalah masalah memahami adegan gambar dengan objek sebagai node dan memprediksi apakah ada relasi antar-objek
- Semua pasangan node dapat dibuat terhubung penuh terlebih dahulu, lalu edge dihapus berdasarkan nilai prediksi untuk membentuk graf sparse
- Generasi graf dan penjelasan prediksi graf juga termasuk area riset terkait
Tantangan saat menjadikan graf sebagai input neural network
- Model machine learning umum disesuaikan untuk input array berbentuk persegi panjang atau kisi, sehingga sulit memasukkan struktur koneksi graf apa adanya
- Graf memiliki hingga empat jenis informasi
- Node
- Edge
- Konteks global
- Konektivitas
- Node, edge, dan konteks global dapat dijadikan matriks fitur, tetapi representasi konektivitas lebih rumit
- Matriks ketetanggaan mudah dijadikan tensor, tetapi memiliki keterbatasan
- Jumlah node dalam graf bisa mencapai jutaan
- Jumlah edge per node dapat sangat bervariasi
- Matriks ketetanggaan menjadi sangat sparse sehingga tidak efisien ruang
- Konektivitas graf yang sama dapat direpresentasikan oleh beberapa matriks ketetanggaan, sehingga tidak ada jaminan neural network selalu menghasilkan hasil yang sama
- Adjacency list lebih cocok untuk graf sparse
- Informasi bahwa edge
e_kmenghubungkan noden_idann_jdisimpan sebagai tuple(i, j) - Alih-alih
O(n_nodes^2)pada matriks ketetanggaan, representasiO(n_edges)yang proporsional terhadap jumlah edge dapat digunakan
- Informasi bahwa edge
- Dalam representasi tensor nyata, nilai node, edge, dan global bukan skalar melainkan vektor
- Tensor node berbentuk
[n_nodes, node_dim], bukan[n_nodes]
- Tensor node berbentuk
Layer GNN dan pooling
- GNN paling sederhana belum memakai konektivitas graf, melainkan menerapkan MLP terpisah pada node, edge, dan konteks global untuk mempelajari embedding baru
- Setiap vektor node diperbarui dengan cara yang sama
- Setiap vektor edge juga diperbarui
- Vektor konteks global juga diperbarui menjadi satu embedding
- GNN tidak mengubah konektivitas graf input
- Graf output mempertahankan adjacency list yang sama dan jumlah vektor fitur yang sama
- Yang berubah adalah embedding node, edge, dan konteks global
- Pooling digunakan untuk prediksi
- Embedding dari target yang akan dikumpulkan di-gather dan digabungkan menjadi matriks
- Embedding yang terkumpul biasanya di-aggregate dengan operasi seperti sum
- Pada prediksi node, jika informasi node sudah tersedia, classifier linear dapat diterapkan pada setiap embedding node
- Jika informasi yang diperlukan untuk prediksi node hanya ada pada edge, informasi edge harus di-pooling ke node untuk diteruskan
- Jika informasi yang diperlukan untuk prediksi edge hanya ada pada node, informasi node dikumpulkan ke sisi edge dan digunakan untuk prediksi
- Pada prediksi keseluruhan graf, semua informasi node atau edge dikumpulkan menjadi representasi global
- Perannya mirip dengan Global Average Pooling pada CNN
- Contohnya adalah prediksi apakah molekul beracun atau memiliki bau tertentu
Memanfaatkan struktur koneksi dengan message passing
- GNN sederhana tidak memakai konektivitas graf di dalam layer, dan hanya menggunakan konektivitas pada pooling tepat sebelum prediksi
- GNN yang lebih kuat melakukan message passing di dalam layer untuk mencerminkan struktur koneksi dalam pembaruan embedding
- Message passing bekerja dalam tiga tahap
- Setiap node meng-gather embedding atau pesan dari node tetangga
- Pesan di-aggregate dengan fungsi agregasi seperti sum
- Pesan yang terkumpul dilewatkan ke fungsi pembaruan yang dapat dipelajari
- Message passing mirip dengan convolution standar
- Pada gambar, piksel mengumpulkan informasi dari jumlah piksel tetangga yang tetap
- Pada graf, node mengumpulkan informasi dari jumlah node tetangga yang bervariasi
- Dengan menumpuk beberapa layer GNN, informasi dari node yang lebih jauh ikut tercermin
- Setelah 3 layer, sebuah node dapat memuat informasi hingga node yang berjarak 3 langkah
- Message passing dapat dilakukan tidak hanya antar-node, tetapi juga antar-edge, serta antara node dan edge
Representasi edge dan representasi global
- Dataset tidak selalu memiliki semua informasi node, edge, dan konteks global
- Ketika hanya ada informasi edge tetapi prediksi node diperlukan, informasi edge dapat di-pooling dan diteruskan ke node
- Informasi node dan edge bisa memiliki ukuran atau bentuk berbeda, sehingga cara menggabungkannya menjadi pilihan desain
- Pemetaan linear dapat dipelajari dari ruang edge ke ruang node, atau sebaliknya
- Dua representasi dapat dikonkatenasi lalu dimasukkan ke fungsi pembaruan
- Atribut graf mana yang diperbarui dan dalam urutan apa merupakan bagian dari desain GNN
- Node dapat diperbarui terlebih dahulu lalu edge diperbarui
- Edge dapat diperbarui terlebih dahulu lalu node diperbarui
- Pendekatan weave yang menggabungkan representasi node-to-node, edge-to-edge, node-to-edge, dan edge-to-node juga dimungkinkan
- Node yang berjauhan mungkin sulit bertukar informasi secara efisien meskipun message passing dilakukan berkali-kali
- Pada k layer, informasi hanya menyebar maksimal k-step
- Representasi global
Udapat berperan seperti master node atau vektor konteks yang terhubung ke semua node dan edge- Ia berfungsi sebagai jembatan transfer informasi antara node dan edge yang berjauhan
- Ia dapat membuat representasi keseluruhan graf yang lebih kaya
- Embedding node baru dapat dikondisikan dengan mengonkatenasi node tetangga, edge yang terhubung, informasi global, dan sebagainya
- Pendekatan seperti menambahkan setelah pemetaan linear atau menerapkan feature-wise modulation juga dimungkinkan
GNN Playground dan contoh prediksi bau molekul
- GNN Playground menangani masalah prediksi graph-level pada graf molekul kecil
- Datanya adalah Leffingwell Odor Dataset, yang mencakup molekul dan label persepsi bau
- Eksperimen mengklasifikasikan apakah graf molekul memiliki bau “pungent” sebagai satu label biner
- pungent berarti bau yang kuat dan menonjol
- Contohnya adalah bawang putih dan mustard yang dapat mengandung allyl alcohol, serta piperitone yang digunakan dalam permen rasa peppermint
- Molekul direpresentasikan dengan atom sebagai node dan ikatan sebagai edge
- Node memiliki identitas atom Carbon, Nitrogen, Oxygen, dan Fluorine dalam one-hot encoding
- Edge memiliki tipe ikatan single, double, triple, dan aromatic dalam one-hot encoding
- Template model berstruktur layer GNN berurutan yang diikuti model linear dengan aktivasi sigmoid
- Pilihan desain dikendalikan oleh empat sumbu
- Jumlah layer GNN, yaitu kedalaman
- Dimensi embedding tiap atribut
- Fungsi agregasi pooling: max, mean, sum
- Atribut mana di antara representasi node, edge, dan global yang diperbarui dan melakukan message passing
- Playground yang berjalan di browser beroperasi di atas tfjs
- Graph embedding berdimensi tinggi direduksi ke 2D dengan PCA untuk memvisualisasikan representasi di sekitar decision boundary
Tren desain GNN yang terlihat dalam eksperimen
- Performa bergantung pada data, cara konstruksi graf, dan cara fitur dibuat
- Jumlah parameter yang lebih besar berkorelasi dengan performa, tetapi GNN juga dapat menemukan model berperforma tinggi dengan parameter sedikit
- Model berperforma tinggi ditemukan bahkan pada sekitar 3k parameter
- Dimensi embedding yang lebih tinggi cenderung meningkatkan performa rata-rata dan performa batas bawah, tetapi model dengan performa terbaik juga muncul pada dimensi kecil
- Semakin banyak layer, performa rata-rata cenderung naik, tetapi model dengan performa terbaik muncul pada 2 layer, bukan 3 atau 4 layer
- Pada 4 layer, batas bawah performa menurun
- Layer yang lebih banyak memang menyiarkan informasi lebih jauh, tetapi ada risiko representasi node terdilusi oleh banyak pengulangan
- Untuk fungsi agregasi, sum tampak sedikit lebih baik pada performa rata-rata, tetapi max atau mean juga dapat membentuk model yang sama baiknya
- Semakin banyak penyampaian pesan antara atribut node, edge, dan global, performa rata-rata model cenderung membaik
- Karena tugas ini berpusat pada representasi global, mempelajari atribut global secara eksplisit cenderung meningkatkan performa
- Representasi node tampak lebih berguna daripada representasi edge, karena lebih banyak informasi masuk ke atribut node
Graf yang lebih kompleks dan pembelajaran batch
- Framework message passing dapat diterapkan juga pada struktur graf yang lebih kompleks
- Pada Multigraph, pasangan node yang sama dapat berbagi beberapa jenis edge
- Dalam jejaring sosial, tipe relasi seperti acquaintance, friend, dan family dapat dijadikan tipe edge
- Tahap message passing yang berbeda dapat dibuat untuk tiap tipe edge
- Pada nested graph, satu node dapat kembali merepresentasikan graf
- Dalam jaringan molekul, node dapat berupa molekul, dan edge dapat merepresentasikan reaksi yang mengubah satu molekul menjadi molekul lain
- GNN level molekul dan GNN level jaringan reaksi dapat dilatih secara bergantian
- Pada hypergraph, edge dapat terhubung ke beberapa node, bukan dua node
- Komunitas node dapat diidentifikasi dan hyper-edge yang terhubung ke seluruh komunitas dapat dibuat
- Karena jumlah node dan edge dalam graf tidak tetap, pembelajaran minibatch berukuran tetap seperti biasanya sulit dilakukan
- Inti pembelajaran batch graf adalah membuat subgraf yang mempertahankan sifat penting dari graf besar
- Pada citation network, sampling subgraf bisa terasa alami
- Pada molekul, subgraf berarti molekul baru yang lebih kecil, sehingga bisa menjadi manipulasi yang kuat
- Sampling graf sangat penting ketika graf besar tidak muat di memori
- Struktur dan strategi pembelajaran seperti Cluster-GCN dan GraphSaint terkait dengan hal ini
Bias induktif yang sesuai untuk graf
- Model dapat menunjukkan performa prediksi lebih baik, waktu pelatihan lebih singkat, parameter lebih sedikit, dan generalisasi lebih baik ketika dirancang untuk memanfaatkan simetri dan keteraturan data
- Model gambar menggunakan convolution yang translation invariant untuk memanfaatkan sifat bahwa objek yang sama tetap objek yang sama di mana pun posisinya dalam gambar
- Pada teks, urutan token penting, sehingga RNN memproses secara berurutan, dan model keluarga Transformer dapat memperhatikan bagian lain dari kalimat
- Pada graf, relasi antara elemen edge, node, dan global penting, sehingga diperlukan bias induktif relasional
- Struktur ketetanggaan yang merupakan relasi eksplisit harus dipertahankan
- Invariansi permutasi, yaitu simetri graf, harus dipertahankan
- Model harus bekerja terlepas dari urutan node atau edge, dan mampu menangani input dengan jumlah bervariasi
Pemilihan operasi agregasi
- Melakukan pooling terhadap informasi node dan edge tetangga adalah tahap inti dalam arsitektur GNN yang kuat
- Karena setiap node memiliki jumlah tetangga berbeda dan harus tidak bergantung pada urutan input, diperlukan fungsi agregasi yang terdiferensiasi dan permutation invariant
- Kandidat representatif adalah sum, mean, max
- Semuanya menerima input dengan jumlah bervariasi dan menghasilkan output yang tidak bergantung pada urutan input
- Tidak ada operasi tertentu yang selalu terbaik
- mean berguna ketika jumlah tetangga sangat bervariasi atau ketika diperlukan sudut pandang yang ternormalisasi atas fitur tetangga lokal
- max berguna ketika ingin menonjolkan satu fitur yang mencolok dalam tetangga lokal
- sum menunjukkan distribusi fitur lokal dan, karena tidak dinormalisasi, juga dapat menonjolkan outlier
- Dalam praktiknya, sum sering digunakan
- Principal Neighborhood Aggregation mengonkatenasi beberapa operasi agregasi dan menambahkan scaling function yang bervariasi menurut derajat koneksi
- Operasi agregasi khusus domain seperti Tetrahedral Chirality juga dapat dirancang
GCN, perkalian matriks, dan penelusuran graf
- GCN atau MPNN dengan k layer dan lookup tetangga 1-degree dapat dilihat sebagai neural network yang bekerja di atas embedding subgraf berukuran k
- Representasi pembaruan sebuah node secara terbatas mencerminkan informasi tetangga dalam k-distance
- Representasi edge juga dapat diinterpretasikan dengan cara yang sama
- Perkalian matriks ketetanggaan
Adan matriks fitur nodeX, yaituAX, mengimplementasikan message passing sederhana yang memakai agregasi sum- Kasus ketika
A_i,kbernilai positif adalah saat ada edge antaranode_idannode_k - Perkalian matriks dapat dilihat sebagai operasi mengumpulkan nilai dimensi fitur tertentu dari node tetangga
- Kasus ketika
- Pada
Ayang sparse, tidak perlu menjumlahkan semua suku bernilai 0, sehingga adjacency list lebih efisien - Implementasi berbasis adjacency list juga menguntungkan untuk memakai operasi agregasi selain sum
- Pangkat matriks ketetanggaan
A^Kterkait dengan walk sepanjang KA^2_ijmenghitung jumlah walk panjang 2 darinode_ikenode_j- Intuisi ini berlanjut dari
A^3hinggaA^k
Attention, explainability, dan model generatif
- Graph Attention Networks mengumpulkan informasi tetangga bukan dengan penjumlahan sederhana, melainkan sebagai weighted sum
- Fungsi skor
f(node_i, node_j)menghitung relevansi antara node pusat dan node tetangga - Bobot dinormalisasi dengan softmax sehingga tetangga yang penting bagi tugas dapat diberi porsi lebih besar
- Perhitungan skor per pasangan mempertahankan invariansi permutasi
- Fungsi skor
- Transformer dapat dilihat sebagai GNN dengan mekanisme attention
- Elemen seperti token karakter dimodelkan sebagai node pada graf terhubung penuh
- Attention menghitung embedding dan bobot edge untuk setiap pasangan node
- Perbedaannya adalah GNN mengasumsikan pola koneksi sparse, sedangkan Transformer memodelkan semua koneksi
- Explainability GNN dapat penting untuk keandalan model, debugging, dan penemuan ilmiah
- Pada molekul, keberadaan subgraf tertentu bisa menjadi penting
- Pada jaringan sitasi, tingkat keterhubungan makalah bisa menjadi penting
- GNNExplainer mendekatinya dengan mengekstraksi subgraf relevan yang penting bagi tugas
- Teknik attribution memberi peringkat kepentingan pada bagian-bagian graf
- Model generatif graf mengambil sampel graf baru dari distribusi yang dipelajari atau melengkapi graf yang diberi titik awal
- Ada aplikasi untuk merancang graf molekul baru dengan sifat tertentu sebagai kandidat obat
- Tantangan utama generasi graf adalah memodelkan topologi graf
- Topologi memiliki ukuran yang sangat bervariasi dan dapat memiliki
N_nodes^2suku - Matriks ketetanggaan dapat dimodelkan langsung dengan autoencoder seperti gambar
- Beban
N_nodes^2dapat dikurangi dengan hanya memprediksi edge yang ada dan sebagian edge yang tidak ada - Cara lain adalah membuat graf secara sekuensial dengan mengulang tindakan diskret seperti menambah atau menghapus node dan edge
- Topologi memiliki ukuran yang sangat bervariasi dan dapat memiliki
Ringkasan
- Graf adalah tipe data struktural yang memiliki kekuatan dan batasan berbeda dari gambar dan teks
- GNN menangani struktur koneksi dan invariansi permutasi sambil memperbarui node, edge, dan konteks global graf
- Pooling, message passing, representasi edge, representasi global, dan pemilihan fungsi agregasi adalah elemen inti dalam desain GNN
- Performa nyata sangat dipengaruhi bukan hanya oleh kedalaman, dimensi, dan jumlah parameter, tetapi juga oleh atribut graf mana yang saling bertukar pesan dan bagaimana graf dikonstruksi
1 komentar
Komentar di Hacker News
Ada banyak makalah yang menggunakan GNN untuk simulasi fisika (misalnya dinamika fluida komputasional). Ini karena mesh tak terstruktur yang mendiskretkan domain masalah sangat cocok dengan struktur graf
Dalam praktiknya, tiap mesh/graf sering kali hanya dipakai sekali untuk menyelesaikan satu masalah tertentu, jadi melatih GNN untuk graf tertentu tidak terlalu bermakna. Namun, alasan sebagian besar makalah tetap melakukan itu tampaknya karena kita belum menemukan cara membuat GNN yang bisa beradaptasi dengan baik terhadap berbagai mesh/graf dan parameter simulasi yang berbeda. Saya penasaran apakah akan segera ada terobosan yang memungkinkan generalisasi seperti ini
Untuk kinerja optimal, mungkin diperlukan tokenizer yang berbeda
Kualitas karyanya sangat tinggi, jadi sayang sekali distill.pub tidak menemukan jalan yang berkelanjutan [1]
Salah satu alasan GNN kurang banyak dibicarakan mungkin adalah kurangnya dataset [2]. Ini juga merupakan masalah yang memengaruhi bidang semantic web
[1] https://distill.pub/2021/distill-hiatus/
[2] https://huggingface.co/datasets?task_categories=task_categor...
Jika bidangnya populer, ada banyak orang yang terdorong membuat video pendek dan menarik, sehingga kualitasnya sering bagus bahkan pada tingkat matematika yang cukup abstrak. Materi visual benar-benar membantu memberi intuisi tentang konsep abstrak, dan 3Blue1Brown sudah membuktikannya. Untuk GNN pun, menonton beberapa video bagus yang masing-masing kurang dari 10 menit saja sudah bisa menjadi pijakan untuk masuk ke literatur
Secara pribadi, GNN cukup mengecewakan. Saya beberapa kali mencoba menerapkannya dalam riset, tetapi tidak pernah berhasil dengan baik
Untuk waktu yang lama GNN diperkenalkan sebagai generalisasi CNN, tetapi CNN lebih kuat karena “bobot ketetanggaan” lebih bermakna. CNN mempelajari hubungan posisi relatif. GNN biasanya bergantung pada pooling seperti yang dijelaskan di sini. CNN bisa menghasilkan gambar sebagai output, tetapi menghasilkan graf dengan GNN tidak mudah. Topologi tetap harus ditentukan sebelumnya, dan kadang bahkan harus ditentukan selama pelatihan. Pukulan terakhirnya adalah performa. GNN luar biasa lambat dibandingkan CNN
Belakangan ini, karena alasan-alasan tersebut, rasanya attention banyak menggantikan GNN. Kita bisa membuat GNN yang memakai attention alih-alih pooling, tetapi maknanya tidak terlalu besar. Biasanya graf hanya ditelusuri untuk membuat matriks mask, lalu sisanya memakai transformer biasa. Jika sejak awal sudah ada suatu metrik jarak, sering kali adjacency graf bahkan tidak diperlukan
Di suatu tempat, bagi seseorang, GNN pasti sangat berguna, tetapi dari pengalaman saya, ini lebih mirip palu yang sedang mencari paku
Di hampir semua kasus lain, kita bisa memanfaatkan struktur tambahan agar lebih efisien. Jika urutan bisa didefinisikan, gunakan model sekuensial; jika ada struktur Euclidean/Riemannian, gunakan CNN atau model yang sadar manifold; jika tidak perlu state global, gunakan jaringan point cloud; jika ada hierarki eksplisit, gunakan versi U-Net untuk modalitas tersebut, dan seterusnya
Alasan GNN menarik adalah karena 1) ia mengenkode konsep relasi itu sendiri dan 2) hubungannya bagus dengan persamaan diferensial yang didiskretkan secara sepenuhnya umum. Sebagai orang yang berkecimpung di sistem kompleks/dinamis, ini menarik, tetapi jika bisa dispesialisasi, tetap ada cara-cara yang lebih mudah
Karena alasan-alasan yang disebutkan, menurut saya bukan kebetulan GNN terutama populer di ranah seperti rekomendasi, di mana model domainnya sendiri terasa seperti graf. Di ranah semacam itu, lompatan menuju topologi yang berguna tidak terlalu besar
Yang secara pribadi lebih membuat saya frustrasi adalah, dalam banyak domain berbentuk graf seperti ini, datanya berupa data mesin/manusia berbasis perilaku seperti log, dengan sangat banyak dimensi kategorikal. Bagian graf memang membantu, tetapi menangkap dimensi kategorikal dengan baik juga sama pentingnya, dan untuk melakukannya dengan baik kita sering kali keluar ke metode di luar model seperti random forest. Lebih mudah memulai dari sana, sementara bagian GNN menambah banyak pekerjaan hanya demi “peningkatan yang sedikit lebih baik”
Tentu saja, jika ini adalah bisnis inti dan jutaan dolar dipertaruhkan, itu bisa dibenarkan. Namun tetap saja sulit bagi sebagian besar tim operasional. Dalam praktiknya, dengan para pengguna pygraphistry, kami sering hanya memakai xgboost + umap lalu lanjut. Membuat RGCN berjalan dengan baik saja sudah banyak pekerjaan
GNN tampaknya bekerja di atas topologi tetap. Apa yang harus dilakukan jika ingin mengaproksimasi suatu transformasi terhadap topologi graf? Misalnya mempelajari layout graf, atau mengubah abstract syntax tree program menjadi graf aliran data
Inti dari GNN adalah bahwa ia mengondisikan konsep “tetangga” secara eksplisit melalui graf yang menentukan topologi, sehingga dapat melakukan generalisasi ke topologi arbitrer. Tata letak graf pernah dicoba di sini dan https://github.com/limbo018/DREAMPlace mendapat banyak perhatian, tetapi belakangan juga ada kontroversi terkait https://www.semanticscholar.org/paper/The-False-Dawn%3A-Reev...
Transformasi graf juga sedang diteliti https://arxiv.org/abs/2012.01470. Namun ini masalah yang sulit karena secara implisit harus menyelesaikan masalah pencocokan graf
Semoga distill kembali lagi
Sangat disayangkan distill.pub tidak menerima kiriman baru
Saya penasaran perangkat lunak visualisasi interaktif itu apa. Apakah D3.js?
Saya merasa terlalu bodoh. Di halaman itu ada contoh dengan 4 node (a,b,c,d), dan ditunjukkan bahwa total kombinasi yang mungkin adalah 24
Saya penasaran apa rumus umum untuk menghitungnya jika jumlah node diberikan, dan jika edge juga harus dipertimbangkan. Sepertinya tidak dijelaskan di tulisannya, dan saya menduga mungkin itu faktorial
Jika ingin lebih terbiasa, situs ini tampaknya memberikan gambaran umum yang cukup bagus: https://www.geeksforgeeks.org/mathematics-combinatorics-basi...
Karena setiap edge bisa ada atau tidak ada, mungkin koefisien binomialnya juga bisa dikalikan 2