Mobina Poulaei
Mobina Poulaei
خواندن ۱۸ دقیقه·۴ ماه پیش

مقدمه‌ای بر شبکه‌های عصبی گرافی

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

GNNs
GNNs

۱. گراف چیست؟

گراف‌ها نوعی ساختار داده‌ هستند که برای نمایش و شبیه‌سازی داده‌ها در سناریوهای پیچیده دنیای واقعی استفاده می‌شوند. هر گراف از تعدادی گره (راس) و تعدادی یال (لبه) بین این گره‌ها تشکیل شده است. در ریاضیات گراف را به صورت G=(V, E) نمایش می‌دهیم که در آن V مجموعه‌ای از گره‌ها یا موجودیت‌ها و E مجموعه‌ای از یال‌ها یا پیوندها بین این گره‌ها را نشان می‌دهد.

برای آشنایی بیشتر گراف مقاله نظریه گراف را بخوانید.

در گراف، هر گره و یال می‌تواند ویژگی‌های خاص خودش را داشته باشد. مثلاً اگر بخواهیم یک مولکول آب را به صورت یک گراف مدل‌سازی کنیم، می‌توانیم بگوییم که این گراف سه گره دارد: یکی برای اکسیژن و دو تا برای هیدروژن. هر گره می‌تواند اطلاعاتی مثل بار الکتریکی یا قطر اتم را در خود ذخیره کند. از طرف دیگر، یال‌ها می‌توانند نشان دهند که پیوند بین اتم‌ها چقدر قوی یا چقدر ضعیف است.

شاید این سوال پیش بیاید که چرا باید در برخی موارد از گراف‌ها به ‌عنوان ساختار داده استفاده کنیم؟ چون در بعضی موارد، ساختارهای معمولی مانند تصاویر، صداها یا متن‌های ترتیبی نمی‌توانند به خوبی داده‌های پیچیده را نمایش دهند. به عنوان مثال، فکر کنید که می‌خواهید شبکه‌های مغزی، ترکیبات شیمیایی یا حتی شبکه‌های اجتماعی را مدل‌سازی کنید. این‌ها سناریوهایی هستند که نیاز به یک ساختار انعطاف‌پذیرتر دارند و اینجاست که گراف‌ها به کار می‌آیند. در ادامه برخی از این سناریوها را بررسی می‌کنیم:

گراف در حوزه‌های مختلف
گراف در حوزه‌های مختلف

۱.۲ گراف در شبکه‌های اجتماعی

بیایید با یک مثال آشنا شروع کنیم. فرض کنید در یک شبکه اجتماعی مانند اینستاگرام هستید. در اینجا شما می‌توانید حساب کاربری خودتان را به عنوان یک موجودیت (گره) در نظر بگیرید. این موجودیت شامل اطلاعات مختلفی است، مثلاً تصویر پروفایل، فهرست دوستان، فهرست علاقه‌مندی‌ها و غیره. حالا هر کدام از دوستان شما هم یک موجودیت دیگر هستند که اطلاعات خاص خودشان را دارند.

وقتی شما یک نفر را به لیست دوستانتان اضافه می‌کنید، در واقع دارید یک پیوند یا ارتباط بین موجودیت خودتان و موجودیت آن فرد ایجاد می‌کنید. این یک نوع رابطه بین دو گروه داده است. پس می‌توان گفت که شبکه‌های اجتماعی به طور طبیعی به شکل گراف‌ها مدل‌سازی می‌شوند.

حالا تصور کنید که بخواهیم این روابط را با متن مدل‌سازی کنیم. این کار خیلی سخت می‌شود، چون پروفایل‌ها و روابط بین آن‌ها بسیار متنوع و پیچیده هستند. مثلاً تعداد دوستان شما با یک خواننده مشهور فرق دارد، یا تنظیماتی که برای نمایش محتوای پروفایلتان در نظر گرفته‌اید، ممکن است با دیگران متفاوت باشد.

۱.۳ گراف در شبکه مغزی

یکی دیگر از مثال‌های جذاب، شبکه مغزی است. در این مثال، ما می‌توانیم بخش‌های مختلف مغز را به عنوان گره‌های گراف در نظر بگیریم و این گره‌ها را از طریق سیگنال‌های الکتریکی که بین آن‌ها به اشتراک گذاشته می‌شود، به هم متصل کنیم. در واقع، ما می‌توانیم از هر اطلاعات مرتبطی استفاده کنیم تا تعیین کنیم که چه زمانی باید یک یال بین گره‌ها اضافه شود. به عنوان مثال، می‌توانیم گره‌هایی را به هم متصل کنیم که مربوط به بخش‌های مغزی هستند که برای فرآیندهای خاصی مثل تشخیص چهره یک دوست یا یادگیری یک کلمه جدید مرتبط هستند.

۱.۴ انواع مسائل قابل حل با گراف‌ها

همان‌طور که می‌توانید حدس بزنید، انواع مختلفی از مسائل را می‌توان با گراف‌ها حل کرد. این مسائل می‌توانند در سطح گره، یال (پیوند بین گره‌ها) یا کل گراف باشند. به عنوان مثال، در یک شبکه مغزی می‌توانیم پیش‌بینی کنیم که آیا یک ناحیه خاص از مغز در حین انجام یک وظیفه شناختی مانند تشخیص چهره فعال خواهد شد یا خیر (مسئله در سطح گره). یا اگر به مثال مولکول‌ها برگردیم، یک مدل می‌تواند یاد بگیرد که چه نوع پیوندی باید بین اتم‌ها وجود داشته باشد (مسئله در سطح یال). در مثال شبکه اجتماعی، می‌توانیم از اطلاعات کل گراف استفاده کنیم تا بین پروفایل‌های سیاست‌مداران و ورزشکاران تمایز قائل شویم (مسئله در سطح کل گراف).

۲. چرا باید از شبکه‌های عصبی گرافی استفاده کنیم؟

گفتیم که گراف‌ها با سایر ساختارهای داده مانند جدول، تصویر یا متن تفاوت دارند. برای مثال در یک شبکه اجتماعی، گراف دوستان فرد A با گراف دوستان فرد B از نظر تعداد گره‌ها، جهت یال‌ها و ویژگی‌هایشان کاملا متفاوت است. یعنی حتی در یک حوزه ثابت مانند گراف دوستان، داده‌های افراد می‌توانند اندازه‌ها و شکل‌های متفاوتی داشته باشند. اما تصاویر یک مجموعه داده یا خود اندازه مشابهی دارند یا می‌توان آن‌ها را هم‌اندازه کرد. از طرفی هم نمی‌توان گراف‌ها را مانند تصاویر یا متون هم‌اندازه کرد زیرا هر گراف اطلاعات و ساختار منحصربه‌فرد خود را دارد که تغییر دادن اندازه یا فرم آن می‌تواند به از دست رفتن اطلاعات مهم و حیاتی منجر شود.

یکی دیگر از ویژگی‌های مهم گراف‌ها این است که به ترتیب گره‌ها وابسته نیستند؛ به عبارت دیگر، ترتیب گره‌ها در نمایش کلی گراف اهمیتی ندارد اما در مورد تصاویر، وضعیت کاملاً برعکس است. یعنی اگر یک پیکسل را در موقعیتی متفاوت از جایگاه اصلی آن پردازش کنیم، تصویر دیگر شبیه به شکل اصلی خود نخواهد بود. در واقع تغییر ترتیب پیکسل‌های یک تصویر به طور مستقیم داده‌ای که تصویر نمایانگر آن است را تحت تأثیر قرار می‌دهد اما این موضوع درمورد گراف‌ها صدق نمی‌کند. این توضیحات به راحتی از تصویر زیر قابل درک است:

عدم وابستگی گراف به ترتیب گره‌ها
عدم وابستگی گراف به ترتیب گره‌ها

به همین دلیل مدل‌هایی مانند شبکه‌های عصبی کانولوشنی که برای داده‌های ساختار یافته‌ (Structured) طراحی شده‌اند، بر روی گراف‌ها به عنوان یک روش ذخیره داده غیر ساختار یافته (Unstructured) کارساز نیستند. شبکه‌های عصبی گرافی به عنوان یک راهکار مناسب برای پردازش این نوع داده‌ها به وجود آمده‌اند و به ما این امکان را می‌دهند تا پیش‌بینی‌های خود را در سطح گره، یال و کل گراف به خوبی انجام دهیم. در واقع شبکه‌های عصبی گرافی (GNNs) نوع خاصی از معماری شبکه‌های عصبی هستند که به‌طور خاص برای کار با گراف‌ها طراحی شده‌اند.

۲.۱ شبکه‌های عصبی گرافی چطور کار می‌کنند؟

پیش از توضیح نحوه عملکرد شبکه‌های عصبی گرافی، لازم است نحوه عملکرد شبکه‌های عصبی معمولی را با یکدیگر مرور کنیم. در شبکه‌های عصبی معمولی اطلاعات داده‌ها (عکس، متن، صوت و ...) بعد از ورود به شبکه، طی یک فرایند سلسله‌مراتبی به نام انتشار (Propagation) در کل شبکه جریان پیدا می‌کنند و در نهایت پیش‌بینی مورد نظر بر اساس این اطلاعات انجام می‌شود.

برای مثال، در شبکه‌های عصبی کانولوشنی (CNNs)، برای انتشار اطلاعات در طول شبکه، داده‌ها به صورت لایه به لایه از ورودی تا خروجی جریان پیدا می‌کنند. این فرآیند با عبور تصویر ورودی از طریق فیلترهایی آغاز می‌شود که به صورت پنجره‌ای روی تصویر حرکت می‌کنند. این فیلترها، که اندازه‌های مختلفی مانند ۳×۳ یا ۹×۹ دارند، در هر گام با جمع‌آوری اطلاعات از پیکسل مرکزی و ۸ پیکسل همسایه آن (در حالت ۳×۳) ویژگی‌های محلی تصویر مانند خط‌ها و لبه‌ها را استخراج می‌کنند. سپس، این ویژگی‌های استخراج‌شده به لایه‌های عمیق‌تر شبکه منتقل می‌شوند، جایی که با استفاده از لایه‌های کانولوشنی بیشتر و لایه‌های کاملاً متصل (Fully Connected)، این ویژگی‌ها ترکیب می‌شوند تا یک نمای جامع‌تر و سطح بالاتری از داده ایجاد شود. در نهایت، در لایه خروجی، شبکه عصبی بر اساس این اطلاعات پردازش‌شده، تصمیم نهایی یا پیش‌بینی خود را انجام می‌دهد. در این فرآیند، ترتیب و ساختار داده‌ها اهمیت زیادی دارد، زیرا هر لایه اطلاعات را به شکل پیوسته و با حفظ ارتباط مکانی بین پیکسل‌ها به لایه بعدی منتقل می‌کند.

همان طور که متوجه شدید، در شبکه‌های عصبی معمولی یک ترتیبی برای انتشار اطلاعات داده ورودی در طول شبکه وجود دارد. به این صورت که لایه اول خروجی‌های خود را به لایه دوم ارسال می‌کند، لایه دوم به لایه سوم و ... اما در شبکه‌های عصبی گرافی (GNNs)، انتشار اطلاعات به طور همزمان در تمام گره‌های گراف صورت می‌گیرد. یعنی هیچ گره یا لایه ابتدایی برای آغاز فرآیند انتشار وجود ندارد. این کار با به‌روزرسانی اطلاعات هر گره به تعداد دفعات از پیش تعیین‌شده‌ای انجام می‌شود. ارزش جدید هر گره تحت تأثیر اطلاعات خود گره و همچنین گره‌هایی که با آن یال مشترک دارند، یعنی همسایگانش، قرار می‌گیرد. به این ترتیب، هر گره برای به‌روزرسانی اطلاعات خودش از اطلاعات همسایگان خود نیز بهره می‌برد تا نمایشی غنی‌تر و دقیق‌تر از گراف ایجاد کند.

۲.۲ پیام‌ رسانی در شبکه‌های عصبی گرافی

حال که با تفاوت اصلی نحوه عملکرد شبکه‌های عصبی معمولی و گرافی آشنا شدیم، می‌توانیم دقیق‌تر فرآیند انتشار اطلاعات در شبکه‌های عصبی گرافی را بررسی کنیم. در شبکه‌های عصبی گرافی فرآیند انتشار اطلاعات بین همه گره‌ها به عنوان «پیام‌ رسانی» یا Message Passing شناخته می‌شود. با هر دور از پیام‌ رسانی، اطلاعات بیشتری در سراسر گراف پخش می‌شود. پس از چندین دور پیام‌ رسانی، در نهایت به یک نمایش نهایی از هر گره در گراف می‌رسیم که آن گره را بهتر توصیف می‌کند.

می‌توانیم هر دور پیام‌ رسانی را مانند لایه‌های مختلف شبکه‌های عصبی کانولوشنی تصور کنیم. همان‌طور که در CNN‌ها لایه‌های مختلف مسئول استخراج ویژگی‌های متفاوت از داده‌ها هستند، در GNN‌ها هم هر دور پیام‌ رسانی به گره‌ها کمک می‌کند تا اطلاعات بیشتری از گراف دریافت کنند و نمایشی دقیق‌تر از خود در فضای گراف داشته باشند. به این ترتیب، هرچه تعداد دورهای پیام‌رسانی بیشتر باشد، گره‌ها اطلاعات غنی‌تری از محیط خود کسب می‌کنند و این به GNN اجازه می‌دهد تا روابط پیچیده‌تری را در گراف درک و مدل‌سازی کند.

در واقع طی فرآیند پیام‌ رسانی، شبکه عصبی گرافی تلاش می‌کند که تمام اطلاعات مربوط به هر گره را به یک نمایش عددی خلاصه کند. گره‌هایی که از لحاظ ویژگی‌ها و ارتباطات بیشتر به هم شبیه هستند، در این فضای عددی به یکدیگر نزدیک‌تر خواهند بود. به این نمایش عددی از اطلاعات یا ویژگی‌های هر گره «بردار تعبیه گره» یا Node Embedding گفته می‌شود. فضایی که شامل تمامی این نمایش‌های عددی ممکن است، «فضای تعبیه» یا Embeddings Space نامیده می‌شود. در واقع، همان‌طور که مغز ما به صورت شهودی افراد با ویژگی‌های مشابه را در کنار هم قرار می‌دهد، GNNها نیز گره‌های مشابه را در فضای تعبیه به یکدیگر نزدیک می‌کند تا نمایشی دقیق و بهینه از گراف و ارتباطات درونی آن ایجاد کند.

۲.۲.۱ نحوه کار پیام‌ رسانی در شبکه‌های عصبی گرافی

همان طور که متوجه شدید، یادگیری در شبکه‌های عصبی گرافی (GNNs) طی فرآیند پیام رسانی به این صورت انجام می‌شود که هر گره در گراف، طی فرایند پیام رسانی اطلاعات خود و همسایگانش را به‌روزرسانی می‌کند تا نمایشی دقیق‌تر و کامل‌تر از خودش داشته باشد. این فرآیند در دو مرحله اصلی انجام می‌شود که ما به آن‌ها تجمیع (Aggregation) و ترکیب (Combination) می‌گوییم. در گراف شکل زیر برای درک راحت‌تر، اطلاعات ذخیره شده در هر گره را با یک شکل و یک رنگ خاص نشان داده‌ایم. این شکل نشان می‌دهد که برای به‌روزرسانی تعبیه گره a ابتدا بردار تعبیه گره‌های همسایه آن یعنی b ،c و d را تجمیع کرده و سپس آن را با تعبیه بردار a ترکیب می‌کنیم:

فرآیند تجمیع و ترکیب در شبکه عصبی گرافی
فرآیند تجمیع و ترکیب در شبکه عصبی گرافی

به عبارت دیگر در مرحله اول، اطلاعات در قالب بردارهای تعبیه گره از همه گره‌هایی که با گره مورد نظر یک یال مشترک دارند، جمع‌آوری می‌شود و در مرحله دوم، این اطلاعات جمع‌آوری‌شده با بردار تعبیه فعلی گره مورد نظر ما ترکیب می‌شود تا بردار تعبیه جدیدی برای آن ایجاد شود.

توجه کنید که این دو مرحله با استفاده از توابعی انجام می‌شود که به ترتیب گره‌ها حساس نیستند. به این توابع، توابع ترتیب‌ناپذیر (Order-Invariant Function) می‌گویند؛ مانند مجموع، میانگین یا حداکثرگیری. در واقع با استفاده از این توابع در مراحل تجمیع و ترکیب، تضمین می‌کنیم که حتی اگر ترتیب گره‌ها عوض شد، نتیجه نهایی تغییر نکند. این ویژگی به خوبی با ساختار گراف‌ها سازگار است. در نهایت، لایه‌های مختلف در GNN‌ها همگی از این دو مرحله استفاده می‌کنند، اما ممکن است در نوع توابع و جزئیات دیگر با هم تفاوت داشته باشند.

۲.۲.۲ ریاضی پشت فرآیند پیام رسانی

حال که به صورت شهودی با عملیات پیام رسانی در شبکه‌های عصبی گرافی آشنا شدید، بیایید به صورت ریاضیاتی نیز این فرآیند را بررسی کنیم. برای این منظور به جای استفاده از شکل‌های رنگی، از مقادیر واقعی برای نمایش ویژگی‌های هر گره استفاده می‌‌کنیم. این ویژگی‌ها را به صورت یک ماتریس X در فضای R^NxC نمایش می‌دهیم که در آن N تعداد گره‌ها در گراف و C تعداد ویژگی‌ها برای هر گره است:

نمایش ویژگی‌های گره
نمایش ویژگی‌های گره

در سمت چپ تصویر بالا، ماتریس ویژگی‌ها را می‌بینید و در سمت راست گرافی با پنج گره. این بار، شکل‌های رنگی را با آرایه‌ها از اعداد که نمایان‌گر ویژگی‌های هر گره یا همان بردار تعبیه هر گره هستند، جایگزین کرده‌ایم. می‌بینید که هر گره سه ویژگی دارد که ممکن است نمایانگر اطلاعات مختلفی باشند. ماتریس X برای این گراف دارای ۳×۵ عنصر خواهد بود. ما در این مثال برای مرحله تجمیع از تابع Summation (مجموع‌گیری) و برای مرحله ترکیب از تابع Maximum (حداکثرگیری) به عنوان توابع ترتیب‌ناپذیر استفاده می‌کنیم.

در دور اول پیام رسانی برای راس a، ابتدا بردارهای تعبیه همسایه‌هایش را با یکدیگر جمع می‌کنیم که خروجی به صورت [1, 2.1, 0.9] خواهد بود و سپس تابع Max را روی بردار حاصل و بردار تعبیه خود گره aیعنی [0, 1, 1] اعمال می‌کنیم که حاصل برابر [1, 2.1, 1] خواهد بود. به این ترتیب بردار تعبیه گره a در دور اول پیام رسانی به این بردار تبدیل می‌شود.

برای تمرین بیشتر می‌توانیم همین کار را برای گره d انجام دهیم. ابتدا بردار تعبیه فعلی a (توجه کنید که به‌روزرسانی بردار تعبیه هر گره در هر دور از پیام رسانی، هم‌زمان انجام می‌شود) و e را با یکدیگر جمع می‌کنیم که حاصل به صورت [0, 2, 1.4] در خواهد آمد. سپس تابع حداکثرگیری را روی آن و بردار تعبیه d اعمل می‌کنیم و به این ترتیب بردار تعبیه d به [0.3, 2, 1.4] تغییر خواهد کرد.

نحوه به‌روزرسانی بردار تعبیه سایر گره‌ها در شکل زیر قابل مشاهده است:

به‌روزرسانی بردار تعبیه گره‌ها
به‌روزرسانی بردار تعبیه گره‌ها

در پایان ماتریس ویژگی‌های جدید را که با بردارهای تعبیه به‌روزشده پر شده است، به یک تابع قابل آموزش و تفکیک‌پذیر ɸ (مانند یک لایه کاملاً متصل یا MLP) می‌دهیم. یا به عبارت دیگر، آن را در یک ماتریس با وزن‌های قابل یادگیری W ضرب می‌کنیم. ادامه مراحل تشکیل شبکه عصبی گرافی به نوع مسئله‌ای (در سح گراف، گره یا یال) که می‌خواهیم آن را حل کنیم بستگی دارد.

۲.۳ انواع شبکه‌های عصبی گرافی

انواع مختلفی از شبکه‌های عصبی گرافی وجود دارند که هر کدام با معماری‌ها و الگوریتم‌های خاص خود، برای حل مسائل مختلف بهینه‌سازی شده‌اند. در این بخش، به بررسی انواع مختلف شبکه‌های عصبی گرافی و کاربردهای آن‌ها خواهیم پرداخت:

۲.۳.۱ شبکه‌های عصبی کانولوشنی گرافی

شبکه‌های عصبی کانولوشنی گرافی (Graph Convolutional Networks - GCN) یکی از معروف‌ترین و پرکاربردترین انواع شبکه‌های عصبی گرافی هستند. GCNها به دلیل سادگی و کارایی بالا در مسائل مختلفی مانند دسته‌بندی گره‌ها، پیش‌بینی پیوندها و یادگیری نمایشی در گراف‌ها استفاده می‌شوند. ایده اصلی در GCN این است که عملیات کانولوشن، که به‌طور سنتی در پردازش تصاویر مورد استفاده قرار می‌گیرد، به گراف‌ها تعمیم داده شود. در پردازش تصویر، عملیات کانولوشن با استفاده از فیلترها یا هسته‌ها انجام می‌شود که بر روی بخشی از تصویر حرکت می‌کنند و ویژگی‌های محلی آن را استخراج می‌کنند. به‌ طور مشابه، در GCN، عملیات کانولوشن بر روی گراف‌ها اجرا می‌شود تا اطلاعات موجود در گره‌ها و همسایگانشان استخراج شود.

در GCN، هر گره گراف بر اساس ویژگی‌های خود و ویژگی‌های همسایگانش به‌روزرسانی می‌شود. این به‌روزرسانی به این صورت انجام می‌شود که ابتدا ویژگی‌های همسایگان یک گره جمع‌آوری شده و سپس با ویژگی‌های خود گره ترکیب می‌شود تا یک نمایش جدید و بهینه از گره حاصل شود. این فرآیند باعث می‌شود که هر گره نه تنها اطلاعات مربوط به خود را حفظ کند، بلکه اطلاعات مربوط به همسایگانش را نیز در خود جمع‌آوری کند.

شبکه‌های عصبی کانولوشنی گرافی به دلیل سادگی و کارایی در مسائل مختلف گرافی به‌ویژه در حوزه‌های زیر کاربرد دارند:

  • طبقه‌بندی گره‌ها (Node Classification): GCNها به‌خوبی برای دسته‌بندی گره‌ها در گراف‌های اجتماعی، بیولوژیکی و شبکه‌های دیگر استفاده می‌شوند. به عنوان مثال، در گراف‌های اجتماعی، می‌توانند برای شناسایی و دسته‌بندی کاربران به گروه‌های مختلف بر اساس رفتار و ویژگی‌های آن‌ها مفید باشند.
  • پیش‌بینی پیوندها (Link Prediction): GCNها می‌توانند برای پیش‌بینی ارتباطات احتمالی میان گره‌ها در گراف‌های اجتماعی، شبکه‌های ارتباطی یا سیستم‌های توصیه استفاده شوند. به عنوان مثال، پیش‌بینی اینکه چه کاربرانی ممکن است دوستان جدید یک کاربر شوند یا چه محصولاتی ممکن است مورد علاقه کاربران باشند.

۲.۳.۲ شبکه‌های عصبی گرافی با مکانیسم توجه

شبکه‌های عصبی گرافی با مکانیسم توجه (Graph Attention Networks - GAT) یکی از پیشرفته‌ترین معماری‌های GNN است که به‌ویژه برای مقابله با برخی از محدودیت‌های GCN طراحی شده است. در GCNها، وزن‌دهی به همسایگان یک گره به‌صورت یکنواخت انجام می‌شود، یعنی همه همسایگان به‌طور برابر در به‌روزرسانی ویژگی‌های گره مؤثر هستند. اما در بسیاری از مسائل، برخی از همسایگان ممکن است اهمیت بیشتری نسبت به دیگران داشته باشند. اینجاست که مکانیسم توجه (Attention) وارد عمل می‌شود.

این شبکه‌های عصبی گرافی از مکانیسم توجه استفاده می‌کند تا به هر یک از همسایگان گره، وزن متفاوتی اختصاص دهد، که این وزن نشان‌دهنده اهمیت آن همسایه برای گره مرکزی است. به عبارت دیگر، GAT به شبکه اجازه می‌دهد که به طور هوشمند تصمیم بگیرد کدام همسایگان باید تأثیر بیشتری بر روی به‌روزرسانی ویژگی‌های گره مرکزی داشته باشند. این مکانیسم توجه به صورت خودکار و با استفاده از یک شبکه عصبی کوچک که وزن‌های توجه را محاسبه می‌کند، پیاده‌سازی می‌شود.

۲.۳.۳ شبکه عصبی گرافی با نمونه‌گیری

شبکه‌های عصبی GraphSAGE (مخفف Graph Sample and Aggregate) یک معماری شبکه عصبی گرافی است که با هدف مقیاس‌پذیری بهتر در گراف‌های بزرگ و پراکنده طراحی شده است. این مدل بر اساس دو ایده اصلی بنا شده است: نمونه‌گیری و تجمیع.

در شبکه‌های عصبی گرافی سنتی مانند GCN تمام همسایگان یک گره برای به‌روزرسانی ویژگی‌های آن گره در نظر گرفته می‌شوند. اما در گراف‌های بزرگ و پیچیده که ممکن است هر گره هزاران همسایه داشته باشد، این روش به شدت غیرعملی و محاسباتی سنگین می‌شود. GraphSAGE برای حل این مشکل از تکنیک نمونه‌گیری استفاده می‌کند. به این صورت که به جای استفاده از همه همسایگان، فقط تعداد محدودی از آن‌ها به‌طور تصادفی انتخاب می‌شوند تا در فرآیند به‌روزرسانی گره استفاده شوند.

پس از نمونه‌گیری، گره مرکزی ویژگی‌های این همسایگان انتخاب‌شده را با استفاده از یک تابع تجمیع ترکیب می‌کند. این توابع تجمیع می‌توانند شامل مجموع، میانگین یا حتی یک شبکه عصبی کوچک باشند که اطلاعات همسایگان را پردازش کرده و آن‌ها را به یک نمایش جدید ترکیب می‌کنند.

مزیت بزرگ GraphSAGE در این است که می‌تواند به راحتی با گراف‌های بسیار بزرگ و پراکنده کار کند، جایی که استفاده از مدل‌های دیگر ممکن است بسیار زمان‌بر یا غیرممکن باشد. همچنین، این مدل می‌تواند تعبیه‌های گره‌ها را به صورت کارآمدتر و سریع‌تر تولید کند، که این ویژگی در مسائل دنیای واقعی که با حجم بزرگی از داده‌ها سروکار دارند، بسیار ارزشمند است.

خلاصه مطالب گفته شده در این قسمت را می‌توانید در جدول زیر ببینید:

جدول جمع‌بندی انواع GNNs
جدول جمع‌بندی انواع GNNs

۳. جمع‌بندی

در پایان، شبکه‌های عصبی گرافی (GNNs) به عنوان یک ابزار قدرتمند در پردازش داده‌های پیچیده و گراف‌محور مطرح شده‌اند. این شبکه‌ها با استفاده از ساختارهای گرافی می‌توانند به خوبی روابط پیچیده و چندبعدی بین داده‌ها را مدل‌سازی کنند و در زمینه‌های مختلفی از جمله شبکه‌های اجتماعی، شبکه‌های مولکولی، و سیستم‌های توصیه‌گر کاربرد داشته باشند. توانایی GNNها در انتشار اطلاعات به صورت همزمان و تعامل با داده‌ها از طریق پیام‌رسانی، آن‌ها را به ابزاری کارآمد برای حل مسائل پیچیده تبدیل کرده است. به طور کلی، شبکه‌های عصبی گرافی نقش مهمی در پیشرفت‌های اخیر در حوزه‌های مختلف علم و فناوری ایفا می‌کنند و با ادامه تحقیقات و بهبودهای بیشتر، می‌توان انتظار داشت که کاربردهای بیشتری از این شبکه‌ها در آینده ظهور کند.

۴. سوالات متداول

۴.۱ شبکه‌های عصبی گرافی چه مزایایی نسبت به شبکه‌های عصبی سنتی دارند و در چه مواقعی باید از آن‌ها استفاده کنیم؟

شبکه‌های عصبی گرافی نسبت به شبکه‌های عصبی سنتی مزیت‌هایی مانند توانایی درک بهتر از داده‌های غیر ساختار یافته (Unstructured) و پیچیده دارند. این شبکه‌ها به‌ویژه برای مسائلی مناسب هستند که شامل روابط چندگانه و غیرخطی بین داده‌ها می‌شوند، مانند شبکه‌های اجتماعی، شبکه‌های مولکولی و شبکه‌های مغزی. استفاده از GNNs در این موارد به بهینه‌سازی پیش‌بینی‌ها و مدل‌سازی دقیق‌تر کمک می‌کند.

۴.۲ مکانیزم توجه (Attention Mechanism) در شبکه‌های عصبی گرافی چگونه کار می‌کند و چه کاربردی دارد؟

مکانیزم توجه (Attention Mechanism) در شبکه‌های عصبی گرافی (GNNs) به این شکل کار می‌کند که به هر یک از همسایگان گره، وزن متفاوتی اختصاص می‌دهد تا تأثیر آن‌ها بر گره مرکزی به طور هوشمند محاسبه شود. این مکانیزم به GNNs کمک می‌کند تا ارتباطات مهم‌تر در گراف را شناسایی کرده و مدل‌سازی دقیق‌تری انجام دهند. این ویژگی به‌ویژه در مسائلی که همه همسایگان گره اهمیت یکسانی ندارند، بسیار کاربردی است.

۴.۳ چگونه می‌توانیم از شبکه‌های عصبی گرافی برای تحلیل شبکه‌های اجتماعی استفاده کنیم؟

شبکه‌های عصبی گرافی (GNNs) می‌توانند برای تحلیل و مدل‌سازی روابط پیچیده در شبکه‌های اجتماعی استفاده شوند. با کمک GNNs می‌توان به‌طور مؤثر پیش‌بینی‌هایی مانند توصیه دوستان جدید، شناسایی گروه‌های مرتبط و حتی تحلیل رفتار کاربران را انجام داد. این شبکه‌ها با مدل‌سازی ساختارهای گرافی شبکه‌های اجتماعی، به درک بهتر از الگوهای ارتباطی و تأثیرات اجتماعی کمک می‌کنند.

۴.۴ چه تفاوتی بین شبکه‌های عصبی کانولوشنی گرافی (GCNs) و شبکه‌های عصبی گرافی با مکانیسم توجه (GATs) وجود دارد؟

شبکه‌های عصبی کانولوشنی گرافی (GCNs) به‌طور معمول ویژگی‌های همسایگان گره‌ها را به صورت یکسان وزن‌دهی می‌کنند، در حالی که شبکه‌های عصبی گرافی با مکانیسم توجه (GATs) از مکانیسم توجه برای اختصاص وزن‌های متفاوت به همسایگان گره استفاده می‌کنند. این تفاوت به GATs امکان می‌دهد تا روابط پیچیده‌تر و دقیق‌تری را در گراف شناسایی کنند و برای مسائلی که نیاز به توجه ویژه به برخی ارتباطات دارند، مناسب‌تر باشند.

۴.۵ نقش فرآیند پیام‌ رسانی (Message Passing) در به‌روزرسانی اطلاعات گره‌ها در GNNها چیست و چگونه انجام می‌شود؟

فرآیند پیام‌ رسانی (Message Passing) در شبکه‌های عصبی گرافی (GNNs) نقش اساسی در به‌روزرسانی اطلاعات گره‌ها ایفا می‌کند. در این فرآیند، هر گره اطلاعات خود و همسایگانش را به‌روزرسانی می‌کند تا نمایشی دقیق‌تر و کامل‌تر از خود داشته باشد. این به‌روزرسانی در دو مرحله اصلی انجام می‌شود: تجمیع (Aggregation) و ترکیب (Combination). این فرآیند کمک می‌کند تا اطلاعات گره‌ها به‌صورت بهینه‌ای در کل گراف پخش شده و یک نمایش جامع از گراف ایجاد شود.

شبکه‌های عصبی
شاید از این پست‌ها خوشتان بیاید