स्पैम के लिए योजना
Originalअगस्त 2002
(यह लेख स्पैमप्रूफ वेब-आधारित मेल रीडर में प्रयुक्त स्पैम-फ़िल्टरिंग तकनीकों का वर्णन करता है जिसे हमने आर्क का प्रयोग करने के लिए बनाया था। बेहतर बायेसियन फ़िल्टरिंग में एक बेहतर एल्गोरिथ्म का वर्णन किया गया है।)
मुझे लगता है कि स्पैम को रोकना संभव है, और कंटेंट-आधारित फ़िल्टर ही ऐसा करने का तरीका है। स्पैमर्स की कमज़ोरी उनका संदेश है। वे आपके द्वारा स्थापित किसी भी अन्य बाधा को दरकिनार कर सकते हैं। कम से कम अब तक तो उन्होंने ऐसा किया है। लेकिन उन्हें अपना संदेश पहुँचाना ही होगा, चाहे वह कुछ भी हो। अगर हम ऐसा सॉफ़्टवेयर बना सकते हैं जो उनके संदेशों को पहचान सके, तो उनके लिए इससे बच पाना संभव नहीं है।
प्राप्तकर्ता के लिए स्पैम पहचानना आसान है। अगर आप किसी को अपना मेल पढ़ने और स्पैम को हटाने के लिए नियुक्त करते हैं, तो उन्हें ऐसा करने में कोई परेशानी नहीं होगी। इस प्रक्रिया को स्वचालित करने के लिए हमें AI के अलावा और कितना कुछ करना होगा?
मुझे लगता है कि हम काफी सरल एल्गोरिदम के साथ समस्या को हल करने में सक्षम होंगे। वास्तव में, मैंने पाया है कि आप व्यक्तिगत शब्दों की स्पैम संभावनाओं के बायेसियन संयोजन से ज़्यादा कुछ भी उपयोग किए बिना वर्तमान स्पैम को स्वीकार्य रूप से अच्छी तरह से फ़िल्टर कर सकते हैं। थोड़ा संशोधित (जैसा कि नीचे वर्णित है) बायेसियन फ़िल्टर का उपयोग करके, हम अब 5 से कम प्रति 1000 स्पैम को छोड़ देते हैं, जिसमें 0 झूठे सकारात्मक होते हैं।
सांख्यिकीय दृष्टिकोण आमतौर पर वह पहला तरीका नहीं है जिसे लोग स्पैम फ़िल्टर लिखते समय आज़माते हैं। ज़्यादातर हैकर्स की पहली प्रवृत्ति ऐसा सॉफ़्टवेयर लिखने की कोशिश करना है जो स्पैम के अलग-अलग गुणों को पहचान सके। आप स्पैम को देखते हैं और सोचते हैं, इन लोगों की हिम्मत कैसे हुई कि वे मुझे "प्रिय मित्र" से शुरू होने वाला या विषय पंक्ति में सभी बड़े अक्षर और आठ विस्मयादिबोधक चिह्नों के साथ मेल भेजने की कोशिश कर रहे हैं। मैं कोड की लगभग एक पंक्ति से उस सामान को फ़िल्टर कर सकता हूँ।
और ऐसा ही आप करते हैं, और शुरुआत में यह काम करता है। कुछ सरल नियम आपके आने वाले स्पैम को काफी हद तक कम कर देंगे। केवल "क्लिक" शब्द की तलाश करने से मेरे स्पैम कॉर्पस में 79.7% ईमेल पकड़े जाएँगे, और केवल 1.2% झूठे सकारात्मक होंगे।
मैंने सांख्यिकीय दृष्टिकोण आजमाने से पहले लगभग छह महीने तक एक ऐसा सॉफ्टवेयर लिखा जो स्पैम की अलग-अलग विशेषताओं को देखता था। मैंने पाया कि स्पैम के अंतिम कुछ प्रतिशत को पहचानना बहुत कठिन हो गया था, और जैसे-जैसे मैंने फ़िल्टर को सख्त किया, मुझे अधिक झूठे सकारात्मक परिणाम मिले।
झूठी सकारात्मकताएँ निर्दोष ईमेल हैं जिन्हें गलती से स्पैम के रूप में पहचाना जाता है। अधिकांश उपयोगकर्ताओं के लिए, वैध ईमेल को मिस करना स्पैम प्राप्त करने से कहीं ज़्यादा बुरा है, इसलिए एक फ़िल्टर जो झूठी सकारात्मकताएँ देता है, वह मुँहासे के इलाज की तरह है जो रोगी की मृत्यु का जोखिम रखता है।
किसी उपयोगकर्ता को जितना ज़्यादा स्पैम मिलेगा, उसके स्पैम फ़ोल्डर में पड़े एक भी निर्दोष मेल को नोटिस करने की संभावना उतनी ही कम होगी। और अजीब बात यह है कि आपके स्पैम फ़िल्टर जितने बेहतर होंगे, झूठे सकारात्मक परिणाम उतने ही ख़तरनाक होंगे, क्योंकि जब फ़िल्टर वाकई अच्छे होंगे, तो उपयोगकर्ता द्वारा पकड़ी गई हर चीज़ को अनदेखा करने की संभावना ज़्यादा होगी।
मुझे नहीं पता कि मैंने इतने लंबे समय तक सांख्यिकीय दृष्टिकोण को आजमाने से क्यों परहेज किया। मुझे लगता है कि ऐसा इसलिए था क्योंकि मैं स्पैम विशेषताओं को स्वयं पहचानने की कोशिश करने का आदी हो गया था, जैसे कि मैं स्पैमर्स के साथ किसी तरह का प्रतिस्पर्धी खेल खेल रहा था। (गैर-हैकर्स अक्सर इसका एहसास नहीं करते हैं, लेकिन अधिकांश हैकर्स बहुत प्रतिस्पर्धी होते हैं।) जब मैंने सांख्यिकीय विश्लेषण की कोशिश की, तो मुझे तुरंत पता चला कि यह मुझसे कहीं ज़्यादा चतुर था। इसने पाया कि, बेशक, "virtumundo" और "teens" जैसे शब्द स्पैम के अच्छे संकेतक थे। लेकिन इसने यह भी पाया कि "per" और "FL" और "ff0000" स्पैम के अच्छे संकेतक हैं। वास्तव में, "ff0000" (चमकीले लाल रंग के लिए HTML) किसी भी अश्लील शब्द की तरह स्पैम का एक अच्छा संकेतक निकला।
यहाँ एक स्केच है कि मैं सांख्यिकीय फ़िल्टरिंग कैसे करता हूँ। मैं स्पैम के एक कॉर्पस और नॉनस्पैम मेल के एक कॉर्पस से शुरू करता हूँ। फिलहाल प्रत्येक में लगभग 4000 संदेश हैं। मैं प्रत्येक कॉर्पस में प्रत्येक संदेश के हेडर और एम्बेडेड HTML और जावास्क्रिप्ट सहित संपूर्ण पाठ को स्कैन करता हूँ। मैं वर्तमान में अल्फ़ान्यूमेरिक वर्ण, डैश, एपोस्ट्रोफ़ और डॉलर चिह्नों को टोकन का हिस्सा मानता हूँ, और बाकी सब को टोकन विभाजक मानता हूँ। (शायद यहाँ सुधार की गुंजाइश है।) मैं उन टोकन को अनदेखा करता हूँ जो सभी अंक हैं, और मैं HTML टिप्पणियों को भी अनदेखा करता हूँ, उन्हें टोकन विभाजक के रूप में भी नहीं मानता।
मैं प्रत्येक कॉर्पस में प्रत्येक टोकन (वर्तमान में केस को अनदेखा करते हुए) की संख्या गिनता हूँ। इस स्तर पर मैं दो बड़ी हैश टेबल बनाता हूँ, एक प्रत्येक कॉर्पस के लिए, टोकन को घटनाओं की संख्या के साथ मैप करता हूँ।
इसके बाद मैं एक तीसरी हैश तालिका बनाता हूँ, इस बार प्रत्येक टोकन को इस संभावना से मैप करता हूँ कि उसमें शामिल ईमेल स्पैम है, जिसकी गणना मैं इस प्रकार करता हूँ [1]:
(let ((g (* 2 (or (gethash word good) 0))) (b (or (gethash word bad) 0))) (unless (< (+ gb) 5) (max .01 (min .99 (float (/ (min 1 (/ b nbad)) (+ (min 1 (/ g ngood)) (min 1 (/ b nbad)))))))))
जहां शब्द वह टोकन है जिसकी प्रायिकता हम गणना कर रहे हैं, good और bad वे हैश तालिकाएं हैं जो मैंने पहले चरण में बनाई थीं, तथा ngood और nbad क्रमशः नॉनस्पैम और स्पैम संदेशों की संख्या हैं।
मैंने कुछ महत्वपूर्ण विवरण दिखाने के लिए इसे कोड के रूप में समझाया। मैं झूठी सकारात्मकता से बचने के लिए संभावनाओं को थोड़ा पक्षपाती बनाना चाहता हूं, और परीक्षण और त्रुटि से मैंने पाया है कि ऐसा करने का एक अच्छा तरीका सभी संख्याओं को दोगुना करना है। यह उन शब्दों के बीच अंतर करने में मदद करता है जो कभी-कभी वैध ईमेल में आते हैं और ऐसे शब्द जो लगभग कभी नहीं आते हैं। मैं केवल उन शब्दों पर विचार करता हूं जो कुल मिलाकर पाँच बार से अधिक बार आते हैं (वास्तव में, दोहरीकरण के कारण, गैर-स्पैम मेल में तीन बार आना पर्याप्त होगा)। और फिर यह सवाल है कि उन शब्दों को क्या संभावना दी जाए जो एक कॉर्पस में आते हैं लेकिन दूसरे में नहीं। फिर से परीक्षण और त्रुटि से मैंने .01 और .99 को चुना। यहां ट्यूनिंग के लिए जगह हो सकती है, लेकिन जैसे-जैसे कॉर्पस बढ़ता है, ऐसी ट्यूनिंग वैसे भी अपने आप हो जाएगी।
विशेष रूप से चौकस लोग यह देखेंगे कि जब मैं घटनाओं की गिनती के उद्देश्य से प्रत्येक कॉर्पस को पाठ की एक लंबी धारा मानता हूं, तो मैं स्पैम संभावनाओं की गणना में विभाजक के रूप में उनकी संयुक्त लंबाई के बजाय प्रत्येक में ईमेल की संख्या का उपयोग करता हूं। यह झूठी सकारात्मकता से बचाने के लिए एक और मामूली पूर्वाग्रह जोड़ता है।
जब नया मेल आता है, तो उसे टोकन में स्कैन किया जाता है, और सबसे दिलचस्प पंद्रह टोकन, जहाँ दिलचस्प को इस बात से मापा जाता है कि उनकी स्पैम संभावना तटस्थ .5 से कितनी दूर है, का उपयोग इस संभावना की गणना करने के लिए किया जाता है कि मेल स्पैम है। यदि संभावनाएँ पंद्रह व्यक्तिगत संभावनाओं की एक सूची है, तो आप संयुक्त संभावना की गणना इस प्रकार करते हैं:
(let ((prod (apply #'* probs))) (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x)) probs)))))
व्यवहार में एक सवाल यह उठता है कि किसी ऐसे शब्द को क्या प्रायिकता दी जाए जिसे आपने कभी नहीं देखा है, यानी जो शब्द प्रायिकता की हैश तालिका में नहीं आता है। मैंने पाया है, फिर से परीक्षण और त्रुटि से, कि .4 का उपयोग करना एक अच्छा नंबर है। यदि आपने पहले कभी कोई शब्द नहीं देखा है, तो यह संभवतः काफी मासूम है; स्पैम शब्द सभी के लिए बहुत परिचित होते हैं।
अंत में परिशिष्ट में इस एल्गोरिथ्म को वास्तविक ईमेल पर लागू करने के उदाहरण दिए गए हैं।
मैं मेल को स्पैम मानता हूँ यदि ऊपर दिया गया एल्गोरिदम इसे स्पैम होने की .9 से अधिक संभावना देता है। लेकिन व्यवहार में यह बहुत मायने नहीं रखता कि मैं यह सीमा कहाँ रखता हूँ, क्योंकि कुछ संभावनाएँ सीमा के बीच में समाप्त होती हैं।
सांख्यिकीय दृष्टिकोण का एक बड़ा लाभ यह है कि आपको बहुत सारे स्पैम पढ़ने की ज़रूरत नहीं है। पिछले छह महीनों में, मैंने सचमुच हज़ारों स्पैम पढ़े हैं, और यह वास्तव में मनोबल गिराने वाला है। नॉर्बर्ट वीनर ने कहा कि यदि आप गुलामों के साथ प्रतिस्पर्धा करते हैं तो आप गुलाम बन जाते हैं, और स्पैमर के साथ प्रतिस्पर्धा करने में भी कुछ इसी तरह की अपमानजनक बात है। व्यक्तिगत स्पैम विशेषताओं को पहचानने के लिए आपको स्पैमर के दिमाग में जाने की कोशिश करनी होगी, और स्पष्ट रूप से मैं स्पैमर के दिमाग में जितना संभव हो उतना कम समय बिताना चाहता हूँ।
लेकिन बायेसियन दृष्टिकोण का वास्तविक लाभ, निश्चित रूप से, यह है कि आप जानते हैं कि आप क्या माप रहे हैं। स्पैमएसैसिन जैसे फ़ीचर-पहचान फ़िल्टर ईमेल को स्पैम "स्कोर" देते हैं। बायेसियन दृष्टिकोण एक वास्तविक संभावना प्रदान करता है। "स्कोर" के साथ समस्या यह है कि कोई भी नहीं जानता कि इसका क्या मतलब है। उपयोगकर्ता को नहीं पता कि इसका क्या मतलब है, लेकिन इससे भी बदतर, फ़िल्टर के डेवलपर को भी नहीं पता। "सेक्स" शब्द होने पर ईमेल को कितने अंक मिलने चाहिए? संभावना निश्चित रूप से गलत हो सकती है, लेकिन इसका क्या मतलब है, या इसे गणना करने के लिए सबूतों को कैसे जोड़ा जाना चाहिए, इस बारे में बहुत कम अस्पष्टता है। मेरे कॉर्पस के आधार पर, "सेक्स" ईमेल के स्पैम होने की .97 संभावना को इंगित करता है, जबकि "सेक्सी" .99 संभावना को इंगित करता है। और बेयस का नियम, जो समान रूप से स्पष्ट है, कहता है कि दोनों शब्दों वाले ईमेल में, किसी अन्य सबूत की (संभावना नहीं) अनुपस्थिति में, स्पैम होने की 99.97% संभावना होगी।
क्योंकि यह संभावनाओं को माप रहा है, इसलिए बायेसियन दृष्टिकोण ईमेल में मौजूद सभी सबूतों पर विचार करता है, चाहे वे अच्छे हों या बुरे। स्पैम में असंगत रूप से कम आने वाले शब्द (जैसे "हालांकि" या "आज रात" या "जाहिर तौर पर") संभावना को कम करने में उतना ही योगदान देते हैं जितना कि "अनसब्सक्राइब" और "ऑप्ट-इन" जैसे बुरे शब्द इसे बढ़ाने में योगदान देते हैं। इसलिए एक अन्यथा निर्दोष ईमेल जिसमें "सेक्स" शब्द शामिल है, उसे स्पैम के रूप में टैग नहीं किया जाएगा।
आदर्श रूप से, निश्चित रूप से, प्रत्येक उपयोगकर्ता के लिए संभावनाओं की गणना व्यक्तिगत रूप से की जानी चाहिए। मुझे "लिस्प" शब्द वाले बहुत सारे ईमेल मिलते हैं, और (अभी तक) ऐसा कोई स्पैम नहीं है। इसलिए ऐसा शब्द मेरे लिए मेल भेजने के लिए प्रभावी रूप से एक तरह का पासवर्ड है। मेरे पहले के स्पैम-फ़िल्टरिंग सॉफ़्टवेयर में, उपयोगकर्ता ऐसे शब्दों की एक सूची बना सकता था और उनमें से मेल स्वचालित रूप से फ़िल्टर से आगे निकल जाता था। मैंने अपनी सूची में "लिस्प" जैसे शब्द और अपना ज़िपकोड भी डाला, ताकि (अन्यथा स्पैमी लगने वाले) ऑनलाइन ऑर्डर की रसीदें पास हो जाएँ। मुझे लगा कि मैं बहुत चतुर हूँ, लेकिन मैंने पाया कि बायेसियन फ़िल्टर ने मेरे लिए भी यही काम किया, और इसके अलावा बहुत सारे ऐसे शब्दों की खोज की जिनके बारे में मैंने सोचा भी नहीं था।
जब मैंने शुरू में कहा कि हमारे फ़िल्टर 1000 में से 5 से कम स्पैम को 0 झूठे सकारात्मक के साथ जाने देते हैं, तो मैं अपने मेल के कॉर्पस के आधार पर अपने मेल को फ़िल्टर करने की बात कर रहा हूँ। लेकिन ये संख्याएँ भ्रामक नहीं हैं, क्योंकि यही वह दृष्टिकोण है जिसकी मैं वकालत कर रहा हूँ: प्रत्येक उपयोगकर्ता के मेल को उसके द्वारा प्राप्त स्पैम और नॉनस्पैम मेल के आधार पर फ़िल्टर करें। अनिवार्य रूप से, प्रत्येक उपयोगकर्ता के पास दो डिलीट बटन होने चाहिए, साधारण डिलीट और डिलीट-एज़-स्पैम। स्पैम के रूप में डिलीट की गई कोई भी चीज़ स्पैम कॉर्पस में चली जाती है, और बाकी सब कुछ नॉनस्पैम कॉर्पस में चला जाता है।
आप उपयोगकर्ताओं को सीड फ़िल्टर से शुरू कर सकते हैं, लेकिन अंततः प्रत्येक उपयोगकर्ता के पास उसके द्वारा प्राप्त वास्तविक मेल के आधार पर प्रति-शब्द संभावनाएँ होनी चाहिए। यह (ए) फ़िल्टर को अधिक प्रभावी बनाता है, (बी) प्रत्येक उपयोगकर्ता को स्पैम की अपनी सटीक परिभाषा तय करने देता है, और (सी) शायद सबसे अच्छी बात यह है कि स्पैमर के लिए फ़िल्टर से गुजरने के लिए मेल को ट्यून करना कठिन हो जाता है। यदि फ़िल्टर का अधिकांश भाग व्यक्तिगत डेटाबेस में है, तो केवल स्पैम को सीड फ़िल्टर से गुजरने के लिए ट्यून करना इस बात की गारंटी नहीं देगा कि वे व्यक्तिगत उपयोगकर्ताओं के अलग-अलग और बहुत अधिक प्रशिक्षित फ़िल्टर से कितनी अच्छी तरह से गुजरेंगे।
सामग्री-आधारित स्पैम फ़िल्टरिंग को अक्सर श्वेतसूची के साथ जोड़ा जाता है, यह उन प्रेषकों की सूची है जिनके मेल को बिना फ़िल्टरिंग के स्वीकार किया जा सकता है। ऐसी श्वेतसूची बनाने का एक आसान तरीका यह है कि उपयोगकर्ता द्वारा भेजे गए हर पते की सूची बनाई जाए। अगर किसी मेल रीडर में डिलीट-एज़-स्पैम बटन है तो आप उपयोगकर्ता द्वारा डिलीट किए गए हर ईमेल के फ्रॉम एड्रेस को साधारण ट्रैश के रूप में भी जोड़ सकते हैं।
मैं श्वेतसूची का समर्थक हूँ, लेकिन फ़िल्टरिंग को बेहतर बनाने के तरीके से ज़्यादा गणना को बचाने के तरीके के रूप में। मैं सोचता था कि श्वेतसूची फ़िल्टरिंग को आसान बना देगी, क्योंकि आपको केवल उन लोगों से ईमेल फ़िल्टर करना होगा जिनसे आपने कभी बात नहीं की है, और जो व्यक्ति आपको पहली बार ईमेल भेज रहा है, वह परंपरा से विवश है कि वह आपको क्या कह सकता है। कोई ऐसा व्यक्ति जिसे आप पहले से जानते हैं, वह आपको सेक्स के बारे में बात करते हुए ईमेल भेज सकता है, लेकिन कोई व्यक्ति जो आपको पहली बार ईमेल भेज रहा है, वह ऐसा करने की संभावना नहीं रखता है। समस्या यह है कि लोगों के पास एक से ज़्यादा ईमेल पते हो सकते हैं, इसलिए एक नया प्रेषक-पता यह गारंटी नहीं देता है कि प्रेषक आपको पहली बार लिख रहा है। किसी पुराने मित्र (खासकर अगर वह हैकर है) के लिए अचानक आपको एक नया प्रेषक-पता वाला ईमेल भेजना असामान्य नहीं है, इसलिए आप अज्ञात पतों से आने वाले मेल को विशेष रूप से सख्ती से फ़िल्टर करके गलत सकारात्मक परिणाम का जोखिम नहीं उठा सकते।
हालाँकि, एक तरह से, मेरे फ़िल्टर खुद ही एक तरह की श्वेतसूची (और काली सूची) का रूप धारण कर लेते हैं क्योंकि वे हेडर सहित पूरे संदेशों पर आधारित होते हैं। इसलिए इस हद तक वे विश्वसनीय प्रेषकों के ईमेल पते और यहाँ तक कि उन मार्गों को भी जानते हैं जिनके ज़रिए मेल उनसे मेरे पास आता है। और वे स्पैम के बारे में भी यही जानते हैं, जिसमें सर्वर नाम, मेलर संस्करण और प्रोटोकॉल शामिल हैं।
अगर मुझे लगता है कि मैं स्पैम फ़िल्टरिंग की मौजूदा दरों को बनाए रख सकता हूँ, तो मैं इस समस्या को हल मान लूँगा। लेकिन वर्तमान समय के अधिकांश स्पैम को फ़िल्टर करने में सक्षम होने का कोई मतलब नहीं है, क्योंकि स्पैम विकसित होता है। वास्तव में, अब तक की अधिकांश एंटीस्पैम तकनीकें कीटनाशकों की तरह रही हैं जो बग की एक नई, प्रतिरोधी नस्ल बनाने के अलावा और कुछ नहीं करती हैं।
मैं बायेसियन फिल्टर के बारे में अधिक आशावान हूं, क्योंकि वे स्पैम के साथ विकसित होते हैं। इसलिए जब स्पैमर व्यक्तिगत शब्दों के आधार पर सरल-दिमाग वाले स्पैम फिल्टर से बचने के लिए "कॉक" के बजाय "कॉक" का उपयोग करना शुरू करते हैं, तो बायेसियन फिल्टर स्वचालित रूप से नोटिस करते हैं। वास्तव में, "कॉक" की तुलना में "कॉक" कहीं अधिक हानिकारक सबूत है, और बायेसियन फिल्टर ठीक से जानते हैं कि कितना अधिक है।
फिर भी, जो कोई भी स्पैम फ़िल्टरिंग के लिए कोई योजना प्रस्तावित करता है, उसे इस सवाल का जवाब देना होगा: अगर स्पैमर को ठीक से पता हो कि आप क्या कर रहे हैं, तो वे आपसे कितनी आसानी से बच सकते हैं? उदाहरण के लिए, मुझे लगता है कि अगर चेकसम-आधारित स्पैम फ़िल्टरिंग एक गंभीर बाधा बन जाती है, तो स्पैमर संदेश बॉडी बनाने के लिए बस मैड-लिब तकनीकों पर स्विच कर देंगे।
बेयसियन फ़िल्टर को मात देने के लिए स्पैमर्स के लिए अपने ईमेल को अद्वितीय बनाना या अलग-अलग शरारती शब्दों का उपयोग करना बंद करना ही पर्याप्त नहीं होगा। उन्हें अपने मेल को आपके सामान्य मेल से अलग नहीं बनाना होगा। और मुझे लगता है कि यह उन्हें गंभीर रूप से बाधित करेगा। स्पैम ज़्यादातर बिक्री के लिए होता है, इसलिए जब तक कि आपका नियमित मेल पूरी तरह से बिक्री के लिए नहीं होता, स्पैम का चरित्र निश्चित रूप से अलग होगा। और स्पैमर्स को भी, ज़ाहिर है, अपने पूरे इंफ्रास्ट्रक्चर को बदलना होगा (और बदलते रहना होगा), क्योंकि अन्यथा हेडर बेयसियन फ़िल्टर को हमेशा की तरह खराब दिखेंगे, चाहे उन्होंने संदेश के मुख्य भाग के साथ कुछ भी किया हो। मैं स्पैमर्स द्वारा उपयोग किए जाने वाले इंफ्रास्ट्रक्चर के बारे में इतना नहीं जानता कि यह जान सकूँ कि हेडर को निर्दोष दिखाना कितना मुश्किल होगा, लेकिन मेरा अनुमान है कि यह संदेश को निर्दोष दिखाने से भी ज़्यादा मुश्किल होगा।
यह मानते हुए कि वे हेडर की समस्या को हल कर सकते हैं, भविष्य का स्पैम संभवतः कुछ इस तरह दिखेगा:
Hey there. Thought you should check out the following: http://www.27meg.com/foo
क्योंकि यह बिक्री के लिए उतना ही बड़ा कदम है, जितना कंटेंट-आधारित फ़िल्टरिंग स्पैमर के लिए छोड़ता है। (वास्तव में, इसे फ़िल्टर से पार पाना भी मुश्किल होगा, क्योंकि अगर ईमेल में बाकी सब कुछ तटस्थ है, तो स्पैम की संभावना यूआरएल पर निर्भर करेगी, और इसे तटस्थ बनाने के लिए कुछ प्रयास करने होंगे।)
स्पैमर्स में तथाकथित ऑप्ट-इन सूची चलाने वाले व्यवसाय से लेकर, जो अपनी पहचान छिपाने की कोशिश भी नहीं करते, ऐसे लोग शामिल हैं जो पोर्न साइट्स को बढ़ावा देने वाले स्पैम भेजने के लिए मेल सर्वर को हाईजैक कर लेते हैं। यदि हम फ़िल्टरिंग का उपयोग करके उनके विकल्पों को ऊपर दिए गए मेल की तरह सीमित कर देते हैं, तो इससे स्पेक्ट्रम के "वैध" छोर पर मौजूद स्पैमर्स को व्यवसाय से बाहर कर देना चाहिए; वे विभिन्न राज्य कानूनों के तहत इस बारे में बॉयलरप्लेट शामिल करने के लिए बाध्य महसूस करते हैं कि उनका स्पैम स्पैम क्यों नहीं है, और आपकी "सदस्यता" को कैसे रद्द किया जाए, और इस तरह के टेक्स्ट को पहचानना आसान है।
(मैं पहले यह मानता था कि यह मानना भोलापन होगा कि सख्त कानून स्पैम को कम कर देंगे। अब मैं सोचता हूं कि हालांकि सख्त कानून स्पैमर्स द्वारा भेजे जाने वाले स्पैम की मात्रा को कम नहीं कर सकते, लेकिन वे निश्चित रूप से प्राप्तकर्ताओं द्वारा देखे जाने वाले स्पैम की मात्रा को कम करने में फिल्टर की मदद कर सकते हैं।)
स्पेक्ट्रम के सभी हिस्सों में, यदि आप स्पैमर्स द्वारा की जाने वाली बिक्री पिचों को प्रतिबंधित करते हैं, तो आप अनिवार्य रूप से उन्हें व्यवसाय से बाहर कर देंगे। व्यवसाय शब्द को याद रखना महत्वपूर्ण है। स्पैमर्स व्यवसायी हैं। वे स्पैम भेजते हैं क्योंकि यह काम करता है। यह काम करता है क्योंकि यद्यपि प्रतिक्रिया दर बहुत कम है (अधिकतम 15 प्रति मिलियन, बनाम कैटलॉग मेलिंग के लिए 3000 प्रति मिलियन), लागत, उनके लिए, व्यावहारिक रूप से कुछ भी नहीं है। प्राप्तकर्ताओं के लिए लागत बहुत अधिक है, प्रत्येक मिलियन प्राप्तकर्ताओं के लिए लगभग 5 मानव-सप्ताह जो स्पैम को हटाने के लिए एक सेकंड खर्च करते हैं, लेकिन स्पैमर को इसका भुगतान नहीं करना पड़ता है।
हालांकि, स्पैम भेजने से स्पैमर को कुछ नुकसान होता है। [2] इसलिए हम जितनी कम प्रतिक्रिया दर प्राप्त कर सकते हैं - चाहे फ़िल्टरिंग द्वारा, या स्पैमर को अपनी पिच को कम करने के लिए मजबूर करने के लिए फ़िल्टर का उपयोग करके - उतने ही कम व्यवसाय स्पैम भेजना अपने लिए सार्थक पाएंगे।
स्पैमर जिस तरह की बिक्री पिच का इस्तेमाल करते हैं, उसका कारण प्रतिक्रिया दर को बढ़ाना है। यह संभवतः स्पैमर के दिमाग में घुसने से भी अधिक घृणित है, लेकिन आइए स्पैम का जवाब देने वाले किसी व्यक्ति के दिमाग में एक त्वरित नज़र डालें। यह व्यक्ति या तो आश्चर्यजनक रूप से भोला है या अपनी यौन रुचियों के बारे में गहराई से इनकार करता है। किसी भी मामले में, स्पैम हमें जितना घृणित या मूर्खतापूर्ण लगता है, यह उनके लिए रोमांचक है। स्पैमर ये बातें नहीं कहेंगे अगर वे रोमांचक न लगें। और "सोचा कि आपको निम्नलिखित की जाँच करनी चाहिए" स्पैम प्राप्तकर्ता को उतना आकर्षित नहीं करेगा जितना कि स्पैमर अब कहते हैं। परिणाम: यदि इसमें रोमांचक बिक्री पिच नहीं हो सकती है, तो स्पैम एक विपणन वाहन के रूप में कम प्रभावी हो जाता है, और कम व्यवसाय इसका उपयोग करना चाहते हैं।
अंत में यही बड़ी जीत है। मैंने स्पैम फ़िल्टरिंग सॉफ़्टवेयर लिखना शुरू किया क्योंकि मैं अब और सामान नहीं देखना चाहता था। लेकिन अगर हम स्पैम को फ़िल्टर करने में काफी अच्छे हो जाते हैं, तो यह काम करना बंद कर देगा, और स्पैमर वास्तव में इसे भेजना बंद कर देंगे।
स्पैम से लड़ने के लिए सॉफ्टवेयर से लेकर कानून तक सभी तरीकों में से मेरा मानना है कि बायेसियन फ़िल्टरिंग सबसे प्रभावी होगी। लेकिन मुझे यह भी लगता है कि हम जितने ज़्यादा तरह के एंटीस्पैम प्रयास करेंगे, उतना ही बेहतर होगा, क्योंकि स्पैमर को रोकने वाला कोई भी उपाय फ़िल्टरिंग को आसान बना देगा। और यहां तक कि कंटेंट-आधारित फ़िल्टरिंग की दुनिया में भी, मुझे लगता है कि अगर कई तरह के सॉफ़्टवेयर एक साथ इस्तेमाल किए जा रहे हैं तो यह अच्छी बात होगी। जितने ज़्यादा अलग-अलग फ़िल्टर होंगे, स्पैमर के लिए स्पैम को उनसे बाहर निकालना उतना ही मुश्किल होगा।
परिशिष्ट: फ़िल्टरिंग के उदाहरण
यहाँ एक स्पैम का उदाहरण दिया गया है जो इस लेख को लिखते समय मेरे पास आया। इस स्पैम में पंद्रह सबसे दिलचस्प शब्द ये हैं:
qvp0045 indira mx-05 intimail $7500 freeyankeedom cdo bluefoxmedia jpg unsecured platinum 3d0 qves 7c5 7c266675
ये शब्द हेडर और संदेश बॉडी से लिए गए शब्दों का मिश्रण हैं, जो स्पैम की खासियत है। स्पैम की खासियत यह भी है कि इनमें से हर एक शब्द की स्पैम संभावना, मेरे डेटाबेस में, .99 है। वास्तव में .99 की संभावनाओं वाले पंद्रह से ज़्यादा शब्द हैं, और ये सिर्फ़ पहले पंद्रह शब्द हैं जो देखे गए हैं।
दुर्भाग्य से यह ईमेल बेयस नियम के उपयोग का एक उबाऊ उदाहरण बन जाता है। संभावनाओं की एक दिलचस्प विविधता को देखने के लिए हमें इस वास्तव में काफी असामान्य स्पैम को देखना होगा।
इस स्पैम में पंद्रह सबसे दिलचस्प शब्द, उनकी संभावनाओं के साथ, हैं:
madam 0.99 promotion 0.99 republic 0.99 shortest 0.047225013 mandatory 0.047225013 standardization 0.07347802 sorry 0.08221981 supported 0.09019077 people's 0.09019077 enter 0.9075001 quality 0.8921298 organization 0.12454646 investment 0.8568143 very 0.14758544 valuable 0.82347786
इस बार सबूत अच्छे और बुरे का मिश्रण है। "सबसे छोटा" जैसा शब्द निर्दोषता के लिए लगभग उतना ही सबूत है जितना कि "मैडम" या "पदोन्नति" जैसा शब्द अपराध के लिए है। लेकिन फिर भी अपराध का मामला मजबूत है। यदि आप इन संख्याओं को बेयस नियम के अनुसार जोड़ते हैं, तो परिणामी संभावना .9027 है।
"मैडम" शब्द स्पष्ट रूप से "प्रिय महोदय या मैडम" से शुरू होने वाले स्पैम से लिया गया है। वे बहुत आम नहीं हैं, लेकिन "मैडम" शब्द मेरे वैध ईमेल में कभी नहीं आता है, और यह सब अनुपात के बारे में है।
"रिपब्लिक" को उच्च स्कोर मिलता है क्योंकि यह अक्सर नाइजीरियाई घोटाले ईमेल में दिखाई देता है, और कोरिया और दक्षिण अफ्रीका को संदर्भित करने वाले स्पैम में भी एक या दो बार दिखाई देता है। आप कह सकते हैं कि यह एक संयोग है कि यह इस स्पैम को पहचानने में मदद करता है। लेकिन स्पैम संभावनाओं की जांच करते समय मैंने पाया है कि ऐसी बहुत सी दुर्घटनाएँ होती हैं, और उनमें चीजों को गलत दिशा के बजाय सही दिशा में धकेलने की एक अनोखी प्रवृत्ति होती है। इस मामले में, यह पूरी तरह से संयोग नहीं है कि "रिपब्लिक" शब्द नाइजीरियाई घोटाले ईमेल और इस स्पैम में आता है। कम विकसित देशों को शामिल करने वाले संदिग्ध व्यावसायिक प्रस्तावों की एक पूरी श्रेणी है, और बदले में इनके नाम ऐसे होने की अधिक संभावना है जो स्पष्ट रूप से निर्दिष्ट करते हैं (क्योंकि वे नहीं हैं) कि वे गणतंत्र हैं।[3]
दूसरी ओर, "एंटर" एक वास्तविक चूक है। यह अधिकतर सदस्यता समाप्त करने के निर्देशों में होता है, लेकिन यहाँ इसका उपयोग पूरी तरह से निर्दोष तरीके से किया जाता है। सौभाग्य से सांख्यिकीय दृष्टिकोण काफी मजबूत है, और परिणामों के गलत होने से पहले काफी सारी चूकों को सहन कर सकता है।
तुलना के लिए, यहाँ उस दुर्लभ पक्षी का उदाहरण दिया गया है, जो एक स्पैम है जो फ़िल्टर से होकर गुज़र जाता है। क्यों? क्योंकि संयोग से यह उन शब्दों से भरा हुआ होता है जो मेरे वास्तविक ईमेल में होते हैं:
perl 0.01 python 0.01 tcl 0.01 scripting 0.01 morris 0.01 graham 0.01491078 guarantee 0.9762507 cgi 0.9734398 paul 0.027040077 quite 0.030676773 pop3 0.042199217 various 0.06080265 prices 0.9359873 managed 0.06451222 difficult 0.071706355
यहाँ कुछ अच्छी खबरें हैं। सबसे पहले, यह मेल संभवतः किसी ऐसे व्यक्ति के फ़िल्टर से नहीं गुज़रेगा जो प्रोग्रामिंग भाषाओं में विशेषज्ञ नहीं है और जिसका मॉरिस नामक कोई अच्छा दोस्त नहीं है। औसत उपयोगकर्ता के लिए, यहाँ सभी शीर्ष पाँच शब्द तटस्थ होंगे और स्पैम की संभावना में योगदान नहीं देंगे।
दूसरा, मुझे लगता है कि शब्द युग्मों (नीचे देखें) के आधार पर फ़िल्टरिंग से यह पकड़ा जा सकता है: "लागत प्रभावी", "सेटअप शुल्क", "पैसा वापस" - बहुत ही दोषपूर्ण सामान। और निश्चित रूप से अगर वे मुझे (या किसी ऐसे नेटवर्क को जिसका मैं हिस्सा था) स्पैम करना जारी रखते हैं, तो "होस्टेक्स" को खुद ही स्पैम शब्द के रूप में पहचाना जाएगा।
अंत में, यहाँ एक मासूम ईमेल है। इसके पंद्रह सबसे दिलचस्प शब्द इस प्रकार हैं:
continuation 0.01 describe 0.01 continuations 0.01 example 0.033600237 programming 0.05214485 i'm 0.055427782 examples 0.07972858 color 0.9189189 localhost 0.09883721 hi 0.116539136 california 0.84421706 same 0.15981844 spot 0.1654587 us-ascii 0.16804294 what 0.19212411
यहाँ अधिकांश शब्द यह संकेत देते हैं कि यह मेल निर्दोष है। इसमें दो बुरे शब्द हैं, "रंग" (स्पैमर रंगीन फ़ॉन्ट पसंद करते हैं) और "कैलिफ़ोर्निया" (जो प्रशंसापत्रों में और फ़ॉर्म में मेनू में भी होता है), लेकिन वे "निरंतरता" और "उदाहरण" जैसे स्पष्ट रूप से निर्दोष शब्दों को मात देने के लिए पर्याप्त नहीं हैं।
यह दिलचस्प है कि "वर्णन" दरें इतनी पूरी तरह से निर्दोष हैं। मेरे 4000 स्पैम में से एक में भी ऐसा नहीं हुआ है। डेटा ऐसे आश्चर्यों से भरा हुआ है। जब आप स्पैम टेक्स्ट का विश्लेषण करते हैं तो आप जो चीजें सीखते हैं उनमें से एक यह है कि स्पैमर किस भाषा में काम करते हैं। यह तथ्य, किसी भी व्यक्तिगत उपयोगकर्ता के मेल की समान रूप से विशिष्ट शब्दावली के साथ, बायेसियन फ़िल्टरिंग को एक अच्छा दांव बनाता है।
परिशिष्ट: अधिक विचार
एक विचार जो मैंने अभी तक नहीं आजमाया है, वह है व्यक्तिगत शब्दों के बजाय शब्द युग्मों या यहां तक कि त्रिगुणों के आधार पर फ़िल्टर करना। इससे संभावना का अधिक सटीक अनुमान प्राप्त होना चाहिए। उदाहरण के लिए, मेरे वर्तमान डेटाबेस में, "ऑफ़र" शब्द की संभावना .96 है। यदि आप शब्द युग्मों पर संभावनाओं को आधारित करते हैं, तो आपको "विशेष ऑफ़र" और "मूल्यवान ऑफ़र" की संभावना .99 होगी और, मान लीजिए, "एप्रोच ऑफ़र" (जैसे कि "यह दृष्टिकोण ऑफ़र") की संभावना .1 या उससे कम होगी।
मैंने ऐसा इसलिए नहीं किया क्योंकि अलग-अलग शब्दों के आधार पर फ़िल्टरिंग पहले से ही बहुत अच्छी तरह से काम करती है। लेकिन इसका मतलब यह है कि अगर स्पैम का पता लगाना मुश्किल हो जाता है तो फ़िल्टर को और कड़ा करने की गुंजाइश है। (मजे की बात यह है कि शब्द जोड़ों पर आधारित फ़िल्टर वास्तव में मार्कोव-चेनिंग टेक्स्ट जनरेटर होगा जो रिवर्स में चल रहा है।)
स्पैम की पहचान करने में विशिष्ट स्पैम विशेषताएँ (जैसे प्राप्तकर्ता का पता to: फ़ील्ड में न देखना) बेशक मूल्यवान हैं। उन्हें इस एल्गोरिथम में आभासी शब्दों के रूप में मानकर विचार किया जा सकता है। मैं शायद भविष्य के संस्करणों में ऐसा करूँगा, कम से कम कुछ सबसे गंभीर स्पैम संकेतकों के लिए। फ़ीचर-पहचानने वाले स्पैम फ़िल्टर कई विवरणों में सही हैं; उनमें जो कमी है वह है साक्ष्यों को संयोजित करने के लिए एक समग्र अनुशासन।
स्पैम सुविधाओं को पहचानने की तुलना में नॉनस्पैम सुविधाओं को पहचानना अधिक महत्वपूर्ण हो सकता है। झूठी सकारात्मकता इतनी चिंताजनक है कि इसके लिए असाधारण उपायों की आवश्यकता होती है। मैं संभवतः भविष्य के संस्करणों में झूठी सकारात्मकता से बचने के लिए विशेष रूप से डिज़ाइन किए गए परीक्षण का दूसरा स्तर जोड़ूंगा। यदि कोई मेल फ़िल्टर के इस दूसरे स्तर को ट्रिगर करता है तो उसे स्वीकार किया जाएगा, भले ही उसके स्पैम की संभावना सीमा से ऊपर हो।
मुझे नहीं लगता कि फ़िल्टरिंग का यह दूसरा स्तर बायेसियन होगा। यह अनिवार्य रूप से न केवल तदर्थ होगा, बल्कि अनुमानों पर आधारित होगा, क्योंकि झूठे सकारात्मक परिणामों की संख्या पैटर्न को नोटिस करने के लिए पर्याप्त नहीं होगी। (वैसे भी, यह ठीक है, अगर बैकअप सिस्टम प्राथमिक सिस्टम के समान तकनीक पर निर्भर नहीं करता है।)
एक और चीज़ जो मैं भविष्य में आजमा सकता हूँ, वह है ईमेल के विशिष्ट भागों पर अतिरिक्त ध्यान केंद्रित करना। उदाहरण के लिए, वर्तमान स्पैम के लगभग 95% में उस साइट का यूआरएल शामिल होता है, जिस पर वे चाहते हैं कि आप जाएँ। (शेष 5% चाहते हैं कि आप किसी फ़ोन नंबर पर कॉल करें, ईमेल या यू.एस. मेल पते पर उत्तर दें, या कुछ मामलों में कोई निश्चित स्टॉक खरीदें।) ऐसे मामलों में यूआरएल व्यावहारिक रूप से यह निर्धारित करने के लिए पर्याप्त है कि ईमेल स्पैम है या नहीं।
डोमेन नाम (गैर-जर्मन) ईमेल में बाकी टेक्स्ट से इस मायने में अलग होते हैं कि उनमें अक्सर कई शब्द एक साथ चिपके होते हैं। हालांकि सामान्य मामले में कम्प्यूटेशनल रूप से महंगा है, लेकिन उन्हें विघटित करने की कोशिश करना फायदेमंद हो सकता है। यदि किसी फ़िल्टर ने पहले कभी टोकन "xxxporn" नहीं देखा है, तो इसकी व्यक्तिगत स्पैम संभावना .4 होगी, जबकि "xxx" और "porn" की व्यक्तिगत संभावनाएँ (मेरे कॉर्पस में) क्रमशः .9889 और .99 हैं, और संयुक्त संभावना .9998 है।
मुझे उम्मीद है कि डोमेन नामों का विघटन और अधिक महत्वपूर्ण हो जाएगा क्योंकि स्पैमर्स को धीरे-धीरे अपने संदेशों के पाठ में आपत्तिजनक शब्दों का उपयोग करना बंद करने के लिए मजबूर किया जाएगा। (आईपी पते वाला यूआरएल निश्चित रूप से एक अत्यंत आपत्तिजनक संकेत है, सिवाय कुछ सिस्टम एडमिनिस्ट्रेटर के मेल में।)
स्पैमर्स द्वारा प्रचारित यूआरएल की सहकारी रूप से बनाए रखी गई सूची रखना एक अच्छा विचार हो सकता है। दुर्भावनापूर्ण या अक्षम सबमिशन को रोकने के लिए हमें राफ़ लेवियन द्वारा अध्ययन किए गए प्रकार के ट्रस्ट मीट्रिक की आवश्यकता होगी, लेकिन अगर हमारे पास ऐसा कुछ होता तो यह किसी भी फ़िल्टरिंग सॉफ़्टवेयर को बढ़ावा देता। यह बहिष्कार के लिए एक सुविधाजनक आधार भी होगा।
संदिग्ध यूआरएल का परीक्षण करने का दूसरा तरीका यह होगा कि उपयोगकर्ता द्वारा इसका उल्लेख करने वाले ईमेल को देखने से पहले साइट को देखने के लिए क्रॉलर भेजा जाए। आप साइट को रेट करने के लिए बायेसियन फ़िल्टर का उपयोग कर सकते हैं जैसे आप ईमेल को रेट करते हैं, और साइट पर जो कुछ भी पाया गया है उसे ईमेल के स्पैम होने की संभावना की गणना में शामिल किया जा सकता है। एक यूआरएल जो रीडायरेक्ट की ओर ले जाता है, निश्चित रूप से विशेष रूप से संदिग्ध होगा।
एक सहकारी परियोजना जो मुझे लगता है कि वास्तव में एक अच्छा विचार होगा, वह स्पैम का एक विशाल संग्रह एकत्र करना होगा। एक बड़ा, साफ संग्रह बायेसियन फ़िल्टरिंग को अच्छी तरह से काम करने के लिए महत्वपूर्ण है। बायेसियन फ़िल्टर वास्तव में कॉर्पस को इनपुट के रूप में उपयोग कर सकते हैं। लेकिन ऐसा कॉर्पस अन्य प्रकार के फ़िल्टर के लिए भी उपयोगी होगा, क्योंकि इसका उपयोग उनका परीक्षण करने के लिए किया जा सकता है।
इस तरह का कॉर्पस बनाने में कुछ तकनीकी समस्याएं आती हैं। बेशक, दुर्भावनापूर्ण या अक्षम सबमिशन को रोकने के लिए हमें ट्रस्ट मेट्रिक्स की आवश्यकता होगी। हमें कॉर्पस में मेल से व्यक्तिगत जानकारी (न केवल टू-एड्रेस और सीसीएस, बल्कि उदाहरण के लिए यूआरएल को अनसब्सक्राइब करने के तर्क, जो अक्सर टू-एड्रेस को एनकोड करते हैं) को मिटाने के तरीकों की भी आवश्यकता होगी। अगर कोई इस परियोजना को लेना चाहता है, तो यह दुनिया के लिए अच्छी बात होगी।
परिशिष्ट: स्पैम को परिभाषित करना
मुझे लगता है कि स्पैम क्या है, इस पर मोटे तौर पर आम सहमति है, लेकिन एक स्पष्ट परिभाषा होना उपयोगी होगा। अगर हम स्पैम का एक केंद्रीय कोष बनाना चाहते हैं, या स्पैम फ़िल्टरिंग दरों की सार्थक तुलना करना चाहते हैं, तो हमें ऐसा करने की आवश्यकता होगी।
सबसे पहले, स्पैम अनचाहा व्यावसायिक ईमेल नहीं है। अगर मेरे पड़ोस में किसी को पता चले कि मैं अच्छी हालत में एक पुरानी रैले थ्री-स्पीड बाइक की तलाश कर रहा हूँ, और मुझे एक ईमेल भेजकर उसे बेचने की पेशकश करता हूँ, तो मुझे बहुत खुशी होगी, और फिर भी यह ईमेल व्यावसायिक और अनचाहा दोनों होगा। स्पैम की परिभाषित विशेषता (वास्तव में, इसका अस्तित्व का कारण ) यह नहीं है कि यह अनचाहा है, बल्कि यह है कि यह स्वचालित है।
यह भी संयोग ही है कि स्पैम आम तौर पर व्यावसायिक होता है। उदाहरण के लिए, अगर कोई व्यक्ति किसी राजनीतिक कारण के समर्थन में सामूहिक ईमेल भेजना शुरू करता है, तो यह उतना ही स्पैम होगा जितना कि किसी पोर्न साइट को बढ़ावा देने वाला ईमेल।
मेरा प्रस्ताव है कि हम स्पैम को अनचाहे स्वचालित ईमेल के रूप में परिभाषित करें। इस परिभाषा में कुछ ऐसे ईमेल शामिल हैं जो स्पैम की कई कानूनी परिभाषाओं में शामिल नहीं हैं। स्पैम की कानूनी परिभाषाएँ, संभवतः लॉबिस्टों द्वारा प्रभावित हैं, उन कंपनियों द्वारा भेजे गए मेल को बाहर करती हैं जिनका प्राप्तकर्ता के साथ "मौजूदा संबंध" है। लेकिन उदाहरण के लिए, किसी कंपनी से कुछ खरीदना, इसका मतलब यह नहीं है कि आपने उनसे लगातार ईमेल मांगे हैं। अगर मैं किसी ऑनलाइन स्टोर से कुछ ऑर्डर करता हूँ, और फिर वे मुझे स्पैम की एक धारा भेजते हैं, तो यह अभी भी स्पैम है।
स्पैम भेजने वाली कंपनियाँ अक्सर आपको "सदस्यता समाप्त करने" का एक तरीका देती हैं, या यदि आप स्पैम प्राप्त करना बंद करना चाहते हैं तो आपको उनकी साइट पर जाकर अपनी "खाता प्राथमिकताएँ" बदलने के लिए कहती हैं। यह मेल को स्पैम होने से रोकने के लिए पर्याप्त नहीं है। ऑप्ट आउट न करना ऑप्ट इन करने के समान नहीं है। जब तक प्राप्तकर्ता ने स्पष्ट रूप से लेबल किए गए बॉक्स (जिसका डिफ़ॉल्ट नहीं था) को चेक नहीं किया है, जो ईमेल प्राप्त करने के लिए कहता है, तब तक यह स्पैम है।
कुछ व्यावसायिक रिश्तों में, आप कुछ खास तरह के मेल की मांग करते हैं। जब आप ऑनलाइन ऑर्डर करते हैं, तो मुझे लगता है कि आप ऑर्डर शिप होने पर रसीद और सूचना की मांग करते हैं। मुझे कोई आपत्ति नहीं है जब वेरीसाइन मुझे यह चेतावनी देते हुए मेल भेजता है कि डोमेन नाम समाप्त होने वाला है (कम से कम, अगर वे इसके लिए वास्तविक रजिस्ट्रार हैं)। लेकिन जब वेरीसाइन मुझे मेरी ई-कॉमर्स वेब साइट बनाने के लिए एक मुफ़्त गाइड की पेशकश करते हुए ईमेल भेजता है, तो वह स्पैम होता है।
टिप्पणियाँ:
[1] इस लेख में दिए गए उदाहरणों को कॉमन लिस्प में अनुवादित किया गया है, चाहे आप मानें या न मानें, अधिक सुलभता के लिए। यहाँ वर्णित अनुप्रयोग वह है जिसे हमने आर्क नामक एक नई लिस्प बोली का परीक्षण करने के लिए लिखा था जो अभी तक जारी नहीं हुई है।
[2] वर्तमान में एक मिलियन स्पैम भेजने के लिए सबसे कम दर लगभग $200 है। यह बहुत सस्ता है, प्रति स्पैम 1/50वाँ सेंट। लेकिन, उदाहरण के लिए, 95% स्पैम को फ़िल्टर करने से स्पैमर की किसी दिए गए ऑडियंस तक पहुँचने की लागत 20 गुना बढ़ जाएगी। कुछ ही लोगों के पास इतना बड़ा मार्जिन हो सकता है कि वे इसे वहन कर सकें।
[3] एक सामान्य नियम के अनुसार, किसी देश के नाम से पहले जितने ज़्यादा विशेषण होते हैं, शासक उतने ही भ्रष्ट होते हैं। सोशलिस्ट पीपल्स डेमोक्रेटिक रिपब्लिक ऑफ़ एक्स नामक देश शायद दुनिया की आखिरी जगह है जहाँ आप रहना चाहेंगे।
इसके ड्राफ्ट पढ़ने के लिए सारा हार्लिन को धन्यवाद ; फ़िल्टरिंग के बारे में कई अच्छे विचारों और हमारे मेल इंफ्रास्ट्रक्चर को बनाने के लिए डैनियल गिफिन (जो प्रोडक्शन आर्क इंटरप्रेटर भी लिख रहे हैं); स्पैम के बारे में कई चर्चाओं के लिए रॉबर्ट मॉरिस, ट्रेवर ब्लैकवेल और एरन गैट; ट्रस्ट मेट्रिक्स के बारे में सलाह के लिए राफ लेवियन; और सांख्यिकी के बारे में सलाह के लिए चिप कोल्डवेल और सैम स्टीनगोल्ड को धन्यवाद।
आपको यह निबंध और 14 अन्य निबंध यहां मिलेंगे [
हैकर्स और पेंटर्स
](http://www.amazon.com/gp/product/0596006624)।
और जानकारी: