Baru-baru ini, Alibaba telah membuka Graph-Learn (GL, sebelumnya AliGraph), sebuah framework untuk graph neural network (GNN). Kerangka ini dikembangkan oleh tim internal Ali dan dirancang untuk skenario industri, menyediakan kerangka kerja operasi dasar untuk algoritme GNN arus utama.
-
Alamat proyek: https://github.com/alibaba/graph-learn
Karena berasal dari industri, GL secara alami mendukung data grafik skala besar, grafik heterogen, grafik atribut, dll., Yang diperlukan tapi sulit, dan kerangka kerja pembelajaran mendalam saat ini (TensorFlow, PyTorch, dll.) Tidak pandai dalam masalah. Pada saat yang sama, mengingat NN tingkat atas sangat berorientasi bisnis dan disesuaikan, GL mendukung kombinasi kerangka pembelajaran mendalam apa pun dengan antarmuka Python apa pun. Kerangka GL ringan dan fleksibel, dan modul internal telah menyediakan ruang yang cukup untuk ekspansi, yang nyaman untuk penyesuaian berdasarkan skenario yang berbeda. Selain itu, GL memiliki berbagai model GNN dan antarmuka pemrograman bawaan berdasarkan TensorFlow untuk digunakan kembali dan referensi.
Alibaba memulai eksplorasi GNN beberapa tahun yang lalu, dan mengumpulkan banyak pengalaman berharga dari penelitian hingga implementasi yang sebenarnya. Sekarang sampaikan pengalaman ini, dengan harapan dapat membantu praktisi yang relevan.
Desain GL asli niatnya
GNN adalah sub-bidang yang sangat populer di bidang AI saat ini, dan para peneliti menaruh harapan yang tinggi. Dalam pembelajaran mendalam di mana segala sesuatu adalah vektor, pembelajaran dalam secara bertahap berpindah dari pembelajaran perseptual ke pembelajaran kognitif.
Transisi dari pembelajaran mendalam ke GNN, pengembang mengetahui kesulitan dalam mengimplementasikan algoritma GNN dan tautan yang mencegah GNN digunakan secara luas. Meskipun GNN panas, namun tidak sebaik yang dikatakan semua orang, Perluasan skenario aplikasi, perubahan teori algoritma, dan perubahan paradigma pemrograman dapat membawa perubahan pada platform atau bahkan subversi. Menghadapi ketidakpastian ini, apa yang harus dilakukan platform? melakukan apa?
Ali mengumpulkan pengalaman ini dan mengintegrasikannya ke dalam GL. Baik itu pengguna langsung GL atau teman sekelas yang membuat desain sistem serupa dengan GL, saya harap ini dapat membantu. Hanya ketika lebih banyak orang memahami GNN dan memainkan GNN, lompatan dari persepsi ke kognisi tidak akan menjadi omong kosong.
GL mengikuti prinsip ringan dan mudah digunakan, sepenuhnya mempertahankan skalabilitas sub-modul internal, dan kompatibel dengan ekosistem open source. Singkatnya, ini mencakup: ringan dan portabel, modul dapat diperluas, antarmuka dapat digunakan kembali, dan kompatibel secara ekologis.
Ringan dan portabel
Seperti framework deep learning mainstream, kode platform GL ditulis dalam C ++. Di Linux, semua compiler yang mendukung C ++ 11 dapat mengompilasi dan mengemas kode sumber. Beberapa library eksternal yang mereka andalkan juga dikenal luas di komunitas open source. Proses kompilasi pertama membutuhkan waktu beberapa menit karena mendownload dependensi eksternal, dan setiap pengembangan, kompilasi, dan pengemasan berikutnya hanya membutuhkan waktu beberapa detik, dan biaya penerapan sangat rendah. GL dapat berjalan di mesin fisik, atau di Docker, atau dapat ditarik berdasarkan layanan ACK Alibaba Cloud dengan satu klik untuk memastikan konektivitas jaringan terdistribusi antar mesin.
Modul dapat diperluas
Sistem ini sangat termodulasi, dan setiap modul dapat diperluas secara independen. Ini dapat diperluas untuk memberikan fleksibilitas yang cukup pada sistem untuk beradaptasi dengan ketidakpastian pengembangan di masa depan dan beradaptasi dengan lingkungan operasi yang berbeda. Ekstensibilitas juga menyediakan ruang ekspansi dan kontraksi gratis bagi pengembang untuk membuat prototipe dan verifikasi dengan cepat, tidak terbatas pada fungsi yang saat ini disediakan oleh sistem.
Modul penyimpanan mengabstraksi lapisan FileSystem dan Storage. Jika Anda perlu memperluas penyimpanan kustom, biasanya Anda hanya perlu menerapkan antarmuka FileSystem, atau Anda dapat langsung menyambungkan ke sistem penyimpanan gambar lain dengan menerapkan antarmuka Storage. Modul Partisi mendefinisikan bagaimana data didistribusikan di antara server terdistribusi dan bagaimana permintaan komputasi terdistribusi diteruskan dengan benar. Strategi partisi baru (seperti segmentasi grafik yang lebih sesuai untuk skenario bisnis) hanya perlu memperluas modul ini. Modul penghitungan terdiri dari operator, yang dapat disesuaikan. Operator dieksekusi secara terdistribusi oleh kerangka kerja, dan kalkulasi yang ditentukan oleh setiap operator diteruskan sesuai dengan strategi Partisi yang ditentukan, dan penyimpanan global dapat diakses dalam bentuk sumber daya. Saat ini, jenis operator bawaan meliputi: Sampling, Sampling Negatif, Agregasi, Traverse Grafik, Query Grafik, Pembaruan Grafik. Modul RPC dipisahkan dari modul lain dan hanya bertanggung jawab untuk mengirim dan menerima permintaan. Mudah untuk berinteraksi dengan kerangka kerja RPC lainnya. Modul penamaan digunakan untuk penemuan alamat terdistribusi, yang dapat memfasilitasi penambatan lingkungan penjadwalan yang berbeda.
Antarmuka dapat digunakan kembali
Antarmuka dapat digunakan kembali dalam dua aspek: kompatibilitas mundur dan perluasan fungsi. Kompatibilitas terbukti dengan sendirinya, dan banyak pengembang terjebak dengan masalah kompatibilitas antarmuka setelah pembaruan versi. Perluasan fungsi, pendekatan umum adalah dengan menambahkan API baru, yang berarti bahwa biaya pembelajaran dibawa berdasarkan perhatian pengguna. API baru relatif tidak terlalu merepotkan pengguna daripada kompatibilitas, tetapi peningkatan API juga membawa biaya pemeliharaan sistem yang besar. Dalam iterasi GNN yang cepat saat ini, perluasan fungsi terjadi hampir sepanjang waktu, seperti menambahkan algoritme pengambilan sampel grafik baru, dan kompatibilitas mundur tidak mudah dicapai karena adanya perubahan dalam skenario aplikasi dan perubahan algoritme. Kami berusaha sebaik mungkin untuk membuatnya Saat perubahan ini terjadi, kerugian bagi pengguna minimal.
GL mengurangi risiko di atas dengan meningkatkan abstraksi Antarmuka Pengguna. Kami menemukan bahwa banyak peneliti GNN memiliki latar belakang dalam grafik karena mereka memiliki pemahaman yang kurang lebih tentang GREMLIN. Gremlin adalah bahasa query grafik abstrak. Gremlin adalah Graph, mirip dengan SQL to Table. GL telah merancang satu set antarmuka python Gremlin-Like, yang akan diterjemahkan ke dalam berbagai implementasi operator, Untuk setiap operator baru, Anda hanya perlu mengubah parameter antarmuka yang sesuai. Misalnya, jika pengguna secara acak mengambil sampel tetangga dari simpul tertentu, ketika algoritme pengambilan sampel baru ditambahkan, hanya perubahan berikut yang diperlukan:
impor graphlearn sebagai glg = gl.Graph # sample 10 tetangga untuk setiap node dalam batch ini dengan random samplerg.V ("vertex_type"). shuffle.batch (512) .outV ("edge_type"). sample (10) .by ( "random") # sampel 10 tetangga untuk setiap node dalam batch ini dengan samplerg.V baru ("vertex_type"). shuffle.batch (512) .outV ("edge_type"). sample (10) .by ("new")Dalam antarmuka pemrograman model GNN, kami juga telah melakukan abstraksi pada tingkat tertentu, dan memberikan banyak contoh sebagai referensi.
Kompatibel secara ekologis
GL menyediakan antarmuka pengguna dalam bentuk python, dan hasilnya disajikan dalam bentuk NumPy, yang mudah dipelajari. Selain itu, GL dapat digunakan bersama dengan framework deep learning arus utama saat ini, seperti TensorFlow, PyTorch, dll., Untuk memperkaya kemampuan ekspresif NN lapisan atas. Dalam skenario aplikasi GNN e2e, ada hubungan pelengkap yang baik antara GL dan kerangka pembelajaran yang dalam, dan kalkulasi diserahkan ke kerangka kerja yang baik, Grafik- > GL, Numerik- > TensorFlow, PyTorch.
Aplikasi pendaratan GL
GL telah diterapkan dalam lusinan skenario dalam Alibaba Group, termasuk rekomendasi pencarian, pengendalian risiko keamanan, ritel baru, dan grafik pengetahuan. Data tugas harian GL adalah grafik heterogen dengan skala puluhan miliar tepi dan miliaran simpul, dan berisi lebih dari seratus atribut tipe campuran. Dibandingkan dengan metode sebelumnya dalam mengolah data grafik menjadi sampel yang dapat digunakan oleh kerangka kerja pembelajaran yang mendalam melalui tugas komputasi data besar (seperti Map-Reduce), setiap model hari dapat menghemat 10.000 jam CPU (inti x jam) daya komputasi dan 100 TB Penyimpanan, siklus dari pengembangan algoritme GNN hingga peluncuran telah dipersingkat menjadi 1/3 dari aslinya, dan ini telah membawa pengaruh bisnis yang signifikan. Selain itu, GL juga memenangkan SAIL Pioneer Award pada World Artificial Intelligence Conference 2019. Dari operasi satu klik hingga kustomisasi mendalam
Berdasarkan pemandangan grafik heterogen berskala besar, GL menyediakan satu set API sederhana dan fleksibel untuk mempercepat pengembangan jaringan neural grafik. Ada dua cara untuk mempelajari graph neural network, salah satunya adalah dengan menghitung adjacency matrix pada keseluruhan graph, seperti GCN / GAT dan algoritma lainnya, cara ini dibatasi oleh memori; cara lainnya adalah dengan sample graph dan melakukan mini-batch Komputasi, seperti GraphSAGE, dll., Metode ini lebih skalabel.
GL mendukung dua jenis algoritme ini, dan menyediakan API GraphEngine, API Model Data, dan model pembelajaran Grafik.
Pengambilan sampel grafik GNN skala besar tingkat industri
Sampling, sebagai fungsi inti dari GL, memainkan peran yang sangat penting dalam semua tugas yang menggunakan pembelajaran grafik. Penggunaan yang umum adalah melintasi titik atau tepi grafik untuk menghasilkan sampel positif, dan kemudian mengambil sampel tetangga n-hop dari node tertentu untuk menyandikannya. Untuk skenario pembelajaran tanpa pengawasan, gunakan pengambilan sampel negatif untuk mendapatkan sampel negatif dan lakukan pengkodean tetangga serupa untuk sampel negatif. . Terakhir, hasil sampel digabungkan dan dibentuk ulang menjadi data batch dan dihubungkan ke model algoritme tingkat atas.
Berdasarkan proses ini graph-learn saat ini mendukung GCN (termasuk implementasi versi sampling), GAT (termasuk implementasi versi sampling), GraphSage, bipartite GraphSage, DeepWalk, LINE, TransE dan algoritma lainnya, dan dapat dengan mudah diperluas untuk mengimplementasikan model pembelajaran graph lainnya. .
Tempat pendaratan kendali risiko GNN
Ali menerapkan grafik-belajar untuk semua aspek pencegahan dan pengendalian keamanan, dan mencapai hasil yang baik.Berikut ini berfokus pada beberapa skenario pendaratan pengendalian risiko GNN.
Pengenalan pendaftaran spam
Di antara pengguna Taobao yang baru terdaftar setiap hari, pengguna normal merupakan mayoritas, tetapi ada juga banyak pengguna hitam dan abu-abu yang berpura-pura menjadi pengguna normal dalam upaya mendapatkan akun untuk melakukan aktivitas seperti pemindaian pesanan, komentar spam, dll. Akun ini disebut "akun spam" ". Jika "akun sampah" terdaftar, itu mungkin terlibat dalam berbagai aktivitas berbahaya, jadi perlu untuk mengidentifikasi dan menghapusnya saat mendaftar. Hubungan hubungan antara akun dan akun dibangun melalui berbagai hubungan seperti nomor ponsel, informasi perangkat, dan alamat ip. Berdasarkan graph-learn, grafik isomorfik antara akun dan akun dibangun untuk menggambarkan representasi baru dari akun tersebut. Model grafik pendaftaran spam sedang online Ini telah beroperasi dengan stabil selama hampir 1 tahun, dibandingkan dengan karakteristik hanya menggunakan akun, ini mengidentifikasi 10-15% akun spam setiap hari.
Identifikasi palsu sistem Tao
Dengan mengidentifikasi secara cermat berbagai hubungan antara produk palsu dan penjual yang menjual produk palsu, seperti hubungan geng antara penjual yang menjual produk palsu, logistik dan hubungan rantai industri lainnya, dan membangun grafik yang heterogen antara pedagang dan produk melalui hubungan tersebut, berdasarkan grafik Model grafis palsu Taobao yang dikembangkan oleh -learn telah diterapkan dalam banyak kategori seperti pakaian, alas kaki, dan perhiasan. Dibandingkan dengan penggunaan langsung informasi karakteristik produk dan pedagang, model grafis tersebut dapat mengidentifikasi lebih dari 10% produk palsu. .
Pengenalan komentar spam Xianyu
Xianyu saat ini merupakan platform perdagangan komoditas bekas terbesar di negara ini.Pembeli dan penjual dapat berkomunikasi dan menanyakan di bawah komentar produk, tetapi ada juga produk hitam dan abu-abu yang akan meninggalkan beberapa iklan yang dicurigai, penipuan, pemalsuan dan bahkan komentar terlarang di bawah produk, yang mempengaruhi Untuk meningkatkan pengalaman pengguna, ini juga membawa risiko bagi pengguna. Untuk mengidentifikasi komentar spam di Xianyu, Alibaba telah merancang sistem anti-spam secara independen berdasarkan grafik heterogen jaringan konvolusional-GAS berdasarkan karakteristik bisnis. Dibandingkan dengan model node tunggal yang dalam, ia dapat memperoleh 16% dengan akurasi yang sama. Pada saat yang sama, kami merangkum metode dalam proyek ini. Artikel "Deteksi Tinjauan Spam dengan Jaringan Konvolusional Grafik" diterbitkan pada CIKM2019, konferensi teratas di bidang pencarian informasi, dan memenangkan Penghargaan Kertas Terapan Terbaik.
Pengenalan evaluasi berbahaya
Evaluasi berbahaya meliputi evaluasi ancaman, serangan rekan, dan evaluasi palsu. Itu selalu menjadi salah satu masalah utama yang mengganggu pedagang di platform Taobao. Dibandingkan dengan model grafik tradisional, jaringan saraf grafik heterogen menghilangkan penilaian subjektif dari sisi kuat dan lemah dengan menggabungkan subgraf yang berbeda, dan dapat memadukan informasi tepi dengan kekuatan yang berbeda melalui fusi antar-grafik. Dalam kasus evaluasi berbahaya dari sistem Tao, model grafik evaluasi berbahaya yang dikembangkan berdasarkan grafik-belajar mengoptimalkan proses persiapan data secara keseluruhan dan meningkatkan efisiensi pelatihan. Ini telah berjalan dengan stabil selama hampir setengah tahun setelah diluncurkan, dan 7% tambahan dari evaluasi berbahaya diidentifikasi setiap hari.
Pengenalan perilaku "Pecinta makanan profesional"
Masih ada beberapa "pecinta kuliner profesional" di Taobao. Mereka memesan dengan panik di Taobao, Apakah Anda lapar dan platform lainnya, tetapi segera mengajukan "hanya pengembalian dana" dan menolak untuk mengembalikan barang setelah menerima barang, dan kemudian menggunakan keluhan profesional untuk memaksa pedagang berkompromi. , Ini adalah perilaku khas "foodie profesional". Bagi mereka yang menyalahgunakan hak anggota Taobao dan merusak operasi normal platform, buat model grafik "foodie profesional" berdasarkan grafik-belajar melalui berbagai hubungan media. Dibandingkan dengan model tradisional GBDT, model grafik "foodie profesional" memiliki tingkat akurasi yang sama. Dalam kasus, tambahan 15% pembeli jahat diidentifikasi.
Rencana pengembangan GL selanjutnya
Berfokus pada GL, Ali diharapkan berinvestasi pada aspek-aspek berikut di masa depan.
Perangkat keras baru
Aplikasi yang diwakili oleh gambar telah mengkatalisasi pengembangan GPU. Dapat diperkirakan bahwa Graph, sebagai format data paling luas dalam produksi aktual, dikombinasikan dengan NN, juga akan memicu lebih banyak pemikiran tentang mengejar kinerja yang sangat baik dari perspektif perangkat keras. Saat ini, Alibaba sudah mulai menjajaki aspek ini secara internal.
Algoritme baru
Dalam beberapa tahun terakhir, makalah yang terkait dengan algoritme GNN sebagian besar diperluas di bawah kerangka kerja GCN. Metode pemrograman relatif tetap. Saat ini, telah mengalami beberapa hambatan lebih atau kurang. Ali juga mulai mencoba beberapa inovasi dalam teori algoritma, dan kemudahan penggunaan serta skalabilitas GL akan membantu proses ini.
bisnis baru
GNN mencakup berbagai macam bisnis dan akan membawa banyak efek yang tidak terduga. Aplikasi yang saat ini diterapkan sebagian besar terkonsentrasi di beberapa perusahaan besar dan belum dipopulerkan. GL open source juga berharap dapat membantu praktisi terkait untuk bersama-sama memperluas ekologi GNN.
- Orang minoritas di Longsheng, Guangxi melaksanakan program khusus untuk merayakan "3 Maret dari Kebangsaan Zhuang"