تصفية بايز أفضل
يناير 2003
(تم تقديم هذه المقالة كحديث في مؤتمر البريد المزعج لعام 2003. تصف العمل الذي قمت به لتحسين أداء الخوارزمية الموصوفة في خطة لمكافحة البريد المزعج، وما أخطط للقيام به في المستقبل.)
أول اكتشاف أود تقديمه هنا هو خوارزمية للتقييم الكسول للأوراق البحثية. فقط اكتب ما تريد ولا تستشهد بأي عمل سابق، وسيرسل لك القراء المستاؤون مراجع لجميع الأوراق التي كان يجب عليك الاستشهاد بها. اكتشفت هذه الخوارزمية بعد أن تم نشر "خطة لمكافحة البريد المزعج" [1] على Slashdot.
تصفية البريد المزعج هي مجموعة فرعية من تصنيف النصوص، وهو مجال راسخ، ولكن يبدو أن أولى الأوراق حول تصفية البريد المزعج القائمة على بايز بحد ذاتها كانت ورقتين قُدمتا في نفس المؤتمر عام 1998، إحداهما لبانتل ولين [2]، والأخرى لمجموعة من Microsoft Research [3].
عندما سمعت عن هذا العمل، كنت متفاجئًا بعض الشيء. إذا كان الناس قد توصلوا إلى تصفية بايز قبل أربع سنوات، فلماذا لم يكن الجميع يستخدمونها؟ عندما قرأت الأوراق، اكتشفت السبب. كان فلتر بانتل ولين هو الأكثر فعالية بين الاثنين، لكنه أمسك 92٪ فقط من البريد المزعج، مع 1.16٪ من الإيجابيات الخاطئة.
عندما حاولت كتابة فلتر بريد مزعج قائم على بايز، أمسك 99.5٪ من البريد المزعج مع أقل من 0.03٪ من الإيجابيات الخاطئة [4]. من المقلق دائمًا عندما يحصل شخصان يجربان نفس التجربة على نتائج متباينة بشكل كبير. إنه مقلق بشكل خاص هنا لأن هاتين المجموعتين من الأرقام قد تؤديان إلى استنتاجات متعارضة. لدى المستخدمين المختلفين متطلبات مختلفة، لكنني أعتقد أنه بالنسبة للكثيرين، فإن معدل التصفية البالغ 92٪ مع 1.16٪ من الإيجابيات الخاطئة يعني أن التصفية ليست حلاً مقبولاً، في حين أن 99.5٪ مع أقل من 0.03٪ من الإيجابيات الخاطئة يعني أنها كذلك.
فلماذا حصلنا على أرقام مختلفة جدًا؟ لم أحاول إعادة إنتاج نتائج بانتل ولين، ولكن من قراءة الورقة أرى خمسة أشياء من المحتمل أن تفسر هذا الاختلاف.
أحدها هو ببساطة أنهم دربوا فلترهم على بيانات قليلة جدًا: 160 بريدًا مزعجًا و 466 بريدًا غير مزعج. يجب أن يستمر أداء الفلتر في التحسن مع مجموعات بيانات صغيرة كهذه. لذا قد لا تكون أرقامهم مقياسًا دقيقًا لأداء خوارزميتهم، ناهيك عن تصفية البريد المزعج القائمة على بايز بشكل عام.
لكنني أعتقد أن الفرق الأكثر أهمية هو على الأرجح أنهم تجاهلوا رؤوس الرسائل. بالنسبة لأي شخص عمل على فلاتر البريد المزعج، سيبدو هذا قرارًا منحرفًا. ومع ذلك، في الفلاتر الأولى التي حاولت كتابتها، تجاهلت الرؤوس أيضًا. لماذا؟ لأنني أردت الحفاظ على المشكلة منظمة. لم أكن أعرف الكثير عن رؤوس البريد حينها، وبدت لي مليئة بالبيانات العشوائية. هناك درس هنا لكتاب الفلاتر: لا تتجاهل البيانات. قد تعتقد أن هذا الدرس واضح جدًا لدرجة أنه لا يحتاج إلى ذكر، لكنني اضطررت لتعلمه عدة مرات.
ثالثًا، قام بانتل ولين بتجذير الكلمات، مما يعني أنهم اختزلوا "المراسلة" و "تمت مراسلتها" إلى الجذر "مراسلة". ربما شعروا أنهم اضطروا إلى القيام بذلك بسبب صغر حجم مجموعتهم النصية، ولكن إذا كان الأمر كذلك، فهذا نوع من التحسين المبكر.
رابعًا، قاموا بحساب الاحتمالات بشكل مختلف. استخدموا جميع الكلمات، بينما استخدمت أنا فقط الـ 15 الأكثر أهمية. إذا استخدمت جميع الكلمات، فستميل إلى تفويت رسائل البريد المزعج الطويلة، من النوع الذي يروي فيه شخص ما قصة حياته حتى النقطة التي أصبح فيها ثريًا من مخطط تسويق متعدد المستويات. وسيكون مثل هذا الخوارزمية سهل التزييف من قبل مرسلي البريد المزعج: فقط أضف جزءًا كبيرًا من النص العشوائي لموازنة مصطلحات البريد المزعج.
أخيرًا، لم يقوموا بالتحيز ضد الإيجابيات الخاطئة. أعتقد أن أي خوارزمية لتصفية البريد المزعج يجب أن تحتوي على مقبض مريح يمكنك لفه لتقليل معدل الإيجابيات الخاطئة على حساب معدل التصفية. أفعل هذا عن طريق مضاعفة عدد مرات ظهور الكلمات في مجموعة البريد غير المزعج.
لا أعتقد أنه من الجيد التعامل مع تصفية البريد المزعج كمشكلة تصنيف نصوص مباشرة. يمكنك استخدام تقنيات تصنيف النصوص، ولكن الحلول يمكن ويجب أن تعكس حقيقة أن النص هو بريد إلكتروني، وبريد مزعج على وجه الخصوص. البريد الإلكتروني ليس مجرد نص؛ له هيكل. تصفية البريد المزعج ليست مجرد تصنيف، لأن الإيجابيات الخاطئة أسوأ بكثير من السلبيات الخاطئة لدرجة أنه يجب التعامل معها كنوع مختلف من الأخطاء. ومصدر الخطأ ليس مجرد تباين عشوائي، بل هو مرسل بريد مزعج بشري حي يعمل بنشاط لهزيمة فلترك.
الكلمات (Tokens)
مشروع آخر سمعت عنه بعد مقالة Slashdot كان مشروع Bill Yerazunis' CRM114 [5]. هذا هو المثال المضاد لمبدأ التصميم الذي ذكرته للتو. إنه مصنف نصوص مباشر، ولكنه فعال بشكل مذهل لدرجة أنه ينجح في تصفية البريد المزعج بشكل شبه مثالي دون حتى معرفة ما يفعله.
بمجرد أن فهمت كيفية عمل CRM114، بدا حتميًا أنني سأنتقل في النهاية من التصفية بناءً على الكلمات الفردية إلى نهج مثل هذا. لكن أولاً، اعتقدت أنني سأرى إلى أي مدى يمكنني الوصول بالكلمات الفردية. والإجابة هي، بشكل مدهش بعيدًا.
في الغالب كنت أعمل على تجزئة أكثر ذكاءً. في البريد المزعج الحالي، تمكنت من تحقيق معدلات تصفية تقترب من معدلات CRM114. هذه التقنيات متعامدة في الغالب مع تقنيات Bill؛ قد يشتمل الحل الأمثل على كليهما.
تستخدم "خطة لمكافحة البريد المزعج" تعريفًا بسيطًا جدًا للكلمة. الأحرف والأرقام والشرطات وعلامات الاقتباس وعلامات الدولار هي أحرف مكونة، وكل شيء آخر هو فاصل للكلمات. لقد تجاهلت أيضًا حالة الأحرف.
الآن لدي تعريف أكثر تعقيدًا للكلمة:
-
يتم الحفاظ على حالة الأحرف.
-
علامات التعجب هي أحرف مكونة.
-
النقاط والفواصل هي مكونات إذا ظهرت بين رقمين. هذا يسمح لي بالحصول على عناوين IP والأسعار سليمة.
-
نطاق سعر مثل 20-25 دولارًا ينتج عنه كلمتان، 20 دولارًا و 25 دولارًا.
-
الكلمات التي تظهر داخل أسطر To و From و Subject و Return-Path، أو داخل عناوين URL، يتم تمييزها وفقًا لذلك. على سبيل المثال، تصبح "foo" في سطر Subject "Subject*foo". (يمكن أن تكون النجمة أي حرف لا تسمح به كمكون.)
مثل هذه الإجراءات تزيد من مفردات الفلتر، مما يجعله أكثر تمييزًا. على سبيل المثال، في الفلتر الحالي، "free" في سطر الموضوع لها احتمالية بريد مزعج بنسبة 98٪، بينما نفس الكلمة في الجسم لها احتمالية بريد مزعج بنسبة 65٪ فقط.
إليك بعض الاحتمالات الحالية [6]:
SubjectFREE 0.9999 free!! 0.9999 Tofree 0.9998 Subjectfree 0.9782 free! 0.9199 Free 0.9198 Urlfree 0.9091 FREE 0.8747 From*free 0.7636 free 0.6546
في فلتر "خطة لمكافحة البريد المزعج"، كانت كل هذه الكلمات ستحصل على نفس الاحتمالية، 0.7602. تعرف هذا الفلتر على حوالي 23000 كلمة. التعرف على الفلتر الحالي على حوالي 187000 كلمة.
عيب وجود عالم أكبر من الكلمات هو أن هناك فرصة أكبر للفقدان. نشر مجموعتك النصية على المزيد من الكلمات له نفس تأثير جعلها أصغر. إذا كنت تعتبر علامات التعجب مكونات، على سبيل المثال، فقد ينتهي بك الأمر بعدم وجود احتمالية بريد مزعج لـ "free" مع سبع علامات تعجب، على الرغم من أنك تعلم أن "free" مع علامتي تعجب فقط لديها احتمالية 99.99٪.
أحد الحلول لهذا هو ما أسميه الانحلال. إذا لم تتمكن من العثور على تطابق تام لكلمة، فتعامل معها كما لو كانت نسخة أقل تحديدًا. أعتبر علامات التعجب الطرفية والأحرف الكبيرة والظهور في أحد السياقات الخمسة المحددة كجعل الكلمة أكثر تحديدًا. على سبيل المثال، إذا لم أجد احتمالية لـ "Subjectfree!"، فأنا أبحث عن احتمالات لـ "Subjectfree" و "free!" و "free"، وآخذ أيًا منها أبعد عن 0.5.
إليك البدائل [7] التي تم النظر فيها إذا رأى الفلتر "FREE!!!" في سطر الموضوع ولم يكن لديه احتمالية له.
SubjectFree!!! Subjectfree!!! SubjectFREE! SubjectFree! Subjectfree! SubjectFREE SubjectFree Subjectfree FREE!!! Free!!! free!!! FREE! Free! free! FREE Free free
إذا قمت بذلك، تأكد من مراعاة الإصدارات ذات الأحرف الكبيرة الأولى بالإضافة إلى الأحرف الكبيرة بالكامل والأحرف الصغيرة بالكامل. تميل رسائل البريد المزعج إلى أن تحتوي على المزيد من الجمل في صيغة الأمر، وفي تلك الجمل، الكلمة الأولى هي فعل. لذا فإن الأفعال ذات الأحرف الكبيرة الأولى لها احتمالات بريد مزعج أعلى مما لو كانت بأحرف صغيرة بالكامل. في فلتر الخاص بي، احتمالية البريد المزعج لـ "Act" هي 98٪ ولـ "act" فقط 62٪.
إذا قمت بزيادة مفردات الفلتر الخاص بك، فقد ينتهي بك الأمر إلى عد نفس الكلمة عدة مرات، وفقًا لتعريفك القديم لـ "نفس". منطقيًا، لم تعد نفس الكلمة. ولكن إذا كان هذا لا يزال يزعجك، دعني أضيف من الخبرة أن الكلمات التي يبدو أنك تعدها عدة مرات هي بالضبط تلك التي ترغب في عدها.
تأثير آخر للمفردات الأكبر هو أنه عندما تنظر إلى بريد وارد، تجد المزيد من الكلمات المثيرة للاهتمام، أي تلك التي لديها احتمالات بعيدة عن 0.5. أستخدم الـ 15 الأكثر إثارة للاهتمام لتحديد ما إذا كان البريد مزعجًا أم لا. ولكن يمكنك مواجهة مشكلة عند استخدام رقم ثابت مثل هذا. إذا وجدت الكثير من الكلمات المثيرة للاهتمام للغاية، فقد ينتهي الأمر بالقرار إلى أي عامل عشوائي يحدد ترتيب الكلمات المتساوية في الأهمية. إحدى طرق التعامل مع هذا هي معاملة البعض على أنهم أكثر أهمية من الآخرين.
على سبيل المثال، كلمة "dalco" تظهر 3 مرات في مجموعة البريد المزعج الخاصة بي ولا تظهر أبدًا في مجموعتي الشرعية. كلمة "Url*optmails" (بمعنى "optmails" داخل عنوان URL) تظهر 1223 مرة. ومع ذلك، كما كنت أحسب الاحتمالات للكلمات، كان كلاهما سيحصل على نفس احتمالية البريد المزعج، عتبة 0.99.
هذا لا يبدو صحيحًا. هناك حجج نظرية لإعطاء هاتين الكلمتين احتمالات مختلفة بشكل كبير (بانتل ولين يفعلان ذلك)، لكنني لم أجرب ذلك بعد. يبدو على الأقل أنه إذا وجدنا أكثر من 15 كلمة تظهر فقط في إحدى المجموعتين النصيتين أو الأخرى، فيجب علينا إعطاء الأولوية لتلك التي تظهر كثيرًا. لذلك هناك الآن قيمتان للعتبة. بالنسبة للكلمات التي تظهر فقط في مجموعة البريد المزعج، فإن الاحتمالية هي 0.9999 إذا ظهرت أكثر من 10 مرات و 0.9998 بخلاف ذلك. نفس الشيء في الطرف الآخر من المقياس للكلمات الموجودة فقط في مجموعة البريد الشرعي.
قد أقوم بتوسيع نطاق احتمالات الكلمات بشكل كبير لاحقًا، لكن هذا القدر الضئيل من التوسيع على الأقل يضمن فرز الكلمات بالطريقة الصحيحة.
احتمال آخر هو النظر ليس فقط إلى 15 كلمة، ولكن إلى جميع الكلمات التي تتجاوز عتبة معينة من الأهمية. يفعل ستيفن هاوزر ذلك في فلتر البريد المزعج الإحصائي الخاص به [8]. إذا استخدمت عتبة، اجعلها عالية جدًا، أو يمكن لمرسلي البريد المزعج خداعك عن طريق حشو الرسائل بكلمات بريئة أكثر.
أخيرًا، ماذا يجب أن يفعل المرء بشأن html؟ لقد جربت طيفًا كاملاً من الخيارات، من تجاهله إلى تحليله بالكامل. تجاهل html فكرة سيئة، لأنه مليء بعلامات البريد المزعج المفيدة. ولكن إذا قمت بتحليله بالكامل، فقد يتحول فلترك إلى مجرد متعرف على html. يبدو النهج الأكثر فعالية هو المسار الأوسط، ملاحظة بعض الكلمات وليس البعض الآخر. أنظر إلى علامات a و img و font، وأتجاهل الباقي. يجب عليك بالتأكيد النظر إلى الروابط والصور، لأنها تحتوي على عناوين URL.
ربما يمكنني أن أكون أكثر ذكاءً في التعامل مع html، لكنني لا أعتقد أن الأمر يستحق قضاء الكثير من الوقت في هذا. رسائل البريد المزعج المليئة بـ html سهلة التصفية. مرسلو البريد المزعج الأكثر ذكاءً يتجنبونها بالفعل. لذا فإن الأداء في المستقبل لا ينبغي أن يعتمد كثيرًا على كيفية التعامل مع html.
الأداء
بين 10 ديسمبر 2002 و 10 يناير 2003، تلقيت حوالي 1750 رسالة بريد مزعج. من بينها، وصلت 4 رسائل. هذا معدل تصفية يبلغ حوالي 99.75٪.
وصلت اثنتان من الرسائل الأربع التي فاتني بسبب أنهما استخدمتا كلمات تظهر كثيرًا في بريدي الشرعي.
الثالثة كانت واحدة من تلك التي تستغل نصًا برمجيًا غير آمن لإرسال بريد إلى أطراف ثالثة. من الصعب تصفيتها بناءً على المحتوى فقط لأن الرؤوس بريئة وهم حذرون بشأن الكلمات التي يستخدمونها. حتى مع ذلك، يمكنني عادةً اكتشافها. هذه الرسالة تسللت بنسبة 0.88، أقل بقليل من العتبة 0.9.
بالطبع، النظر إلى تسلسلات كلمات متعددة سيؤدي إلى اكتشافها بسهولة. "أدناه نتيجة نموذج الملاحظات الخاص بك" هو مؤشر فوري.
الرابعة كانت ما أسميه بريدًا مزعجًا للمستقبل، لأن هذا ما أتوقع أن يتطور إليه البريد المزعج: بعض النصوص المحايدة تمامًا متبوعة بعنوان URL. في هذه الحالة، كانت من شخص يقول إنه أكمل صفحته الرئيسية أخيرًا وسألني إذا كنت سألقي نظرة عليها. (كانت الصفحة بالطبع إعلانًا لموقع إباحي.)
إذا كان مرسلو البريد المزعج حذرين بشأن الرؤوس ويستخدمون عنوان URL جديدًا، فلا يوجد شيء في البريد المزعج للمستقبل لتلاحظه الفلاتر. يمكننا بالطبع الرد بإرسال زاحف للنظر في الصفحة. ولكن قد لا يكون ذلك ضروريًا. يجب أن يكون معدل الاستجابة للبريد المزعج للمستقبل منخفضًا، أو سيفعل الجميع ذلك. إذا كان منخفضًا بما يكفي، فلن يدفع ذلك ثمن إرساله لمرسلي البريد المزعج، ولن نضطر إلى العمل بجد لتصفيته.
الآن للأخبار الصادمة حقًا: خلال نفس الشهر، تلقيت ثلاث إيجابيات خاطئة.
بطريقة ما، إنه ارتياح للحصول على بعض الإيجابيات الخاطئة. عندما كتبت "خطة لمكافحة البريد المزعج" لم يكن لدي أي منها، ولم أكن أعرف كيف ستكون. الآن بعد أن حصلت على القليل منها، أشعر بالارتياح لأنها ليست سيئة كما كنت أخشى. تبين أن الإيجابيات الخاطئة التي تنتجها الفلاتر الإحصائية هي رسائل تبدو كثيرًا مثل البريد المزعج، وهذه تميل إلى أن تكون تلك التي لن تمانع في تفويتها [9].
اثنتان من الإيجابيات الخاطئة كانت نشرات إخبارية من شركات اشتريت منها أشياء. لم أطلب تلقيها أبدًا، لذا يمكن القول إنها كانت بريدًا مزعجًا، لكنني أعتبرها إيجابيات خاطئة لأنني لم أكن أحذفها كبريد مزعج من قبل. السبب في أن الفلاتر اكتشفتها هو أن كلتا الشركتين في يناير تحولتا إلى مرسلي بريد إلكتروني تجاريين بدلاً من إرسال الرسائل من خوادمهما الخاصة، وأصبحت كل من الرؤوس والأجسام أكثر إزعاجًا.
الإيجابية الخاطئة الثالثة كانت سيئة، على الرغم من ذلك. كانت من شخص في مصر ومكتوبة بأحرف كبيرة بالكامل. كان هذا نتيجة مباشرة لجعل الكلمات حساسة لحالة الأحرف؛ فلتر "خطة لمكافحة البريد المزعج" لم يكن سيلتقطها.
من الصعب تحديد معدل الإيجابيات الخاطئة الإجمالي، لأننا في الضوضاء، إحصائيًا. أي شخص عمل على الفلاتر (على الأقل، الفلاتر الفعالة) سيكون على دراية بهذه المشكلة. مع بعض رسائل البريد الإلكتروني، من الصعب تحديد ما إذا كانت بريدًا مزعجًا أم لا، وهذه هي الرسائل التي تنتهي بك الأمر بالنظر إليها عندما تجعل الفلاتر ضيقة حقًا. على سبيل المثال، حتى الآن التقط الفلتر رسالتين تم إرسالهما إلى عنواني بسبب خطأ إملائي، وواحدة أُرسلت إليّ معتقدين أنني شخص آخر. يمكن القول، هذه ليست بريدًا مزعجًا ولا بريدًا غير مزعج لي.
إيجابية خاطئة أخرى كانت من نائب رئيس في Virtumundo. كتبت إليهم متظاهرًا بأنني عميل، وبما أن الرد عاد عبر خوادم البريد الخاصة بـ Virtumundo، فقد كان لديه أكثر الرؤوس إدانة ممكنة. يمكن القول إن هذه ليست إيجابية خاطئة حقيقية أيضًا، ولكنها نوع من تأثير عدم اليقين لهايزنبرغ: لقد حصلت عليها فقط لأنني كنت أكتب عن تصفية البريد المزعج.
باستثناء هذه، كان لدي ما مجموعه خمس إيجابيات خاطئة حتى الآن، من حوالي 7740 رسالة بريد شرعية، بمعدل 0.06٪. الاثنتان الأخريان كانتا إشعارًا بأن شيئًا اشتريته كان خارج المخزون، وتذكيرًا بحفلة من Evite.
لا أعتقد أن هذا الرقم يمكن الوثوق به، جزئيًا لأن العينة صغيرة جدًا، وجزئيًا لأنني أعتقد أنه يمكنني إصلاح الفلتر لعدم التقاط بعض هذه.
تبدو الإيجابيات الخاطئة بالنسبة لي نوعًا مختلفًا من الأخطاء عن السلبيات الخاطئة. معدل التصفية هو مقياس للأداء. أعتبر الإيجابيات الخاطئة أشبه بالأخطاء. أتعامل مع تحسين معدل التصفية على أنه تحسين، وتقليل الإيجابيات الخاطئة على أنه تصحيح أخطاء.
لذا فإن هذه الإيجابيات الخاطئة الخمس هي قائمة الأخطاء الخاصة بي. على سبيل المثال، تم التقاط البريد من مصر لأن النص المكتوب بأحرف كبيرة جعله يبدو للفلتر مثل بريد مزعج نيجيري. هذا حقًا نوع من الخطأ. كما هو الحال مع html، فإن كون البريد الإلكتروني بأحرف كبيرة بالكامل هو في الواقع مفهومًا ميزة واحدة، وليس ميزة لكل كلمة. أحتاج إلى التعامل مع حالة الأحرف بطريقة أكثر تطوراً.
إذن ما الذي يمكن استنتاجه من هذا 0.06٪؟ ليس الكثير، أعتقد. يمكنك التعامل معه كحد أعلى، مع الأخذ في الاعتبار حجم العينة الصغير. ولكن في هذه المرحلة، هو أكثر مقياسًا للأخطاء في تنفيذي من معدل إيجابيات خاطئة جوهري لتصفية بايز.
المستقبل
ماذا بعد؟ التصفية هي مشكلة تحسين، والمفتاح للتحسين هو التنميط. لا تحاول تخمين أين يكون الكود الخاص بك بطيئًا، لأنك ستخمن بشكل خاطئ. انظر إلى أين يكون الكود الخاص بك بطيئًا، وأصلح ذلك. في التصفية، يترجم هذا إلى: انظر إلى رسائل البريد المزعج التي تفوتك، واكتشف ما كان يمكنك فعله لالتقاطها.
على سبيل المثال، يعمل مرسلو البريد المزعج الآن بنشاط لتجنب الفلاتر، وأحد الأشياء التي يفعلونها هو تقسيم وتهجئة الكلمات بشكل خاطئ لمنع الفلاتر من التعرف عليها. لكن العمل على هذا ليس أولويتي الأولى، لأنني لا أزال لا أواجه مشكلة في التقاط هذه الرسائل المزعجة [10].
هناك نوعان من رسائل البريد المزعج التي أواجه صعوبة معها حاليًا. أحدهما هو النوع الذي يتظاهر بأنه بريد إلكتروني من امرأة تدعوك للدردشة معها أو رؤية ملفها الشخصي على موقع مواعدة. هذه تمر لأنها نوع واحد من العروض الترويجية التي يمكنك تقديمها دون استخدام لغة مبيعات. يستخدمون نفس المفردات مثل البريد الإلكتروني العادي.
النوع الآخر من رسائل البريد المزعج التي أواجه صعوبة في تصفيتها هي تلك الواردة من شركات في بلغاريا، على سبيل المثال، تقدم خدمات برمجة تعاقدية. هذه تمر لأنني مبرمج أيضًا، ورسائل البريد المزعج مليئة بنفس الكلمات مثل بريدي الحقيقي.
ربما سأركز على نوع الإعلانات الشخصية أولاً. أعتقد أنه إذا نظرت عن كثب، سأتمكن من العثور على اختلافات إحصائية بين هذه ورسائلي الحقيقية. أسلوب الكتابة بالتأكيد مختلف، على الرغم من أنه قد يتطلب تصفية متعددة الكلمات لالتقاط ذلك. أيضًا، ألاحظ أنها تميل إلى تكرار عنوان URL، وشخص يدرج عنوان URL في بريد شرعي لن يفعل ذلك [11].
أنواع الاستعانة بمصادر خارجية ستكون صعبة الالتقاط. حتى لو أرسلت زاحفًا إلى الموقع، فلن تجد دليلًا إحصائيًا قاطعًا. ربما يكون الحل الوحيد هو قائمة مركزية بالنطاقات المعلن عنها في رسائل البريد المزعج [12]. ولكن قد لا يكون هناك الكثير من هذا النوع من البريد. إذا كانت رسائل البريد المزعج الوحيدة المتبقية هي عروض غير مرغوب فيها لخدمات البرمجة التعاقدية من بلغاريا، فربما يمكننا جميعًا الانتقال إلى العمل على شيء آخر.
هل ستوصلنا التصفية الإحصائية إلى تلك النقطة؟ لا أعرف. في الوقت الحالي، بالنسبة لي شخصيًا، البريد المزعج ليس مشكلة. لكن مرسلي البريد المزعج لم يبذلوا جهدًا جادًا لتزييف الفلاتر الإحصائية بعد. ماذا سيحدث عندما يفعلون ذلك؟
لست متفائلًا بشأن الفلاتر التي تعمل على مستوى الشبكة [13]. عندما يكون هناك عقبة ثابتة تستحق التجاوز، فإن مرسلي البريد المزعج فعالون جدًا في تجاوزها. هناك بالفعل شركة تسمى Assurance Systems ستقوم بتشغيل بريدك عبر Spamassassin وتخبرك ما إذا كان سيتم تصفيته.
لن تكون الفلاتر على مستوى الشبكة عديمة الفائدة تمامًا. قد تكون كافية للقضاء على جميع رسائل البريد المزعج "الاختيارية"، أي البريد المزعج من شركات مثل Virtumundo و Equalamail الذين يدعون أنهم يديرون قوائم اختيارية حقًا. يمكنك تصفية تلك بناءً على الرؤوس فقط، بغض النظر عما يقولونه في الجسم. ولكن أي شخص على استعداد لتزوير الرؤوس أو استخدام المرحلات المفتوحة، بما في ذلك على الأرجح معظم مرسلي البريد الإباحي، يجب أن يكون قادرًا على تمرير بعض الرسائل عبر فلاتر مستوى الشبكة إذا أرادوا ذلك. (بأي حال من الأحوال ليست الرسالة التي يرغبون في إرسالها، وهذا شيء.)
أنواع الفلاتر التي أنا متفائل بشأنها هي تلك التي تحسب الاحتمالات بناءً على البريد الإلكتروني لكل مستخدم على حدة. يمكن أن تكون هذه أكثر فعالية بكثير، ليس فقط في تجنب الإيجابيات الخاطئة، ولكن في التصفية أيضًا: على سبيل المثال، العثور على عنوان البريد الإلكتروني للمستلم مشفرًا بـ base-64 في أي مكان في الرسالة هو مؤشر جيد جدًا للبريد المزعج.
ولكن الميزة الحقيقية للفلاتر الفردية هي أنها ستكون مختلفة جميعًا. إذا كانت فلاتر الجميع لديها احتمالات مختلفة، فسوف تجعل حلقة تحسين مرسلي البريد المزعج، ما يسميه المبرمجون دورة التحرير-التجميع-الاختبار، بطيئة بشكل مروع. بدلاً من مجرد تعديل بريد مزعج حتى يمر عبر نسخة من فلتر لديهم على سطح المكتب الخاص بهم، سيتعين عليهم إجراء اختبار إرسال لكل تعديل. سيكون الأمر أشبه بالبرمجة بلغة بدون واجهة علوية تفاعلية، ولن أتمنى ذلك لأحد.
ملاحظات
[1] Paul Graham. "A Plan for Spam." August 2002. http://paulgraham.com/spam.html.
يتم حساب الاحتمالات في هذه الخوارزمية باستخدام حالة منحلة من قاعدة بايز. هناك افتراضان مبسطان: أن احتمالات الميزات (أي الكلمات) مستقلة، وأننا لا نعرف شيئًا عن الاحتمال المسبق لكون البريد الإلكتروني بريدًا مزعجًا.
الافتراض الأول منتشر في تصنيف النصوص. الخوارزميات التي تستخدمه تسمى "بايز الساذجة".
الافتراض الثاني الذي قمت به لأن نسبة البريد المزعج في بريدي الوارد تقلب كثيرًا من يوم لآخر (بالفعل، من ساعة إلى أخرى) لدرجة أن نسبة الاحتمال المسبق الإجمالية بدت عديمة القيمة كمؤشر. إذا افترضت أن P(spam) و P(nonspam) كلاهما 0.5، فإنهما يلغيان بعضهما البعض ويمكنك إزالتهما من الصيغة.
إذا كنت تقوم بتصفية بايز في موقف حيث كانت نسبة البريد المزعج إلى البريد غير المزعج مرتفعة باستمرار أو (خاصة) منخفضة جدًا، فقد تتمكن من تحسين أداء الفلتر عن طريق دمج الاحتمالات المسبقة. للقيام بذلك بشكل صحيح، سيتعين عليك تتبع النسب حسب الوقت من اليوم، لأن حجم البريد المزعج والبريد الشرعي كلاهما لهما أنماط يومية مميزة.
[2] Patrick Pantel and Dekang Lin. "SpamCop-- A Spam Classification & Organization Program." Proceedings of AAAI-98 Workshop on Learning for Text Categorization.
[3] Mehran Sahami, Susan Dumais, David Heckerman and Eric Horvitz. "A Bayesian Approach to Filtering Junk E-Mail." Proceedings of AAAI-98 Workshop on Learning for Text Categorization.
[4] في ذلك الوقت، كان لدي صفر إيجابيات خاطئة من حوالي 4000 رسالة بريد شرعية. إذا كانت رسالة البريد الشرعية التالية إيجابية خاطئة، فسيؤدي ذلك إلى 0.03٪. هذه المعدلات الإيجابية الخاطئة غير موثوقة، كما أوضح لاحقًا. أقتبس رقمًا هنا فقط للتأكيد على أنه مهما كان معدل الإيجابيات الخاطئة، فهو أقل من 1.16٪.
[5] Bill Yerazunis. "Sparse Binary Polynomial Hash Message Filtering and The CRM114 Discriminator." Proceedings of 2003 Spam Conference.
[6] في "خطة لمكافحة البريد المزعج" استخدمت عتبات 0.99 و 0.01. يبدو من المبرر استخدام عتبات متناسبة مع حجم المجموعات النصية. نظرًا لأن لدي الآن حوالي 10000 من كل نوع من أنواع البريد، أستخدم 0.9999 و 0.0001.
[7] هناك خلل هنا ربما يجب أن أصلحه. حاليًا، عندما يتحول "Subjectfoo" إلى "foo" فقط، فإن ما يعنيه ذلك هو أنك تحصل على إحصائيات لظهور "foo" في الجسم أو رؤوس أخرى غير تلك التي أقوم بتمييزها. ما يجب أن أفعله هو تتبع الإحصائيات لـ "foo" بشكل عام بالإضافة إلى الإصدارات المحددة، والانحلال من "Subjectfoo" ليس إلى "foo" ولكن إلى "Anywhere*foo". نفس الشيء بالنسبة لحالة الأحرف: يجب أن أنحل من الأحرف الكبيرة إلى أي حالة أحرف، وليس الأحرف الصغيرة.
ربما سيكون من المفيد القيام بذلك مع الأسعار أيضًا، على سبيل المثال، الانحلال من "129.99 دولارًا" إلى "$--9.99" و "$--.99" و "$--".
يمكنك أيضًا الانحلال من الكلمات إلى جذورها، ولكن هذا ربما يحسن معدلات التصفية فقط في وقت مبكر عندما يكون لديك مجموعات نصية صغيرة.
[8] Steven Hauser. "Statistical Spam Filter Works for Me." http://www.sofbot.com.
[9] الإيجابيات الخاطئة ليست كلها متساوية، ويجب أن نتذكر ذلك عند مقارنة تقنيات وقف البريد المزعج. في حين أن العديد من الإيجابيات الخاطئة التي تسببها الفلاتر ستكون رسائل قريبة من البريد المزعج التي لن تمانع في تفويتها، فإن الإيجابيات الخاطئة التي تسببها القوائم السوداء، على سبيل المثال، ستكون مجرد رسائل من أشخاص اختاروا مزود خدمة إنترنت خاطئ. في كلتا الحالتين، تلتقط رسائل قريبة من البريد المزعج، ولكن بالنسبة للقوائم السوداء، فإن القرب مادي، وبالنسبة للفلاتر، فهو نصي.
[10] إذا أصبح مرسلو البريد المزعج بارعين بما يكفي في إخفاء الكلمات لدرجة أن هذا أصبح مشكلة، يمكننا الرد ببساطة عن طريق إزالة المسافات البيضاء والنقاط والفواصل وما إلى ذلك واستخدام قاموس لاختيار الكلمات من التسلسل الناتج. وبالطبع فإن العثور على كلمات بهذه الطريقة لم تكن مرئية في النص الأصلي سيكون بحد ذاته دليلًا على البريد المزعج.
اختيار الكلمات لن يكون سهلاً. سيتطلب أكثر من مجرد إعادة بناء حدود الكلمات؛ يضيف مرسلو البريد المزعج ("xHot nPorn cSite") ويحذفون ("P#rn") أحرفًا. قد يكون بحث الرؤية مفيدًا هنا، حيث أن الرؤية البشرية هي الحد الذي ستصل إليه هذه الحيل.
[11] بشكل عام، رسائل البريد المزعج أكثر تكرارًا من البريد الإلكتروني العادي. يريدون ترسيخ هذه الرسالة. أنا حاليًا لا أسمح بالتكرارات في أعلى 15 كلمة، لأنه يمكنك الحصول على إيجابية خاطئة إذا صادف المرسل استخدام كلمة سيئة عدة مرات. (في فلتري الحالي، كلمة "dick" لديها احتمالية بريد مزعج 0.9999، ولكنها أيضًا اسم.) يبدو أنه يجب علينا على الأقل ملاحظة التكرار، لذلك قد أحاول السماح بما يصل إلى اثنتين من كل كلمة، كما يفعل Brian Burton في SpamProbe.
[12] هذا ما ستتحول إليه الأساليب مثل Brightmail بمجرد دفع مرسلي البريد المزعج إلى استخدام تقنيات mad-lib لتوليد كل شيء آخر في الرسالة.
[13] يُقال أحيانًا أنه يجب علينا العمل على التصفية على مستوى الشبكة، لأنها أكثر كفاءة. ما يعنيه الناس عادة عندما يقولون هذا هو: نحن حاليًا نقوم بالتصفية على مستوى الشبكة، ولا نريد البدء من الصفر. ولكن لا يمكنك فرض المشكلة لتناسب حلك.
تاريخيًا، كانت حجج الموارد الشحيحة هي الجانب الخاسر في المناقشات حول تصميم البرمجيات. يميل الناس فقط إلى استخدامها لتبرير الخيارات (خاصة عدم العمل) المتخذة لأسباب أخرى.
شكرًا لسارة هيرلين، وتريفور بلاكويل، ودان غيفين لقراءة مسودات هذه الورقة، ولدان مرة أخرى على معظم البنية التحتية التي يعمل عليها هذا الفلتر.
ذات صلة: