GML (Graph Machine Learning)

GML (Graph Machine Learning)

یادگیری ماشین گراف
GML (Graph Machine Learning)

GML (Graph Machine Learning)

یادگیری ماشین گراف

یادگیری ماشین گراف: مرور مفاهیم ۱

رمزگشایی شبکه‌های عصبی گراف قسمت 1


شبکه‌های عصبی گراف (GNN) در علم داده[1] و یادگیری ماشین مورد توجه قرار گرفته‌اند، اما هنوز در خارج از محافل متخصص به خوبی شناخته نشده‌اند. برای درک این رویکرد هیجان‌انگیز، باید با حوزه وسیع‌تر یادگیری ماشین گراف (GML) شروع کنیم. بسیاری از منابع آنلاین در مورد GNN و GML صحبت می‌کنند که گویی مفاهیم قابل تعویض هستند یا گویی GNNها یک رویکرد نوشدارویی هستند که سایر رویکردهای GML را منسوخ می‌کند. این به سادگی اینطور نیست. یکی از اهداف اصلی GML فشرده‌سازی ساختارهای داده گراف پراکنده بزرگ برای فعال کردن پیش بینی و استنتاج امکان پذیر است. GNNها یکی از راه‌های انجام این کار، شاید پیشرفته‌ترین راه، اما نه تنها راه هستند. درک این موضوع به ایجاد پایه بهتری برای بخش‌های آینده این مجموعه کمک می‌کند، جایی که ما انواع خاصی از GNN و رویکردهای GML مرتبط را با جزئیات بیشتری پوشش خواهیم داد.

 

در این پست به این موارد خواهیم پرداخت:

·         مروری کوتاه بر ساختارهای داده گراف[2] داشته باشیم

·         وظایف GML و انواع مسائلی که آنها حل می‌کنند را پوشش می‌دهیم

·         مفهوم فشرده‌سازی و اهمیت آن در راه‌اندازی رویکردهای مختلف GML، از جمله GNNها را بررسی می‌کنیم

 

گراف‌ها چیست؟

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

یک گراف شامل گره‌هایی است که با روابط به هم متصل شده‌اند. چند روش مختلف برای مدل‌سازی داده‌های گراف[3] وجود دارد. برای سادگی، من از مدل گراف ویژگی استفاده خواهم کرد که دارای سه جزء اصلی است:

۱) گره‌هایی که نهادها را نشان می‌دهند (گاهی اوقات رئوس نامیده می‌شوند)،

۲) روابطی که نشان دهنده ارتباط یا تعامل بین گره‌ها هستند (که گاهی لبه‌ها یا پیوندها نامیده می‌شوند) و

۳) ویژگی‌هایی که نشان دهنده ویژگی‌های گره‌ها یا روابط هستند.

 

یادگیری ماشین گراف (GML) چیست؟

در هسته خود، Graph Machine Learning[4] (GML) کاربرد یادگیری ماشین برای گراف‌ها به طور خاص برای کارهای پیش بینی و تجویزی است. GML موارد استفاده متنوعی در زنجیره تامین، کشف تقلب، توصیه‌ها، کشف دارو و موارد دیگر دارد.

یکی از بهترین راه‌ها برای درک GML از طریق انواع مختلف وظایف ML است که می‌تواند انجام دهد. من این را برای یادگیری تحت نظارت و بدون نظارت در زیر بیان می‌کنم.

 

وظایف GML تحت نظارت

گراف زیر سه مورد از رایج‌ترین وظایف GML را برای یادگیری نظارت شده نشان می‌دهد:

برای گسترش بیشتر:

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

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

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

وظایف GML بدون نظارت

در زیر چهار مورد از رایج‌ترین وظایف GML برای یادگیری بدون نظارت آورده شده است:

برای توضیح بیشتر این موارد:

۱. یادگیری بازنمایی: کاهش ابعاد با حفظ سیگنال‌های مهم موضوع اصلی برنامه‌های GML است. یادگیری بازنمایی گراف این کار را به صراحت با ایجاد ویژگی‌های کم‌بعد از ساختارهای گراف، معمولاً برای استفاده از آنها برای تجزیه و تحلیل داده‌های اکتشافی پایین‌دست[5] (EDA) و ML انجام می‌دهد.

۲. تشخیص انجمن (خوشه‌بندی برای روابط): تشخیص انجمن[6] یک تکنیک خوشه‌بندی برای شناسایی گروه‌هایی از گره‌های به هم پیوسته متراکم در یک گراف است. تشخیص انجمن کاربردهای عملی مختلفی در تشخیص ناهنجاری، تقلب و تجزیه و تحلیل تحقیقاتی، تجزیه و تحلیل شبکه‌های اجتماعی و زیست‌شناسی دارد.

۳. تشابه[7]: تشابه در GML به یافتن و معیار جفت گره‌های مشابه در یک گراف اشاره دارد. شباهت برای بسیاری از موارد استفاده، از جمله توصیه، حل نهاد[8]، و تشخیص ناهنجاری و تقلب، قابل اعمال است. تکنیک‌های مشترک شباهت شامل الگوریتم‌های شباهت گره[9]، پیش‌بینی پیوند توپولوژیکی[10] و K-Nearest-Neibor[11] (KNN) است.

۴. مرکزیت[12] و مسیریابی[13]: من اینها را با هم گروه‌بندی می‌کنم زیرا کمتر با وظایف ML مرتبط هستند و بیشتر با اقدامات تحلیلی مرتبط هستند. با این حال، آنها هنوز از نظر فنی در اینجا مناسب هستند، بنابراین برای کامل بودن آنها را پوشش خواهم داد. مرکزیت گره‌های مهم یا تاثیرگذار را در یک گراف پیدا می‌کند. مرکزیت در بسیاری از موارد استفاده، از جمله کشف تقلب و ناهنجاری، توصیه، زنجیره تامین، تدارکات و مسائل زیرساخت، همه جا وجود دارد. مسیریابی[14] برای یافتن کم‌هزینه‌ترین مسیرها در گراف یا ارزیابی کیفیت و در دسترس بودن مسیرها استفاده می‌شود. مسیریابی می‌تواند برای بسیاری از موارد استفاده از سیستم‌های فیزیکی مانند لجستیک، زنجیره تامین، حمل و نقل و زیرساخت مفید باشد.

 

چگونه فشرده‌سازی کلید GML است

من با این پست وبلاگ جالب[15] توسط مت رنجر مواجه شدم که این نکته را به زیبایی توضیح می‌دهد:

یکی از مهم‌ترین اهداف GML و تا حد زیادی پردازش زبان طبیعی نیز فشرده‌سازی ساختارهای داده پراکنده بزرگ و در عین حال حفظ سیگنال‌های مهم برای پیش‌بینی و استنتاج است.

یک گراف معمولی[16] را در نظر بگیرید که با یک ماتریس مجاورت، یک ماتریس مربع که در آن هر سطر و ستون نشان دهنده یک گره است، در نظر بگیرید. اگر یک رابطه از گره A به گره B برود، سلول در تقاطع ردیف A و ستون B 1 است. در غیر این صورت، 0 است. در زیر تصویری از چند گراف کوچک منظم و ماتریس‌های مجاورت آنها آورده شده است.

توجه داشته باشید که بسیاری از سلول‌های موجود در ماتریس‌های مجاورت فوق 0 هستند. اگر این را به گراف‌های بزرگ، به ویژه آنهایی که در برنامه‌های دنیای واقعی یافت می‌شوند، مقیاس کنید، نسبت صفرها افزایش می‌یابد و ماتریس مجاورت عمدتاً صفر می‌شود.

مثال گویا با استفاده از گراف پیشنهادی Last.fm از ابزارها و رویکردهای تجسم گراف بزرگ و تصویر ماتریسی[17] از Beck، Fabian و همکاران ایجاد شده است. شناسایی الگوهای مدولارسازی با مقایسه بصری سلسله مراتب چندگانه[18]

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

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

 

چگونه فشرده‌سازی را انجام دهیم؟ - رویکردهای یادگیری ماشین گراف

در بالاترین سطح، سه رویکرد GML برای انجام این فشرده‌سازی وجود دارد.

الگوریتم‌های گراف کلاسیک

الگوریتم‌های گراف کلاسیک شامل مواردی مانند PageRank[21]، Louvain[22] و Dijkstra’s Shortest Path[23] هستند. آنها می‌توانند به طور مستقل برای تشخیص انجمن بدون نظارت، شباهت، مرکزیت یا مسیریابی استفاده شوند. نتایج الگوریتم‌های کلاسیک همچنین می‌تواند به‌عنوان ویژگی‌هایی برای مدل‌های پایین دستی معمولی، مانند رگرسیون‌های خطی و لجستیک، جنگل‌های تصادفی یا شبکه‌های عصبی برای انجام وظایف GML مورد استفاده قرار گیرد.

الگوریتم‌های گراف کلاسیک ساده، آسان برای شروع، و نسبتاً قابل تفسیر و توضیح هستند. با این حال، آنها می توانند به کار دستی و تخصص موضوع[24] (SME) بیشتری نسبت به سایر رویکردهای GML نیاز داشته باشند. این باعث می‌شود که الگوریتم‌های گراف کلاسیک اولین انتخاب‌های خوبی در آزمایش و توسعه باشند تا به درک اینکه چه چیزی بر روی گراف شما بهتر عمل می‌کند. آنها همچنین می‌توانند برای مسائل ساده‌تر در تولید به خوبی عمل کنند، اما موارد استفاده پیچیده‌تر ممکن است نیاز به رویکرد GML دیگری داشته باشد.

 

تعبیه‌های گراف غیر GNN

