كيف أنقذتنا ‘نماذج كشف الشذوذ’ من خسائر الاحتيال الصامتة: قصة من قلب الـFintech

أذكرها وكأنها البارحة. كانت الساعة قد تجاوزت الثانية صباحاً، وأنا وفريق العمل في الشركة الناشئة التي كنت أعمل بها نحدق في الشاشات بعيون ذابلة وقلوب مثقلة. رائحة القهوة الباردة تملأ الغرفة، ومؤشرات الخسائر تتراقص أمامنا كشبح يسخر من محاولاتنا اليائسة. كنا نواجه نوعاً جديداً من الاحتيال، “احتيال صامت”.

لم تكن هناك معاملات ضخمة تصرخ “أنا عملية احتيال!”. بل كانت آلاف العمليات الصغيرة، مبالغ لا تثير الشكوك، موزعة على آلاف الحسابات، تتم في أوقات غير متوقعة. كانت مثل نزيف داخلي صامت يستنزف مواردنا ببطء ولكن بثبات. كلما وضعنا قاعدة جديدة في نظامنا التقليدي (if-then-else)، كان المحتالون يجدون ثغرة جديدة. كانوا دائماً يسبقوننا بخطوة، وكنا نشعر بأننا “ملحوقين” في سباق خاسر.

في تلك الليلة، وبينما كنت أقلّب في الأكواد والبيانات، لمعت في ذهني فكرة. قلت للفريق بصوت مرهق: “يا جماعة، إحنا بنلاحق أثرهم، لازم نسبقهم ونعرف حركتهم الجاي. لازم نعلّم النظام يميز إيش هو الطبيعي، وأي إشي غير هيك يكون هو المشبوه”. كانت تلك هي اللحظة التي قررنا فيها أن نغوص في عالم نماذج كشف الحالات الشاذة (Anomaly Detection). لم نكن نعلم حينها أن هذا القرار سينقذنا من جحيم الخسائر الصامتة.

ما هو كشف الحالات الشاذة (Anomaly Detection) وليش هو “المنقذ”؟

بكل بساطة، كشف الحالات الشاذة هو تقنية في تعلم الآلة هدفها تحديد الأنماط أو الأحداث أو الملاحظات التي لا تتوافق مع السلوك المتوقع أو “الطبيعي”. زي ما بنحكي بالعامية، هو “اللي بيلقط الإشي النشاز” في مجموعة بيانات ضخمة.

النظام التقليدي لكشف الاحتيال يعتمد على قواعد محددة مسبقاً. مثلاً:

إذا كانت المعاملة أكبر من 1000 دولار وتمت من بلد لم يزره العميل من قبل، فقم بحظرها.

هذا النهج جيد، لكن مشكلته أنه جامد. ماذا لو كانت عملية الاحتيال بـ 999 دولاراً؟ أو ماذا لو كانت عبارة عن 100 عملية بقيمة 10 دولارات لكل منها في دقيقة واحدة؟ القواعد التقليدية ستفشل هنا. المحتالون أذكى من أن يقعوا في فخاخ معروفة.

هنا يأتي دور نماذج كشف الشذوذ. بدلاً من البحث عن أنماط احتيال “معروفة”، هي تتعلم كيف يبدو السلوك “الطبيعي” للمستخدم. أي شيء يخرج عن هذا الإطار الطبيعي، حتى لو لم نره من قبل، يتم اعتباره حالة شاذة ومحتملة للاحتيال. هذا يعني أننا انتقلنا من رد الفعل إلى الفعل الاستباقي.

أنواع الحالات الشاذة: مش كل “الغريب” زي بعضه!

لفهم قوة هذه النماذج، علينا أن نعرف أن “الشذوذ” له أنواع مختلفة، وكل نوع يتطلب طريقة مختلفة للتعامل معه.

1. الحالات الشاذة النقطية (Point Anomalies)

هذا هو النوع الأبسط. هو عبارة عن نقطة بيانات واحدة تختلف بشكل كبير عن بقية البيانات. مثلاً، عميل متوسط إنفاقه اليومي 50 دولاراً، وفجأة يقوم بعملية شراء بقيمة 7000 دولار. هذه النقطة بحد ذاتها تصرخ بأن هناك شيئاً غريباً.

2. الحالات الشاذة السياقية (Contextual Anomalies)

هنا تصبح الأمور أكثر إثارة. القيمة بحد ذاتها قد تكون طبيعية، لكنها شاذة في سياقها. تخيل شخصاً يشتري معطفاً شتوياً ثقيلاً في عز الصيف في مدينة خليجية حارة! المعاملة نفسها (شراء معطف) طبيعية، لكن السياق (الزمان والمكان) يجعلها شاذة.

في عالم الـ Fintech، قد يكون هذا عميلاً يقوم بسلسلة من عمليات السحب النقدي الساعة 3 فجراً، مع العلم أن سجلّه يوضح أنه لا يستخدم بطاقته أبداً بعد منتصف الليل. المبلغ قد يكون صغيراً، لكن التوقيت هو ما يجعله شاذاً.

3. الحالات الشاذة الجماعية (Collective Anomalies)

هذا هو النوع الذي كان يسبب لنا الصداع في قصتي. هنا، كل نقطة بيانات على حدة تبدو طبيعية تماماً، لكن تجمعها معاً يشكل نمطاً شاذاً. عمليات الاحتيال الصامتة التي واجهناها كانت من هذا النوع: سلسلة من المعاملات الصغيرة جداً (مثلاً 1 دولار) تتم بسرعة كبيرة من بطاقة واحدة إلى عدة تجار مختلفين عبر الإنترنت. كل معاملة وحدها لا تثير أي شكوك، لكن تسلسلها وتكرارها هو الحالة الشاذة.

كيف “بفكر” نموذج كشف الحالات الشاذة؟ (الخوارزميات والتقنيات)

هناك العديد من الخوارزميات، ولكن دعوني أشارككم بعضاً من أكثرها فعالية وعملية في مجالنا:

خوارزمية غابة العزل (Isolation Forest)

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

تخيل أن لديك مجموعة من البيوت المتلاصقة في حي مزدحم (البيانات الطبيعية)، وبيت واحد منعزل على قمة جبل (حالة شاذة). لو طلبت منك أن ترسم خطوطاً عشوائية لتقسيم المنطقة حتى تعزل بيتاً واحداً فقط، ستجد أنك تحتاج لعدد قليل جداً من الخطوط لعزل البيت المنفرد على الجبل، بينما ستحتاج لعدد كبير جداً من الخطوط لعزل بيت واحد في الحي المزدحم.

خوارزمية Isolation Forest تفعل ذلك بالضبط. هي تبني “أشجار قرار” عشوائية، والبيانات التي يتم عزلها في عدد قليل من الخطوات (أو التقسيمات) تعتبر حالات شاذة.

مثال بالكود (Python)

لنجرب مثالاً عملياً بسيطاً باستخدام مكتبة scikit-learn الشهيرة. تخيل أن لدينا بيانات معاملات مالية (المبلغ، والوقت من اليوم).


import numpy as np
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest

# لنصنع بعض البيانات للتجربة
# 200 معاملة طبيعية (مبالغ صغيرة في أوقات متفرقة)
X_train = np.random.rand(200, 2) * [100, 24]  # [amount, hour_of_day]

# لنضف بعض الحالات الشاذة
anomalies = np.array([
    [500, 2],    # مبلغ كبير جداً في وقت مبكر
    [10, 3],     # مبلغ صغير لكن في وقت غير معتاد (3 الفجر)
    [12, 3.1],   # حالة شاذة جماعية (قريبة من السابقة)
    [8, 3.2],
    [600, 22]    # مبلغ كبير في وقت متأخر
])

# دمج البيانات الطبيعية والشاذة
X_full = np.concatenate([X_train, anomalies])

# تهيئة وتدريب نموذج غابة العزل
# contamination تعني النسبة المتوقعة من الحالات الشاذة في البيانات
clf = IsolationForest(n_estimators=100, contamination=0.05, random_state=42)
clf.fit(X_full)

# التنبؤ بالحالات الشاذة
# سيعطينا 1 للبيانات الطبيعية و -1 للشاذة
y_pred = clf.predict(X_full)

# عرض النتائج
plt.figure(figsize=(10, 6))
plt.scatter(X_full[:, 0], X_full[:, 1], c=y_pred, cmap='coolwarm')
plt.title("كشف الحالات الشاذة باستخدام Isolation Forest")
plt.xlabel("مبلغ المعاملة")
plt.ylabel("ساعة التنفيذ (0-24)")
plt.show()

في الرسم البياني الناتج، ستلاحظ أن النموذج نجح في تحديد النقاط الحمراء (التي تمثل -1) كحالات شاذة، بينما بقيت النقاط الزرقاء (1) كبيانات طبيعية.

خوارزميات التجميع (Clustering-Based) مثل DBSCAN

فكرة أخرى جميلة. هذه الخوارزميات تعمل على تجميع النقاط المتقاربة معاً في “عناقيد” (clusters). الفكرة هي أن البيانات الطبيعية ستشكل عناقيد كثيفة، بينما الحالات الشاذة ستكون نقاطاً وحيدة لا تنتمي لأي عنقود. خوارزمية مثل DBSCAN (Density-Based Spatial Clustering of Applications with Noise) ممتازة لهذا الغرض لأنها لا تتطلب تحديد عدد العناقيد مسبقاً، وتتعامل مع النقاط التي لا تنتمي لأي مجموعة على أنها “ضوضاء” (noise) أو حالات شاذة.

نصائح من “الختيار” (أبو عمر) لتطبيق ناجح

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

  • البيانات هي النفط والذهب: هذه المقولة ليست مجرد كليشيه. جودة بياناتك هي كل شيء. قبل أن تكتب سطراً واحداً من كود تعلم الآلة، تأكد من أن بياناتك نظيفة، وذات صلة، وتمثل السلوك الذي تريد نمذجته. “Garbage in, garbage out” كما يقولون.
  • لا تثق بالنموذج ثقة عمياء: النموذج ليس ساحراً. هو أداة إحصائية قوية. في البداية، استخدم النموذج كـ “نظام إنذار مبكر”. عندما يكتشف حالة شاذة، لا تحظر المعاملة مباشرة. اعرضها على محلل بشري ليؤكدها أو ينفيها. هذا النهج (Human-in-the-loop) لا يمنع فقط النتائج الإيجابية الخاطئة (false positives) المزعجة للعملاء، بل يوفر أيضاً بيانات مصنفة يمكنك استخدامها لإعادة تدريب النموذج وتحسينه.
  • النموذج ليس شيئاً ثابتاً: المحتالون يطورون أساليبهم باستمرار. النموذج الذي كان فعالاً اليوم قد يصبح قديماً بعد ستة أشهر. يجب أن تكون لديك آلية لمراقبة أداء النموذج باستمرار (Model Monitoring) وإعادة تدريبه على بيانات جديدة بشكل دوري. “المحتالين ما بناموا، وإحنا كمان لازم نضل صاحيين”.
  • ابدأ بسيطاً ثم تعقّد: لا تقفز مباشرة إلى نماذج الشبكات العصبية العميقة المعقدة. ابدأ بنموذج بسيط ومفهوم مثل Isolation Forest. أثبت قيمته، وافهم نقاط قوته وضعفه، ثم قم بالبناء عليه وتجربة نماذج أكثر تعقيداً إذا لزم الأمر.

الخلاصة: من مطاردة الظلال إلى استشراف المستقبل

التحول من الأنظمة المعتمدة على القواعد إلى نماذج كشف الحالات الشاذة لم يكن مجرد تحديث تقني، بل كان تغييراً جذرياً في طريقة تفكيرنا. لقد انتقلنا من مطاردة أشباح عمليات الاحتيال المعروفة، إلى بناء نظام مناعة رقمي يمكنه التعرف على “الأجسام الغريبة” والتهديدات الجديدة وغير المتوقعة والتصدي لها.

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

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

البنية التحتية وإدارة السيرفرات

كانت أعطالنا صناديق سوداء: كيف أنقذتنا ‘المراقبة الاستباقية’ (Observability) من جحيم التخمين الأعمى؟

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

7 مايو، 2026 قراءة المزيد
ادارة الفرق والتنمية البشرية

كان أفضل مهندسينا يرحلون بصمت: كيف أنقذتنا ‘سلالم المسار الوظيفي’ من جحيم سقف النمو المسدود؟

أشارككم قصة حقيقية عن "خالد"، مهندسنا النجم الذي كاد أن يرحل بصمت بسبب غياب الرؤية لمستقبله. هذه المقالة تشرح بالتفصيل كيف أن بناء "سلالم المسار...

7 مايو، 2026 قراءة المزيد
اختبارات الاداء والجودة

كانت تغطية الكود 100% لكن الأخطاء تتسلل: كيف أنقذنا ‘الاختبار الطفري’ من جحيم الثقة الزائفة؟

كنا نحتفل بتغطية اختبارات بنسبة 100%، لكن الأخطاء استمرت بالظهور في بيئة الإنتاج. هذه قصتي مع "الاختبار الطفري" (Mutation Testing)، الأداة التي كشفت لنا حقيقة...

7 مايو، 2026 قراءة المزيد
أدوات وانتاجية

كانت إنتاجيتي تموت نقرة بنقرة: كيف أنقذني ‘قاذف الأوامر’ (Launcher) من جحيم الاعتماد على الفأرة؟

قصة شخصية لمبرمج فلسطيني كاد أن يفقد عقله بسبب التشتت والنقرات المتكررة. اكتشف كيف غيرت أداة بسيطة مثل Raycast أو Alfred طريقة عمله بالكامل، وحولته...

7 مايو، 2026 قراءة المزيد
​معمارية البرمجيات

من الانهيار المتسلسل إلى المرونة: كيف أنقذتنا هندسة الأحداث (EDA) من جحيم التشابك؟

أتذكرها جيداً، ليلة إطلاق الميزة الجديدة في متجرنا الإلكتروني. كان كل تغيير بسيط يهدد بانهيار النظام بأكمله كأحجار الدومينو. في هذه المقالة، أسرد لكم يا...

7 مايو، 2026 قراءة المزيد
ذكاء اصطناعي

كانت أفكارنا سجينة الأوامر المتتالية: كيف حررتنا ‘العملاء المستقلون’ (AI Agents) من جحيم التنفيذ اليدوي؟

مقالة من منظور مبرمج خبير، تستعرض كيف أن العملاء المستقلين (AI Agents) يمثلون نقلة نوعية في عالم البرمجة والأتمتة. من خلال قصة شخصية وأمثلة عملية،...

7 مايو، 2026 قراءة المزيد
البودكاست