Graph Neural Network (GNN)
تتعلم الشبكة العصبية البيانية (GNN) من العقد والحواف عبر تمرير الرسائل بين الجيران. ويتناول هذا المفهوم تمرير الرسائل وGCN وGAT والاستخدامات العملية والبرمجيات.
الشبكة العصبية البيانية (GNN) هي شبكة عصبية تعمل مباشرةً على الرسوم البيانية: مجموعات من العقد المتصلة بحواف، ويمكن أن تحمل العقد والحواف سمات. فالجزيئات (الذرات والروابط)، والشبكات الاجتماعية (المستخدمون وعلاقات المتابعة)، وشبكات الطرق (التقاطعات ومقاطع الطرق)، والشبكات متعددة الأضلاع ثلاثية الأبعاد، ومفاصل الهيكل العظمي البشري كلها رسوم بيانية. وليس للرسم البياني شبكة أو ترتيب ثابتان، كما يختلف عدد جيران عقده، لذا لا تنطبق عليه مباشرةً المرشحات المنزلقة في الشبكة العصبية الالتفافية (CNN) ولا المعالجة خطوةً خطوة في الشبكة العصبية المتكررة (RNN). وتعالج GNNs ذلك بتمرير الرسائل: إذ تحدّث كل عقدة متجه سماتها مرارًا استنادًا إلى سمات جيرانها، فتنتج تضمينات للعقد ترمّز سماتها الخاصة وموضعها في الرسم البياني.
آلية عمل تمرير الرسائل#
تحدّث طبقة GNN كل عقدة في ثلاث خطوات. يرسل كل جار رسالة، تكون عادةً تحويلاً متعلّماً لسماته. تجمع العقدة الرسائل الواردة بدالة لا تعتمد على ترتيبها، مثل الجمع أو المتوسط أو القيمة القصوى. ثم تدمج الناتج مع سماتها لتكوين تمثيلها الجديد. وبما أن التجميع لا يعتمد على الترتيب، فلا تتأثر النتيجة بالطريقة التي رُقّمت بها العقد. وصف جاستن غيلمور وزملاؤه كثيراً من شبكات GNN بأنها تطبيقات لإطار عمل الشبكة العصبية لتمرير الرسائل في عام 2017. وبعد الطبقة الأخيرة، تقرأ طبقة إخراج مخصصة للمهمة تضمينات العقد لتصنيف العقد أو التنبؤ بالحواف المفقودة أو تصنيف رسم بياني بأكمله:
توسّع كل طبقة نطاق رؤية العقدة بمقدار قفزة واحدة، لذا يعتمد تضمين العقدة بعد k طبقات على كل عقدة تقع ضمن k حواف، أي مجال الاستقبال الخاص بها في الرسم البياني. ينشئ مقطع PyTorch أدناه رسم مسار بيانيّاً من ست عقد، ويطبّق ثلاث طبقات التفاف بياني مع التطبيع الوارد في شبكة GCN لتوماس كيبف وماكس ويلينغ، ويستخدم التدرّج التلقائي لسرد عقد الإدخال التي تؤثر في العقدة 0 بعد كل طبقة:
import torch
from torch import nn
# A path graph 0-1-2-3-4-5 as an adjacency matrix with self-loops
A = torch.eye(6)
for i in range(5):
A[i, i + 1] = A[i + 1, i] = 1
deg = A.sum(dim=1)
A_hat = A / torch.sqrt(deg[:, None] * deg[None, :]) # GCN normalization D^-1/2 (A + I) D^-1/2
torch.manual_seed(0)
x = torch.randn(6, 4, requires_grad=True) # 4 input features per node
layers = [nn.Linear(4, 4) for _ in range(3)]
h = x
for k, layer in enumerate(layers, start=1):
h = torch.tanh(A_hat @ layer(h)) # each node mixes in its neighbors' transformed features
grad = torch.autograd.grad(h[0].sum(), x, retain_graph=True)[0]
print(f"After layer {k}, node 0 depends on nodes {grad.abs().sum(dim=1).nonzero().flatten().tolist()}")يطبع [0, 1] و[0, 1, 2] و[0, 1, 2, 3]: ينمو مجال استقبال العقدة 0 بمقدار قفزة واحدة بالضبط في كل طبقة.
بنى GNN الشائعة#
- GCN: تحسب الشبكة الالتفافية البيانية H′ = σ(D̃^(−1/2) Ã D̃^(−1/2) H W)، حيث Ã مصفوفة التجاور مع حلقات ذاتية، وD̃ مصفوفة درجاتها: متوسط موزون بالدرجة لكل عقدة وجيرانها، تتبعه مصفوفة أوزان W مشتركة بين جميع العقد.
- GraphSAGE: تأخذ عينة من عدد ثابت من الجيران لكل عقدة وتتعلم دالة التجميع، ما يتيح لها التوسع إلى الرسوم البيانية الكبيرة جداً وتضمين العقد التي تظهر بعد التدريب.
- GAT: توزّن شبكات الانتباه البياني كل جار باستخدام درجات انتباه متعلّمة بدلاً من الأوزان الثابتة القائمة على الدرجة.
- GIN: تجمع شبكة تماثل الرسوم البيانية جيران العقدة وتطبّق شبكة MLP، وقد أثبت كيولو شو وزملاؤه أنها تضاهي اختبار وايسفايلر-ليمان في التمييز بين الرسوم البيانية، وهو الحد الأعلى لتمرير الرسائل القياسي.
- محولات الرسوم البيانية: تطبّق الانتباه الذاتي على جميع العقد وتضيف ترميزات موضعية مستمدة من بنية الرسم البياني. ويُعد المحوّل القياسي بحد ذاته شبكة GNN على رسم بياني كامل الاتصال من الرموز.
يؤدي تكديس طبقات كثيرة إلى فرط التنعيم: إذ يسحب حساب المتوسط المتكرر تضمينات العقد بعضها نحو بعض حتى تصبح غير قابلة للتمييز، ولهذا لا تستخدم كثير من شبكات GNN سوى طبقتين أو ثلاث، كما فعلت شبكة GCN الأصلية بطبقتين. تنفّذ PyTorch Geometric ومكتبة الرسوم البيانية العميقة (DGL) هذه الطبقات بكفاءة على قوائم الحواف المتناثرة.
تطبيقات عملية#
- التنبؤ بالطقس: يشغّل GraphCast من Google DeepMind، المنشور في مجلة Science عام 2023، تمرير الرسائل على شبكة متعددة المقاييس تغطي الكرة الأرضية، وينتج تنبؤات لعشرة أيام بدقة 0.25° في أقل من دقيقة، متفوقاً على أدق الأنظمة التشغيلية الحتمية في 90% من أصل 1,380 هدف تحقق.
- اكتشاف الأدوية: درّب باحثون في معهد ماساتشوستس للتكنولوجيا عام 2020 شبكة لتمرير الرسائل الموجّهة للتنبؤ بالنشاط المضاد للبكتيريا انطلاقاً من الرسوم البيانية الجزيئية، واستخدموها لاكتشاف هالسيين، وهو مركّب يختلف تركيبياً عن المضادات الحيوية المعروفة، وقد قضى على كثير من البكتيريا المقاومة للأدوية في الاختبارات المخبرية.
- أنظمة التوصية: تعلّمت PinSage من Pinterest تضمينات الدبابيس انطلاقاً من رسم بياني يضم 3 مليارات دبوس ولوحة و18 مليار حافة، ودُرّبت على 7.5 مليارات مثال.
- التعرّف على الأفعال القائم على الهيكل العظمي: تتعامل ST-GCN مع مفاصل الجسم بوصفها عقداً، وتصل بينها بالعظام في كل إطار وبالمفصل نفسه في الإطارات المجاورة، ثم تصنّف الفعل استناداً إلى الرسم البياني المكاني الزماني الناتج. تعيد نماذج تقدير الوضعية في YOLO26 17 نقطة مفتاحية من COCO لكل شخص في كل إطار، وهي إحداثيات المفاصل التي يُبنى منها رسم الهيكل العظمي البياني.
شبكات GNN والمفاهيم ذات الصلة#
- الرسم البياني المعرفي: بنية بيانات تخزّن الحقائق في ثلاثيات من كيان-علاقة-كيان. أما شبكة GNN فهي نموذج قادر على التعلم منها، مثلاً للتنبؤ بالروابط المفقودة.
- التعلم العميق الهندسي: المجال الأوسع للشبكات المبنية حول تناظرات بياناتها، ويشمل شبكات CNN على الشبكات المنتظمة، وشبكات GNN على الرسوم البيانية، والنماذج على الشبكات السطحية والمتشعبات.
- CNN: تطبيق CNN على صورة هو حالة خاصة لتمرير الرسائل على رسم بياني شبكي. إذ تمتلك كل بكسلة العدد نفسه من الجيران في مواضع نسبية ثابتة، لذا يمكن لشبكة CNN تعلّم وزن منفصل لكل موضع جار، وهو ما لا تستطيع شبكة GNN على رسم بياني غير منتظم فعله.