تعبیه گراف شکلی از یادگیری بازنمایی است. برخی از تکنیک‌های تعبیه گراف از معماری GNN استفاده می‌کنند در حالی که برخی دیگر این کار را نمی‌کنند. گروه دوم، غیر GNN، تمرکز این رویکرد است. این تکنیک‌های تعبیه‌سازی در عوض بر فاکتورسازی/تجزیه ماتریس، پیش‌بینی‌های تصادفی، پیاده‌روی‌های تصادفی یا معماری‌های تابع هش متکی هستند. برخی از نمونه‌ها عبارتند از Node2vec[25] (بر اساس پیاده‌روی تصادفی)، FastRP[26] (پیش‌بینی تصادفی و عملیات ماتریس)، و [27]HashGNN (معماری تابع هش).

تعبیه گراف شامل تولید بردارهای عددی یا باینری برای بازنمایی گره‌ها، روابط، مسیرها یا کل گراف‌ها است. مهمترین آنها، تعبیه گره، از اساسی‌ترین و رایج‌ترین آنها است. ایده اصلی این است که برای هر گره یک بردار ایجاد کنیم به طوری که شباهت بین بردارها (به عنوان مثال محصول نقطه‌ای) شباهت بین گره‌ها را در گراف تقریبی کند. در زیر یک نمونه گویا از شبکه کوچک باشگاه کاراته[28] Zachary را مشاهده می‌کنید. توجه داشته باشید که چگونه ماتریس مجاورت به بردارهای تعبیه شده 2 بعدی برای هر گره فشرده می‌شود و چگونه آن بردارها با هم خوشه می‌شوند تا ساختار انجمن گراف را منعکس کنند. بیشتر تعبیه‌‌های دنیای واقعی بیش از دو بعد (128 تا 256 یا بالاتر) خواهند داشت تا گراف‌های دنیای واقعی بزرگ‌تر را با میلیون‌ها یا میلیاردها گره نشان دهند، اما شهود اصلی یکسان است.

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

تعبیه‌های غیر GNN می‌توانند از کاهش حجم کار دستی و SME مورد نیاز در مقایسه با الگوریتم‌های گراف کلاسیک بهره ببرند. در حالی که تعبیه‌های غیر GNN اغلب به تنظیم فراپارامتر برای درست شدن نیاز دارند، خودکارسازی و تعمیم آن‌ها در گراف‌های مختلف آسان‌تر است. به‌علاوه، برخی از تعبیه‌های غیر GNN مانند FastRP و HashGNN می‌توانند به‌خوبی در گراف‌های بزرگ در سخت‌افزار کالا مقیاس شوند، زیرا نیازی به آموزش مدل ندارند. این می‌تواند یک مزیت بزرگ نسبت به رویکردهای مبتنی بر GNN باشد.

با این حال، تعبیه‌های غیر GNN با برخی مصالحه‌ها نیز همراه هستند. آنها نسبت به الگوریتم‌های گراف کلاسیک کمتر قابل تفسیر و توضیح هستند، زیرا عملیات‌های ریاضی تعمیم‌یافته‌تر درگیر هستند. آنها همچنین عموماً انتقال دهنده[29] هستند، اگرچه پیشرفت‌های اخیر در Neo4j Graph Data Science به برخی از آنها اجازه میدهد تا به طور موثر در کاربردهای خاص به صورت استقرایی رفتار کنند. در ادامه این مجموعه، تنظیمات انتقالی و القایی را با عمق بیشتری پوشش خواهیم داد. این به توانایی پیش‌بینی داده‌های نادیده جدید مربوط می‌شود و یک نکته ضروری برای GML است.

 

شبکه‌های عصبی گراف[30] (GNN)

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

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

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

در وبلاگ بعدی خود، GNNها: چیستند و چرا اهمیت دارند، درباره GNNها بیشتر بحث خواهم کرد. در عین حال، اگر می‌خواهید با یادگیری ماشین[31] گراف شروع کنید، لطفاً به [32]Neo4j Graph Data Science نگاهی بیندازید. دانشمندان و مهندسان داده می‌توانند اسناد فنی برای شروع کار را در اینجا[33] بیابند.

 

بزرگ‌ترین نکات این پست:

·         Graph Machine Learning (GML) یک زمینه گسترده با کاربردهای مورد استفاده بسیاری است و شامل چندین کار مختلف نظارت شده و بدون نظارت ML است.

·         یکی از اهداف اصلی GML فشرده‌سازی ساختارهای بزرگ گراف پراکنده در حالی که سیگنال‌های مهم برای پیش‌بینی و استنتاج را حفظ می‌کند.

·         GNNها یکی از چندین رویکرد GML هستند که این فشرده‌سازی را انجام می‌دهند.



[5] Exploratory Data Analysis

[8] Entity Resolution

[14] Pathfinding

[24] subject matter expertise

نظرات 0 + ارسال نظر
ایمیل شما بعد از ثبت نمایش داده نخواهد شد