موضوع مقاله: فیلترینگ اسپم بیزی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # فیلترینگ اسپم بیزی | مقدمه: جیسون رِنی اولین برنامه کامپیوتری|برنامه فیلترینگ ایمیل به نام iFile را که از روش طبقه‌بندی بیز استفاده می‌کرد، در سال ۱۹۹۶ نوشت. | ## بخش 1: فیلترینگ اسپم بیزی | روش‌های گوناگونی در این زمینه به صورت تحقیقاتی و همچنین نرم‌افزارهای تجاری پیاده‌سازی شده‌است. در سال ۲۰۰۲ میلادی، اصول فیلترینگ بیزی در مقاله‌ای که توسط پال گراهام نوشته و شرح داده شد و در دسترس عموم قرار گرفت. فیلترینگ اسپم بیزی به یک سازوکار معروف برای تشخیص ایمیل‌های اسپم در میان ایمیل‌های غیر‌اسپم (گاهی به این ایمیل‌ها ham یا bacn نیز می‌گویند) تبدیل شد. تعداد زیادی از سرویس گیرنده‌های ایمیل، فیلترینگ اسپم بیزی را پیاده‌سازی کرده‌اند. برای مثال اکثر کاربران در ایمیل‌های اسپم با کلمه "Viagra" برخورد می‌کنند اما به ندرت در ایمیل‌های عادی با این کلمه مواجه می‌شوند. فیلتر از قبل این احتمالات را نمی‌داند و باید آن‌ها را یاد بگیرد و برای خود بسازد. برای یادگیری فیلتر، کاربر باید به‌طور دستی مشخص کند که آیا ایمیل جدید اسپم است یا نه. فیلتر در هنگام یادگیری برای تمام کلمات، احتمال را محاسبه و آن‌ها را در دو دسته مختلف اسپم و غیر‌اسپم در پایگاه دادهٔ خود قرار می‌دهد. بعد از یادگیری، احتمال کلمه‌های ایمیل (به وسیلهٔ توابع احتمال) برای مشخص کردن این که ایمیل در چه دسته‌ای قرار می‌گیرد، استفاده می‌شود. سپس برای تمام کلمات احتمال اسپم بودن ایمیل محاسبه می‌گردد و اگر کل احتمالات از مقدار آستانه (۹۵٪) بیشتر شد، فیلتر برچسب اسپم بودن به آن ایمیل می‌زند. مانند روش‌های دیگر، فیلترینگ اسپم ایمیل با برچسب اسپم به صورت خودکار به پوشه "Junk" منتقل می‌شود و حتی بعد از مدتی پاک خواهد شد. برخی از نرم‌افزارها برای مدتی خاص ایمیل را در قرنطینه برای بازبینی به وسیله کاربر قرار می‌دهند. یادگیری اولیه معمولاً دارای خطاهای بالایی است (مثبت کاذب و منفی کاذب) که کاربر ابتدا باید آن را برای نرم‌افزار تمیزسازی کند. بعد از مدتی نرم‌افزار به صورت پویا خودش را وفق می‌دهد و اسپم‌ها را با دقت بالایی تشخیص می‌دهد. برخی از فیلترها از نتیجهٔ ترکیب فیلترینگ اسپم بیزی و چندین فیلترینگ اکتشافی دیگر برای دقت بالاتر و همچنین وفق یافتن نرم‌افزار استفاده می‌کنند. قضیه بیز در چندین قسمت استفاده می‌شود: نخستین مرتبه، محاسبهٔ احتمال کلمه‌های موجود در پیام دریافت شده دومین مرتبه، محاسبهٔ احتمال اسپم بودن پیام براساس احتمال‌های به دست آمده از کلمه‌های پیام دریافتی سومین مرتبه، چگونگی برخورد با کلمه‌های کمیاب محاسبه احتمال این که یک پیام شامل کلمات اسپم باشد فرض می‌کنیم که پیام شامل کلمه "Replica" می‌باشد. به‌طور دقیق‌تر این پیام یک پیشنهاد فروش تقلبی ساعت‌های یک شرکت معروف را به ما می‌دهد. گرچه نرم‌افزار تشخیص اسپم این حقیقت را نمی‌داند و تمام آن چیزی که می‌داند چگونگی محاسبه احتمال کلمات است. فرمولی که نرم‌افزار برای محاسبه احتمال کلمات استفاده می‌کند از قضیه بیز مشتق شده‌است: و داریم: : احتمال این که پیام اسپم و کلمه "Replica" در آن باشد : احتمال اسپم بودن پیام‌ها : احتمال این که کلمه "Replica" در پیام‌های اسپم ظاهر شود : احتمال اسپم نبودن پیام‌ها (ham باشند) : احتمال این که کلمه "Replica" در پیام‌های غیر‌اسپم (ham) ظاهر شود احتمال اسپم بودن آمار اخیر نشان می‌دهد که احتمال اسپم بودن پیامی که دریافت می‌کنید حداقل ۸۰ درصد است: گرچه اکثر نرم‌افزارهای تشخیص اسپم بیزی فرض می‌کنند هیچ دلیلی وجود ندارد که احتمال اسپم بودن پیام‌های دریافتی بیشتر از اسپم نبودن آن‌ها باشد و آن‌ها احتمال این دو را برابر در نظر می‌گیرند. فیلترهایی که از این فرضیه استفاده می‌کنند گفته می‌شود که بیز نیست، یعنی آن‌ها هیچ تبعیضی بین ایمیل‌های دریافتی نمی‌گذارند. برای به دست آوردن تقریبی خوب، باید در مرحله یادگیری، تعداد پیام‌های اسپم و غیر‌اسپم به‌طور قابل توجهی زیاد باشد. | ## بخش 2: فیلترینگ اسپم بیزی | همچنین با توجه به تغییر فرمول بیز، باید در مرحله یادگیری تعداد پیام‌های اسپم و غیر‌اسپم نیز با هم برابر باشند. تشخیص این که پیام اسپم است یا نه، با در نظر گرفتن یک کلمه "Replica" کاری بسیار اشتباه است. به همین دلیل است که نرم‌افزارهای فیلترینگ اسپم بیز سعی می‌کنند که بر اساس چندین کلمه اسپم بودن یا نبودن را تشخیص دهند. ترکیب احتمال‌های مستقل به دست آمده از کلمه‌های یک پیام نرم‌افزار فیلترینگ اسپم بیزی فرض می‌کند که احتمال‌های کلمات موجود در یک متن دارای احتمال مستقل هستند. این یک فرض اشتباه در زبان‌های طبیعی مانند انگلیسی است، به عنوان مثال پیدا کردن احتمال یک کلمه به عنوان صفت بر احتمال آن کلمه وقتی به عنوان اسم استفاده می‌شود، تأثیر می‌گذارد. با این فرض فرمول دیگری از قضیه بیز استنتاج می‌شود: و داریم: احتمال این که پیام دریافتی اسپم باشد احتمال این که کلمه اول در پیام دریافتی اسپم باشد. اگر مقدار کمتر از مقدار آستانه بود، پیام اسپم نیست (که به آن ham گفته می‌شود) در غیر این صورت پیام اسپم است. چگونگی رفتار با کلمات کمیاب اگر به کلمه‌ای برخورد کردیم که در مرحله یادگیری با آن برخورد نداشتیم، در نتیجه صورت و مخرج کسر هم در فرمول اصلی (قضیه بیز) و هم در فرمول اسپمگی (spamicity) صفر می‌شود. در حالت کلی کلماتی که دارای تکرار کمی در مرحله یادگیری باشند، مشکل‌زا خواهند شد. با در نطر گرفتن قضیه بیز، متغیر تصادفی با توزیع بتا، دو دسته ایمیل‌های غیر‌اسپم (ham) و اسپم برای یک کلمه (مثل "Replica") است. تعدادی از نرم‌افزارها از احتمال صحیح قضیه بیز استفاده می‌کنند: و داریم: احتمال صحیح این که کلمه داده شده در پیام‌های اسپم ظاهر شود یک ضریب، که ما براساس پیش زمینه‌ای که در دریافت پیام‌های اسپم داریم، مشخص می‌شود احتمال این که تمام پیام‌های دریافتی اسپم باشند تعداد تکرار کلمه در مرحله یادگیری مقدار اسپمگی (spamicity) این کلمه این احتمال صحیح به جای مقدار اسپمگی (spamicity) در فرمول ترکیب احتمال‌های مستقل استفاده می‌شود. مجدداً برای جلوگیری از مشکوک بودن بیش از اندازه به ایمیل‌های دریافتی می‌تواند برابر ۰.۵ در نظر گرفته شود. عدد مقدار خوبی برای می‌باشد که نشان دهنده این است که حداقل ۳ پیام در مرحله یادگیری شامل کلمه جاری است. راه‌های اکتشافی دیگر کلمات بی‌طرف مانند "the" ،"a" ،"some" یا "is" در زبان انگلیسی یا مشابه این کلمات در زبان‌های دیگر را می‌توان نادیده گرفت. در حالت کلی، برخی از فیلترهای فیلترینگ بیزی تمام کلماتی که مقدار اسپمگی آن‌ها نزدیک به ۰٫۵ باشند را نادیده می‌گیرند که این تصمیم خوبی است. در این الگوریتم کلماتی که اسپمگی آن‌ها در اطراف ۰٫۰ (که مشخص‌کننده پیام‌های درست و غیر اسپم هستند) یا ۱٫۰ (که مشخص‌کننده پیام‌های درست و اسپم هستند) باشند، در نظر گرفته می‌شوند. به عنوان مثال یک روش می‌تواند ۱۰ کلمه‌ای را نگه دارد که قدر مطلق از همه بیشتر باشد. برخی از نرم‌افزارها کلماتی را نگه می‌دارند که چندین دفعه در مرحله یادگیری در پیام‌های مختلف ظاهر شده باشند. برخی دیگر از نرم‌افزارها از الگوها (دنباله‌ای از کلمات) به جای کلمات زبان طبیعی استفاده می‌کنند. این روش حساسیت به متن را افزایش می‌دهد و اختلال بیزی را برای پایگاه داده‌های بزرگ کمتر می‌کند. روش‌های ترکیبی به دلیل بالا بودن خطاها در ابتدای استفاده از روش بیزی برای فیلترینگ اسپم، راه‌هایی برای ترکیب احتمال‌ها وجود دارد. | ## بخش 3: فیلترینگ اسپم بیزی | این فرضیات به‌طور اساسی با فرمول‌هایی که با ترکیب احتمال‌ها به دست آوردیم فرق دارند. برای مثال با فرض احتمال‌های مستقل و با استفاده از توزیع کی دو با درجهٔ آزادی می‌توان فرمول زیر را داشت: وقتی که تابع توزیع معکوس کی دو باشد. اسپم‌هایی که یک کاربر دریافت می‌کند معمولاً براساس فعالیت‌های کاربر در اینترنت می‌باشد. برای مثال، یک کاربر در یک خبرنامه ثبت نام می‌کند و ایمیل‌های آن خبرنامه را به عنوان اسپم می‌شناسد. این خبرنامه اینترنتی معمولاً دارای کلمات مشترک است که می‌تواند اسم خبرنامه یا آدرس ایمیل خبرنامه باشد. یک فیلتر اسپم بیزی در نهایت یک احتمال بالایی بر اساس الگوهای خاص کاربر در نظر می‌گیرد. رفتار متفاوتی با ایمیل‌های غیر‌اسپم و قانونی‌ای که کاربر دریافت می‌کند خواهد داشت. برای مثال در یک شرکت، گاهی اسم شرکت، نام کارمندان یا نام مشتری‌ها در پیام‌ها ذکر می‌شود. احتمال کلمات برای هر کاربر یکتا است و می‌تواند براساس استنتاج و یادگیری دوباره، مواردی که به‌طور اشتباه دسته بندی کرده‌است را تصحیح کند. براساس نتایج به دست آمده، دقت فیلترینگ اسپم بیزی بعد از یادگیری، اغلب بالاتر از قوانین از پیش تعریف شده توسط کاربر است. به عنوان مثال، اگر یک ایمیل شامل کلمه "Nigeria"، که در اکثر اسپم‌های کلاه برداری پول حرفه‌ای استفاده می‌شود باشد، قوانین از پیش تعریف شده بی‌درنگ ایمیل را به عنوان اسپم دسته بندی می‌کنند. یک فیلتر بیزی کلمه "Nigeria" را به عنوان کلمه ایمیل‌های اسپم می‌شناسد اما ممکن است کلمات مهم‌تری نسبت به آن در ایمیل وجود داشته باشند که اسپم بودن ایمیل را رد کند. اشکال‌ها فیلترینگ اسپم بیزی مستعد زهر بیزی است، روشی که اسپمرها برای کاهش کارایی فیلترینگ‌های اسپمی که وابسته به فیلترینگ بیزی است، به کار می‌برند. تاکتیک‌های اسپمرها شامل قرار دادن کلمات تصادفی بی‌ضرر که معمولاً ربطی به اسپم ندارد نیز می‌باشد؛ که بدین وسیله امتیاز اسپم‌ها را نزد فیلترینگ‌های بیزی کاهش می‌دهند تا از فیلترینگ‌های اسپم بیزی فرار کنند. از دیگر تکنیک‌های غلبه کردن بر فیلترینگ اسپم بیزی، قرار دادن تصویر به جای متن که می‌تواند دارای لینک نیز باشد. کل متن پیام یا قسمتی از آن با یک عکس که دقیقاً همان نوشته‌ها کشیده شده‌است جایگزین می‌شود. معمولاً فیلترهای اسپم نمی‌توانند عکس را پردازش کنند که آن معمولاً کلمات حساس مانند "Viagra" است. در نهایت، برخی از فیلترها پیام‌هایی که دارای اشکال گرافیکی زیادی باشند را به عنوان اسپم شناسایی می‌کنند. استفاده از تشخیص نوری نویسه‌ها یکی از روش‌های بسیار کارا است که شرکت گوگل در جی میل برای عکس‌هایی با اندازه متوسط تا بزرگ انجام می‌دهد می‌باشد. کاربردهای عمومی فیلترینگ بیزی فیلترینگ بیزی به‌طور گسترده در تشخیص ایمیل‌های اسپم کاربرد دارد. | ## جمع‌بندی | اخیراً فرضیات جدیدی مبنی بر استفادهٔ مغز انسان از روش‌های بیزی برای طبقه‌بندی حس حرکتی و تصمیم بر چگونگی پاسخ‌های رفتاری مطرح شده‌است.