اگه با دنیای هوش مصنوعی و یادگیری ماشین حال میکنی، حتما واژهی “یادگیری بدون ناظر” یا همون Self-supervised Learning به گوشت خورده؛ مخصوصاً وقتی میخوایم دادههای گراف (مثلاً شبکههای اجتماعی یا پایگاههای مقالهها) رو یاد بگیریم. خلاصه یادگیری بدون ناظر یعنی یهو لازم نیست به هر داده، دستی برچسب بدی؛ خودش با ترفندهایی میفهمه چی به چیه.
حالا مشکل اینه که بیشتر روشهایی که الان برای یادگیری گراف به صورت بدون ناظر ساختن، فقط رو یه dataset کار میکنن و خیلی وقتا خب، همون جایی که آموزش دیدن جواب میدن ولی وقتی بخوای بزنیشون رو دادههای جدید، وای میشی! به این حالت میگن “انتقالپذیری پایین”؛ یعنی نمیتونن دانشی که تو یه دیتا نوش جون کردن رو ببرن جاهای دیگه استفاده کنن.
اینجا بچهها اومدن یه کار باحال کردن: یه benchmark (یا همون معیار و ابزار سنجش که بتونی دقیق و استاندارد روشهای مختلف رو با هم مقایسه کنی) ساختن به اسم GSTBench. این اولین باره که کسی واقعاً اومده به طور سیستماتیک و جدی بررسی کنه که روشهای یادگیری بدون ناظر گراف چقدر میتونن به جاهای دیگه منتقل بشن.
چی کار کردن دقیقاً؟ اومدن کلی مدل رو گرفتن، با یه دیتاست خیلی بزرگ و مهم به اسم ogbn-papers100M (که یه عالمه مقاله و وصل بینشونه؛ یه جور شبکه عظیم مقالههای علمی) به صورت بدون ناظر آموزش دادن و بعد بردن این مدلها رو چندتا گراف مختلف تست کردن ببینن اینا میتونن دانشی که اونجا جمع کردن رو جای دیگه هم به درد بخورن یا نه.
اینم بگم که تو این آزمایش، همه چی خیلی منظم و استاندارد بوده. مثلاً فرق داشتن مدلها یا نوع دیتاست یا این که چطور modelها رو با محیط جدید وفق بدن (Adaptation Protocol) رو جوری جدا کردن که بتونن دقیق فقط تاثیر هدف pretraining (یا همون وظیفهای که مدل تو آموزش اولیه داشته) رو ببینن.
حالا چی فهمیدن؟ خیلی با حاله: بیشتر روشهای یادگیری بدون ناظر برای گرافها، حتی از حالت تصادفی هم بدتر عمل میکنن موقعی که میخوان منتقل شن! یعنی اگه مدل رو همینطوری بدون آموزش با پارامترای رندوم بذاری، کلی وقتا بهتر جواب میگیری تا اینکه با این روشا آموزش ببینی و بعد منتقل کنی. واقعاً عجیب بود.
ولی یه روش هست به اسم GraphMAE که مال خانوادهی Masked Autoencoderهاست (یعنی مدل به بعضی تیکههای گراف دسترسی نداره و باید حدس بزنه کدوم گرهها یا لبهها بودن. اینطوری مدل باهوش میشه چون باید تو ذهنش ارتباطهای گراف رو بفهمه)، این یکی انصافاً خوب جواب داده و اکثراً بعد انتقال عملکرد بهتری داشته.
در نهایت، این مقاله علاوه بر این که یه benchmark حسابی ارائه داده که همه بیان باهاش مدلهاشون رو تست کنن، کلی نکته و راهنمایی درباره اینکه چرا مدلها خوب منتقل نمیشن و چی کار میتونیم بکنیم تا بهتر شه هم گفته. این کار باعث میشه راه جدیدی باز بشه برای مدلهایی که مثل مدلهای زبانی بزرگ (Foundation Models) میتونن اول کلی چیز یاد بگیرن، بعد به راحتی روی هر دادهی جدیدی منتقل بشن (Pretrain-then-Transfer). کدهاشون هم رایگان گذاشتهن تو گیتهاب: https://github.com/SongYYYY/GSTBench
خلاصه، اگه دنبال ساختن مدلهای باحال و عمومی برای گرافها هستی و میخوای مدلت رو از یه دیتاست به دیتاست دیگه ببره و همچنان باهوش بمونه، دیتابیس GSTBench رو اصلاً از دست نده!
منبع: +