Imaginez que vous ayez conçu un filtre anti-spam sous la forme d’une série d’instructions conditionnelles (if). Si l’objet contient le mot « FREE », marquez-le comme spam. Si l’adresse de l’expéditeur se termine par « .ru », marquez-le comme spam. Si l’e-mail contient l’expression « wire transfer » (virement bancaire), marquez-le comme spam.
Pendant une semaine, tout semble fonctionner correctement, puis la situation se dégrade. De nouvelles tentatives d’escroquerie contournent vos mots-clés, tandis que des e-mails légitimes sont signalés à tort parce qu’un collègue a écrit « free lunch » (déjeuner offert) dans une invitation de calendrier. Rien n’est « cassé » au sens où le programme planterait : les règles continuent d’exécuter exactement ce que vous avez écrit, et c’est bien là le problème.
Face aux limites du filtre basé sur des règles, l’étape suivante consiste à adopter un système dont le résultat évolue après avoir pris connaissance de ce que vous considérez comme correct. Un programme apprend lorsque la phase d’entraînement ajuste ses paramètres internes, de sorte qu’un même e-mail en entrée produise un résultat plus pertinent (spam ou non-spam) qu’avant l’entraînement.
Pour illustrer cela concrètement, prenons une boîte de réception miniature où chaque e-mail est accompagné d’une étiquette (ou label) : il s’agit de la réponse correcte que vous attendez du programme, comme « spam » ou « non-spam ». Cet ensemble d’exemples constitue des données, c’est-à-dire des entrées enregistrées associées à leurs étiquettes respectives. Le programme ne traite pas les e-mails dans leur globalité par un procédé magique ; il s’appuie sur des caractéristiques (ou features), c’est-à-dire des propriétés mesurables au sein de l’e-mail, telles que « contient le mot “invoice” » ou « le domaine de l’expéditeur se termine par “.biz” ».
Voyons comment les mêmes e-mails étiquetés peuvent conduire à des résultats différents avant et après l’entraînement.
L’aspect fondamental est que l’entraînement modifie le comportement du filtre sans nécessiter l’ajout de nouvelles instructions conditionnelles (if). Le processus d’entraînement utilise les étiquettes pour ajuster les paramètres internes vers des résultats plus souvent conformes à ces étiquettes ; ainsi, un message précédemment mal classé est correctement classé après l’ajustement.
Une fois que le filtre est capable d’évoluer en fonction d’exemples, la question suivante est de savoir quel type de modification constitue un véritable apprentissage. Si le programme se contente de mémoriser les e-mails exacts utilisés pour l’entraînement, il peut obtenir un score parfait sur ces exemples tout en échouant face à une nouvelle tentative d’escroquerie formulée différemment.
Face à un nouvel e-mail inconnu du filtre, comment un système basé sur la reconnaissance de motifs peut-il le classer sans qu’il soit nécessaire de programmer manuellement chaque nouvelle ruse ? Il peut réutiliser des caractéristiques souvent corrélées au spam dans l’ensemble de données étiquetées, telles que la présence du mot « invoice » (facture), des domaines d’expéditeur inhabituels ou une incohérence entre le nom de l’expéditeur et le domaine.
Comparez la manière dont un système à mémorisation exacte, un système d’apprentissage par motifs et un système à règles fixes traitent un e-mail inédit.