📐 МАТЕМАТИКА

Теория вероятностей против спама: как фильтры думают по Байесу

Откуда почта знает, что письмо про «выигрыш миллиона» — спам, а от коллеги — нет? Не из чёрного списка слов, а из теоремы XVIII века, которая учит обновлять догадки по мере поступления улик.

Спам-фильтр — это маленький детектив: он не знает наверняка, но взвешивает улики и выносит вероятностный вердикт.
Теорема Байеса отвечает на главный вопрос рассуждений: как изменить уверенность в гипотезе, когда появилась новая улика?

Каждый день почтовый ящик отлавливает горы спама, почти не ошибаясь. За этим стоит не список запретных слов (его легко обойти), а изящная математика вероятностей. Главная героиня — теорема, которую священник и математик Томас Байес сформулировал ещё в XVIII веке.

Улики вместо уверенности

Фильтр не может знать точно, спам перед ним или нет. Зато он умеет рассуждать так: «Слово “кредит” встречается в спаме гораздо чаще, чем в обычных письмах. Раз оно здесь — вероятность спама подросла». Каждое слово — улика, сдвигающая чашу весов в ту или иную сторону.

Слово «выиграли» тянет к спаму, имя вашего начальника — к «не спаму». Фильтр складывает все эти сдвиги и выносит итоговое суждение.

Теорема Байеса в одной строке

Формально процесс описывает теорема Байеса. Она связывает вероятность гипотезы (письмо — спам) с наблюдаемой уликой (в письме есть слово):

$$P(\text{спам} \mid \text{слово}) = \frac{P(\text{слово} \mid \text{спам}) \cdot P(\text{спам})}{P(\text{слово})}$$

Расшифруем по-человечески. Слева — то, что мы хотим узнать: насколько вероятен спам, если увидели данное слово. Справа — то, что легко посчитать по архиву писем: как часто это слово попадается в спаме, как часто спам приходит вообще и насколько слово распространено в принципе.

Откуда фильтр берёт числа

Он учится на примерах. Прогнав тысячи писем, помеченных «спам» и «не спам», фильтр запоминает частоты: например, что «виагра» встречается в спаме в сотни раз чаще. Это и есть его опыт, его статистика. Чем больше писем он повидал, тем точнее догадки.

Сила в сочетании улик

Одно слово редко решает дело. Магия — в объединении многих. Фильтр перемножает вклады всех слов письма (поэтому метод и зовут «наивным Байесом» — он наивно считает слова независимыми) и получает итоговую вероятность. Сотня слабых улик вместе дают уверенный приговор.

Слово в письмеКуда тянет
«выигрыш», «бесплатно»К спаму
имя коллеги, рабочий терминК не-спаму
нейтральные словаПочти никуда

Почему фильтр умнеет

Когда вы помечаете письмо как спам вручную, вы пополняете обучающую выборку. Фильтр пересчитывает частоты и в следующий раз узнаёт похожие письма лучше. Это и есть машинное обучение в его простейшей форме — система, которая корректирует свои вероятности по обратной связи.

Гонка щита и меча

Спамеры быстро смекнули, как обманывать фильтр, и началась занятная борьба. Они стали разбавлять письмо безобидными словами, писать «в-и-а-г-р-а» через дефисы или прятать текст в картинке. Каждая уловка сбивает статистику. Но и фильтры не стоят на месте: они учатся на новых примерах, анализируют не только слова, но и заголовки, ссылки, репутацию отправителя. Получается вечная гонка вооружений, где математика Байеса — гибкое оружие защищающейся стороны: стоит спаму сменить тактику, как несколько тысяч свежих помеченных писем перенастраивают вероятности, и фильтр снова берёт верх.

Байес повсюду

Тот же принцип «обнови догадку при новой улике» работает далеко за пределами почты: в медицинской диагностике, распознавании речи, рекомендациях, оценке рисков. Везде, где приходится принимать решение в условиях неопределённости, помогает мысль Байеса. Спам-фильтр — лишь самый будничный её триумф, тихо защищающий ваш ящик миллионами вероятностных расчётов в день.

#Байес#вероятность#спам#статистика#фильтры