تعلم الرسوم البيانية2017متوسط12 دقيقة قراءة

تمرير الرسائل العصبي للكيمياء الكمّية

Neural Message Passing for Quantum Chemistry

Gilmer, J. · Schoenholz, S. S. · Riley, P. F. · Vinyals, O. · Dahl, G. E. — ICML

المشكلة

حتى عام 2017، كان التنبؤ بخصائص الجزيئات بالتعلّم الآلي متأخراً كثيراً عن التقدّم الحاصل في الرؤية الحاسوبية ومعالجة اللغة. ظهرت بنى عديدة للشبكات العصبية البيانية — شبكات GG-NN، وشبكات التفاعل، والبصمات الجزيئية، والأساليب الطيفية — لكن كل واحدة جاءت بترميز مختلف وقواعد تحديث مختلفة ومخرجات مختلفة. لم يكن بإمكان الباحثين مقارنتها بسهولة أو دمج نقاط قوتها أو تحديد أيّ قرارات التصميم هي التي تصنع الفارق فعلاً. في المقابل، بقيت محاكاة الكيمياء الكمّية عبر نظرية الكثافة الوظيفية (DFT) هي الأداة المعتمدة، لكنّ حساباً واحداً لجزيء صغير كان يستغرق نحو ساعة — وهذا أبطأ بكثير مما يتطلبه اكتشاف الأدوية على نطاق واسع.

الإسهام

أعاد البحث صياغة ثمانية نماذج مختلفة للشبكات العصبية البيانية ضمن إطار موحَّد واحد سمّاه شبكات العصبية (MPNN). كل شبكة في هذا الإطار تُعرَّف بثلاث دوال فقط: دالة الرسالة M التي تحدّد ما ترسله كل عقدة لجيرانها، ودالة التحديث U التي تُحدِّث لكل عقدة، R التي تُجمِّع حالات العقد كلها في تنبؤ واحد على مستوى الرسم البياني بأكمله. ضمن هذا الإطار، استكشف المؤلفون صيغاً جديدة — شبكات حواف عصبية للسمات المتصلة، ودالة قراءة ، ، وبنى متعددة الأبراج — وحققوا أفضل النتائج على معيار QM9 للخصائص الجزيئية، إذ وصلوا إلى حدود الدقة الكيميائية في 11 من أصل 13 هدفاً.

الأثر

تحوّل إطار MPNN إلى اللغة المرجعية لوصف الشبكات العصبية البيانية. تجريد «رسالة–تحديث–قراءة» تبنّته عملياً كل ورقة بحثية ومكتبة برمجية ظهرت بعده — PyTorch Geometric وDGL وgraph_nets من DeepMind — وجميعها تتكلم بلغة MPNN. أثّر هذا الإطار مباشرةً في وحدة البنية ضمن AlphaFold 2 (التي تستخدم تمرير الرسائل على رسوم بيانية للأحماض الأمينية) وفي التحليل النظري لشبكة GIN (التي استندت إلى إطار MPNN لدراسة القدرة التعبيرية). أثبت MPNN أنّ تجريداً بسيطاً وعاماً قادر على توحيد حقل متشعّب ودفع حدوده التجريبية في آنٍ واحد.

تخيّل مكتب بريد يخدم قرية صغيرة. كل منزل يمثّل ذرة، والطرق بين المنازل تمثّل الروابط الكيميائية. كل صباح يكتب كل منزل بطاقة بريدية يصف فيها نفسه — نوع عنصره، وشحنته، وحالته — ويسلّم نسخاً منها لجيرانه المباشرين. يقرأ كل منزل البطاقات التي وصلته، ويدمج ما فيها مع ما يعرفه أصلاً، ثم يكتب بطاقة جديدة للجولة التالية.

بعد عدة جولات توصيل، حتى المنازل البعيدة عن بعضها في طرفَي القرية تصبح على دراية بأحوال بعضها — لا لأن أحداً تنقّل عبر القرية كلها، بل لأن المعلومات انتشرت تدريجياً عبر شبكة البريد المحلية.

في النهاية يقرأ كاتب القرية جميع البطاقات النهائية ويكتب تقريراً واحداً مُلخَّصاً: «طاقة هذا الجزيء هي X، وعزمه ثنائي القطب هو Y.»

هذا هو جوهر MPNN بالكامل: رسالة ← تحديث ← قراءة. كل ما تبقّى هو اختيار الطريقة التي تُكتَب بها البطاقات.

المشكلة: نماذج بيانية متناثرة بلا لغة مشتركة

قبل MPNN، لو أردت تطبيق التعلّم على كان أمامك ثمانية بنى مختلفة على الأقل — كل واحدة لها ترميزها الخاص ومعاييرها المرجعية الخاصة، ولا توجد طريقة عملية لمقارنتها بإنصاف:

  • البصمات الالتفافية (Duvenaud وآخرون، 2015) — تعلّمت عبر ، لكن دالة الرسالة فيها كانت تجمع حالات العقد وحالات الحواف كلّاً على حدة، فلم تلتقط الارتباطات بينهما.
  • شبكات البوابات البيانية (Li وآخرون، 2016) — استخدمت وحدة للتحديث ورسائل بضرب المصفوفات، لكنها اقتصرت على أنواع حواف منفصلة.
  • شبكات التفاعل (Battaglia وآخرون، 2016) — نمذجت المحاكاة الفيزيائية بشبكة عصبية تأخذ دالة رسالتها من دمج وسمات الحواف.
  • الشبكات العصبية للموتِّرات العميقة (Schütt وآخرون، 2017) — استخدمت الضرب عنصراً بعنصر لدمج معلومات العقد والحواف.
  • الأساليب الطيفية واللابلاسية (Bruna وآخرون، 2013؛ Kipf وWelling، 2016) — عرّفت الالتفاف عبر المتجهات الذاتية لـ، وهي أنيقة رياضياً لكن يصعب توسيعها لتعمل على أكثر من رسم بياني ثابت واحد.

المجتمع البحثي كان بحاجة إلى إطار موحِّد — لغة واحدة تكشف ما تشترك فيه هذه النماذج وأين تختلف فعلاً.

افتح في المختبر
ثمانية بنى، إطار واحد. انقر على أي نموذج لترى كيف تتحوّل دوال الرسالة والتحديث والقراءة فيه إلى صيغة MPNN الموحّدة.
تستيقظ التجربة عند وصولك…

الإطار الموحَّد: رسالة ← تحديث ← قراءة

تعمل شبكة MPNN على رسم بياني غير موجَّه GG له سمات عقد xvx_v وسمات حواف evwe_{vw}. يمرّ بمرحلتين:

المرحلة الأولى — تمرير الرسائل وتجري على مدى TT خطوة زمنية. في كل خطوة، تجمع كل عقدة vv الرسائل من جيرانها N(v)N(v)، وتُجمِّعها، ثم تُحدِّث حالتها المخفية. تخيّلها كـTT جولات من لعبة البطاقات البريدية: في كل جولة تستمع كل ذرة لجاراتها المرتبطة بها، ثم تُراجع وصفها الداخلي وتُحدِّثه.

المرحلة الثانية — القراءة تأخذ الحالات النهائية لجميع العقد وتُنتج تنبؤاً واحداً للرسم البياني بأكمله. هذا يشبه دور كاتب القرية حين يكتب التقرير الملخَّص. دالة القراءة يجب أن تكون ثابتة تحت التبديل — بمعنى أن تغيير ترتيب الذرات لا يغيّر التنبؤ، لأن الجزيئات ليس لها ترتيب طبيعي ثابت.

mvt+1=wN(v)Mt(hvt,  hwt,  evw)m_v^{t+1} = \sum_{w \in N(v)} M_t(h_v^t,\; h_w^t,\; e_{vw})
الخطوة 1: تجميع الرسائلتجمع كل عقدة v الرسائل من جيرانها N(v). دالة الرسالة M تأخذ حالة المُرسِل وحالة المُستقبِل وسمات الحافة، وتُرجع متجه رسالة. تُجمع رسائل جميع الجيران بالجمع.
hvt+1=Ut(hvt,  mvt+1)h_v^{t+1} = U_t(h_v^t,\; m_v^{t+1})
الخطوة 2: تحديث حالة العقدةتدمج كل عقدة حالتها الحالية مع الرسالة المُجمَّعة لتُنتج حالة جديدة. عملياً، U غالباً ما تكون وحدة GRU — نفس وحدة البوابات التكرارية المستخدمة في نماذج التسلسل، لكنها هنا تُوظَّف للتكرار على الرسم البياني.
y^=R ⁣({hvTvG})\hat{y} = R\!\bigl(\{h_v^T \mid v \in G\}\bigr)
الخطوة 3: القراءة — التنبؤ على مستوى الرسم البيانيدالة القراءة R تعمل على مجموعة الحالات النهائية للعقد، ويجب أن تكون ثابتة تحت التبديل. أبسط صورها: جمع كل الحالات وتمريرها عبر شبكة عصبية. الصورة المتقدمة: استخدام Set2Set الذي ينتبه إلى مجموعة العقد عدة مرات للحصول على تمثيل أغنى.
افتح في المختبر
شاهد تدفّق الرسائل عبر جزيء الماء (H₂O). انقر «الخطوة التالية» لتقدّم جولات تمرير الرسائل وترى كيف يتعزّز تمثيل كل ذرة مع كل جولة.
تستيقظ التجربة عند وصولك…

التوحيد: ثمانية بنى في ثلاث دوال

قوة إطار MPNN تكمن في أنّ بنى تبدو مختلفة تماماً تتحوّل إلى قطع قابلة للتبادل. لنرَ كيف تتفكّك ثلاثة نماذج محورية إلى المكوّنات نفسها:

GG-NN (Li وآخرون، 2016): دالة الرسالة هي ضرب مصفوفات M(hv,hw,evw)=AevwhwM(h_v, h_w, e_{vw}) = A_{e_{vw}} h_w، أي مصفوفة مُتعلَّمة لكل نوع حافة. دالة التحديث وحدة GRU. أما دالة القراءة فتستخدم بوابات: R=vσ(i(hvT,hv0))j(hvT)R = \sum_v \sigma(i(h_v^T, h_v^0)) \odot j(h_v^T).

شبكات التفاعل (Battaglia وآخرون، 2016): دالة الرسالة شبكة عصبية كاملة تعمل على المدخلات المدموجة: M(hv,hw,evw)=NN([hv,hw,evw])M(h_v, h_w, e_{vw}) = \text{NN}([h_v, h_w, e_{vw}]). دالة التحديث أيضاً شبكة عصبية، ودالة القراءة تجمع الحالات وتمرّرها عبر شبكة عصبية ثالثة.

GCN (Kipf وWelling، 2016): دالة الرسالة تُقيِّس بالدرجة المُعيَّرة: M(hv,hw)=cvwhwM(h_v, h_w) = c_{vw} h_w حيث cvw=(deg(v)deg(w))1/2Avwc_{vw} = (\text{deg}(v) \text{deg}(w))^{-1/2} A_{vw}. ودالة التحديث هي U(hv,mv)=ReLU(Wmv)U(h_v, m_v) = \text{ReLU}(W m_v).

حين تلتقط هذا النمط، تصبح كل بنية شبكة عصبية بيانية جديدة مجرد جملة في اللغة ذاتها: «دالة الرسالة عندي هي ___؛ ودالة التحديث ___؛ ودالة القراءة ___.»

الابتكارات الرئيسية ضمن الإطار

إلى جانب التوحيد، قدّم البحث عدة صيغ جديدة ضمن إطار MPNN، كل واحدة تعالج قيداً محدداً:

شبكة الحواف العصبية — دوال الرسالة السابقة إما افترضت أنواع حواف منفصلة (رابطة أحادية أو ثنائية أو ثلاثية) أو تجاهلت معلومات الحواف كلياً. شبكة الحواف تستبدل ضرب المصفوفات الثابت بشبكة عصبية صغيرة تُحوِّل سمات الحافة المتصلة (نوع الرابطة + المسافة المكانية) إلى مصفوفة بحجم d×dd \times d: M(hv,hw,evw)=A(evw)hwM(h_v, h_w, e_{vw}) = A(e_{vw})\, h_w. الفائدة هنا أن النموذج يستطيع فهم العلاقات المكانية ثلاثية الأبعاد — أي المسافة الفعلية بين ذرتين — وليس فقط ما إذا كانتا مرتبطتين أم لا.

العناصر البيانية الافتراضية — في رسم بياني جزيئي متفرّق، الذرات المتباعدة تفصلها قفزات عديدة. المعلومات تنتقل خطوة بخطوة، وهذا بطيء ومعرَّض لفقدان المعلومات. لمعالجة ذلك طُرح حلّان:

  • حواف افتراضية: نضيف نوع حافة خاصاً بين كل زوج غير مرتبط مباشرةً، فيصبح الرسم البياني متصلاً بالكامل. هكذا تستطيع كل ذرة التواصل مع أي ذرة أخرى في خطوة واحدة.
  • عقدة رئيسية (Master Node): نضيف عقدة شاملة واحدة متصلة بجميع الذرات بنوع حافة خاص. تعمل هذه العقدة كلوحة إعلانات مشتركة — كل ذرة تكتب فيها وتقرأ منها في كل جولة، مما يُتيح التنسيق الشامل دون أن يتضخّم عدد الحواف بشكل تربيعي.

دالة قراءة Set2Set — دوال القراءة البسيطة تكتفي بجمع الحالات النهائية للعقد، وهذا يحدّ من القدرة التعبيرية. دالة Set2Set (Vinyals وآخرون، 2015) تستخدم آلية تقرأ مجموعة العقد عدة مرات، فتُنتج تمثيلاً أغنى على مستوى الرسم البياني. هذا التحسين وحده رفع متوسط الأداء على الأهداف الثلاثة عشر جميعها.

افتح في المختبر
قارن بين رسم بياني جزيئي متفرّق (يساراً) وحواف افتراضية (وسطاً) وعقدة رئيسية (يميناً). بدّل بينها لترى كيف يتغيّر تدفّق المعلومات.
تستيقظ التجربة عند وصولك…

التوسُّع: حيلة الأبراج المتعددة

إحدى العقبات الأساسية في تمرير الرسائل هي التكلفة الحوسبية: خطوة واحدة على رسم بياني كثيف فيه nn عقدة و بأبعاد dd تكلّف O(n2d2)O(n^2 d^2) عملية ضرب. ومع كبر حجم الجزيئات أو زيادة أبعاد التضمين، تصبح هذه التكلفة باهظة.

حيلة الأبراج المتعددة تقسّم تضمين كل عقدة ذي dd بُعد إلى kk أجزاء أصغر بحجم d/kd/k. كل جزء يُجري تمرير الرسائل بشكل مستقل — وكأنك تُشغّل kk خطوط إنتاج متوازية — ثم تتولى شبكة مزج إعادة دمج النتائج. بذلك تنخفض التكلفة الإجمالية إلى O(n2d2/k)O(n^2 d^2 / k): نموذج بثمانية أبراج وd=200d{=}200 يعمل أسرع بنحو الضعف مقارنة بنموذج ذي برج واحد.

المفاجئ أنّ هذه البنية لم تُسرِّع الحساب فحسب، بل حسّنت أيضاً قدرة التعميم في 12 من 13 هدفاً. السبب المرجّح أنها تعمل كمجموعة ضمنية (implicit ensemble) — كل برج يتعلّم سمات مختلفة قليلاً، وشبكة المزج تجمع وجهات نظرها معاً.

افتح في المختبر
اسحب شريط عدد الأبراج لترى كيف يُقلِّل تقسيم التضمين من الحوسبة مع الحفاظ على القدرة التعبيرية أو تحسينها.
تستيقظ التجربة عند وصولك…

