Polydesk-logotype
Polydesk.ai — Header

Spam Detection

La spam detection (détection de spam) est une tâche de classification de texte binaire ou multi-classe qui consiste à identifier automatiquement les messages non sollicités (spam) parmi les messages légitimes (ham), en analysant le contenu textuel, les métadonnées et parfois la structure relationnelle des communications.

Spam Detection en bref
Catégorie
NLP / Classification / Cybersécurité
Type
Classification binaire (spam/ham) ou multi-classe (spam/phishing/ham)
Méthodes
Naive Bayes, SVM, BERT, LSTM, LLM zero-shot, règles + heuristiques
Datasets
SpamAssassin, Enron, SMS Spam Collection, Nazario Phishing
Métriques
F1-score, Precision, Recall, Accuracy, Taux de faux positifs
Outils
SpamAssassin, rspamd, Gmail/Outlook filters, APIs LLM

Pourquoi la spam detection reste un défi en constante évolution

Le spam représente environ 45% du trafic email mondial. Mais la menace ne se limite plus aux publicités non sollicitées. Les campagnes de phishing imitent avec précision les emails de banques, d’administrations ou de collègues, les spams générés par IA produisent des textes indiscernables des communications légitimes, et les attaques d’ingénierie sociale exploitent le contexte relationnel. C’est une course aux armements permanente entre les spammeurs et les filtres.

La spam detection est un cas particulier de classification de documents avec des contraintes spécifiques : le coût d’un faux positif (email légitime classé comme spam) est très élevé (un contrat perdu, un email urgent manqué), les spammeurs adaptent activement leurs techniques pour contourner les filtres (adversarial attacks), et le volume est massif (des milliards d’emails par jour à filtrer avec des latences minimales).

Évolution des méthodes de détection

Ère 1 : filtres à base de règles (1990-2005)

Les premiers filtres anti-spam reposaient sur des listes noires (blocklists) d’adresses IP et de domaines, des règles sur les mots-clés (« Viagra », « gratuit », « gagnez »), et l’analyse des en-têtes SMTP (authentification SPF, DKIM, DMARC). SpamAssassin, lancé en 2001 et toujours utilisé, incarne cette approche : il combine des centaines de règles pondérées en un score composite. Le seuil de score détermine si un email est marqué comme spam.

Limites : les règles sont faciles à contourner (remplacer « Viagra » par « V1agra »), coûteuses à maintenir manuellement, et incapables de détecter les nouvelles formes de spam.

Ère 2 : machine learning classique (2000-2018)

L’approche par apprentissage automatique a transformé la spam detection. Au lieu de règles écrites à la main, un modèle apprend les patterns discriminants à partir d’exemples de spam et de ham.

Naive Bayes : le classifieur le plus emblématique de la spam detection. L’approche bayésienne calcule la probabilité qu’un email soit du spam étant donnés les mots qu’il contient. Malgré son hypothèse simplificatrice d’indépendance des features, Naive Bayes est étonnamment performant sur le spam (>95% d’accuracy sur les datasets standards) et reste utilisé comme baseline. Son principal atout : une vitesse d’inférence extrême, essentielle pour filtrer des millions d’emails par seconde.

SVM (Support Vector Machine) : les SVM linéaires sur des features TF-IDF atteignent des performances légèrement supérieures à Naive Bayes. Ils gèrent bien les espaces de haute dimension et sont robustes face aux features non pertinentes.

Régression logistique : une alternative interprétable et performante. Des travaux ont montré que la régression logistique combinée avec des embeddings BERT offre les meilleurs résultats dans certaines configurations, surpassant même les modèles plus complexes.

Random Forest / XGBoost / LightGBM : les modèles d’ensemble excellent quand on combine des features textuelles (TF-IDF) avec des features structurelles (longueur de l’email, nombre de liens, présence de pièces jointes, ratio texte/images). Des travaux récents (IEEE Access, 2025) montrent que les modèles hybrides Naive Bayes restent compétitifs face aux approches deep learning pour la détection de scams financiers.

Le filtre bayésien de Paul Graham L’article fondateur « A Plan for Spam » (2002) de Paul Graham a popularisé le filtre bayésien et inspiré une génération de solutions anti-spam. L’idée centrale est simple : calculer la probabilité que chaque mot appartienne à du spam vs. du ham, puis combiner ces probabilités pour l’email entier. Cette approche a été adoptée par les principaux fournisseurs de messagerie et reste la base théorique de nombreux filtres actuels.

Ère 3 : deep learning (2018-2023)

Les réseaux de neurones profonds ont apporté deux améliorations majeures : la capacité à apprendre des représentations textuelles riches sans feature engineering, et la capacité à traiter des séquences longues.

CNN (Convolutional Neural Networks) : les CNN appliqués au texte détectent des patterns locaux (n-grammes, motifs de mots) efficacement. Ils sont utilisés comme composant de base dans de nombreux systèmes de filtrage commerciaux.

LSTM / GRU : les réseaux récurrents capturent les dépendances séquentielles dans le texte. Un modèle hybride LSTM+GRU publié en 2025 (Applied Sciences) atteint des performances élevées en combinant les forces des deux architectures : le LSTM pour les dépendances longue distance et le GRU pour l’efficacité computationnelle.

BERT et Transformers : BERT a fait progresser la spam detection en capturant le sens contextuel des mots. Un email qui dit « Votre compte sera suspendu » est interprété différemment selon qu’il provient d’une vraie banque ou d’un phisheur, et BERT capture ces nuances. DistilBERT, une version plus légère, est particulièrement adapté au déploiement en production grâce à sa vitesse supérieure. Un framework LLM publié en 2026 (Discover Applied Sciences) combine des embeddings DistilBERT avec des classifieurs neuronaux pour atteindre des performances état de l’art.

Ère 4 : LLMs et détection contextuelle (2023-aujourd’hui)

Les grands modèles de langage apportent une dimension nouvelle à la spam detection : la compréhension sémantique profonde et la capacité d’explication.

ChatSpamDetector : un système proposé en 2024 qui utilise les LLMs pour détecter le phishing. Le système convertit l’email (corps + en-têtes) en prompt structuré, et le LLM analyse le contenu en identifiant les techniques d’ingénierie sociale, l’usurpation d’identité de marque et les incohérences entre le nom affiché et le domaine réel. Avec GPT-4, le système atteint 99,70% d’accuracy et fournit des explications détaillées de ses décisions.

Spam-T5 : développé par J.P. Morgan Chase, c’est un modèle Flan-T5 fine-tuné spécifiquement pour la détection de spam email. L’étude compare trois familles de LLMs (BERT-like, Sentence Transformers, Seq2Seq) sur quatre datasets publics. Résultat : les LLMs surpassent les baselines classiques dans la majorité des cas, particulièrement en few-shot (peu d’exemples d’entraînement). Spam-T5 est le plus performant dans les scénarios à données limitées.

LLM en zero-shot : les modèles comme GPT-5.4 ou Claude peuvent détecter le spam en zero-shot avec des prompts appropriés. Cependant, les reviews de la littérature (IJRASET, 2025) soulignent que les LLMs ne remplacent pas encore les filtres spécialisés en production : leur coût, leur latence et leurs questions de gouvernance les positionnent comme compléments plutôt que substituts.

Le paradoxe du spam généré par IA Les mêmes LLMs qui améliorent la détection de spam sont aussi utilisés pour en générer. Le spam produit par IA est grammaticalement correct, contextuel, personnalisé et difficile à distinguer d’un email légitime. Cela crée une course aux armements : les filtres basés sur la détection de maladresses linguistiques (fautes d’orthographe, syntaxe étrange) deviennent obsolètes face au spam IA. Les approches futures devront se concentrer sur l’analyse de l’intention, du contexte relationnel et des métadonnées plutôt que sur la seule qualité linguistique.

Types de spam et menaces associées

La spam detection moderne doit gérer plusieurs catégories de messages malveillants, chacune avec ses propres caractéristiques :

Spam commercial (bulk) : publicités non sollicitées, newsletters auxquelles l’utilisateur ne s’est pas inscrit. Le type le plus courant et le plus facile à détecter (mots-clés, expéditeurs récurrents, patterns de masse).

Phishing : emails qui se font passer pour des entités légitimes (banques, administrations, services en ligne) pour obtenir des identifiants, des données bancaires ou installer des logiciels malveillants. Le phishing sophistiqué (spear phishing) cible des individus spécifiques avec des informations contextuelles crédibles.

Scams financiers : arnaques aux cryptomonnaies, offres d’investissement frauduleuses, escroqueries à l’héritage. Souvent plus difficiles à détecter car ils utilisent un langage rationnel et des promesses réalistes.

Malware : emails contenant des pièces jointes infectées ou des liens vers des sites malveillants. L’architecture dual-layer proposée en 2026 (Electronics) analyse conjointement le contenu textuel et les pièces jointes pour une détection plus complète.

Business Email Compromise (BEC) : l’attaquant usurpe l’identité d’un dirigeant pour demander un virement ou des informations confidentielles. C’est la forme la plus coûteuse de fraude par email, et la plus difficile à détecter car le contenu est souvent court et contextuel.

Features et signaux de détection

Un système de spam detection moderne exploite plusieurs catégories de signaux :

Catégorie Features Exemples
Contenu textuel Mots-clés, n-grammes, TF-IDF, embeddings « Urgent », « Vérifiez votre compte », liens suspects
En-têtes email SPF, DKIM, DMARC, route SMTP, domaine expéditeur Incohérence entre Reply-To et From
Structure Ratio texte/images, HTML obfusqué, pièces jointes Email uniquement composé d’une image
Comportemental Volume d’envoi, patterns temporels, réseau de destinataires 1 000 emails identiques en 5 minutes
Réputation Score de l’IP, âge du domaine, historique de l’expéditeur Domaine créé il y a 24h
URLs/Liens Domaine de destination, redirections, raccourcisseurs Lien vers paypa1.com au lieu de paypal.com

Les systèmes les plus performants combinent toutes ces catégories. Les features textuelles seules sont insuffisantes pour le phishing sophistiqué ; les features structurelles et de réputation apportent des signaux complémentaires essentiels.

Métriques et compromis

La métrique la plus critique en spam detection n’est pas l’accuracy globale mais le taux de faux positifs : le pourcentage d’emails légitimes classés comme spam. Un taux de faux positifs de 0,1% signifie qu’un email légitime sur mille est perdu. Pour un utilisateur qui reçoit 100 emails par jour, cela représente un email manqué tous les 10 jours, potentiellement un contrat, une candidature ou une alerte médicale.

Le compromis fondamental est entre le recall (proportion de spam détecté) et la precision (fiabilité de la détection). Les filtres agressifs ont un recall élevé (peu de spam passe) mais plus de faux positifs. Les filtres conservateurs ont moins de faux positifs mais laissent passer plus de spam. Les fournisseurs de messagerie visent typiquement un taux de faux positifs inférieur à 0,05% avec un recall supérieur à 99%.

Datasets de référence

Dataset Type Taille Accès
SpamAssassin Public Corpus Email (spam + ham) ~6 000 emails Public
Enron Email Dataset Email corporate (ham) ~500 000 emails Public
SMS Spam Collection SMS (spam + ham) ~5 500 messages Public (UCI)
Nazario Phishing Emails de phishing Variable Public
TREC Spam Track Email (benchmark) ~75 000 emails Public
Kaggle Ham/Spam with Attachments Email + pièces jointes Variable Public (Kaggle)
Attention aux datasets anciens Les datasets classiques (SpamAssassin, Enron) datent des années 2000-2005. Le spam a radicalement évolué depuis. Les modèles entraînés uniquement sur ces données détecteront mal le phishing moderne et le spam généré par IA. Pour un système en production, complétez ces datasets avec des données récentes de votre propre domaine. Les datasets Kaggle récents (2024-2025) incluant des pièces jointes et du phishing moderne sont un bon complément.

Implémentation pratique

Baseline rapide : Naive Bayes (5 minutes)

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import Pipeline

pipeline = Pipeline([
    ('tfidf', TfidfVectorizer(max_features=10000, ngram_range=(1,2))),
    ('clf', MultinomialNB(alpha=0.1))
])

pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)
# Accuracy typique : 95-97% sur SMS Spam Collection

Production : BERT fine-tuné

from transformers import AutoModelForSequenceClassification, Trainer

model = AutoModelForSequenceClassification.from_pretrained(
    "distilbert-base-uncased", num_labels=2
)
# Fine-tuning sur vos données d'emails
# Accuracy typique : 98-99%+ sur des datasets modernes

Détection avancée : LLM pour le phishing

# Prompt pour détecter le phishing avec un LLM
prompt = """Analysez cet email et déterminez s'il s'agit de
phishing, de spam ou d'un email légitime.

Examinez :
1. Cohérence entre l'expéditeur affiché et le domaine réel
2. Urgence artificielle ou menaces
3. Demandes d'informations sensibles
4. URLs suspectes ou mal orthographiées
5. Techniques d'ingénierie sociale

Email :
From: {from_header}
Subject: {subject}
Body: {body}

Répondez en JSON : {"classification": "phishing|spam|legitimate",
"confidence": 0-1, "reasoning": "..."}"""

Systèmes en production

Les filtres anti-spam en production combinent plusieurs couches :

Couche 1 : filtrage réseau : vérification SPF/DKIM/DMARC, blocklists d’IP, rate limiting. Cette couche bloque environ 80% du spam avant même d’analyser le contenu.

Couche 2 : analyse de contenu ML : classifieurs rapides (Naive Bayes, SVM, LightGBM) sur des features TF-IDF et structurelles. Latence < 10 ms par email.

Couche 3 : analyse sémantique : modèles Transformer (DistilBERT) pour les emails qui passent la couche 2 avec un score ambigu. Détection du phishing sophistiqué et du BEC.

Couche 4 : feedback utilisateur : les signalements « ceci est du spam » / « ceci n’est pas du spam » alimentent un cycle de ré-entraînement continu.

SpamAssassin Open Source reste la référence pour le déploiement on-premise, combinant règles, Naive Bayes et intégrations avec des blocklists. rspamd Open Source est une alternative plus moderne et plus rapide, écrite en C. Pour les applications cloud, les filtres intégrés de Gmail, Outlook et les fournisseurs de messagerie utilisent des modèles propriétaires qui combinent toutes les couches ci-dessus à une échelle massive.

Au-delà de l’email : SMS, réseaux sociaux, commentaires

La spam detection s’étend bien au-delà de l’email :

SMS/RCS spam : les mêmes techniques s’appliquent mais avec des textes plus courts. Le dataset SMS Spam Collection (UCI) est la référence. Les opérateurs télécom déploient des filtres similaires aux filtres email.

Commentaires et avis : la détection de faux avis sur les plateformes e-commerce et les réseaux sociaux utilise des signaux supplémentaires comme les patterns de publication, la similitude entre avis, et le profil de l’auteur.

Spam sur les réseaux sociaux : bots, comptes automatisés, messages de masse. L’analyse comportementale (fréquence de publication, réseau de followers) complète l’analyse de contenu.

Verdict

La spam detection est l’une des applications les plus matures du NLP, avec des décennies de recherche et des systèmes en production à l’échelle mondiale. Naive Bayes reste étonnamment performant comme baseline et est encore utilisé en production pour le filtrage rapide de premier niveau. BERT/DistilBERT fine-tuné est l’état de l’art pour la précision, particulièrement contre le phishing. Les LLMs apportent deux innovations : la capacité d’explication (pourquoi un email est du spam) et la détection en zero-shot sans données d’entraînement. Mais leur coût et leur latence les réservent aux couches d’analyse avancées plutôt qu’au filtrage de masse.

Le vrai défi de demain : le spam généré par IA. Les filtres devront évoluer vers l’analyse d’intention et de contexte relationnel, plutôt que de se fier uniquement au contenu linguistique.


Questions fréquentes sur la spam detection

Naive Bayes est-il encore pertinent pour la spam detection ?

Oui, étonnamment. Naive Bayes reste utilisé en production par de nombreux systèmes (dont SpamAssassin) comme classifieur de premier niveau grâce à sa vitesse extrême (microsecondes par classification), sa simplicité de déploiement et ses performances solides (>95% d’accuracy). Il est surpassé par BERT sur les cas ambigus et le phishing sophistiqué, mais pour le filtrage de masse initial, son rapport performance/coût est imbattable. La bonne pratique est de l’utiliser en couche 1, avec un modèle plus sophistiqué en couche 2 pour les emails incertains.

Les LLMs peuvent-ils remplacer les filtres anti-spam traditionnels ?

Pas en tant que remplacement direct, mais comme complément puissant. Le système ChatSpamDetector atteint 99,70% d’accuracy avec GPT-4, mais le coût API et la latence (1-5 secondes par email) le rendent impraticable pour filtrer des millions d’emails par heure. Les LLMs excellent en revanche pour l’analyse de phishing sophistiqué (identification des techniques d’ingénierie sociale), pour la génération d’explications compréhensibles par l’utilisateur, et pour le bootstrapping de classifieurs spécialisés (générer des données d’entraînement étiquetées). L’architecture en couches reste la meilleure approche : filtres rapides en première ligne, LLM pour les cas complexes.

Comment gérer le spam généré par IA ?

Le spam généré par des LLMs est grammaticalement correct et stylistiquement cohérent, ce qui rend obsolètes les filtres basés sur les erreurs linguistiques. Les stratégies efficaces incluent l’analyse des métadonnées (en-têtes SMTP, authentification, réputation du domaine), l’analyse comportementale (patterns d’envoi, réseau de destinataires), la détection d’anomalies sur le profil de l’expéditeur, et les modèles entraînés spécifiquement à distinguer le texte généré par IA du texte humain (voir les détecteurs IA). La détection de contenu seul sera de moins en moins suffisante.

Quel est le meilleur modèle pour la détection de phishing ?

Pour la détection de phishing, les modèles Transformer (BERT, DistilBERT, RoBERTa) fine-tunés sur des datasets de phishing récents offrent le meilleur rapport qualité/coût en production. Les LLMs (GPT-5.4, Claude) en mode prompt structuré atteignent les meilleures performances absolues (>99,5% d’accuracy) et fournissent des explications, mais à un coût plus élevé. La combinaison la plus efficace : analyse des en-têtes (SPF/DKIM/DMARC) + classifieur BERT sur le contenu + vérification des URLs. Pour le spear phishing et le BEC, les signaux comportementaux et contextuels (l’email correspond-il au style habituel de l’expéditeur ?) deviennent essentiels.

Comment entraîner un filtre anti-spam personnalisé ?

Le processus en 4 étapes : (1) Collectez vos données, en exportant des emails spam et ham de votre propre messagerie (minimum 500 de chaque pour un bon baseline). (2) Commencez par Naive Bayes + TF-IDF comme baseline (5 minutes de code avec scikit-learn, ~95% d’accuracy). (3) Si le baseline est insuffisant, passez à DistilBERT fine-tuné (quelques heures de GPU, ~99% d’accuracy). (4) Déployez avec une boucle de feedback utilisateur pour améliorer continuellement le modèle. Pour un prototype encore plus rapide, testez un LLM en zero-shot sur un échantillon de vos emails pour évaluer la faisabilité avant d’investir dans le fine-tuning.

Polydesk.ai — Footer