شعار زيفيرنت

اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME

التاريخ:

By ايان كوندو، عالم البيانات

من المهم جدًا معرفة كيف يصل LIME إلى مخرجاته النهائية لشرح التنبؤ الذي تم إجراؤه للبيانات النصية. في هذا المقال ، شاركت هذا المفهوم من خلال تنوير مكونات LIME.

اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME


تصوير إيثان ميدرانو on Unsplash


 

قبل أسابيع قليلة كتبت ملف  مدونة حول كيفية استخدام أدوات تفسير مختلفة لتفسير تنبؤات معينة تقوم بها نماذج الصندوق الأسود. في تلك المقالة شاركت الرياضيات وراء LIME و SHAP وأدوات التفسير الأخرى ، لكنني لم أخوض كثيرًا في تفاصيل تنفيذ هذه المفاهيم على البيانات الأصلية. في هذه المقالة ، فكرت في مشاركة كيفية عمل LIME على البيانات النصية بطريقة خطوة بخطوة.

البيانات المستخدمة في التحليل بأكمله مأخوذة من هنا . هذه البيانات للتنبؤ بما إذا كانت تغريدة معينة تدور حول كارثة حقيقية (1) أم لا (0). يحتوي على الأعمدة التالية:


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
مصدر

 

حيث أن التركيز الرئيسي لهذه المدونة هو التفسير الجير ومكوناته المختلفة ، لذلك سنقوم بسرعة ببناء نموذج تصنيف ثنائي للنص باستخدام Random Forest وسنركز بشكل أساسي على تفسير LIME.

أولا نبدأ باستيراد الحزم اللازمة. ثم نقرأ البيانات ونبدأ في المعالجة المسبقة مثل إزالة كلمات الإيقاف ، والأحرف الصغيرة ، وإزالة اللماتة ، وإزالة علامات الترقيم ، وإزالة المسافات البيضاء وما إلى ذلك. يتم تخزين كل النص الذي تم تنظيفه مسبقًا في عمود "cleaned_text" جديد سيتم استخدامه لمزيد من التحليل ويتم تقسيم البيانات في القطار والتحقق من الصحة بنسبة 80:20.

ثم ننتقل بسرعة إلى تحويل البيانات النصية إلى متجهات باستخدام قوة العمل-جيش الدفاع الإسرائيلي ناقل وتركيب أ غابة عشوائية نموذج التصنيف على ذلك.


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

لنبدأ الآن الاهتمام الرئيسي لهذه المدونة وهو كيفية تفسير المكونات المختلفة لـ LIME.

أولاً ، دعنا نرى ما هو الناتج النهائي لتفسير LIME لمثيل بيانات معين. بعد ذلك ، سوف نتعمق في المكونات المختلفة لـ LIME بطريقة خطوة بخطوة والتي ستؤدي في النهاية إلى النتيجة المرجوة.


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

هنا تسميات = (1 ،) يتم تمريرها كوسيطة مما يعني أننا نريد شرحًا للفئة 1. الميزات (الكلمات في هذه الحالة) المميزة باللون البرتقالي هي أهم الميزات التي تسبب توقعًا للفئة 0 (ليست كارثة) مع احتمال 0.75 والفئة 1 (كارثة) باحتمال 0.25.

ملحوظة: char_level هي إحدى الوسائط الخاصة بـ LimeTextExplainer وهي عبارة عن تعريف منطقي لأننا نتعامل مع كل حرف على أنه تكرار مستقل في السلسلة. الإعداد الافتراضي هو خطأ ، لذلك لا نأخذ في الاعتبار كل حرف بشكل مستقل ويتم استخدام وظيفة IndexedString للترميز وفهرسة الكلمات في مثيل النص ، وإلا يتم استخدام وظيفة IndexedCharacters.

لذلك ، يجب أن تكون مهتمًا بمعرفة كيفية حسابها. حق؟

دعونا نرى ذلك.

يبدأ LIME بإنشاء بعض العينات المضطربة حول المنطقة المجاورة لنقطة البيانات ذات الأهمية. بالنسبة إلى البيانات النصية ، يتم إنشاء العينات المضطربة عن طريق إزالة بعض الكلمات بشكل عشوائي من المثيل ويتم استخدام مسافة جيب التمام لحساب المسافة بين العينات الأصلية والمضطربة كمقياس افتراضي.

يؤدي هذا إلى إرجاع مجموعة مكونة من 5000 عينة مضطربة (كل عينة مضطربة بطول المثيل الأصلي و 1 تعني أن الكلمة الموجودة في هذا الموضع للمثيل الأصلي موجودة في العينة المضطربة) ، واحتمالات التنبؤ المقابلة لها ومسافات جيب التمام بين الأصل وعينات مضطربة ومقتطفات منها كالتالي:


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

الآن بعد إنشاء العينات المضطربة في الحي حان الوقت لإعطاء أوزان لتلك العينات. يتم إعطاء العينات القريبة من المثيل الأصلي وزنًا أعلى من العينات البعيدة عن المثيل الأصلي. نواة أسية مع عرض kernel 25 كإعداد افتراضي لإعطاء هذا الوزن.

بعد ذلك ، يتم تحديد الميزات المهمة (وفقًا لعدد_الميزات: الحد الأقصى لعدد الميزات المراد شرحها) من خلال تعلم نموذج خطي متناثر محليًا من البيانات المضطربة. هناك عدة طرق لاختيار الميزات المهمة باستخدام النموذج الخطي المتناثر المحلي مثل "تلقائي" (افتراضي) ، "اختيار الأمام" ، "lasso_path" ، "أعلى_أوزان". إذا اخترنا "auto" ، فسيتم استخدام "forward_selection" إذا تم استخدام num_features≤6 ، وإلا تم استخدام "top_weights".


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

هنا يمكننا أن نرى أن الميزات المحددة هي [1,5,0,2,3،5،XNUMX،XNUMX،XNUMX] وهي مؤشرات الكلمات (أو الميزات) المهمة في المثيل الأصلي. كما هو الحال هنا ، num_features = XNUMX and method = 'auto' ، يتم استخدام طريقة 'forward_selection' لاختيار الميزات المهمة.

الآن دعنا نرى ما سيحدث إذا اخترنا طريقة مثل "lasso_path".


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

نفس. حق؟

لكن قد تكون مهتمًا بالتعمق في عملية الاختيار هذه. لا تقلق ، سأجعل ذلك سهلاً.

يستخدم مفهوم انحدار الزاوية الأقل لاختيار أفضل الميزات.

دعونا نرى ما سيحدث إذا حددنا الطريقة على أنها "أعلى أوزان".


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

تشبث. نحن نتعمق أكثر في عملية الاختيار.

حتى الآن الميزات المهمة التي اخترناها باستخدام أي طريقة من الطرق. لكن أخيرًا سيتعين علينا ملاءمة نموذج خطي محلي لشرح التنبؤ الذي قام به نموذج الصندوق الأسود. من أجل هذا انحدار ريدج يستخدم كافتراضي.

دعنا نتحقق من الشكل الذي ستبدو عليه المخرجات أخيرًا.

إذا حددنا الطريقة على أنها auto ، و top_weights و lasso_path على التوالي ، سيبدو الناتج كما يلي:


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

تُرجع هذه العناصر مجموعة (تقاطع النموذج الخطي المحلي ، مؤشرات السمات المهمة ومعاملاتها ، قيمة R² للنموذج الخطي المحلي ، التنبؤ المحلي بواسطة نموذج التفسير في المثيل الأصلي).

إذا قارنا الصورة أعلاه مع


اشرح نماذج البرمجة اللغوية العصبية باستخدام LIME
صورة المؤلف

 

ثم يمكننا القول أن احتمالات التنبؤ الواردة في الجزء الأيسر من اللوحة هي التنبؤ المحلي الذي قام به نموذج التفسير. الميزات والقيم الواردة في اللوحة الوسطى هي السمات المهمة ومعاملاتها.

ملحوظة: بالنسبة لمثيل البيانات المحدد هذا ، فإن عدد الكلمات (أو الميزات) هو 6 فقط ونحن نختار أهم 5 ميزات مهمة ، وتعطي جميع الطرق نفس المجموعة من أهم 5 ميزات مهمة. ولكن قد لا يحدث ذلك لجمل أطول.

إذا كنت تحب هذا المقال ، يرجى النقر فوق التوصية. سيكون ذلك مذهلاً.

للحصول على الرمز الكامل يرجى زيارة بلدي GitHub جيثب: مخزن. لمدوناتي المستقبلية يرجى متابعي لينكدين: و  متوسط.

وفي الختام

في هذه المقالة ، حاولت شرح النتيجة النهائية لـ LIME للبيانات النصية وكيف تحدث عملية التفسير بأكملها للنص بطريقة تدريجية. يمكن عمل تفسيرات مماثلة لبيانات الجدول والصورة. لذلك سأوصي بشدة بالمرور  .

مراجع حسابات

  1. مستودع GitHub لـ LIME: https://github.com/marcotcr/lime
  2. التوثيق على LARS: http://www.cse.iitm.ac.in/~vplab/courses/SLT/PDF/LAR_hastie_2018.pdf
  3. https://towardsdatascience.com/python-libraries-for-interpretable-machine-learning-c476a08ed2c7

 
 
ايان كوندو هو عالم بيانات يتمتع بخبرة تزيد عن عامين في مجال البنوك والتمويل وأيضًا متعلم شغوف لمساعدة المجتمع قدر الإمكان. اتبع Ayan على لينكدين: و متوسط.

المصدر: https://www.kdnuggets.com/2022/01/explain-nlp-models-lime.html

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة