Apa itu GNN (neural networks grafik)?

Pengantar tentang GNN

Neural networks grafik (GNN) adalah arsitektur neural networks mendalam yang populer dalam aplikasi praktis maupun penelitian machine learning canggih. Mereka menggunakan model neural networks untuk menunjukkan data tentang entitas dan hubungannya. Mereka berguna untuk penambangan data di dunia nyata, memahami jaringan sosial, grafik pengetahuan, sistem pemberi rekomendasi, dan bioinformatika.

Pengembangan GNN terinspirasi dari algoritma pembelajaran mendalam seperti neural networks konvolusional (CNN) dan recurrent neural networks (RNN), dengan beberapa perbedaan utama. CNN dirancang untuk data yang memiliki struktur seperti grid, seperti piksel gambar. Setiap piksel dapat dihubungkan ke paling banyak delapan piksel lainnya. Sebaliknya, RNN disesuaikan dengan struktur urutan di mana setiap elemen dapat dihubungkan ke paling banyak dua elemen lainnya, seperti rangkaian kata dalam teks. Namun, dalam data berstruktur grafik setiap elemen dapat memiliki satu atau lebih koneksi dan mungkin tidak memiliki konsistensi antara jumlah koneksi untuk elemen tertentu.

Neural networks grafik adalah implementasi dari pembelajaran mendalam geometris1, yang diklasifikasikan ke dalam empat kategori mendasar:

Pembelajaran berbasis grafik yang mempelajari tentang data berbentuk seperti grafik.

Pembelajaran berbasis grid yang mempelajari tentang gambar seperti data dan jenis data lainnya yang dapat digambarkan dengan grid.

Pembelajaran berbasis kelompok yang mempelajari tentang bagaimana informasi berhubungan dengan kelompok induk. Hal ini sangat membantu ketika data diperoleh dari sebuah kelompok seperti bola. Misalnya, data geologi dari berbagai sumber di seluruh Bumi.

Pembelajaran berbasis jala yang mempelajari tentang bagaimana informasi tersebar di jala yang tidak beraturan, seperti menganalisis dan memprediksi elemen dari model 3D suatu objek.

GNN adalah area penelitian kecerdasan buatan aktif tetapi didukung dengan baik oleh pustaka dan toolkit yang dibangun dalam berbagai bahasa seperti Python dan kerangka kerja, termasuk TensorFlow dan PyTorch.

Apa itu grafik?

Satu kumpulan objek dan koneksi di antara mereka dapat dinyatakan sebagai grafik. Peneliti ilmu komputer mengembangkan neural networks untuk beroperasi pada struktur data grafik.

Sebuah grafik merepresentasikan hubungan yang disebut 'tepi' antara kumpulan entitas yang disebut 'node'. Secara matematis, grafik G didefinisikan sebagai tuple dari satu kumpulan node dan verteks V, dan satu kumpulan tepi dan tautan. E: G = (V, E). Setiap tepi adalah sepasang dua verteks dan menunjukkan hubungan di antara mereka.

Untuk mendeskripsikan lebih lanjut setiap node, tepi, atau seluruh grafik, kita dapat menyimpan informasi di setiap bagian grafik ini.

Ilustrasi yang menunjukkan verteks sebuah grafik dan bagaimana mereka dihubungkan oleh bagian tepinya Verteks (terkadang disebut node) dari grafik dihubungkan oleh bagian tepinya

Grafik dapat dijelaskan lebih lanjut dengan menetapkan arah pada setiap tepi. Grafik digambarkan sebagai berarah atau tidak berarah. Grafik tidak berarah menunjukkan hubungan dua arah. Jika Rosa memiliki saudara Juan, maka Juan juga memiliki saudara Rosa. Hubungan antara Rosa dan saudaranya tidak memiliki arah apa pun dan hanya menghubungkan keduanya. Grafik berarah menunjukkan hubungan berarah. Jika Rosa memiliki saudara lebih tua bernama Juan, maka hubungan 'saudara yang lebih tua' hanya berjalan satu arah: dari Juan ke Rosa, Juan tidak memiliki 'saudara yang lebih tua'.

Ilustrasi grafik tidak berarah dan grafik berarah Jenis grafik ditentukan oleh apakah bagian tepinya memiliki arah atau tidak

Cara memvisualisasikan konektivitas suatu grafik adalah melalui matriks kedekatannya. Ini adalah representasi berbasis matriks dari verteks grafik yang dapat merepresentasikan grafik tidak berarah maupun berarah.

Grafik berarah dan matriks kedekatan angka yang menunjukkannya Tepi grafik berarah dapat ditunjukkan oleh matriks kedekatan

Matriks kedekatan dari grafik berarah yang ditampilkan menunjukkan semua verteks dan arah tepi yang membentuknya. Sebagai contoh, node 0 dalam grafik berarah terhubung ke node 1, tetapi kebalikannya tidak benar karena arah dari hubungan tersebut. Dalam matriks kedekatan, [baris 0, kolom 1] berisi nilai, namun tidak demikian dengan [baris 1, kolom 0].

Representasi grafik harus memiliki invarian permutasi yang berarti bahwa representasi grafik harus memberikan hasil yang sama jika struktur grafik sama tetapi urutan node berbeda. Pendekatan ini memastikan bahwa representasi grafik memiliki sifat yang sama dengan grafik itu sendiri.

Neural networks grafik

GNN biasanya mengadopsi arsitektur “graph-in, graph-out”. Ini berarti bahwa jenis model ini menerima sebuah grafik sebagai input dengan informasi yang dimuat ke dalam node, tepi, dan konteks globalnya. Model ini semakin mengubah penanaman ini tanpa mengubah konektivitas grafik input. Penanaman menunjukkan node sebagai penanaman node dan verteks sebagai penanaman verteks. Penanaman ini memungkinkan model untuk mempelajari jenis node apa yang terjadi dan letaknya di dalam graf, serta jenis dan lokasi tepi.

Biasanya, pelatihan neural networks dilakukan dengan memperbarui parameter network dengan gradien yang dihitung pada subset acak dari data pelatihan. Untuk melatih jaringan grafik, neural networks grafik akan membuat subgrafik yang mempertahankan sifat penting dari grafik besar induknya.

GNN menggunakan mekanisme pengiriman pesan untuk mengumpulkan informasi dari node tetangga sehingga mereka dapat menangkap hubungan yang kompleks dalam grafik. Tantangan dalam memodelkan data berstruktur grafik adalah menangkap interaksi di antara node. Penyampaian pesan neural mengatasi tantangan ini dengan memberikan kerangka kerja untuk memodelkan ketergantungan dan interaksi dalam data grafik. Node bertukar informasi dengan node tetangga dan menggabungkan informasi tersebut untuk memperbarui representasi mereka sendiri. Proses penyampaian pesan ini mirip dengan node dalam grafik yang bertukar pesan atau sinyal.

Jenis analisis grafik

GNN memungkinkan beberapa jenis analisis berbeda yang masing-masing memberikan insight tentang berbagai elemen data grafik.

Tugas tingkat grafik

Dalam tugas tingkat grafik, GNN memprediksi sifat dari seluruh grafik. Untuk molekul yang direpresentasikan sebagai grafik, Anda mungkin ingin memprediksi apakah molekul tersebut akan terikat dengan reseptor yang terkait dengan suatu penyakit. Untuk jaringan sosial, Anda mungkin ingin memprediksi apakah mereka mungkin terkait dengan institusi tertentu seperti universitas atau perguruan tinggi. Jenis pengenalan pola ini dapat dibingkai sebagai bentuk klasifikasi grafik karena mengklasifikasikan seluruh grafik.

Tugas tingkat node

Tugas tingkat node melibatkan prediksi identitas atau peran setiap node dalam grafik. Misalnya, masalah klasifikasi node dalam kumpulan data jaringan sosial mungkin akan memprediksi apakah pengguna kemungkinan memiliki minat tertentu berdasarkan jaringan teman mereka yang terhubung. Memiliki teman yang hanya memiliki ketertarikan yang sama terhadap golf tapi tidak memiliki ketertarikan lain yang sama merupakan indikasi yang baik bahwa teman baru Anda mungkin juga menyukai golf. Fitur node semacam ini sering kali dapat diprediksi dengan GNN.

Tugas tingkat tepi

Jenis terakhir dari masalah prediksi dalam grafik adalah prediksi tepi, terkadang disebut prediksi tautan.

Salah satu contoh inferensi tingkat tepi adalah dalam pemahaman adegan gambar. Setelah mengidentifikasi objek dalam gambar, model pembelajaran mendalam juga dapat memprediksi hubungan di antara keduanya. Ini adalah klasifikasi tingkat tepi karena node menunjukkan objek dalam gambar dan prediksi menunjukkan node mana yang berbagi tepi atau berapa nilai tepi tersebut. Jika ingin menemukan hubungan antara entitas, Anda dapat menganggap grafik sebagai 'sepenuhnya terhubung' dan berdasarkan nilai prediksinya, memangkas bagian tepinya untuk mendapatkan grafik dengan jumlah tepi sedikit.

Varian dan ekstensi

Jaringan konvolusional grafik4 (GCN): Pendekatan ini adalah untuk pembelajaran agak diawasi berdasarkan varian neural networks konvolusional yang dapat belajar dan memprediksi dari data berbasis grafik. Model ini menskalakan secara linier dalam jumlah tepi grafik, sehingga cocok untuk kumpulan data besar. Model ini juga mempelajari struktur grafik lokal dan fitur node.

Autoencoder grafik2: Varian ini adalah model neural networks yang dapat dilatih secara menyeluruh untuk pembelajaran tanpa pengawasan, pengelompokan, dan prediksi tautan pada grafik. Mereka biasanya menggunakan GCN sebagai encoder untuk membuat penanaman dan memiliki decoder yang merekonstruksi grafik dari representasi laten yang dipelajari.

Jaringan perhatian grafik3 (GAT): Arsitektur neural networks yang beroperasi pada data berstruktur grafik. GAT memanfaatkan mekanisme perhatian dalam bentuk lapisan perhatian diri untuk mengatasi kekurangan metode sebelumnya berdasarkan konvolusi grafik atau perkiraannya. Dengan menumpuk lapisan di mana node dapat memusatkan perhatian pada fitur lingkungan mereka, GAT memungkinkan (secara implisit) penetapan bobot berbeda pada node yang berbeda di suatu lingkungan. Hal ini dapat dilakukan tanpa memerlukan operasi matriks yang mahal seperti inversi atau bergantung pada pengetahuan tentang struktur grafik di awal.

Representasi grafik: Pembelajaran adalah bidang penelitian yang memperluas neural networks grafik sebagai cara untuk menemukan representasi node yang bermakna dan berpotensi memiliki dimensi rendah dari hubungan kompleks yang ada dalam grafik. Contoh perluasan penelitian ini adalah GraphSage6, sebuah proyek dari Stanford University, yang menciptakan representasi vektor berdimensi rendah untuk node, sehingga cocok untuk bekerja dengan data di mana node merepresentasikan data berdimensi tinggi.

Arsitektur GNN

Sebagai contoh tentang bagaimana GNN dapat disusun, bayangkan jaringan konvolusional grafik (GCN) sederhana mengklasifikasikan seluruh grafik. GCN paling sederhana memiliki tiga lapisan:

Lapisan konvolusional—lapisan ini melakukan konvolusi pada setiap node untuk mempelajari koneksinya.

Lapisan aktivasi nonlinier—lapisan ini menerapkan fungsi aktivasi seperti ReLU pada output konvolusi.

Lapisan linier output—lapisan akhir ini menjumlahkan output untuk menghasilkan prediksi akhir.

Pertama, konvolusi dilakukan dengan menggunakan setiap node dalam grafik lapisan konvolusi. Lapisan konvolusional ini menggunakan informasi fitur dari tetangga setiap node dan mengumpulkannya untuk memperbarui bobot yang terkait dengan setiap node. Kemudian, fungsi aktivasi nonlinier, seperti ReLU, diterapkan pada output lapisan konvolusi. Untuk mendapatkan akurasi terbaik, sebuah jaringan dapat menggunakan beberapa konvolusi dan lapisan aktivasi nonlinier yang ditumpuk bersama. Terakhir, lapisan linier output digunakan untuk memprediksi di kelas mana suatu grafik kemungkinan besar termasuk.

Dari segi konsep, GCN sederhana sehingga cocok untuk grafik berskala besar dan mudah diprogram, tetapi juga memiliki beberapa kelemahan utama. Pertama, GCN tidak mendukung fitur tepi. Mereka hanya dapat mempelajari dan memprediksi node fitur atau fitur grafik keseluruhan. Gagasan penyampaian pesan tidak tersedia di GCN. Masalah ini membatasi penggunaannya hanya pada kasus di mana semua informasi yang diperlukan berada di node, bukan di tepi.

