Skip navigation

آشنایی با شبکه های عصبی گرافی

شبکه‌های عصبی گرافی (Graph Neural Networks) یا GNNs، یک نوع از شبکه‌های عصبی هستند که برای کار با داده‌های گرافی طراحی شده‌اند. در مقابل ساختار داده‌های سنتی مانند داده‌های جدولی یا توالی، داده‌های گرافی شامل گره‌ها و یال‌ها هستند که روابط و ارتباطات بین این عناصر را نشان می‌دهند.

GNN01

داده های مرتبط با فضاهای غیراقلیدسی و داده هایی که ترتیب و رتبه در آنها موضوعیت ندارد در اینگونه ساختار قابل استفاده هستند.

GNN06

در این نوع از شبکه های عصبی با استفاده از ساختار گراف و ویژگی های گره ها و یال ها، (h) representaion های جدیدی برای هر گره ایجاد می شود. برای مثال در شکل زیر representaion به گونه ای تعریف شده است که همسایگی ها به اندازه 1 را تجمیع می کند. در شکل زیر در GNN تک لایه صرفا Node Representation تغییر کرده است و Embedding رخ داده است. به ازای هر گره، فقط گره های با فاصله 1 دیده می شود. در لایه دوم، اطلاعات از همسایگی های با فاصله 2 به دست می آید. در GNN با k لایه گره ها با فاصله k پیام رد و بدل می کنند.

GNN04

در نهایت می توان با یک Pooling (جمع ، میانگین گیری و... ) یک representation (h) روی گراف به دست آورد.

انواع شبکه های عصبی گرافی

روی Aggregate می توان کلاس های مختلفی از Neural Network را تعریف کرد. برای مثال می توان هر گره را به تابع (ψ(x_j)) مانند MLP وارد کرد و در وزن ثابتی (c_ij) ضرب کرد.(Graph Convolution Network) c_ij متناسب با درجه دو گره ای که با هم پیام رد و بدل می کنند؛ است.

در حالت دیگری می توان هر گره را به تابع (ψ(x_j)) مانند MLP وارد کرد و به جای وزن ثابت (c_ij) از a(x_i,x_j) یا Attention بین دو گره استفاده کرد. (Graph Attention Network (GAN))

در حالت دیگر می توان هر گره را به تابع (ψ(x_j)) مانند MLP وارد کرد و یک Message به عنوان خروجی دریافت کرد. (Graph Isomorphism Network (GIN))

GNN03

کاربردها

با داشتن representation هر گره می توان این representation ها را به یک Classifierداد و Node Classification انجام داد. Graph Classification و Link Prediction از دیگر کاربردهای شبکه های عصبی گرافی است.

GNN02