الرحلة التجريبية — كشف الأخبار الزائفة العربية
مساران تجريبيان منفصلان تماماً: محوّل مبني من الصفر (ستّ تجارب) وضبط AraBERT الدقيق (سبع تجارب). كل قيمة معروضة هنا منقولة حرفياً من مستندات المشروع، دون إعادة حساب أو تقريب أو دمج بين المسارين. الحقول غير المذكورة في المصدر تُعرض كما هي: «غير مذكور في المستند المصدر».
أفضل دقة اختبار
84.37%
التجربة 6 · فجوة val→test 0.16 pp
أعلى دقة تحقق مفردة
85.15%
التجربة 5
إجمالي المقالات المزحوفة
606,912
134 مجلد مصدر · زحف كامل
أفضل Macro F1
0.839
التجربة 6
مجموعة البيانات والمنهجية والإعداد التجريبي
مصادر هذا المسار: All_Trials_Report_2.pptx · Trial_6_fixed.ipynb
مجموعة البيانات
- مجموعة البياناتDataset
- AFND — Arabic Fake News Dataset
- إجمالي مجلدات المصادرTotal source folders
- 134
- إجمالي المقالات المزحوفةTotal articles crawled
- 606,912
- الفئاتClasses
- Credible / Not Credible / Undecided
- البنية على القرصOn-disk layout
- sources.json (خريطة {folder_name: label}) + 134 مجلد source_N يحوي scraped_articles.json
المنهجية
- تنفيذ PyTorch أصيل لمصنّف Transformer Encoder لكشف الأخبار الزائفة العربية بثلاث فئات (Credible / Not Credible / Undecided).
- لا تُستخدم أي نماذج مُدرّبة مسبقاً: المُرمِّز والمفردات والترميز الموضعي ومشفّر المحوّل — كلها مبنية من المبادئ الأولى.
- التجارب 1–3 تعتمد تقسيم Cross-Source (folder) مع اختبار أعمى على 24 مجلداً محجوزاً؛ التجارب 4–6 تعتمد تقسيم Randomized (article) على الزحف الكامل.
الإعداد التجريبي
- المفرداتVocabulary
- Word-level · [CLS] tok… [SEP] [PAD] · MIN_WORD_FREQ = 1
- البذرة العشوائيةRandom seed
- 42
- العتادHardware
- RTX 2000 (قيود VRAM: BATCH_SIZE=16، MAX_LENGTH=512)
- معمارية الأساسBaseline architecture
- d=128, h=4, L=4, ff=256
- المعمارية الموسّعة (T5–T6)Scaled architecture
- d=256, h=8, L=6, ff=512
الخط الزمني للتجارب
تسلسل التطوير كما ورد في مستندات المشروع — من التجربة الأولى إلى التهيئة التجريبية الأخيرة
- 1
T1 — الأساس
54K train, CE Loss
Baseline — 54K train, CE Loss (كما ورد في مخطط التقرير).
- 2
T2 — توسيع + إيقاف مبكر
108K train
توسيع بيانات التدريب إلى 108,000 مقال مع تفعيل الإيقاف المبكر (val_loss, patience=3).
- 3
T3 — تنظيم متقدّم
216K train, Focal Loss
216,000 مقال تدريب · الانتقال إلى Focal Loss γ=2 مع الأوزان · Cosine Warmup · تجميد 3 طبقات لحقبتين · فصل قيم Dropout.
- 4
T4 — تقسيم عشوائي
425K train, 606K articles
التجربة 4 تُدخل التقسيم العشوائي على مستوى المقال (Randomized article split) ويستمر حتى التجربتين 5–6 · الزحف الكامل 606,912 مقالاً بلا حجز مجلدات.
- 5
T5 — Focal Loss + إذابة التجميد
485K train, gradual unfreeze
توسيع المعمارية إلى d=256, h=8, L=6, ff=512 · تقسيم 80/10/10 · خفض Dropout إلى 0.10 / 0.20 · إذابة التجميد بعد حقبتين.
- 6
T6 — الضبط التمييزي
mean-max pooling, label smoothing
1) إذابة تجميد تدريجية طبقة/حقبة (ULMFiT-style) بدل إذابة 3 طبقات + التضمين دفعة واحدة · 2) معدلات تعلّم تمييزية مع اضمحلال وزن منفصل يستثني LayerNorm/bias · 3) إعادة إحماء محلية عند كل إذابة · 4) رفع التنظيم مجدداً (attn_dropout=0.15، hidden_dropout=0.30) · 5) تنعيم التسميات ε=0.05 داخل Focal Loss · 6) تجميع Mean+Max مُسقَط إلى d_model · 7) إعادة تصفير الصبر عند كل حدث إذابة تجميد.
بطاقات التجارب
كل تجربة بإعدادها ونتائجها وملاحظاتها كما وردت في المصدر — بلا حذف أو تبسيط
مقارنة النتائج
كل الرسوم تعرض القيم المُبلَّغ عنها في المصدر كما هي — لا قيم مشتقّة
الدقة حسب التجربة — تدريب / تحقق / اختبار
F1 حسب التجربة
Recall لكل فئة (×100)
حجم بيانات التدريب مقابل دقة الاختبار
جداول المقارنة الأصلية
منقولة حرفياً من مستندات المشروع
جدول 1 — كل المعاملات عبر التجارب الست
All Parameters Across Six Trials — All_Trials_Report_2.pptx
| البند | التجربة 1 | التجربة 2 | التجربة 3 | التجربة 4 | التجربة 5 | التجربة 6 |
|---|---|---|---|---|---|---|
| نمط التقسيمSplit paradigm | Cross-Source (folder) | Cross-Source (folder) | Cross-Source (folder) | Randomized (article) | Randomized (article) | Randomized (article) |
| إجمالي مجلدات المصادرTotal source folders | 134 | 134 | 134 | 134 | 134 | 134 |
| مجلدات التطوير / الزحفDev / crawled folders | 110 | 110 | 110 | 134 (all — no holdout) | 134 (all — no holdout) | 134 (all — no holdout) |
| المجلدات المحجوزةHeld-out folders | 24 (18%) | 24 (18%) | 24 (18%) | N/A — no folder holdout | N/A — no folder holdout | N/A — no folder holdout |
| سقف المقالات لكل فئةArticles per class (cap) | 20,000 | 40,000 ↑ | 80,000 ↑↑ | None — full crawl | None — full crawl | None — full crawl |
| إجمالي مقالات التدريبTotal training articles | 54,000 | 108,000 (2×) | 216,000 (4×) | 424,838 (~8×) | 485,529 | 485,529 |
| مقالات التحققValidation articles | 6,000 | 12,000 | 24,000 | 91,037 | 60,691 | 60,691 |
| مقالات الاختبار المحجوزةHeld-out test articles | 10,000 (Blind) | 10,000 (Blind) | 10,000 (Blind) | 91,037 (Random 15%) | 60,692 (Random 10%) | 60,692 (Random 10%) |
| إجمالي المقالات المزحوفةTotal articles crawled | 60,000 | 120,000 | 240,000 | 606,912 (all) | 606,912 (all) | 606,912 (all) |
| عدد الحقب المنفّذةEpochs run | 10 (all) | 4 (early stop) | 7 (early stop) | 7 (early stop) | 6 (early stop) | 11 (early stop) |
| معيار التوقفStopping criterion | val_acc, no patience | val_loss, patience=3 | val_loss, patience=3 | val_loss, patience=3 | val_loss, patience=3 | val_loss, patience=3 |
| دالة الخسارةLoss function | CrossEntropy + weights | CrossEntropy + weights | Focal Loss γ=2 + weights | Focal Loss γ=2 + weights | Focal Loss γ=2 + weights | Focal Loss γ=2 + label smoothing 0.05 |
| جدولة معدّل التعلّمLR scheduler | Static 1e-4 | Static 1e-4 | Cosine Warmup (1 epoch) | Cosine Warmup (1 epoch) | Cosine Warmup (1 epoch) | Discriminative (base=1e-4, decay=0.85) |
| Dropout الانتباهAttention dropout | 0.1 | 0.3 | 0.15 (decoupled) | 0.20 (decoupled) | 0.10 | 0.15 |
| Dropout الرأس / المخرجاتHead / output dropout | 0.1 | 0.3 | 0.30 | 0.30 | 0.20 | 0.30 |
| التجميعPooling | CLS | CLS | CLS | CLS | CLS | Mean + Max concat (NEW) |
| تجميد الطبقاتLayer freezing | None | None | Freeze 3 layers × 2 ep | Freeze 3 layers × 2 ep | Freeze 3 layers × 2 ep | Gradual: 1 layer/epoch (2–5) |
| اضمحلال الوزنWeight decay | 0.01 | 0.001 | 0.001 | 0.001 | 0.001 | Decoupled: 0.05 / 0.0 |
| المعماريةArchitecture | d=128, h=4, L=4, ff=256 | same | same | same | d=256, h=8, L=6, ff=512 ↑ | same |
التجارب 1–3 تستخدم تقسيم Cross-Source (folder) · التجربة 4 تُدخل تقسيم Randomized (article) ويستمر حتى 5–6.
مصفوفات الالتباس
كما وردت في المستند المصدر — أعداد خام لكل تجربة
مصفوفات الالتباس — التجارب 1 و2 و3
Blind Test set · 10,000 مقال من 24 مصدراً غير مرئي إطلاقاً — نفس مجموعة الاختبار للتجارب الثلاث
التجربة 1 · 10,000 مقال اختبار
١٠٬٠٠٠ مقالBlind Test · 24 مصدراً غير مرئي إطلاقاً — نفس مجموعة الاختبار للتجارب 1–3
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ١٬٤٧٢ | ٦٠٩ | ٢٬٨٩٠ |
| غير موثوق | ٨٢٧ | ١٬٠٦٠ | ٩٤٥ |
| غير محسوم | ١٦٤ | ٥٢٥ | ١٬٥٠٨ |
التجربة 2 · 10,000 مقال اختبار
١٠٬٠٠٠ مقالBlind Test · نفس مجموعة الاختبار
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ١٬٠٥٩ | ٧٨٤ | ٣٬١٢٨ |
| غير موثوق | ٧٠٦ | ١٬٢٣٩ | ٨٨٧ |
| غير محسوم | ١١٥ | ٥٤٨ | ١٬٥٣٤ |
التجربة 3 · 10,000 مقال اختبار
١٠٬٠٠٠ مقالBlind Test · نفس مجموعة الاختبار
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ١٬٠٧٧ | ٧٧٩ | ٣٬١١٥ |
| غير موثوق | ٨٤٣ | ١٬١٣٣ | ٨٥٦ |
| غير محسوم | ١٤٦ | ٥٩٢ | ١٬٤٥٩ |
- Credible → Undecided يهيمن على التجارب الثلاث في الاختبار الأعمى: 58–63% من كل مقال Credible حقيقي (2,890–3,128 من 4,971) يُصنَّف Undecided — النموذج يلجأ إلى «غير محسوم» أمام أساليب المصادر غير المألوفة بدل التخمين الواثق.
- recall فئة Undecided يبقى الأعلى (66–70%) في التجارب الثلاث، لكن بثمن precision منخفض جداً — تتحوّل إلى سلة تجميع للمصادر غير المعروفة.
- هذا النمط ينقلب تماماً في التجارب 4–6، حيث تصبح Credible أقوى الفئات وأدقّها — ما يؤكد أن عنق الزجاجة هنا هو الانتقال عبر المصادر، لا قدرة النموذج على الفصل بين الفئات الثلاث.
مصفوفات الالتباس — التجارب 4 و5 و6
التجارب الثلاث تتشارك نمط التقسيم العشوائي ومنطق التقييم (أحجام مجموعات الاختبار تختلف: T4=91,037؛ T5/T6=60,692)
التجربة 4 · 91,037 مقال اختبار
٩١٬٠٣٧ مقالRandomized split (15%)
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ٢٦٬٣٢١ | ٢٬٥٠٨ | ٢٬٢٦٨ |
| غير موثوق | ٢٬٠٣٤ | ١٩٬٤٠٠ | ٣٬٦٥١ |
| غير محسوم | ١٬٩٩٨ | ٣٬٨٤٠ | ٢٩٬٠١٧ |
التجربة 5 · 60,692 مقال اختبار
٦٠٬٦٩٢ مقالRandomized split (10%)
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ١٧٬٧٨٩ | ١٬٨٣٣ | ١٬١٠٩ |
| غير موثوق | ١٬١٢١ | ١٤٬٠٠٢ | ١٬٦٠١ |
| غير محسوم | ١٬٠٤٧ | ٣٬٧٣٣ | ١٨٬٤٥٧ |
التجربة 6 · 60,692 مقال اختبار
٦٠٬٦٩٢ مقالRandomized split (10%)
| حقيقي \ متوقّع | موثوق | غير موثوق | غير محسوم |
|---|---|---|---|
| موثوق | ١٧٬٨٥٤ | ١٬٣٤٥ | ١٬٥٣٢ |
| غير موثوق | ١٬٠١٦ | ١٢٬٨٦٨ | ٢٬٨٤٠ |
| غير محسوم | ٩٠٤ | ١٬٨٥٣ | ٢٠٬٤٨٠ |
- Not Credible → Undecided هو أكبر التباس في التجارب الثلاث — التجربة 6 تدفع مزيداً منه نحو Undecided (2,840 مقابل 1,601 في T5)، مقايضةً بعض recall فئة Not Credible مقابل الدقة الكلية.
- Undecided → Not Credible ينخفض بحدّة من التجربة 5 إلى 6 (3,733 ← 1,853) — أكبر تقليص مفرد للأخطاء بين التجربتين.
- Credible هي أكثر التسميات موثوقية في تصنيفها عبر تجارب التقسيم العشوائي الثلاث (F1 > 0.85 في كلها) — عكس نمط الاختبار الأعمى في الشريحة السابقة.
الملاحظات والاستنتاجات
نصوص منقولة من مستندات المشروع
المشكلة (التجربة 5)
Trial 5 (Focal Loss + freeze/unfreeze at epoch 2): reaches the highest raw validation accuracy (85.15%) but overfits sharply after unfreezing — val loss climbs from 0.161 to 0.223 over the last three epochs.
الإصلاح (التجربة 6)
Trial 6 (gradual per-layer unfreeze + discriminative LR + label smoothing): trades a little peak validation accuracy for a training curve that never diverges — and posts the best test accuracy of any trial (84.37%).
الاستنتاج الجوهري
The core finding: fine-tuning stability, not model capacity, was the remaining bottleneck after Trial 4 — and Trial 6’s training-dynamics fixes resolved it.
- الخلاصة الجوهرية: استقرار الضبط الدقيق — لا سعة النموذج — هو عنق الزجاجة المتبقّي بعد التجربة 4، وقد حلّته إصلاحات ديناميكيات التدريب في التجربة 6.
- التجارب 5 و6 تتشاركان التقسيم العشوائي 80/10/10 على 606,912 مقالاً؛ التجربة 6 تضيف الإذابة التدريجية لكل طبقة، ومعدلات التعلّم التمييزية، وتنعيم التسميات — فتكاد تُلغي فجوة التحقق ← الاختبار التي ظهرت في التجربة 5.
- أفضل نتيجة في المسار A: التجربة 6 — 84.37% دقة اختبار، فجوة val→test = 0.16 نقطة مئوية.