أطروحة الماجستير: كشف قابل للتفسير لرسائل التصيّد الاحتيالي المكتوبة بالذكاء الاصطناعي
قُدّمت، والنتيجة لم تصدر بعدأطروحتي للماجستير في Liverpool John Moores University: كشف رسائل التصيّد الاحتيالي المكتوبة بالذكاء الاصطناعي، وقياس ما إذا كانت تفسيرات كل كاشف أمينة لما يفعله فعلًا.
- دوري
- المؤلف: تصميم التجارب، والكود، والتقييم، والكتابة
- السنة
- 2026
- التقنيات المستخدمة
- Python · scikit-learn · XGBoost · LightGBM · PyTorch · Transformers · SHAP · LIME · Integrated Gradients
المشكلة
رسائل التصيّد التي تكتبها النماذج اللغوية تختلف في قراءتها عن القوالب القديمة، والكاشف الذي لا يستطيع أحد تفسيره يصعب الوثوق به أو تدقيقه. طرحت سؤالين: أي نوع من النماذج يصمد أمام البريد المكتوب بالذكاء الاصطناعي، وهل التفسيرات أمينة لما يفعله النموذج حقًا؟
كيف بُني
مقارنة بين ثلاث عائلات من النماذج على التقسيمات نفسها (splits): النماذج الكلاسيكية (الانحدار اللوجستي، وnaive Bayes، وSVM، وشجرة القرار، والغابة العشوائية)، ونماذج تجميعية بـ gradient boosting (XGBoost وLightGBM)، ونماذج transformers (BERT وDistilBERT وRoBERTa)، مع اختبارات عبر مجموعات بيانات مختلفة (cross-corpus) بين البريد الأقدم والبريد المولّد بالذكاء الاصطناعي. وقُيّمت تفسيرات SHAP وLIME وIntegrated Gradients من حيث الأمانة والثبات والمعقولية، مقارنةً بخط أساس من الإسناد العشوائي (random attribution). سُجّل البروتوكول قبل تشغيل التجارب، وحُفظ معجم المؤشرات (cue lexicon) في commit قبل أي نتائج، وتحمي مجموعة اختبارات بضوابط إيجابية (positive control) أدوات التفسير، وجرى التحقق من مقياس المعقولية بمقارنته بمقيّمين بشريين وبـ LLM يعمل حَكَمًا. وجرى تشغيل كل شيء على RTX 3090 محلي.
القرارات المهمة
مُسجَّل قبل التشغيل
حُفظت البروتوكولات والمعجم والفرضيات في commits قبل وجود أي نتائج، فلم يكن ممكنًا انتقاء أي شيء بأثر رجعي.
قِيست التفسيرات
أي طريقة تسجّل نتيجة مثل الإسناد العشوائي يُبلَّغ عنها على هذا الأساس. وعندما سجّل LIME نتيجة مثل العشوائي، كان السبب خطأً (bug) في الـ adapter الذي كتبته لـ LIME: وسيط (argument) معكوس في الـ tokenizer. أفصحت عن الخطأ، وأصلحته، وأعدت التشغيل. وكان LIME بعد التصحيح أمينًا، لكنه الطريقة الأقل ثباتًا.
النموذج البسيط فاز
على البريد المولّد بالذكاء الاصطناعي، تفوّق نموذج خطي مضبوط يعتمد على TF-IDF على RoBERTa في ROC-AUC (0.9993 مقابل 0.9976)، وفسّره SHAP بأمانة، أسرع بـ 64.5 مرة من LIME بعد التصحيح.
كود من المستودع
def faithfulness(champ, texts, attrs, preds, seed: int = 42) -> dict:
rng = np.random.default_rng(seed)
preds = np.asarray(preds)
p_orig = _p_pred(champ.proba(texts), preds)1
variants: list[str] = []
meta: list[tuple] = [] # (doc_i, kind, k, is_random)
for i, (text, attr, pred) in enumerate(zip(texts, attrs, preds)):
nw = len(textops.word_spans(text))
top = textops.top_k_positions(attr, int(pred), min(20, nw))
randperm = rng.permutation(nw).tolist()2
for k in K_AOPC:
variants.append(textops.remove_words(text, top[:k])); meta.append((i, "comp", k, False))3
variants.append(textops.remove_words(text, randperm[:k])); meta.append((i, "comp", k, True))
for k in K_REPORT:
variants.append(textops.keep_only_words(text, top[:k])); meta.append((i, "suff", k, False))
variants.append(textops.keep_only_words(text, randperm[:k])); meta.append((i, "suff", k, True))
P = _p_pred(champ.proba(variants), preds[[m[0] for m in meta]])4
السطر 4. احتمال الفئة المتوقعة على المستند الأصلي، وهو المرجع لكل مقارنة.
السطر 11. خط الأساس العشوائي: عمليات الحذف نفسها، لكن بترتيب عشوائي للكلمات، عبر الـ pipeline نفسه تمامًا.
السطر 13. الشمولية (comprehensiveness): احذف كلمات top-k التي يشير إليها التفسير. كلما انخفض الاحتمال أكثر، كان التفسير أكثر أمانة.
السطر 19. كل نسخة من كل مستند تمر عبر الـ GPU في batch واحدة.
أين وصل الآن
قُدّمت في أغسطس 2026، والنتيجة لم تصدر بعد. ويمكن إعادة إنتاج كل جدول وكل شكل من سكربتات محفوظة في commits ومن seeds ثابتة. وأعمل الآن مع مشرفي على تحويلها إلى ورقة بحثية لمؤتمر.