تعلم الرسوم البيانية2009متوسط11 دقيقة قراءة
نموذج الشبكة العصبية البيانية
The Graph Neural Network Model
Scarselli, F. · Gori, M. · Tsoi, A. C. · Hagenbuchner, M. · Monfardini, G. — IEEE Transactions on Neural Networks
المشكلة
الشبكات العصبية التقليدية صُمِّمت للتعامل مع بيانات منتظمة البنية: الصور مرتّبة في شبكة بكسلات، والنصوص مرتّبة في تسلسل كلمات. لكن في الواقع، كثير من البيانات لا تتبع هذا النمط المنتظم. الجزيئات مثلاً هي ذرّات مرتبطة بروابط كيميائية، والشبكات الاجتماعية أشخاص تجمعهم علاقات صداقة، وصفحات الويب مستندات تربطها روابط تشعبية. لو حاولت إدخال بيان كهذا إلى شبكة عصبية تقليدية، ستضطر لتسطيحه إلى متجه مسطّح، وعندها تفقد كل المعلومات البنيوية — أيّ ذرة مرتبطة بأيّ ذرة، ومَن يعرف مَن. الميدان كان بحاجة إلى يستطيع التعلّم مباشرة من بنية البيان دون تدمير طوبولوجيته.
الإسهام
قدّم سكارسيلي وزملاؤه أول صياغة رسمية لشبكة عصبية بيانية. الفكرة الأساسية: كل عقدة تملك متجه حالة مخفية، يتمّ تحديثه بشكل تكراري عبر دالة انتقال تجمع معلومات من حالات الجيران وتسميات الحواف والعقد. يستمر التكرار حتى تستقر الحالات عند نقطة ثابتة، وهو أمر مضمون رياضياً لأن دالة الانتقال مشروطة بأن تكون تقلُّصية (بحسب مبرهنة باناخ للنقطة الثابتة). عند الاستقرار، تتولى دالة إخراج تحويل حالة كل عقدة إلى نهائي. يتعامل النموذج بشكل طبيعي مع البيانات الموجَّهة وغير الموجَّهة، الدورية وغير الدورية، ويُدرَّب بالكامل عبر الانتشار العكسي على التكرارات المفرودة باستخدام خوارزمية ألمَيدا-بينيدا.
الأثر
هذه الورقة هي البذرة التي نبت منها حقل الشبكات العصبية البيانية بالكامل. أرست الفكرة المحورية التي ورثتها كل الأعمال اللاحقة: دع كل عقدة تتبادل معلومات مع جيرانها بشكل تكراري حتى تبني تمثيلاً غنياً. جاءت GCN واختصرت دالة الانتقال إلى ضرب مصفوفي واحد، ثم عمّمت MPNN الإطار، وجعلت GraphSAGE النموذج استقرائياً، وأضافت GAT آلية الانتباه. اليوم، تُستخدم الشبكات العصبية البيانية في اكتشاف الأدوية، والتنبؤ بحركة المرور، وأنظمة التوصية، وفيزياء الجسيمات. كل هذا يعود إلى هذا المخطّط الأساسي من عام 2009.
التقليدية تشبه خط إنتاج في مصنع: كل قطعة تدخل بنفس الترتيب، تمرّ بنفس المعالجة، وتخرج بنفس الشكل. لكن الجزيئات وعلاقات الصداقة وخرائط الطرق ليست خطوط إنتاج — إنها شبكات مترابطة.
تتعامل مع البيانات وكأنها جلسة حوار بين جيران: كل عقدة تجلس مع جيرانها المباشرين، تسمع منهم آخر ما توصّلوا إليه، تمزجه مع معلوماتها، ثم تُحدِّث فهمها. بعد عدّة جولات، تجد أن عقدة في طرف البيان قد استوعبت معلومات من الطرف المقابل — لا لأنها قرأت البيان كله دفعة واحدة، بل لأن المعلومات انتقلت عبر تأثير التموّج من جار إلى جار.
الأمر يشبه إشاعة في قرية صغيرة: لا أحد يتحدث مع الجميع مباشرة، لكن بعد محادثات كافية يصل الخبر للجميع.
المشكلة: الشبكات العصبية تتوقع بيانات منتظمة، لكن العالم الحقيقي بيانات
قبل عام 2009، كانت الشبكات العصبية تتعامل مع نوعين أساسيين من البيانات:
-
متجهات ثابتة الحجم — شبكات كاملة الاتصال ترى المدخل كقائمة مسطّحة من الأرقام. لو عندك جزيء من 20 ذرة وآخر من 50 ذرة، لا تستطيع إدخالهما إلى الشبكة نفسها دون حشو مصطنع يُضيع البنية الأصلية.
-
تسلسلات أو شبكات منتظمة — الشبكات الالتفافية تستغل الترتيب المكاني للبكسلات، والشبكات التكرارية تستغل الترتيب الزمني للكلمات. كلاهما يفترض بنية منتظمة يمكن التنبؤ بها، وهذا بالضبط ما لا تملكه البيانات البيانية.
البيانات تكسر كل هذه الافتراضات: كل عقدة لها عدد مختلف من الجيران، لا يوجد ترتيب طبيعي «من اليسار إلى اليمين»، بل إنّ البيان الواحد يمكن تمثيله بعدة مختلفة بمجرد إعادة ترتيب العقد. كان الميدان بحاجة إلى نموذج تحترم حساباته طوبولوجيا البيان بدل أن يسطّحه ويفقد بنيته.
أساسيات البيانات: العقد والحواف والجوار
البيان يتكوّن من مجموعة عقد ومجموعة حواف تربط بينها. كل عقدة يمكن أن تحمل على شكل متجه ، وكل حافة يمكن أن تحمل تسمية . أما جوار العقدة فهو ببساطة مجموعة العقد المتصلة بها مباشرة.
البيانات تأتي بأشكال متعددة: موجَّهة حيث الحواف لها اتجاه (كمتابعات تويتر)، أو غير موجَّهة حيث العلاقة متبادلة (كصداقات فيسبوك)، أو دورية يمكنك فيها تتبّع الحواف والعودة لنقطة البداية، أو غير دورية بلا حلقات (كأشجار العائلة). الشبكة العصبية البيانية تتعامل مع كل هذه الأنواع بشكل طبيعي دون تعديل.
بنية البيان تُختصر بالكامل في مصفوفة التجاور : مصفوفة مربعة قيمتها إذا كانت العقدتان و متصلتين. وهناك أيضاً وهي مصفوفة قُطرية، كل عنصر فيها يمثّل عدد جيران العقدة . هاتان المصفوفتان هما الأساس الذي تُبنى عليه كل العمليات الحسابية على البيانات.
الفكرة الأساسية: كل عقدة تتعلّم من جيرانها
في الشبكة العصبية البيانية، كل عقدة تملك — يمكنك تخيّله كملخّص مكثّف لكل ما «تعرفه» هذه العقدة عن محيطها وعن البيان ككل. هذا المتجه يُحسب عبر دالة انتقال تنظر في أربعة عناصر:
-
سمات العقدة نفسها
-
تسميات حوافها
-
الحالات الحالية لجيرانها
-
سمات جيرانها
الصورة الذهنية هنا بسيطة: تخيّل كل عقدة كشخص في اجتماع مستدير. «حالته» هي فهمه الراهن للنقاش. في كل جولة، يسمع من جيرانه ما توصّلوا إليه، يدمجه مع معلوماته الخاصة، ويخرج بفهم جديد مُحدَّث. بعد جولات كافية، يصبح فهم كل شخص انعكاساً لكامل الغرفة — حتى لمن لم يتحدّث إليهم مباشرة.
التقارب: لماذا يستقر التكرار دائماً
هنا يطرح سؤال مهم: هل فعلاً ستتوقف هذه التحديثات التكرارية عن التغيُّر؟ لو ظلّت حالات العقد تتأرجح بلا استقرار، فالنموذج كله بلا فائدة. حلّ سكارسيلي وزملاؤه هذه المشكلة بأداة كلاسيكية من التحليل الدالّي: مبرهنة باناخ للنقطة الثابتة.
الفكرة ببساطة: إذا كانت الدالة — بمعنى أنها في كل مرة تُقرّب المخرجات من بعضها أكثر مما كانت المدخلات — فإن تكرار تطبيقها يتقارب حتماً نحو نقطة ثابتة وحيدة، بغض النظر عن نقطة البداية. الشرط الرياضي هو:
عملياً، يُفرض هذا الشرط أثناء بإضافة عقوبة على مقياس لدالة . النتيجة العملية: مهما اخترت قيماً ابتدائية للحالات، فإن التكرار يتقارب بسرعة أُسّية. تخيّل كرة تُلقيها في وادٍ — أينما رميتها، ستصل حتماً إلى القاع.
التعلُّم: الانتشار العكسي عبر البيان المفرود
تدريب الشبكة العصبية البيانية يعني إيجاد للدالتين و بحيث تُقلَّل — مثلاً في حالة . المشكلة هنا أن تتكرر عدّة مرات حتى التقارب، ما يُنتج بياناً حسابياً عميقاً جداً.
الحل الذي استخدمه سكارسيلي وزملاؤه هو خوارزمية ألمَيدا-بينيدا: بدلاً من فرد كل التكرارات وتطبيق عبرها (وهو مكلف جداً من حيث الذاكرة)، تحسب هذه الخوارزمية مباشرة عند النقطة الثابتة عبر الاشتقاق الضمني. المنطق واضح: عند النقطة الثابتة تكون ، فنشتق هذه المتطابقة ضمنياً ونحصل على التدرّج دون الحاجة لتخزين كل حالة وسيطة.
حلقة التدريب تتكوّن من مرحلتين متداخلتين:
-
المرحلة الأمامية: تكرار حتى تستقر الحالات (مرحلة الحالة)
-
المرحلة الخلفية: حساب تدرّجات الخسارة بالنسبة لـ بأسلوب ألمَيدا-بينيدا (مرحلة التعلُّم)
كلتا الدالتين و مُنفَّذتان كـ. ولضمان شرط التقلُّص على ، تُضاف عقوبة على النصف القطري الطيفي لـمصفوفة يعقوبي إلى دالة الخسارة.
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def transition(x_v, l_v, neighbors_x, neighbors_l, edge_l, W):
"""f_w: دمج سمات العقدة مع حالات الجيران وتسميات الحواف."""
agg = np.zeros_like(x_v)
for x_u, l_u, l_e in zip(neighbors_x, neighbors_l, edge_l):
msg = np.tanh(W['msg'] @ np.concatenate([x_u, l_u, l_e]))
agg += msg # جمع على كل الجيران
return np.tanh(W['self'] @ np.concatenate([l_v, agg]))
def gnn_forward(graph, W, tol=1e-5, max_iter=50):
"""كرّر f_w حتى تتقارب الحالات (النقطة الثابتة)."""
states = {v: np.zeros(d) for v in graph.nodes} # التهيئة لا تؤثر
for t in range(max_iter):
new_states = {}
for v in graph.nodes:
nbrs = graph.neighbors(v)
new_states[v] = transition(
states[v], graph.label(v),
[states[u] for u in nbrs],
[graph.label(u) for u in nbrs],
[graph.edge_label(v, u) for u in nbrs], W
)
# تحقق من التقارب: هل تغيّرت كل الحالات بأقل من tol؟
if all(np.linalg.norm(new_states[v] - states[v]) < tol
for v in graph.nodes):
break
states = new_states
# مرحلة الإخراج: g_w تحوّل الحالة المستقرة إلى تنبؤ
return {v: np.tanh(W['out'] @ np.concatenate([states[v], graph.label(v)]))
for v in graph.nodes}تمرير الرسائل: الفكرة التي عاشت أطول من الورقة
لو أزلت آلية النقطة الثابتة وتأملت ما تبقّى، ستجد النمط الذي ورثته كل شبكة عصبية بيانية جاءت بعد ذلك:
1. الرسالة — كل عقدة تُعدّ رسالة انطلاقاً من حالتها الحالية.
2. التجميع — كل عقدة تجمع الرسائل الواردة من جيرانها (بالجمع أو المتوسط أو الأقصى…).
3. التحديث — كل عقدة تدمج الرسائل المُجمَّعة مع حالتها لتُنتج حالة جديدة.
هذا هو إطار . في نموذج سكارسيلي الأصلي، كانت الدالة تقلُّصية والتكرار يستمر حتى النقطة الثابتة. النماذج التي جاءت لاحقاً (GCN وMPNN) استبدلت ذلك بعدد ثابت من — كل طبقة تمثّل جولة واحدة من تمرير الرسائل. لكن الوصفة الثلاثية واحدة لم تتغيّر.
عدد الطبقات (أو التكرارات) يحدّد : بعد طبقة، تكون كل عقدة قد وصلتها معلومات من عقد تبعد عنها حتى قفزات. هذا تماماً كما يتوسّع الحقل الاستقبالي في مع زيادة العمق.
القيود: ما اضطرت النماذج اللاحقة لمعالجته
رغم ريادتها، واجه النموذج الأصلي ثلاثة قيود شكّلت محور الأبحاث في العقد التالي:
-
قيد التقلُّص — اشتراط أن تكون تقلُّصية يُقيّد القدرة التعبيرية للنموذج، لأنه لا يستطيع تعلّم تمثيلات تحتاج تحويلات توسّعية. جاءت GCN وخفّفت هذا القيد باستخدام عدد ثابت من الطبقات بدل التكرار حتى .
-
— بعد تكرارات كثيرة، حالات العقد كلها تبدأ بالتقارب نحو قيم متشابهة، فتذوب الفوارق بينها. الأمر يشبه صورة تُعاد عليها فلاتر التنعيم مراراً حتى تصبح ضبابية تماماً.
-
التكلفة الحسابية — تكرار العملية حتى التقارب في كل خطوة تدريب مكلف جداً. لذلك تستخدم الشبكات البيانية الحديثة 2–4 طبقات من تمرير الرسائل فقط، بدلاً من عشرات التكرارات.
ما الذي تستطيع الشبكة العصبية البيانية فعله؟ ثلاثة مستويات للتنبؤ
الشبكات العصبية البيانية تستطيع إنتاج تنبؤات على ثلاثة مستويات مختلفة:
-
مستوى العقدة — كل عقدة على حدة. مثلاً: كشف الحسابات الوهمية في شبكة اجتماعية. هنا تُمرَّر الحالة المستقرة لكل عقدة إلى دالة الإخراج .
-
مستوى الحافة — التنبؤ بوجود علاقة بين عقدتين. مثلاً: اقتراح صداقات جديدة. تُدمج حالتا العقدتين ويُصنَّف الزوج.
-
مستوى البيان — تصنيف بيان بأكمله. مثلاً: هل هذا الجزيء سامّ؟ تُجمَّع حالات كل العقد (بالجمع أو المتوسط أو ) في متجه واحد يمثّل البيان، ثم يُصنَّف.
نموذج سكارسيلي الأصلي ركّز على مهام العقدة ومهام البيان. أما التنبؤات على مستوى الحافة والتقنيات الأكثر تطوراً للتجميع فجاءت مع النماذج اللاحقة.
لماذا كانت هذه الورقة مفصلية
2005
غوري وآخرون — أول تصوُّر للشبكة العصبية البيانية
طرح فكرة معالجة البيانات ذات البنية البيانية بالشبكات العصبية من خلال نشر الحالات بشكل تكراري. هذه هي البذرة التي بنى عليها سكارسيلي لاحقاً.
2009
سكارسيلي وآخرون — نموذج الشبكة العصبية البيانية (هذه الورقة)
الصياغة الرسمية الأولى للشبكة العصبية البيانية: دوال انتقال، تقارب نحو نقطة ثابتة، وتدريب بخوارزمية ألمَيدا-بينيدا. حجر الأساس لكل ما جاء بعده.
2014
الشبكات البيانية الطيفية — برونا وآخرون
طبّقت الالتفاف على البيانات في المجال الطيفي باستخدام المتجهات الذاتية للابلاسيان. أنيقة رياضياً، لكنها مكلفة حسابياً.
2017
GCN — كيبف ويلينغ
اختصرت الالتفافات الطيفية إلى عملية ضرب مصفوفي واحدة لكل طبقة. هي التي جعلت الشبكات العصبية البيانية عملية ومنتشرة فعلاً.
2017
MPNN — جيلمر وآخرون
وحّدت كل الشبكات البيانية المكانية ضمن إطار واحد: رسالة، تجميع، تحديث. وأثبتت أن GCN وGraphSAGE وغيرها ما هي إلا حالات خاصة.
2018
GAT — فيليتشكوفيتش وآخرون
أدخلت آلية الانتباه إلى تمرير الرسائل: كل عقدة تتعلم تلقائياً أيّ جيرانها أهم. كل جار يحصل على وزن مختلف يُتعلَّم أثناء التدريب.
2020
الشبكات العصبية البيانية تدخل الصناعة
بدأ النشر على نطاق صناعي: Pinterest للتوصيات، وخرائط Google لتقدير وقت الوصول، وDeepMind للتنبؤ بالطقس، إضافة إلى أنظمة اكتشاف الأدوية.
GCN هي في جوهرها اختصار لـتمرير الرسائل عند سكارسيلي إلى ضرب مصفوفي واحد، وMPNN هي تعميم الحلقة الثلاثية نفسها في إطار رسمي موحّد. الفكرة التي بدأت بـ«دع كل عقدة تتحدث مع جيرانها» تقود اليوم أنظمة تصمّم أدوية، وتتنبأ بحركة المرور، وتكشف الاحتيال.
المرجعScarselli, Gori, Tsoi, Hagenbuchner, Monfardini. The Graph Neural Network Model. IEEE Transactions on Neural Networks, 2009.
مصطلحات هذه الورقة
- الشبكات العصبية الرسومية (البيانية)Graph Neural Network (GNN)
- تمرير الرسائلMessage Passing
- مصفوفة التجاورAdjacency Matrix
- تصنيف العُقدNode Classification
- الالتفاف الرسوميGraph Convolution
- الإفراط في التنعيمOver-Smoothing
- التقليص الانكماشيContraction Mapping
- مصفوفة الدرجاتDegree Matrix
- لابلاسيان الرسم البيانيGraph Laplacian
- المجال الطيفيSpectral Domain
- التعلم التبادليTransductive Learning