Namun, neural networks yang menyampaikan pesan (MPNN) memungkinkan representasi tepi.5 Proses pengiriman pesan kira-kira sebagai berikut. Setiap node dalam grafik menerima penanaman awal yang bertindak sebagai fitur input awal node. Pada setiap iterasi pesan yang disampaikan, node mengumpulkan informasi dari node tetangga. Kumpulan informasi itu kemudian digabungkan dengan penanaman node saat ini menggunakan fungsi pembaruan. Penanaman yang diperbarui diteruskan ke iterasi berikutnya dari penyampaian pesan. Setelah beberapa iterasi yang cocok menunjukkan kompleksitas grafik, penanaman akhir digunakan untuk menunjukkan setiap node dalam grafik. Terakhir, langkah pengumpulan, pembaruan, dan iterasi dilakukan oleh neural networks untuk mempelajari berbagai pola kompleks dalam grafik secara keseluruhan.

Menggunakan fungsi penyampaian pesan memungkinkan klasifikasi node yang lebih canggih, klasifikasi tepi, atau bahkan prediksi tentang di mana tepi akan muncul di dalam grafik (disebut prediksi tautan).

Aplikasi GNN

GNN memiliki banyak aplikasi dalam pemrosesan bahasa alami (NLP). Sebagai contoh, dalam klasifikasi dokumen, GNN dapat digunakan untuk memodelkan hubungan antara kata atau kalimat dalam dokumen. Kemampuan ini memungkinkan klasifikasi dokumen yang ditingkatkan dan pengambilan informasi. GNN dapat membantu dalam tugas menjawab pertanyaan dengan menunjukkan hubungan antara kata-kata dalam sebuah pertanyaan dan calon jawaban dalam sebuah grafik pengetahuan. GNN dapat menangkap informasi kontekstual dan ketergantungan sentimen dalam teks, sehingga meningkatkan analisis sentimen dalam situasi dengan ambiguitas tinggi atau hubungan entitas yang sangat spesifik.

Mereka juga memiliki banyak aplikasi dalam visi komputer. Dalam tugas segmentasi gambar, GNN dapat digunakan untuk tugas segmentasi gambar tingkat piksel dengan memodelkan hubungan antara piksel yang berdekatan sebagai grafik. GNN dapat membantu dalam deteksi objek dengan menangkap informasi kontekstual dan hubungan antara objek dalam gambar. Dalam tugas pemahaman adegan, GNN digunakan untuk memahami adegan yang kompleks dan pembuatan grafik adegan yang menunjukkan hubungan spasial antara objek dalam gambar.

GNN juga merupakan alat yang efektif dalam bioinformatika. Dalam analisis urutan genom, GNN dapat memodelkan hubungan antara gen atau urutan genetik yang membantu dalam prediksi ekspresi gen dan tugas klasifikasi rutan. Dalam penemuan obat, GNN dapat digunakan untuk prediksi interaksi obat-target dan prediksi sifat molekuler, yang sangat penting dalam penelitian farmasi.

Catatan kaki

1. Inductive representation learning on large graphs, Will Hamilton, Zhitao Ying, Jure Leskovec, https://papers.nips.cc/paper_files/paper/2017/hash/5dd9db5e033da9c6fb5ba83c7a7ebea9-Abstract.html

2. Variational Graph Auto-Encoders, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1611.07308

3. Graph Attention Networks; Petar Veličković, et al, https://arxiv.org/abs/1710.10903

4. Semi-Supervised Classification with Graph Convolutional Networks, Thomas N. Kipf, Max Welling https://arxiv.org/abs/1609.02907

5. Hierarchical Graph Representation Learning with Differentiable Pooling, NeurIPS 2018 · Rex Ying, et al https://arxiv.org/abs/1806.08804

6. GraphSage https://snap.stanford.edu/graphsage/

Solusi terkait
watsonx.ai

Mempercepat dampak AI generatif dalam alur kerja inti dan mendorong produktivitas.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Manfaatkan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusinya di sisi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Ciptakan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara waktu nyata, dan nilai bisnis.

Jelajahi layanan AI

Sumber daya

Pemrosesan bahasa alami
Topik terkait
Pembelajaran Mendalam
Topik terkait
Ambil langkah selanjutnya

Jelajahi perpustakaan model dasar IBM dalam portofolio IBM watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan penuh percaya diri.

Temukan watsonx.ai Terus ikuti perkembangan terbaru tentang AI di IBM