مع هذه المقالة ، نبدأ في نشر سلسلة من المقالات حول علوم البيانات ، المهام التي نحلها في مركز تطوير التقنيات المالية في البنك الزراعي الروسي.
في العام الماضي ، أعلن Rosselkhozbank عن إنشاء وتطوير نظام بيئي لمؤسسات الصناعات الزراعية. بالنسبة لأحد المواقع الأساسية للنظام البيئي - Our Farming ، قررنا القيام ببعض المهام المفيدة ، والتي سنناقشها أدناه.
موقع Svoe Farmezstvo هو سوق للسلع للمنتجين الزراعيين من أكبر الموردين من جميع أنحاء روسيا. يتضمن الموقع سلعًا من الفئات ذات الأولوية القصوى للمزارعين: منتجات وقاية النباتات ، الأسمدة ، البذور ، الآلات الزراعية ، إلخ. يقوم الآلاف من الموردين بتحميل معلومات حول منتجاتهم بغرض البيع. وبالطبع ، تحتاج إلى تنفيذ عملية للتحقق من جودة المحتوى الذي تقوم بتنزيله. في هذا الصدد ، قررنا إنشاء أداتنا الخاصة للإشراف المسبق على النص والمعلومات الرسومية.
ماذا كانوا يفعلون؟
في هذه المقالة، فإننا سوف اقول لكم كيف، بالتعاون مع مختبر MIPT، وخاصة أنشئت للقيام بمهام البنك، قمنا بتطوير أداة تسمح لك قبل المعتدل محتوى النص بدقة عالية.
بدا هدفنا بسيطًا للغاية - يجب أن تصنف الأداة التي أنشأناها تلقائيًا النص على أنه مقبول لوضعه على الموقع (الفئة 0) أو غير مقبول (الفئة 1). إذا لم تستطع الخوارزمية فهم الفئة التي ينتمي إليها النص بوضوح ، فإننا نرسلها (النص) للإشراف اليدوي.
لدينا مهمة معالجة النص: نريد تصفية النصوص "السامة" من جميع النواحي ، وهي: الشتائم ، والإهانات ، والمحتوى المتنوع المحظور بموجب القانون ، والنصوص غير المقبولة ببساطة لوضعها على الموقع.
نتوقع أن الخوارزمية التي طورناها ستأخذ مجموعة من النصوص كمدخلات وتنتج عددًا من 0 إلى 1 - درجة أو احتمال أن يكون النص "سامًا". وكلما اقترب هذا الرقم من واحد ، كان التعليق أكثر سمية.
وتجدر الإشارة إلى أن مشكلة اكتشاف النصوص السامة ليست جديدة على الإطلاق وتحظى بشعبية كبيرة في الجزء الناطق باللغة الإنجليزية. منذ عدة سنوات ، تم حل مشكلة مماثلة في تحدي تصنيف التعليقات السامة على Kaggle. بالنسبة للغة الروسية ، يجب الحصول على الحل بطريقة مماثلة ، ولكن قد تكون جودة النموذج أقل بسبب حقيقة أن اللغة الروسية أكثر تعقيدًا من اللغة الإنجليزية من الناحية الهيكلية.
لا توجد سوى مجموعة بيانات واحدة باللغة الروسية تم ترميزها في المجال العامللبحث عن السمية في النص. تمكنا أيضًا من العثور على مجموعة بيانات للبحث عن الإهانات (حالة خاصة من السمية). بالإضافة إلى ذلك ، قمنا بجمع أمثلة للإعلانات من البوابات الزراعية ووضعنا علامة عليها على أنها مقبولة (فئة - 0).
تبين أن المهمة التي حددناها كانت فريدة تمامًا من حيث الموضوع الزراعي المحدد. تكمن خصوصيتها في حقيقة أن العبارات التي تعتبر إهانات في الحياة اليومية ليست كذلك دائمًا عندما يتعلق الأمر بالزراعة. تتضمن الأمثلة الشائعة ما يلي: "لا تضع أنفك" - من الواضح أن النص غير مقبول ، بينما يمكن وضع النص الذي يحتوي على "خطم خنزير" بسهولة على الموقع (على الرغم من أنه يعتمد على السياق). الأمر نفسه ينطبق على أنواع فرعية معينة من حيوانات المزرعة والنباتات.
إذا تحدثنا عن حل مشاكل تصنيف النص ، ففي الواقع ، حتى أبسط النماذج (الخطية) تعطي نتائج جيدة بالفعل . ولكن ، كما هو الحال دائمًا ، لتحقيق جودة أعلى ، سنستخدم الشبكات العصبية. الهندسة المعمارية الأكثر شيوعًا (في وقت كتابة هذا التقرير) لحل مثل هذه المشكلات هي BERT. في وقت مسابقة Kaggle المذكورة أعلاه ، لم تكن هذه العمارة موجودة ، لذلك تم استخدام البعض الآخر. ومع ذلك ، تم حل هذه المهمة في وقت لاحق بنجاح بمساعدة BERT.
كيف فعلتها؟
دعنا ننتقل إلى الجزء الأكثر إثارة للاهتمام - حل المشكلة. بعد التفكير قليلاً في "بنية" الأداة ، قررنا استخدام ثلاثة نماذج: البحث في القاموس (كمرشح للمفردات الفاحشة) ، والانحدار اللوجستي (كحل أساسي) و BERT (كحل أكثر تقدمًا).
المخطط العام
يبدو المخطط العام للحل كما يلي: داخل "الصندوق الأسود" ، يدخل النص أولاً في المصنف الساذج ، والذي يعتمد على قاموس الكلمات البذيئة (التعبيرات البذيئة) ، هنا يتم قطع النصوص التي تحتوي على كلمات "سيئة" على الفور (تسممها دائمًا واحدة ( 1). تقع النصوص التي تجاوزت المرحلة الأولى في نموذج شبكة عصبية أكثر تعقيدًا ، مما يعطي درجة سميتها.في حالة فشل نموذج الشبكة العصبية ، يتم استبدالها بنموذج أبسط - الانحدار اللوجستي. أي أننا سنحصل على نتيجة غير ساذجة في أي حالة .
الآن دعونا ننظر في في كل مكون في التفاصيل.
مصنف ساذج
كل شيء بسيط للغاية هنا: وفقًا لقاموس المفردات البذيئة ، من السهل جدًا فهم ما إذا كان النص يحتوي على هذه الكلمة "السيئة" أم لا.
وهذا يعني أنه في هذه المرحلة ، يمكنك الاستغناء عن نموذج ML على هذا النحو والتخلص فورًا من النصوص التي تحتوي على كلمات "سيئة". ولكن ماذا لو لم يتم استخدام كلمات القاموس هذه في النص ، ولكن النص ، مع ذلك ، غير مقبول للنشر على البوابة؟ دعنا نحاول حل هذه المشكلة باستخدام الانحدار اللوجستي و BERT'a.
الانحدار اللوجستي
أبسط نموذج يجعل من الممكن التنبؤ بقيمة بناءً على البيانات المتاحة. يتم الحصول على متجهات النص لهذا النموذج باستخدام TF-IDF و TweetTokenizer من nltk. مثل هذا النموذج ، كما هو معروف ، يسمح للشخص بتقدير احتمالية سمية النص باستخدام وظيفة لوجستية. في هندستنا المعمارية ، "يؤمن" الانحدار اللوجستي الشبكة العصبية.
عظيم ورهيب بيرت
استخدمنا نموذج RuBert المدربين مسبقًا من DeepPavlov ، والذي قمنا بتدريبه بشكل أكبر على النصوص المرمزة. عملية التنبؤ ، دون الخوض في التفاصيل ، هي كما يلي:
بنينا وبنينا وبنينا في النهاية!
قمنا بتقييم الجودة باستخدام مقاييسنا المفضلة الدقة و ROC-AUC و F1-Measure. مقاييس الجودة النهائية للعينة المؤجلة هي كما يلي:
| الخوارزمية / متري
|
ساذج
|
بيرت
|
LR
|
ساذج → بيرت
|
ساذج → LR
|
| صحة
|
0.854
|
0.901
|
0.865
|
0.909
|
0.879
|
| ROC-AUC
|
0.782
|
0.960
|
0.921
|
0.963
|
0.939
|
| قياس F1
|
0.722
|
0.840
|
0.800
|
0.855
|
0.824
|
سرعة التشغيل: حوالي 2800 نص في الدقيقة على GPU (GeForce 1080Ti) في حالة معالجة BERT باعتبارها أبطأ خوارزمية من الخوارزمية المعروضة.
كما هو متوقع ، اتضح أن المقاييس باستخدام BERT أفضل قليلاً ، وإن لم يكن كثيرًا.
ما هي الاستنتاجات التي استخلصناها
في الختام ، أود أن أشير إلى عدة جوانب مهمة ، بدونها ، برأينا ، من المستحيل إطلاق مثل هذه الحلول في الوضع الصناعي.
- تحتاج دائمًا إلى مراعاة تفاصيل المهمة المتعلقة بترميز النصوص.
- من الضروري توفير تعديل يدوي للنص ، في حالة "شك" النموذج في قراره. لا تريد أن ينتهي المطاف بالمحتوى غير اللائق في منتجك.
- من الضروري أيضًا إرسال النصوص ذات العلامات اليدوية من الفقرة السابقة للتدريب الإضافي. وبالتالي ، يمكنك تحسين النموذج بخطوات صغيرة وتقليل مقدار العمل أثناء الاعتدال اليدوي بمرور الوقت.
- من الأفضل استخدام نهج متكامل لحل المشكلة. في بعض الأحيان ، تعطي أبسط "النماذج" في القواميس نتيجة جيدة بالفعل.
- اختر أفضل نموذج بناءً على مهمتك. في حالتنا ، اخترنا BERT لأنه يتفاعل مع السياق بشكل أفضل من الانحدار اللوجستي.
شكرآ لك على أهتمامك!
في المقالة التالية ، سوف نشارك تجربتنا في الإشراف المسبق على الصور جميعها على نفس النظام الأساسي لنظامنا البيئي - مزرعتنا.