تعلم الرسوم البيانية2018متوسط9 دقيقة قراءة
شبكات الانتباه البيانية
Graph Attention Networks
Veličković, P. · Cucurull, G. · Casanova, A. · Romero, A. · Liò, P. · Bengio, Y. — ICLR
المشكلة
شبكات GCN تجمع سمات الجيران باستخدام أوزان ثابتة تُشتقّ من بنية الرسم البياني، وتحديداً من درجة العقدة. عقدة لديها خمسة جيران تمنح كلاً منهم خُمس الوزن بالضبط، بغضّ النظر عمّا إذا كان أحدهم يحمل معلومات حاسمة والآخر لا قيمة لسماته. الأساليب الطيفية تزيد المشكلة تعقيداً: مرشّحاتها مرتبطة بالمتجهات الذاتية لمصفوفة لابلاس الخاصة برسم بياني بعينه، فلا يمكن نقل ما تعلّمته إلى رسم بياني جديد لم يظهر أثناء التدريب. أما الأساليب غير الطيفية مثل GraphSAGE فتلجأ إلى أخذ عيّنة بحجم ثابت من الجيران، وبذلك تفقد جزءاً من المعلومات المتاحة في الجوار الكامل.
الإسهام
شبكة GAT تستبدل الأوزان الثابتة بآلية انتباه مُتعلَّمة تحدّد أهمية كل جار بناءً على محتوى سماته. كل عقدة تنظر إلى سماتها وسمات كل جار، وتحسب درجة توافق عبر شبكة تغذية أمامية مشتركة، ثم تُطبّق softmax لتحويل هذه الدرجات إلى أوزان مجموعها 1. الفكرة الجوهرية أن الترجيح هنا يعتمد على ما تحمله العقد من معلومات، لا على الشكل الهندسي للرسم البياني وحده. لتثبيت التعلّم والتقاط أنماط علاقات متنوعة، تستخدم GAT عدة رؤوس انتباه تعمل بالتوازي ثم تُدمج نتائجها. الطريقة فعّالة حسابياً لأن الانتباه يُحسب على الأضلاع فقط، وتعمل على رسوم بيانية جديدة لم تظهر في التدريب. حققت أفضل النتائج على Cora بنسبة 83.0% وCiteseer بنسبة 72.5% وPPI بدقة micro-F1 تبلغ 97.3%.
الأثر
جعلت GAT الانتباه مكوِّناً محورياً في الشبكات العصبية البيانية. الفكرة الأساسية — ترجيح الجيران بناءً على المحتوى دون الحاجة إلى تفكيك طيفي — أصبحت الذي بُنيت عليه أعمال لاحقة كثيرة مثل GATv2 وGraphormer ومحوِّلات الرسوم البيانية. هذه الورقة مدّت جسراً بين عالم المحوِّلات وعالم الشبكات البيانية، وأظهرت أن مبدأ الانتباه الذي غيّر مجال معالجة اللغة الطبيعية يصلح أيضاً للبيانات ذات البنى غير المنتظمة التي لا تقع على شبكة منتظمة.
تخيّل اجتماعاً لسكّان حيّ يناقشون إصلاح الشارع. في عالم GCN، كل شخص حول الطاولة يحصل على وقت حديث متساوٍ تماماً: المهندس المدني والكهربائي والجار الذي انتقل إلى الحي بالأمس — الكل بوزنٍ واحد، بغضّ النظر عن خبرته.
GAT تُغيِّر القواعد: قبل أن يُتّخذ القرار، كل ساكن يتأمّل ما يعرفه كل جار ويمنحه درجة أهمية تناسب خبرته. الكهربائي حين يتحدث عن التمديدات يحصل على وزن مرتفع، والجار الجديد حين يتحدث عن تاريخ الحي يحصل على وزن أقل. النتيجة متوسط موزون تكون فيه الخبرة هي الفيصل.
هذا بالضبط ما تفعله طبقة البيانية: كل عقدة تطّلع على جيرانها، وتُقدِّر مدى أهمية كلٍّ منهم، ثم تجمع معلوماتهم بأوزان تعكس هذا التقدير.
المشكلة: وزن واحد لا يناسب جميع الجيران
تُحدِّث الشبكة الالتفافية البيانية كل عقدة بحساب متوسط سمات جيرانها، لكن الأوزان المستخدمة تُشتقّ من مصفوفة الدرجة فقط. إذا كان للعقدة ثلاثة جيران ، فإن وزن كل جار يعتمد على — أي على عدد الاتصالات فحسب، لا على طبيعة المعلومات التي يحملها الجار.
هذا الترجيح الثابت يُفضي إلى ثلاث مشكلات:
- غياب الانتقائية. في شبكة اقتباسات مثلاً، العقدة تُعامِل ورقة مرجعية أساسية وأخرى هامشية بالوزن ذاته، فتفقد القدرة على التمييز بين ما هو مهم وما ليس كذلك.
- الارتباط ببنية رسم بياني واحد. الأساليب الطيفية تتعلّم مرشّحات مبنية على لمصفوفة لابلاس رسمٍ بياني بعينه. نتيجةً لذلك، لا يمكن نقل النموذج المُدرَّب إلى رسم بياني آخر — وهذا قيد جوهري في المهام الاستقرائية كالتنبؤ بوظائف البروتينات في شبكات حيوية لم يرها النموذج من قبل.
- ضوضاء العيّنات. GraphSAGE تسحب عدداً ثابتاً من الجيران للحدّ من تكلفة الحساب، لكن ذلك يعني إسقاط بعض الجيران عشوائياً، مما يُدخل تشويشاً في التمثيل الناتج.
الفكرة: السمات هي من يحدّد أهمية كل جار
آلية الانتباه في GAT تمرّ بأربع خطوات. قبل الدخول في الرياضيات، تخيّل أن كل عقدة تحمل بطاقة تعريفية تصف ما تعرفه. حين تريد العقدة تحديث نفسها، تقرأ بطاقتها وبطاقة كل جار، تقيّم مدى التوافق مع كل واحد منهم، ثم تجمع معلوماتهم بنسب تعكس هذا التقييم.
الخطوة 1 — الخطي. سمات كل عقدة تُسقَط إلى فضاء جديد عبر مصفوفة مشتركة ، فنحصل على . الهدف هو نقل السمات الخام إلى فضاء تصبح فيه المقارنة بين العقد ذات معنى — الفكرة ذاتها المستخدمة في إسقاطات .
الخطوة 2 — حساب معاملات الانتباه. دالة انتباه مشتركة تأخذ السمات المُسقَطة لعقدتين متجاورتين وتُنتج درجة صِلة واحدة (عدد قياسي). في GAT هذه الدالة عبارة عن بطبقة واحدة مع تنشيط .
الخطوة 3 — تسوية بـ مُقنَّع. تُسوَّى الدرجات عبر جوار كل عقدة بحيث يصبح مجموعها 1. النقطة المهمة أن الانتباه لا يُحسب بين كل أزواج العقد في الرسم البياني، بل فقط بين العقد المتصلة فعلياً — العقدة تنظر إلى جيرانها فحسب.
الخطوة 4 — التجميع الموزون. أوزان الانتباه بعد التسوية تُضرب في السمات المُسقَطة لكل جار، وتُجمع النتائج للحصول على الجديد للعقدة.
الرياضيات: من السمات إلى المخرجات الموزونة بالانتباه
بعد أن اتضحت الصورة العامة، لننتقل إلى المعادلات. كل معادلة تُترجم خطوة من الخطوات الأربع التي فهمناها للتو.
تثبيت التعلّم: لماذا نحتاج عدة رؤوس انتباه؟
رأس انتباه واحد قد يلتقط نمطاً واحداً من العلاقات ويتجاهل أنماطاً أخرى. الحل هو ، وهو الأسلوب ذاته المُستخدم في المُحوِّل. تُشغِّل GAT عدد من آليات الانتباه المستقلة بالتوازي، لكل واحدة مصفوفة أوزان ومتجه انتباه خاصان بها. في تُسلسَل مخرجات الرؤوس الـ معاً:
في (طبقة التنبؤ) لا يصلح التسلسل لأنه سيُضاعف البُعد مرات، فيُستبدَل بأخذ المتوسط قبل التنشيط النهائي:
الصورة الكاملة: كيف تُبنى شبكة GAT
في مهمة مثل ، تتكون بنية GAT من طبقتي انتباه بيانيتين فوق بعضهما. الطبقة الأولى تُشغِّل رؤوس انتباه، كل رأس ينتج سمات (فيصبح الإجمالي 64 سمة بعد التسلسل)، مع ELU. الطبقة الثانية تستخدم رأساً واحداً ينتج سمة (واحدة لكل فئة)، تعقبها softmax لإخراج التصنيف.
ضروري هنا لأن بيانات التدريب صغيرة جداً (20 عقدة مُصنَّفة فقط لكل فئة في Cora). يُستخدم تنظيم L2 بقيمة و بنسبة على سمات المدخل وعلى معاملات الانتباه أيضاً. إسقاط معاملات الانتباه فكرة ذكية: في كل خطوة تدريبية ترى العقدة مجموعة فرعية مختلفة من جيرانها، وكأنها شكل من أشكال على الرسوم البيانية.
أما في مهمة PPI الاستقرائية، فتستخدم GAT ثلاث طبقات بـ رؤوس (256 سمة لكل رأس) مع . الطبقة الأخيرة تحسب متوسط رؤوس للتصنيف متعدد التسميات بتنشيط sigmoid.
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def leaky_relu(x, alpha=0.2):
return np.where(x > 0, x, alpha * x)
def softmax(x):
e = np.exp(x - x.max())
return e / e.sum()
def gat_head(h, W, a, adj):
"""
h: (N, F) — مصفوفة سمات العقد
W: (F', F) — إسقاط خطي مشترك
a: (2F',) — متجه أوزان الانتباه
adj: (N, N) — مصفوفة التجاور (1 = متصل)
"""
N = h.shape[0]
Wh = h @ W.T # (N, F') — أسقط كل العقد
F_prime = Wh.shape[1]
h_new = np.zeros_like(Wh)
for i in range(N):
neighbors = np.where(adj[i] > 0)[0] # يشمل الحلقة الذاتية
scores = []
for j in neighbors:
concat = np.concatenate([Wh[i], Wh[j]]) # (2F',)
e_ij = leaky_relu(a @ concat) # قيمة قياسية
scores.append(e_ij)
alpha = softmax(np.array(scores)) # أوزان الانتباه مجموعها 1
# التجميع الموزون
h_new[i] = sum(alpha[k] * Wh[neighbors[k]]
for k in range(len(neighbors)))
return h_new # (N, F')ما الذي يميّز GAT؟ ثلاث خصائص جوهرية
النتائج: تفوّق الانتباه على الترجيح الثابت
اختُبرت GAT على أربع مجموعات بيانات: ثلاث شبكات اقتباسات أكاديمية بأسلوب تحويلي (Cora وCiteseer وPubmed)، ومجموعة بيانات تفاعل البروتينات PPI بأسلوب استقرائي.
في المهام التحويلية، تفوّقت GAT على GCN بنسبة 1.5% على Cora و1.6% على Citeseer. لكن الفارق الأبرز ظهر في PPI: حققت GAT نسبة 97.3% في micro-F1، أي تحسّن بمقدار 20.5% مقارنةً بأفضل نسخة من GraphSAGE. هذه النتيجة تؤكّد بوضوح فائدة النظر إلى الجوار الكامل وترجيحه بناءً على المحتوى.
ولعزل أثر آلية الانتباه تحديداً، أُجريت تجربة مقارنة بين GAT ونسخة "Const-GAT" تستخدم البنية ذاتها لكن بانتباه ثابت (أي تجميع منتظم كما في GCN). النتيجة: تحسّن بنسبة 3.9% على PPI لصالح الانتباه المُتعلَّم، مما يُثبت أن المكسب يأتي من آلية الانتباه نفسها لا من بقية التصميم.
العلاقة: انتباه GAT مقابل انتباه المحوِّل
يمكن التفكير في المُحوِّل بوصفه حالة خاصة من GAT يعمل على رسم بياني كامل الاتصال — كل متصل بكل رمز آخر. لكن GAT تختلف في ثلاث نقاط جوهرية:
- انتباه مُتفرِّق. GAT لا تحسب الانتباه بين كل زوج عقد، بل فقط بين العقد المتصلة فعلياً. هذا يخفّض التعقيد إلى بدلاً من .
- آلية جمعية مقابل . المُحوِّل يستخدم انتباه الضرب النقطي المُقيَّس ()، بينما GAT تستخدم آلية جمعية (تسلسل السمات ثم طبقة خطية). الشكل الجمعي أكثر تعبيرية على مستوى كل زوج، لكنه لا يستفيد من كفاءة ضرب المصفوفات.
- لا حاجة إلى . بنية الرسم البياني توفّر المواضع ضمنياً — تحدّد مَن ينتبه لمَن.
ما جاء بعدها
2018
GAT — هذه الورقة
أول عمل يُطبّق الانتباه الذاتي المُقنَّع على الشبكات العصبية البيانية، مما أتاح ترجيح الجيران بناءً على المحتوى بطريقة استقرائية وقابلة للتوازي.
2021
GATv2
كشف Brody وزملاؤه أن انتباه GAT الأصلي «ساكن»: ترتيب الجيران من حيث الأهمية لا يتغيّر بتغيُّر العقدة السائلة. عالج GATv2 هذا القصور بتعديل ترتيب العمليات الداخلية فأصبح الانتباه ديناميكياً بالفعل.
2021
Graphormer
دمجت بنية المحوِّل مع ترميزات تعكس بنية الرسم البياني (الدرجة، أقصر مسار، سمات الأضلاع). فازت بتحدي OGB-LSC في الكيمياء الكمية، وأظهرت أن الانتباه الشامل على الرسم البياني قابل للتوسّع حين يُزوَّد بمعلومات بنيوية مسبقة.
2023
محوِّلات الرسوم البيانية على نطاق واسع
نماذج مثل GPS وExphormer مزجت بين تمرير الرسائل المحلي على طريقة GAT والانتباه الشامل على طريقة المحوِّل، فأصبح بالإمكان التعامل مع رسوم بيانية تضمّ ملايين العقد.
المرجعVeličković, Cucurull, Casanova, Romero, Liò, Bengio. Graph Attention Networks. ICLR, 2018.
مصطلحات هذه الورقة
- الشبكات العصبية الرسومية (البيانية)Graph Neural Network (GNN)
- الالتفاف الرسوميGraph Convolution
- آلية الانتباهAttention
- تمرير الرسائلMessage Passing
- تصنيف العُقدNode Classification
- الانتباه المتعدد المساراتMulti-Head Attention
- مصفوفة التجاورAdjacency Matrix
- سوفت ماكسSoftmax
- التعلم التبادليTransductive Learning
- انتباه الرسوم البيانيةGraph Attention