ملخص Conversation modeling on Reddit using a graph-structured LSTM

هذه أول مقالة في سلسلة شرح ورقة علمية، وهي بعنوان Conversation modeling on Reddit using a graph-structured LSTM نمذجة المحادثات في Reddit باستخدام LSTM مركب رسوميا.

رابط الورقة

الفكرة العامة

هذه الورقة في مجال الذكاء الاصطناعي AI وبوجه التحديد الشبكات الاجتماعية Social Networks ومعالجة اللغات الطبيعية NLP والتعلم الآلي Machine Learning.

تعرض الورقة منهجية جديدة في نمذجة المحادثات آليا وذلك للتنبؤ بمدى شعبية تعليق ما (كم صوت سيأخذ التعليق). الورقة تركز على المحادثات التي تكون على شكل مركب أو مناقشة thread، بمعنى أن المحادثة تبدأ ثم يرد شخص ما على الرسالة الأصلية، ثم يرد شخص آخر على الرسالة الأولى أو الثانية وهكذا، وهذا النوع من المحادثات شائعة في وسائل التواصل الاجتماعي مثل المنتديات قديما أو المواقع الأخرى مثل التعليقات في Facebook أو التغريدات في Twitter. تم تجربة النموذج المطروح في الورقة على بيانات من موقع Reddit (رابط)، وهو موقع للأخبار والنقاشات (يشبه المنتديات) ويسمح بالتصويت على التعليقات المنشورة ومنتشر استخدامه كثيرا في الولايات المتحدة وكندا.

يمكن تمثيل التعليقات على شكل شجرة tree (نوع خاص من الرسومات graphs) بحيث أن كل نقطة node تمثل تعليقا ووجود خط edge بين نقطة وأخرى يفيد بأن النقطة الأولى (التعليق) هو رد على النقطة الثانية، وحجم النقطة يفيد بشعبية التعليق (حجم أكبر يعني تصويت أعلى upvote)، الشكل أدناه يوضح ذلك.

تمثل النقاط nodes التعليقات، وحجمها يتناسب مع شعبية التعليقات (عدد الأصوات للأعلى upvotes).

كيف (بدون تفصيل كامل)؟

الإسهام الرئيسي في هذه الورقة هو نموذج معدل من LSTM (نوع من الشبكات العصبية Neural Networks) ثنائية الإتجاه bidirectional، بحيث أن الإتجاه إلى الأمام forward يكون على شكل رسمة graph تأخذ بعين الاعتبار تركيب المحادثة من ناحيتين: الوقت بحيث تكون مرتبة التعليقات حسب وقتها، ومرتبة نسبيا أو هرميا بحيث يتم تمثيل الردود بطريقة تحافظ على أي تعليق هو رد على تعليق آخر. الشكل أدناه يوضح ذلك:

التعليقات مرتبة بالرقم حسب وقت التعليق، وهرميا بحيث أن كل تعليق يكون ابن child للتعليق الأصلي الذي تم الرد عليه، الأسهم الزرقاء تشيل لعملية التحديث الأمامي forward هيكليا، والخضراء للتحديث الأمامي forward بالنسبة للوقت.

في الشكل أعلاه، كل نقطة node في الشجرة تكون وحدة LSTM unit واحدة، التعديل الأساسي على LSTM الإعتيادية هو أن المعلومات السابقة تؤخذ من مصدرين: الأول الأب في المحادثة (التعليق الأساسي الذي تم الرد عليه)، والتعليق السابق في الوقت. فمثلا t3 تأخذ مدخلات من t1 (كأب في الشجرة) ومن t2 (كسابق في الوقت). بالإضافة للمدخل الاعتيادي وهو خصائص features التعليق نفسه.

بالنسبة للإتجاه العكسي backward فهي تقريبا كما في الأمامي ولكن بشكل معكوس، والوالد parent يأخذ تحديث فقط من أول ابن child في الشجرة كما في الشكل أدناه:

الاتجاه العكسي backward لنموذج LSTM المقترح

مدخل الخصائص input features: يتم تمثيل التعليق بنوعين من الخصائص، الأول معلومات نصية وهي مجرد معدل المتجهات التي تمثل الكلمات في نص التعليق. والثاني معلومات إضافية من الشجرة tree التي تمثل التعليقات مثل عمق التعليق (البعد بينها وبين جذر الشجرة root)، وعدد الأبناء (عدد التعليقات التي ردت على هذا التعليق).

تقليم الشجرة pruning: لأن الشجرة الفرعية قد تكون كبيرة جدا في حالة وجود تعليقات عديدة مما يسبب في إضافة تكلفة عالية لعملية التعلم، فإنه يتم حذف أو تقليم جزء كبير من شجرة لا يضيف معلومات كبيرة.

الكود: الكود البرمجي للنموذج المستخدم في الورقة متوفر على github.

خلفية معلوماتية لفهم الورقة بشكل كامل:

1- الشبكات العصبية Neural Networks بشكل عام، والشبكات العصبية LSTM بشكل خاصة أنصح بهذه المقالة تشرحها بطريقة مفصلة.

2- معلومات بسيطة جدا عن نظرية الرسومات Graph Theory.

3- تضمين الكلمات word embedding.

 

سيتم تحديث المقالة لاحقا.

آخر تحديثات: تم إضافة الكود، وتعديل الصورة الأخيرة (الاتجاه العكسي backward) كانت منسوخة بالخطأ.

4 آراء على “ملخص Conversation modeling on Reddit using a graph-structured LSTM”

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

    1. الصورة كانت منسوخة بالغلط، الآن تم تعديلها، هل ما زالت غير واضحة؟
      عموما الفرق، في الاتجاه الأمامي forward المعلومات تؤخذ من مصدرين، الأب (الرد الأساسي) والأخ sibling (الرد الذي يسبقه في الوقت ويكون رد على نفس التعليق الأصلي). بينما في العكسي backward، المعلومات السابقة مأخوذة من مصدرين: الابن الأول (أول رد على الموضوع) والأخ اللاحق (أول رد بعده ويكون رد على نفس التعليق الأصلي).

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *