Обнаружение спама

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
{{well|Статья написана с использованием LLM '''Qwen3.7''' и проверена участником Камиль Багдалов}}
{{well|Статья написана с использованием LLM '''Qwen3.7''' и проверена участником Камиль Багдалов}}
-
'''Обнаружение спама''' (англ. spam detection, spam filtering) — это классическая задача [[Классификация|бинарной классификации]] текстовых сообщений (а в более широком смысле — любых входящих цифровых коммуникаций) на два класса: нежелательные сообщения (спам) и легитимные сообщения (хам, от англ. ham). В контексте [[Искусственный интеллект|искусственного интеллекта]] и [[Машинное обучение|машинного обучения]] эта задача стала одним из первых и наиболее успешных коммерческих применений статистических методов обработки естественного языка и [[Категоризация документов|категоризации документов]].
+
'''Обнаружение спама''' (англ. spam detection, spam filtering) — задача [[Машинное обучение|машинного обучения]], заключающаяся в автоматической классификации входящих сообщений (электронных писем, SMS, сообщений в социальных сетях, комментариев) на спам и легитимные сообщения (ham). Является одной из первых и наиболее успешных областей применения методов машинного обучения в повседневной жизни, а также классическим примером '''состязательного машинного обучения''' (adversarial machine learning) — постоянного противостояния разработчиков фильтров и спамеров.
-
== Историческая справка: от эвристик к статистике ==
+
== Постановка задачи ==
-
До конца 1990-х годов фильтрация спама опиралась преимущественно на жесткие эвристические правила: черные списки IP-адресов (DNSBL), регулярные выражения для поиска специфических фраз и анализ заголовков письма. Однако спамеры быстро адаптировались, меняя орфографию и используя обфускацию.
+
С точки зрения машинного обучения, обнаружение спама формулируется как задача [[Классификация|бинарной классификации]] текстовых документов. Каждое сообщение представляется в виде вектора признаков <tex>\mathbf{x} = (x_1, x_2, \dots, x_n)</tex>, и задача состоит в построении классификатора <tex>f: \mathbf{x} \to \{0, 1\}</tex>, где <tex>0</tex> — легитимное сообщение (ham), <tex>1</tex> — спам.
-
Революция произошла в 2002 году после публикации эссе Пола Грэма «A Plan for Spam», в котором он популяризировал идею использования статистического (байесовского) анализа текста. Подход Грэма заключался в том, чтобы обучать фильтр на личных письмах пользователя: система вычисляла вероятность того, что конкретное слово встречается в спаме или в легитимной переписке, и агрегировала эти вероятности для всего письма. Это позволило создавать персонализированные фильтры, к которым спамерам было крайне сложно адаптироваться, так как словарь легитимной переписки у каждого пользователя был уникален.
+
Особенности задачи:
 +
* '''Высокая размерность признакового пространства.''' Текстовые сообщения могут содержать тысячи уникальных слов.
 +
* '''Динамичность распределения данных (concept drift).''' Спамеры постоянно меняют тактики, поэтому модель, обученная на данных месячной давности, может резко потерять качество.
 +
* '''Асимметрия ошибок.''' Ложноположительная ошибка (легитимное письмо помечено как спам) обычно воспринимается пользователем гораздо хуже, чем ложноотрицательная (спам прошёл во входящие). Это требует асимметричной функции потерь или различных порогов классификации.
 +
 
 +
== Историческая справка ==
 +
=== Ранние подходы (1990-е годы) ===
 +
Первые системы фильтрации спама были '''правиловыми (rule-based)''' — они использовали набор эвристик, составленных вручную:
 +
* наличие определённых ключевых слов ("viagra", "casino", "million dollars"),
 +
* избыток заглавных букв или восклицательных знаков,
 +
* подозрительные домены в ссылках,
 +
* отсутствие адреса отправителя в списке контактов.
 +
 
 +
Эти подходы быстро устаревали, так как спамеры легко адаптировались, используя синонимы, искажение слов ("v1agra", "c-a-s-i-n-o") и изображения вместо текста.
 +
 
 +
=== Байесовская революция (2002-2005) ===
 +
Поворотным моментом стало эссе Пола Грэма "A Plan for Spam" (2002), в котором он предложил использовать '''[[Наивный байесовский классификатор|наивный байесовский классификатор]]''' для фильтрации спама. Эта идея была не нова в академической среде (байесовские методы применялись к [[Категоризация документов|категоризации документов]] с начала 1990-х), но именно Грэм популяризировал её среди разработчиков и показал высокую практическую эффективность.
 +
 
 +
Преимущества байесовского подхода:
 +
* '''Адаптивность.''' Модель обучается на примерах спама и легитимных писем конкретного пользователя, адаптируясь к его персональным предпочтениям.
 +
* '''Устойчивость к обфускации.''' Даже если спамеры искажают отдельные слова, общая статистика частот слов остаётся характерной.
 +
* '''Интерпретируемость.''' Пользователь может понять, какие слова "проголосовали" за решение классификатора.
 +
 
 +
=== Эволюция признаков (2005-2015) ===
 +
По мере роста сложности спама стало ясно, что одних только словесных признаков недостаточно. В фильтрах начали использоваться:
 +
* '''Анализ заголовков письма.''' Проверка SPF, DKIM, DMARC, корректности маршрута письма.
 +
* '''IP-репутация.''' Чёрные списки IP-адресов, с которых рассылается спам (DNSBL — DNS Blackhole Lists).
 +
* '''Поведенческие сигналы.''' Скорость отправки писем, массовость рассылки, паттерны взаимодействий.
 +
* '''Графовые признаки.''' Анализ социальных графов отправителей и получателей.
 +
 
 +
=== Современные подходы (2015 — настоящее время) ===
 +
С развитием глубокого обучения в спам-фильтрации начали применяться:
 +
* '''Сверточные и рекуррентные нейронные сети''' для анализа текста с учётом контекста.
 +
* '''Трансформеры и большие языковые модели''' для семантического анализа сообщений.
 +
* '''Графовые нейронные сети''' для анализа связей между отправителями.
 +
* '''Ансамбли моделей''', сочетающие признаки разных уровней (текстовые, заголовочные, репутационные).
== Наивный байесовский подход ==
== Наивный байесовский подход ==
-
Фундаментом ранних и многих современных спам-фильтров является [[Наивный байесовский классификатор]]. Задача формулируется как вычисление апостериорной вероятности того, что письмо принадлежит классу «спам» <tex>S</tex> при условии наличия в нем множества слов <tex>W = \{w_1, w_2, \dots, w_n\}</tex>.
+
[[Наивный байесовский классификатор|Наивный байесовский классификатор]] остаётся классическим и поучительным примером для задачи обнаружения спама. Принцип основан на теореме Байеса. Обозначим через <tex>S</tex> класс "спам", через <tex>H</tex> — класс "ham" (легитимное сообщение), через <tex>\mathbf{x}</tex> — вектор признаков письма. Тогда апостериорная вероятность того, что письмо является спамом, вычисляется по формуле:
-
Согласно теореме Байеса:
+
<tex>P(S \mid \mathbf{x}) = \frac{P(\mathbf{x} \mid S) \cdot P(S)}{P(\mathbf{x})}</tex>
-
<tex>P(S \mid W) = \frac{P(S) \prod_{i=1}^{n} P(w_i \mid S)}{P(W)}</tex>
+
-
Предположение «наивности» заключается в том, что наличие каждого слова <tex>w_i</tex> считается условно независимым от наличия других слов при данном классе. Несмотря на то, что в реальном языке слова сильно зависимы (например, «бесплатный» и «сыр»), эта эвристика удивительно хорошо работает для задач классификации текстов из-за высокой размерности пространства признаков и устойчивости к шуму.
+
где <tex>P(S)</tex> — априорная вероятность того, что произвольное письмо является спамом (оценивается по доле спама в обучающей выборке), <tex>P(\mathbf{x} \mid S)</tex> — правдоподобие наблюдения признаков <tex>\mathbf{x}</tex> при условии, что письмо — спам, <tex>P(\mathbf{x})</tex> — полная вероятность наблюдения признаков (нормировочная константа).
-
=== Проблема исчезновения разрядности ===
+
"Наивное" предположение состоит в '''условной независимости признаков''' при фиксированном классе. Для текстовых данных это означает, что каждое слово в письме независимо от других при условии класса "спам" или "ham". Это допущение явно нереалистично (слова в тексте связаны синтаксически и семантически), но на практике работает удивительно хорошо.
-
На практике перемножение множества малых вероятностей <tex>P(w_i \mid S)</tex> приводит к проблеме floating-point underflow (исчезновения разрядности) в компьютерах. Поэтому на практике вычисления проводятся в логарифмическом пространстве:
+
-
<tex>\log P(S \mid W) \propto \log P(S) + \sum_{i=1}^{n} \log P(w_i \mid S)</tex>
+
-
Это позволяет заменить умножение на сложение, сохранив математическую корректность и вычислительную стабильность.
+
-
== Эволюция признаков и современные методы ==
+
При мультиномиальной модели (Multinomial Naive Bayes) правдоподобие вычисляется как произведение вероятностей каждого слова в степени его частоты:
-
Со временем спам-фильтры переросли простой анализ «мешка слов» (bag-of-words). В модели стали добавляться новые признаки:
+
-
* '''Метаданные и репутация:''' анализ IP-адресов отправителя, SPF/DKIM/DMARC записей, репутации доменов.
+
-
* '''Поведенческие сигналы:''' скорость отправки, граф связей между отправителями и получателями.
+
-
* '''Глубокое обучение:''' современные корпоративные фильтры (например, в Gmail или Яндекс.Почте) используют [[Трансформер|трансформеры]] и сверточные нейронные сети, которые способны улавливать семантический контекст письма, а не только частоту слов, и анализировать изображения, встроенные в тело письма (с помощью OCR и компьютерного зрения), чтобы обходить текстовые фильтры.
+
-
== Состязательная природа (Adversarial aspect) ==
+
<tex>P(\mathbf{x} \mid S) = \prod_{i=1}^{n} P(w_i \mid S)^{c_i}</tex>
-
Обнаружение спама — это не статическая задача классификации, а непрерывная '''гонка вооружений''' (arms race) между разработчиками фильтров и спамерами. В терминологии состязательного машинного обучения (Adversarial Machine Learning) спам-фильтрация подвержена нескольким типам атак:
+
-
# '''Атаки уклонения (Evasion attacks / Obfuscation).''' Спамеры намеренно искажают текст, чтобы обойти обученный классификатор, не меняя смысла для человека-читателя. Примеры: использование омоглифов (замена латинской 'a' на кириллическую 'а'), вставка невидимого шума, написание слов с ошибками («V!agra», «R0lex»), рендеринг текста в виде изображений.
+
где <tex>w_i</tex> — слово из словаря, <tex>c_i</tex> — количество вхождений слова <tex>w_i</tex> в сообщение, а произведение берётся по всем уникальным словам словаря.
-
# '''Концептуальный дрейф (Concept drift).''' Тематика и лексика спама постоянно меняются (от «нигерийских писем» и продажи медикаментов к фишингу и крипто-скаму). Модель, обученная на данных прошлого года, быстро деградирует, требуя постоянного онлайн-обучения (online learning).
+
-
# '''Отравление данных (Data poisoning).''' В системах с обратной связью от пользователей (когда пользователь нажимает кнопку «Это спам») спамеры могут массово отправлять легитимные тексты с вредоносными ссылками, чтобы пользователи помечали их как спам, тем самым «отравляя» обучающую выборку и заставляя фильтр блокировать нормальные слова.
+
-
Устойчивость спам-фильтров к этим атакам требует применения ансамблевых методов, регулярного переобучения на свежих данных и многослойной архитектуры (каскада классификаторов), где быстрые эвристические фильтры отсекают очевидный мусор, а тяжелые нейросетевые модели анализируют сложные случаи.
+
На практике для избежания числовой неустойчивости (произведение малых вероятностей стремится к нулю, что приводит к underflow) используется логарифмическая форма:
 +
 
 +
<tex>\ln P(S \mid \mathbf{x}) = \ln P(S) + \sum_{i=1}^{n} c_i \ln P(w_i \mid S) - \ln P(\mathbf{x})</tex>
 +
 
 +
Классификатор относит письмо к спаму, если <tex>P(S \mid \mathbf{x}) > P(H \mid \mathbf{x})</tex>, или, что эквивалентно в логарифмической форме, если:
 +
 
 +
<tex>\ln P(S) + \sum_{i=1}^{n} c_i \ln P(w_i \mid S) > \ln P(H) + \sum_{i=1}^{n} c_i \ln P(w_i \mid H)</tex>
 +
 
 +
Порог классификации может быть сдвинут в соответствии с соотношением цен ошибок: если ложноположительная ошибка (пропуск легитимного письма в спам) значительно дороже ложноотрицательной, порог повышается в пользу класса ham.
 +
 
 +
== Проблема состязательности (adversarial аспект) ==
 +
Одна из наиболее интересных и сложных сторон обнаружения спама — это постоянная '''гонка вооружений''' (arms race) между разработчиками фильтров и спамерами. Это классический пример '''состязательного машинного обучения''' (adversarial machine learning).
 +
 
 +
=== Тактики спамеров ===
 +
* '''Обфускация текста.''' Искажение ключевых слов: "v1agra", "c.a.s.i.n.o", использование Unicode-символов, похожих на латинские буквы (кириллическая "а" вместо латинской "a").
 +
* '''Изображения вместо текста.''' Спам в виде картинок, нечитаемых для текстовых фильтров (требует применения OCR).
 +
* '''Паразитирование на легитимных сервисах.''' Рассылка спама через скомпрометированные аккаунты популярных почтовых сервисов.
 +
* '''Генеративные модели.''' Современные спамеры используют большие языковые модели для генерации уникальных текстов, которые проходят текстовые фильтры.
 +
 
 +
=== Контрмеры фильтров ===
 +
* '''Обновление моделей.''' Периодическое переобучение на новых данных для отслеживания concept drift.
 +
* '''Ансамбли разнородных признаков.''' Комбинация текстовых, поведенческих и репутационных признаков повышает устойчивость.
 +
* '''Active learning.''' Модель запрашивает ручную разметку наиболее информативных и неопределённых примеров.
 +
* '''Adversarial training.''' Обучение модели на специально сгенерированных "вражеских" примерах, имитирующих обфускацию.
 +
 
 +
=== Философский аспект ===
 +
Эта гонка иллюстрирует фундаментальный принцип: '''любая статистическая модель уязвима, если противник знает о её существовании и имеет доступ к обратной связи''' (например, видит, попало ли его письмо во входящие или в спам). Это порождает парадокс: чем точнее модель, тем больше стимул у противника её атаковать.
 +
 
 +
Современная парадигма adversarial machine learning рассматривает эту проблему как игру двух игроков (minimax game), где фильтр минимизирует ошибки, а спамер максимизирует свои шансы пройти фильтр. Равновесие в этой игре постоянно смещается, и ни одна сторона не может добиться окончательной победы.
 +
 
 +
== Практические соображения ==
 +
* '''Персонализация.''' Лучшие результаты дают модели, адаптирующиеся к конкретному пользователю (user-specific filtering).
 +
* '''Federated learning.''' Обучение моделей на устройствах пользователей без передачи их личных данных на центральный сервер — актуальное направление для сохранения приватности.
 +
* '''Интерпретируемость.''' Пользователь должен понимать, почему письмо попало в спам, чтобы иметь возможность корректировать модель (обучение с учителем через обратную связь).
== См. также ==
== См. также ==
Строка 40: Строка 97:
* [[Классификация]]
* [[Классификация]]
* [[Категоризация документов]]
* [[Категоризация документов]]
-
* [[Искусственный интеллект]]
 
* [[Машинное обучение]]
* [[Машинное обучение]]
 +
* [[Искусственный интеллект]]
 +
* [[Риски искусственного интеллекта]]
== Источники ==
== Источники ==
-
* Graham P. A Plan for Spam // paulgraham.com. 2002.
+
* Graham P. A Plan for Spam. 2002. http://www.paulgraham.com/spam.html
-
* Sahami M., Dumais S., Heckerman D., Horvitz E. A Bayesian Approach to Filtering Junk E-Mail // AAAI-98 Workshop on Learning for Text Categorization. 1998.
+
* Sahami M., Dumais S., Heckerman D., Horvitz E. A Bayesian Approach to Filtering Junk E-mail // AAAI-98 Workshop on Learning for Text Categorization. 1998.
-
* Dalvi N., Domingos P., Mausam, Sanghai S., Verma D. Adversarial classification // Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining. 2004. Pp. 99–108.
+
* Androutsopoulos I., Paliouras G., Karkaletsis V., Sakkis G., Spyropoulos C., Stamatopoulos G. Machine Learning Approaches to Spam Filtering // Proc. of NLP-KE'2000.
-
* Kolcz A., Yeh C.H. Better feature integration for naive bayes spam filtering // Proceedings of the 2007 ACM symposium on Applied computing. 2007.
+
-
 
+
-
[[Категория:Машинное обучение]]
+
-
[[Категория:Применение машинного обучения]]
+
-
[[Категория:Обработка естественного языка]]
+

Текущая версия

Статья написана с использованием LLM Qwen3.7 и проверена участником Камиль Багдалов


Обнаружение спама (англ. spam detection, spam filtering) — задача машинного обучения, заключающаяся в автоматической классификации входящих сообщений (электронных писем, SMS, сообщений в социальных сетях, комментариев) на спам и легитимные сообщения (ham). Является одной из первых и наиболее успешных областей применения методов машинного обучения в повседневной жизни, а также классическим примером состязательного машинного обучения (adversarial machine learning) — постоянного противостояния разработчиков фильтров и спамеров.

Содержание

Постановка задачи

С точки зрения машинного обучения, обнаружение спама формулируется как задача бинарной классификации текстовых документов. Каждое сообщение представляется в виде вектора признаков \mathbf{x} = (x_1, x_2, \dots, x_n), и задача состоит в построении классификатора f: \mathbf{x} \to \{0, 1\}, где 0 — легитимное сообщение (ham), 1 — спам.

Особенности задачи:

  • Высокая размерность признакового пространства. Текстовые сообщения могут содержать тысячи уникальных слов.
  • Динамичность распределения данных (concept drift). Спамеры постоянно меняют тактики, поэтому модель, обученная на данных месячной давности, может резко потерять качество.
  • Асимметрия ошибок. Ложноположительная ошибка (легитимное письмо помечено как спам) обычно воспринимается пользователем гораздо хуже, чем ложноотрицательная (спам прошёл во входящие). Это требует асимметричной функции потерь или различных порогов классификации.

Историческая справка

Ранние подходы (1990-е годы)

Первые системы фильтрации спама были правиловыми (rule-based) — они использовали набор эвристик, составленных вручную:

  • наличие определённых ключевых слов ("viagra", "casino", "million dollars"),
  • избыток заглавных букв или восклицательных знаков,
  • подозрительные домены в ссылках,
  • отсутствие адреса отправителя в списке контактов.

Эти подходы быстро устаревали, так как спамеры легко адаптировались, используя синонимы, искажение слов ("v1agra", "c-a-s-i-n-o") и изображения вместо текста.

Байесовская революция (2002-2005)

Поворотным моментом стало эссе Пола Грэма "A Plan for Spam" (2002), в котором он предложил использовать наивный байесовский классификатор для фильтрации спама. Эта идея была не нова в академической среде (байесовские методы применялись к категоризации документов с начала 1990-х), но именно Грэм популяризировал её среди разработчиков и показал высокую практическую эффективность.

Преимущества байесовского подхода:

  • Адаптивность. Модель обучается на примерах спама и легитимных писем конкретного пользователя, адаптируясь к его персональным предпочтениям.
  • Устойчивость к обфускации. Даже если спамеры искажают отдельные слова, общая статистика частот слов остаётся характерной.
  • Интерпретируемость. Пользователь может понять, какие слова "проголосовали" за решение классификатора.

Эволюция признаков (2005-2015)

По мере роста сложности спама стало ясно, что одних только словесных признаков недостаточно. В фильтрах начали использоваться:

  • Анализ заголовков письма. Проверка SPF, DKIM, DMARC, корректности маршрута письма.
  • IP-репутация. Чёрные списки IP-адресов, с которых рассылается спам (DNSBL — DNS Blackhole Lists).
  • Поведенческие сигналы. Скорость отправки писем, массовость рассылки, паттерны взаимодействий.
  • Графовые признаки. Анализ социальных графов отправителей и получателей.

Современные подходы (2015 — настоящее время)

С развитием глубокого обучения в спам-фильтрации начали применяться:

  • Сверточные и рекуррентные нейронные сети для анализа текста с учётом контекста.
  • Трансформеры и большие языковые модели для семантического анализа сообщений.
  • Графовые нейронные сети для анализа связей между отправителями.
  • Ансамбли моделей, сочетающие признаки разных уровней (текстовые, заголовочные, репутационные).

Наивный байесовский подход

Наивный байесовский классификатор остаётся классическим и поучительным примером для задачи обнаружения спама. Принцип основан на теореме Байеса. Обозначим через S класс "спам", через H — класс "ham" (легитимное сообщение), через \mathbf{x} — вектор признаков письма. Тогда апостериорная вероятность того, что письмо является спамом, вычисляется по формуле:

P(S \mid \mathbf{x}) = \frac{P(\mathbf{x} \mid S) \cdot P(S)}{P(\mathbf{x})}

где P(S) — априорная вероятность того, что произвольное письмо является спамом (оценивается по доле спама в обучающей выборке), P(\mathbf{x} \mid S) — правдоподобие наблюдения признаков \mathbf{x} при условии, что письмо — спам, P(\mathbf{x}) — полная вероятность наблюдения признаков (нормировочная константа).

"Наивное" предположение состоит в условной независимости признаков при фиксированном классе. Для текстовых данных это означает, что каждое слово в письме независимо от других при условии класса "спам" или "ham". Это допущение явно нереалистично (слова в тексте связаны синтаксически и семантически), но на практике работает удивительно хорошо.

При мультиномиальной модели (Multinomial Naive Bayes) правдоподобие вычисляется как произведение вероятностей каждого слова в степени его частоты:

P(\mathbf{x} \mid S) = \prod_{i=1}^{n} P(w_i \mid S)^{c_i}

где w_i — слово из словаря, c_i — количество вхождений слова w_i в сообщение, а произведение берётся по всем уникальным словам словаря.

На практике для избежания числовой неустойчивости (произведение малых вероятностей стремится к нулю, что приводит к underflow) используется логарифмическая форма:

\ln P(S \mid \mathbf{x}) = \ln P(S) + \sum_{i=1}^{n} c_i \ln P(w_i \mid S) - \ln P(\mathbf{x})

Классификатор относит письмо к спаму, если P(S \mid \mathbf{x}) > P(H \mid \mathbf{x}), или, что эквивалентно в логарифмической форме, если:

\ln P(S) + \sum_{i=1}^{n} c_i \ln P(w_i \mid S) > \ln P(H) + \sum_{i=1}^{n} c_i \ln P(w_i \mid H)

Порог классификации может быть сдвинут в соответствии с соотношением цен ошибок: если ложноположительная ошибка (пропуск легитимного письма в спам) значительно дороже ложноотрицательной, порог повышается в пользу класса ham.

Проблема состязательности (adversarial аспект)

Одна из наиболее интересных и сложных сторон обнаружения спама — это постоянная гонка вооружений (arms race) между разработчиками фильтров и спамерами. Это классический пример состязательного машинного обучения (adversarial machine learning).

Тактики спамеров

  • Обфускация текста. Искажение ключевых слов: "v1agra", "c.a.s.i.n.o", использование Unicode-символов, похожих на латинские буквы (кириллическая "а" вместо латинской "a").
  • Изображения вместо текста. Спам в виде картинок, нечитаемых для текстовых фильтров (требует применения OCR).
  • Паразитирование на легитимных сервисах. Рассылка спама через скомпрометированные аккаунты популярных почтовых сервисов.
  • Генеративные модели. Современные спамеры используют большие языковые модели для генерации уникальных текстов, которые проходят текстовые фильтры.

Контрмеры фильтров

  • Обновление моделей. Периодическое переобучение на новых данных для отслеживания concept drift.
  • Ансамбли разнородных признаков. Комбинация текстовых, поведенческих и репутационных признаков повышает устойчивость.
  • Active learning. Модель запрашивает ручную разметку наиболее информативных и неопределённых примеров.
  • Adversarial training. Обучение модели на специально сгенерированных "вражеских" примерах, имитирующих обфускацию.

Философский аспект

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

Современная парадигма adversarial machine learning рассматривает эту проблему как игру двух игроков (minimax game), где фильтр минимизирует ошибки, а спамер максимизирует свои шансы пройти фильтр. Равновесие в этой игре постоянно смещается, и ни одна сторона не может добиться окончательной победы.

Практические соображения

  • Персонализация. Лучшие результаты дают модели, адаптирующиеся к конкретному пользователю (user-specific filtering).
  • Federated learning. Обучение моделей на устройствах пользователей без передачи их личных данных на центральный сервер — актуальное направление для сохранения приватности.
  • Интерпретируемость. Пользователь должен понимать, почему письмо попало в спам, чтобы иметь возможность корректировать модель (обучение с учителем через обратную связь).

См. также

Источники

  • Graham P. A Plan for Spam. 2002. http://www.paulgraham.com/spam.html
  • Sahami M., Dumais S., Heckerman D., Horvitz E. A Bayesian Approach to Filtering Junk E-mail // AAAI-98 Workshop on Learning for Text Categorization. 1998.
  • Androutsopoulos I., Paliouras G., Karkaletsis V., Sakkis G., Spyropoulos C., Stamatopoulos G. Machine Learning Approaches to Spam Filtering // Proc. of NLP-KE'2000.
Личные инструменты