زمان تخمینی مطالعه: 15 دقیقه
شبکه عصبی گراف (GNN) نوعی شبکه عصبی هستند که برای کار مستقیم روی گرافها طراحی شدهاند، ساختار دادهای متشکل از گرهها (راس) و یالهایی که آنها را به هم متصل میکنند. GNN ها نحوه تجزیه و تحلیل و استفاده از دادههایی را که در قالب یک گراف ساختار یافتهاند را متحول کرده است. هر زمان که در مورد اکتشافات پیشگامانه در زمینههایی مانند توسعه دارو، تجزیه و تحلیل رسانههای اجتماعی یا کشف تقلب میشنوید، احتمال زیادی وجود دارد که GNN ها در پشت صحنه نقش کلیدی را داشته باشند.
وظایف پیشبینی انجام شده توسط شبکه عصبی گراف
هدف اصلی GNN ها یادگیری یک نمایش (جاسازی) از ساختار گراف است که در آن GNN هم ویژگیهای گرهها (آنچه گره حاوی آن است) و هم توپولوژی گراف (نحوه اتصال این گرهها) را ثبت میکند. سپس میتوان از این نمایشها برای کارهای مختلفی مانند طبقهبندی گره (تعیین برچسب یک گره)، پیشبینی پیوند (پیشبینی وجود یک یال بین دو گره) و طبقهبندی گراف (طبقهبندی کل نمودارها) استفاده کرد. به عنوان مثال، شبکه عصبی گراف به طور گسترده در برنامههای شبکههای اجتماعی (مانند فیس بوک) استفاده میشود. در این کاربرد GNN ها میتوانند رفتار کاربر را نه تنها بر اساس نمایه آنها، بلکه بر اساس فعالیتها و حلقههای اجتماعی دوستانشان نیز پیشبینی کنند. در ادامه چیزهایی که GNN انجام میدهد آورده شده است:
- پیشبینی سطح گره: پیشبینی دستهبندی یک گره (مثلاً این که آیا این شخص برگر میخورد یا که پیشبینی بر اساس نوع دوستانی است که فرد دارد یا فعالیتهایی که فرد انجام میدهد).
- پیشبینی سطح لبه: پیشبینی احتمال ارتباط بین دو گره (مثلاً پیشنهاد دوستان جدید در یک شبکه اجتماعی یا ویدیوی بعدی Netflix برای پخش).
- پیشبینی سطح نمودار: طبقهبندی کل نمودار بر اساس ساختار و ویژگیهای گره آن (به عنوان مثال، تصمیمگیری در مورد اینکه آیا یک مولکول جدید داروی مناسبی است یا خیر).
آشنایی با مبانی گرافها
برای درک شبکه عصبی گراف (GNN)، باید اساسیترین عنصر آن را که یک گراف است، یاد بگیریم. ساختار داده گراف نه تنها نقاط داده را نشان میدهد و سازماندهی میکند، بلکه بر روابط بین نقاط داده نیز تأکید میکند.
- رئوس و لبهها: گراف مجموعهای از نقاط (گرهها) است که با خطوط (لبهها) به هم متصل شدهاند. رئوس نمایانگر موجودات، اشیا یا مفاهیم هستند، در حالی که یالها نشان دهنده روابط یا ارتباطات بین آنها هستند. در زمینه شبکه اجتماعی، گرهها میتوانند یک شخص باشند و لبهها میتوانند نوع رابطه باشند (فرد دنبال میکند و غیره)
- گرافهای جهتدار در مقابل گرافهای بدون جهت: در یک گراف جهتدار، یالها جهتی دارند که جریان رابطه را نشان میدهد. در زمینه یک شبکه اجتماعی، جهت میتواند این باشد که چه کسی چه کسی را دنبال میکند (شما ممکن است شخص A را دنبال کنید، اما شخص A شما را دنبال نمیکند). در یک نمودار بدون جهت، یالها جهتی ندارند و صرفاً نشاندهنده یک ارتباط هستند. بین دو رأس به عنوان مثال. در فیسبوک، اگر درخواست دوستی را بپذیرید، میتوانید پستهای آنها را ببینید و آنها میتوانند پست شما را ببینند. رابطه در اینجا متقابل است.
- گراف وزندار: در این گرافها لبهها دارای وزن مرتبط با آنها هستند.
نحوه نمایش گراف
نمایش گراف راهی برای رمزگذاری ساختار و ویژگیهای گراف برای پردازش توسط شبکههای عصبی است. گرافها دادههای گره و همچنین رابطه بین نقاط داده را جاسازی میکنند. برای نشان دادن این ارتباطات بین گرهها، نمایش گراف مورد نیاز است. در اینجا برخی از پرکاربردترین نمایشهای گراف برای یادگیری عمیق آورده شده است.
- ماتریس مجاورت: این ماتریسی است که تمام رئوس متصل به آن راس (همه گرههای متصل به یک گره) را فهرست میکند.
- ماتریس وقوع Incidence Matrix: ماتریسی به اندازه NxM که در آن N تعداد گرهها و M لبههای گراف هستند. به زبان ساده، برای نمایش گراف به صورت ماتریسی استفاده میشود. اگر گره دارای یک یال خاص باشد، مقدار 1 و اگر ندارد، 0 است.
- ماتریس درجه Degree Matrix: یک ماتریس مورب که شامل تعداد لبههای متصل به هر گره است.
ویژگیهای منحصر به فرد دادههای گراف
ساختار دادههای گراف به دلیل ویژگیهای خاص، دادههای دنیای واقعی را به طور کارآمد مدل میکند. این همان چیزی است که آنها را از ماتریسهای مورد استفاده در شبکههای عصبی کانولوشنال (CNN) متمایز میکند. برای اینکه بتوان بر روی ساختار داده گراف کار کرد، GNN ها توسعه یافتند. قبل از ورود به GNN ها، بیایید ببینیم که آن ویژگیهای منحصر به فرد گرافها چه چیزی است:
- اتصالات: برخلاف دادههای جدولی که موجودیتها به صورت مجزا وجود دارند، دادههای گراف حول اتصالات بین موجودیتها (گرهها) میچرخد. این اتصالات که به گرهها میپیوندند، که توسط لبهها نشان داده میشوند، اطلاعات مهمی را نگه میدارند که دادهها را ارزشمند میکند و برای درک سیستم مرکزی است.
- بدون ساختار: دادههای سنتی در شبکهها یا جداول مرتب شده قرار دارند. با این حال، نمودارها نظم ذاتی ندارند و ساختار آنها پویا است (گرهها به طور تصادفی پخش میشوند و موقعیت خود را تغییر میدهند). این همان چیزی است که آن را برای مدلسازی دادههای دنیای واقعی پویا مفید میکند.
- ناهمگونی: در یک گراف، نقاط (گرهها) و اتصالات (لبهها) میتوانند چیزهای مختلفی مانند افراد، پروتئینها یا تراکنشها را نشان دهند که هر کدام ویژگیهای خود را دارند.
- مقیاسپذیری: گرافها میتوانند بسیار بزرگ شوند، از جمله شبکههای پیچیده با میلیونها اتصال و نقطه، که ذخیره و تجزیه و تحلیل آنها را دشوار میکند.
شبکه عصبی گراف در مقابل شبکههای عصبی
برای درک بهتر شبکههای عصبی نموداری (GNN)، ضروری است ابتدا بدانیم که چگونه با شبکههای عصبی سنتی (NN) تفاوت دارند. با شروع با NN به عنوان یک پایه، میتوانیم بررسی کنیم که چگونه GNNها بر این اساس برای مدیریت دادههای ساختاریافته گراف ساخته میشوند و مفهوم را واضحتر و قابل دسترستر میکنند. در اینجا برخی از تفاوتهای بین NN و GNN آورده شده است.
- ساختار دادهها:
- شبکههای عصبی (NN): شبکههای عصبی سنتی، از جمله انواع آنها مانند شبکههای عصبی کانولوشن (CNN) و شبکههای عصبی تکراری (RNN)، عمدتاً برای ساختارهای دادهای شبکه مانند طراحی شدهاند. این شامل تصاویر (شبکههای دوبعدی پیکسلها) برای CNN و دادههای متوالی (سریهای زمانی یا متن) برای RNN است.
- شبکه عصبی نمودار (GNN): GNN ها به طور خاص برای مدیریت دادههای گراف طراحی شدهاند. گرافها نه تنها نقاط داده را ذخیره میکنند، بلکه روابط و ارتباطات پیچیده بین نقاط داده را نیز ذخیره میکنند.
- نمایش دادهها:
- NN: ورودی داده به شبکههای عصبی سنتی باید ساختار داشته باشد، مانند بردارها برای لایههای کاملاً متصل، آرایههای چند بعدی برای CNN (مثلاً تصاویر)، یا توالیها برای RNN.
- GNN ها: دادههای ورودی برای GNN ها به صورت نمودار است، که در آن هر گره میتواند ویژگیهای خود را داشته باشد (بردارهای ویژگی)، و یالها نیز میتوانند ویژگیهایی داشته باشند که نشان دهنده رابطه بین گرهها هستند.
- عملیات:
- NN ها: عملیات در شبکههای عصبی شامل ضرب ماتریس، عملیات کانولوشن و عملیات بر حسب عنصر است که به صورت ساختاریافته در سراسر لایهها اعمال میشود.
- GNN ها: GNN ها با تجمیع ویژگیهای همسایگان گره از طریق فرآیندی به نام ارسال پیام عمل میکنند. این شامل تجمیع ویژگیهای گره فعلی با ویژگیهای گره همسایه است.
- وظیفه یادگیری:
- شبکههای عصبی سنتی: شبکههای عصبی سنتی برای کارهایی مانند طبقهبندی تصویر، تشخیص اشیاء (CNN) و پیشبینی توالی یا مدلسازی زبان (RNN) مناسب هستند.
- GNN ها: GNN ها در کارهایی که نیاز به درک روابط و وابستگیهای متقابل بین نقاط داده مانند طبقهبندی گرهها، پیش بینی پیوندها و طبقهبندی گراف دارند، برتری مییابند.
- تفسیرپذیری: توانایی درک عملکرد درونی و چگونگی تصمیمگیری یا پیشبینی مدلها.
- شبکههای عصبی (NN): در حالی که NN ها میتوانند الگوهای پیچیده در دادهها را یاد بگیرند، تفسیر این الگوها و نحوه ارتباط آنها با ساختار دادهها میتواند چالش برانگیز باشد.
- شبکههای عصبی نمودار (GNN): GNNها با عملکرد مستقیم بر روی نمودارها، بینشهایی را در مورد اینکه چگونه روابط و ساختار دادهها به کار یادگیری کمک میکنند، ارائه میدهند. این در حوزههایی مانند کشف مواد مخدر یا تجزیه و تحلیل شبکههای اجتماعی بسیار ارزشمند است.
انواع شبکه عصبی گراف
شبکههای عصبی گراف (GNN) به معماریهای مختلفی برای رسیدگی به چالشها و برنامههای کاربردی مختلف تکامل یافتهاند. در اینجا تعداد کمی از آنها آورده شده است.
- گراف شبکه کانوولوشن (GCN): محبوبترین و پایهای ترین نوع GNN است. ایده کلیدی پشت GCN ها، به روزرسانی نمایش یک گره با تجمیع و تبدیل ویژگیهای گرههای همسایه و خود آن (الهام گرفته از CNN) است. این مکانیسم تجمع GCN ها را قادر میسازد تا ساختار گراف محلی را در اطراف هر گره ثبت کنند. GCN ها به طور گسترده برای طبقهبندی گرهها، طبقهبندی گرافها و سایر کارهایی که در درک ساختار محلی بسیار مهم است استفاده میشود.
- شبکه عصبی کانولوشنال گراف عمیق II: این ساختار از معماری شبکه عصبی کانولوشن گراف عمیق برای طبقهبندی گراف استفاده میکند. این مفهوم بر اساس GCN بهبود یافته است. این معماری جدید بر اساس یک چارچوب غیر محلی ارسال پیام و یک لایه پیچیدگی نمودار فضایی است. این تکنیک از بسیاری از روشهای دیگر شبکه عصبی گراف در وظایف طبقهبندی گراف بهتر عمل میکند.
- شبکههای توجه گراف(GATs): مکانیسمهای توجه را به مرحله تجمع در GNN ها انتساب میدهد (افزایش وزن به مرحله تجمع). در GATها، اهمیت ویژگیهای هر همسایه به صورت پویا (رنگهای مختلف فلشها در تصویر) در طول فرآیند تجمیع وزن میشود و به مدل اجازه میدهد تا روی همسایگان مربوطه برای هر گره تمرکز بیشتری داشته باشد. این رویکرد در نمودارهایی که همه اتصالات به یک اندازه مهم نیستند یا برخی از گرهها بر بقیه گرهها غلبه دارند (مثلاً تأثیر میلیونها فالوور) سودمند است و میتواند به نمایش گرههای گویاتر منجر شود.
- گراف شبکههای تکراری (GRN): اصول شبکههای عصبی بازگشتی (RNN) را با شبکههای عصبی گراف ترکیب کنید. در GRNها، ویژگیهای گره از طریق مکانیسمهای تکراری بهروزرسانی میشوند و به مدل اجازه میدهند تا تغییرات دینامیکی در دادههای ساختاریافته نمودار را در طول زمان ثبت کند. نمونههایی از کاربردها شامل پیشبینی ترافیک در شبکههای جادهای و تحلیل شبکههای اجتماعی در حال تکامل در زمان است.
- رمزگذارهای خودکار گراف (GAE): برای کارهای یادگیری بدون ناظر بر روی گرافها طراحی شده است. یک GAE یاد میگیرد که گراف (یا زیرگرافها/گره ها) را در فضایی با ابعاد پایینتر (جاسازی) رمزگذاری کند و سپس ساختار گراف را از این جاسازیها بازسازی میکند. هدف یادگیری نمایشهایی است که اطلاعات ساختاری و ویژگیهای اساسی گراف را به تصویر میکشد. GAEها به ویژه برای کارهایی مانند پیشبینی پیوند، خوشهبندی، و تشخیص ناهنجاری در گرافها، که برچسبهای صریح در دسترس نیستند، مفید هستند.
- شبکههای مولد گراف: هدف ایجاد ساختارهای گراف جدید یا تقویت ساختارهای موجود است. این مدلها توزیع دادههای نمودار مشاهدهشده را یاد میگیرند و میتوانند نمودارهای جدیدی شبیه دادههای آموزشی تولید کنند. این قابلیت برای کشف دارو، جایی که تولید ساختارهای مولکولی جدید مورد توجه است، ارزشمند است. همچنین در تجزیه و تحلیل شبکههای اجتماعی، که در آن شبیهسازی ساختارهای شبکه واقعی میتواند به درک پویایی شبکه کمک کند.
GNN ها چگونه کار میکنند
GNN ها با استفاده از ساختار دادههای گراف، که از گرهها (راسها) و یالها (اتصال بین گرهها) تشکیل شدهاند، برای یادگیری نمایش گرهها، لبهها یا کل نمودارها کار میکنند. آنها این ویژگیها را در یک ماتریس ویژگی جدید (گرههای فعلی و گرههای مجاور) ترکیب میکنند. این ماتریس ویژگی جدید در گره فعلی به روز میشود. هنگامی که این فرآیند چندین بار انجام میشود، با تمام گرههای موجود در نمودار، در نتیجه، هر گره چیزی در مورد هر گره دیگر میآموزد. مراحل یادگیری GNN در ادامه به صورت گام به گام آورده شده است:
- ارسال پیام: در هر لایه، اطلاعات بین گرههای گراف منتقل میشود. وضعیت فعلی یک گره بر اساس اطلاعات همسایگانش به روز میشود. این کار با جمعآوری اطلاعات از همسایگان و سپس ترکیب آن با وضعیت فعلی گره انجام میشود. به این پیچیدگی گراف نیز میگویند (الهام گرفته از CNN). در CNN ها، اطلاعات پیکسلهای همسایه در پیکسل مرکزی ادغام میشود، به طور مشابه در GNN ها، گره مرکزی با اطلاعات جمع آوری شده در مورد همسایگان خود به روز میشود.
- ادغام: روشهای مختلفی برای جمعآوری اطلاعات از همسایگان گره وجود دارد. برخی از روشهای رایج عبارتند از میانگینگیری، حداکثر کردن، یا استفاده از یک تابع پیچیدهتر مانند شبکه عصبی بازگشتی.
- به روزرسانی: پس از ادغام، اطلاعات همسایگان، با وضعیت فعلی گره ترکیب میشود و حالت جدیدی را تشکیل میدهد. این حالت گره جدید حاوی اطلاعاتی در مورد گرههای همسایه است. تجمیع و به روزرسانی مهمترین مراحل در GNN ها هستند.
- خروجی: نمایش گره، لبه یا گراف نهایی برای کارهایی مانند طبقهبندی، رگرسیون یا پیشبینی پیوند استفاده میشود.
- چند لایه: فرآیند ارسال پیام را میتوان برای چندین لایه تکرار کرد. این به گرهها اجازه میدهد تا اطلاعاتی در مورد همسایگان خود و غیره را بیاموزند. تعداد لایههایی که به طور رسمی hops نامیده میشود یک هایپر پارامتر است.
کاربردهای GNN
GNN ها به پتانسیل نظری خود عمل کردهاند و اکنون به طور فعال بر دامنههای مختلف دنیای واقعی تأثیر میگذارند. بنابراین، به نظر شما شبکه عصبی گراف چقدر قدرتمند هستند؟ در اینجا نگاهی اجمالی به کاربردهای آنها خواهیم داشت:
- استفاده در شبکههای اجتماعی برای تشخیص جامعه، پیشبینی پیوند، تجزیه و تحلیل احساسات.
- استفاده در سیستمهای توصیهگر برای فیلتر مشارکتی با GNN، مدلسازی تعاملات کاربر و آیتم، توصیههای قابل توضیح متنوع
- در بیوانفورماتیک از این سیستمها برای شبکههای تعامل پروتئین-پروتئین، شبکههای تنظیم کننده ژن و یا کشف دارو استفاده میشوند.
- نمودارهای تشخیص تقلب میتوانند شبکههای مالی را نشان دهند، جایی که گرهها ممکن است موجودیتها (مانند افراد، شرکتها یا بانکها) باشند و لبهها میتوانند تراکنشهای مالی یا روابط وام دهی را نشان دهند. این برای تشخیص تقلب، مدیریت ریسک و تحلیل بازار مفید است.
- پیشبینی جریان ترافیک پیشبینی تراکم ترافیک و بهینهسازی زمانبندی چراغهای راهنمایی برای شهرهای هوشمند با مدلسازی شبکه جادهای و دینامیک جریان خودرو.
- در امنیت سایبری شناسایی فعالیتهای مخرب و شناسایی آسیب پذیریها در شبکههای کامپیوتری با تجزیه و تحلیل ترافیک شبکه و الگوهای حمله انجام میشود.
چالشهای شبکه عصبی گراف
علیرغم پیشرفت چشمگیر و پتانسیل GNN ها، چندین چالش و محدودیت در تحقیق و پیادهسازی باقیمانده است. در اینجا برخی از چالشهای کلیدی وجود دارد که مطرح خواهیم کرد:
- مقیاسپذیری: بسیاری از مدلهای GNN به دلیل نیازهای محاسباتی و حافظهای برای تجمیع ویژگیهای همسایههای گره، برای پردازش کارآمد نمودارهای بزرگ تلاش میکنند.
- هموارسازی بیش از حد: نکته ای در مورد هموارسازی بیش از حد برای شبکههای عصبی گراف، همانطور که قبلا ذکر شد، عمق یک GNN افزایش مییابد، ویژگیهای گرهها در قسمتهای مختلف گراف میتواند غیر قابل تشخیص باشد.
- گرافهای پویا: بسیاری از نمودارهای دنیای واقعی پویا هستند و گرهها و یالها در طول زمان اضافه یا حذف میشوند. بیشتر معماریهای GNN برای نمودارهای استاتیک طراحی شدهاند و برای مدلسازی مؤثر این پویاییهای زمانی تلاش میکنند.
- نمودارهای ناهمگن: نمودارها اغلب شامل انواع مختلفی از گرهها و یالها (نمودارهای ناهمگن) هستند که هر کدام ویژگیها و الگوهای تعامل خود را دارند. طراحی معماریهای GNN که بتوانند به طور موثر از دادههای گراف ناهمگن یاد بگیرند، یک کار چالش برانگیز است.
- تعمیم در میان گرافها: بسیاری از مدلهای GNN بر روی یک گراف یا نمودارهایی با ساختارهای مشابه آموزش و آزمایش میشوند. با این حال، مدلها اغلب برای تعمیم به نمودارهای کاملاً جدید با ساختارهای مختلف تلاش میکنند که کاربرد آنها را محدود میکند.