QM9: التنبؤ بالخصائص الكمّية للجزيئات

قيّم البحث شبكات MPNN على مجموعة بيانات QM9 — وهي تضمّ نحو 134,000 جزيء عضوي صغير (حتى 9 ذرات ثقيلة: كربون ونيتروجين وأكسجين وفلور، إضافةً إلى الهيدروجين). لكل جزيء، تحسب نظرية الكثافة الوظيفية (DFT) ثلاث عشرة خاصية كمّية: طاقات التفكك عند ظروف مختلفة، وطاقات المدارات (HOMO وLUMO والفجوة)، والترددات الاهتزازية، وعزم ثنائي القطب، والاستقطابية.

حسابات DFT تُعدّ المعيار الذهبي في هذا المجال، لكنها بطيئة للغاية: جزيء واحد يحتاج نحو ساعة على معالج حديث. في المقابل، MPNN أسرع بنحو 300,000 مرة.

العتبة المرجعية هنا هي ما يُعرف بـ«الدقة الكيميائية» — أي مستوى خطأ يعتبره الكيميائيون ضئيلاً بما يكفي للاستخدام العملي. أفضل صيغة MPNN (شبكة حواف + Set2Set + ذرات هيدروجين صريحة) حققت الدقة الكيميائية في 11 من 13 هدفاً، بينما حقّقها نموذج المجموعة (ensemble) في جميع الأهداف ضمن بعض التكوينات.

افتح في المختبر
نسب الخطأ على أهداف QM9. القيم تحت 1.0 (الخط المتقطع) تعني أن النموذج حقّق الدقة الكيميائية. قارن MPNN مع خطوط الأساس التقليدية.
تستيقظ التجربة عند وصولك…

ما يراه النموذج: ذرات وروابط ومسافات

كل ذرة تُوصف بمتجه سمات يُرمِّز نوع العنصر بترميز أحادي (H، C، N، O، F)، والعدد الذري، وقدرتها على استقبال أو منح الإلكترونات، وما إذا كانت عطرية، وحالة التهجين (sp، sp²، sp³)، وعدد ذرات الهيدروجين المتصلة بها.

الحواف تحمل معلومات الروابط الكيميائية. جُرِّبت ثلاثة تمثيلات بمستويات تفصيل مكاني متزايدة:

  • الرسم البياني الكيميائي فقط: الحواف تمثّل أنواع روابط منفصلة (أحادية، ثنائية، ثلاثية، عطرية) دون أي معلومات ثلاثية الأبعاد.
  • حاويات المسافة: مسافات الروابط تُقسَّم إلى 10 فترات (8 فترات منتظمة على المجال [2, 6] أنغستروم، بالإضافة إلى [0, 2] و[6, ∞])، وتُدمج مع نوع الرابطة. هذا يسمح لأسلوب ضرب المصفوفات في GG-NN بالتعامل مع المسافة.
  • المسافة الخام + نوع الرابطة: متجه حافة من 5 أبعاد — قيمة مسافة متصلة واحدة مع ترميز أحادي رباعي الأبعاد لنوع الرابطة. هذا التمثيل يحتاج شبكة الحواف العصبية لمعالجته.

التمثيل الأغنى (المسافة الخام + ذرات هيدروجين صريحة كعقد) حقّق أفضل أداء، لكنه ضخّم الرسوم البيانية بنحو 3 أضعاف (حتى 29 عقدة بدلاً من 9)، وزاد زمن بنحو 10 أضعاف.

التمرير الأمامي لـMPNN برمجياً

شبكة تمرير الرسائل العصبية — التمرير الأمامي الأساسيpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def message_pass(node_states, adj, edge_features, M_fn, U_fn, T=3):
    """نفّذ T جولات من تمرير الرسائل على رسم بياني جزيئي.

    node_states: (n, d) — صف لكل ذرة
    adj:         قائمة أزواج (i, j) — الحواف
    edge_features: قاموس (i,j) -> متجه سمات
    M_fn:        دالة الرسالة M(h_v, h_w, e_vw) -> متجه رسالة
    U_fn:        دالة التحديث U(h_v, الرسالة_المجمَّعة) -> h_v جديدة
    """
    h = node_states.copy()
    for t in range(T):
        new_h = h.copy()
        for v in range(len(h)):
            # اجمع الرسائل من كل الجيران
            neighbors = [w for (i, w) in adj if i == v]
            msgs = [M_fn(h[v], h[w], edge_features[(v, w)]) for w in neighbors]
            if msgs:
                agg = sum(msgs)           # تجميع بالجمع
                new_h[v] = U_fn(h[v], agg)  # حدِّث حالة العقدة
        h = new_h
    return h

def readout(final_states, R_fn):
    """جمِّع حالات العقد كلها في تنبؤ واحد للرسم البياني.

    R يجب أن تكون ثابتة تحت التبديل — أبسط صورها: جمع ثم MLP.
    """
    graph_vec = sum(final_states)   # تجميع بالجمع
    return R_fn(graph_vec)           # تنبَّأ بالخاصية

# هذا هو الإطار بأكمله. GG-NN وGCN وشبكات التفاعل
# وكل MPNN أخرى تختلف فقط في اختياراتها لـ M وU وR.

لماذا كان هذا البحث مفصلياً

  1. 2016

    شبكة البوابات البيانية (GG-NN)

    قدّم Li وزملاؤه تحديثات تكرارية ببوابات على بيانات مُهيكلة كرسوم بيانية، وهي من أبرز البنى التي وحّدها إطار MPNN لاحقاً.

  2. 2017

    MPNN — هذا البحث

    وحّد غيلمر وزملاؤه ثمانية بنى GNN في إطار رسالة–تحديث–قراءة وحققوا أفضل النتائج على معيار QM9.

  3. 2017

    SchNet

    شبكات التفاف بمرشحات متصلة مصمَّمة للجزيئات، تستخدم لغة MPNN ذاتها لتمرير الرسائل في الفضاء المكاني.

  4. 2019

    شبكة تماثل الرسوم البيانية (GIN)

    أثبت Xu وزملاؤه أن التجميع بالجمع في شبكات MPNN يعادل في قوته اختبار Weisfeiler-Leman لتماثل الرسوم البيانية، فرسموا الحدود النظرية للإطار بأكمله.

  5. 2020

    DimeNet — تمرير الرسائل الاتجاهي

    وسّع Gasteiger وزملاؤه إطار MPNN بإضافة معلومات اتجاهية (زوايا الروابط)، فدفعوا دقة التنبؤ بالخصائص الجزيئية إلى مستوى أعلى.

  6. 2021

    AlphaFold 2

    نظام DeepMind للتنبؤ ببنية البروتينات يستخدم تمرير الرسائل على رسوم بيانية للأحماض الأمينية ضمن وحدتي Evoformer والبنية — وهو سليل مباشر لتجريد MPNN مُطبَّقاً على أصعب مسائل البيولوجيا.

  7. 2022

    نضوج مكتبات GNN

    مكتبات PyTorch Geometric وDGL وأطر JAX جميعها اعتمدت تجريد MPNN واجهةً برمجية أساسية لها، فأصبح تمرير الرسائل هو النموذج السائد للتعلّم على الرسوم البيانية.

الإرث الأكبر لبحث MPNN ليس أي صيغة نموذجية بعينها — بل هو اللغة التي منحها للمجال. حين يقول باحث اليوم «دالة الرسالة» و«دالة التحديث» و«دالة القراءة»، فهو يتحدث بلغة MPNN. هذه اللغة المشتركة هي ما أتاح مقارنة الشبكات العصبية البيانية وتأليفها وتحسينها بشكل منهجي، وهي الأساس الذي بُنيت عليه كل شبكة عصبية بيانية حديثة.

المرجعGilmer, Schoenholz, Riley, Vinyals, Dahl. Neural Message Passing for Quantum Chemistry. ICML, 2017.

مصطلحات هذه الورقة