Spam : Classement statistique de messages

Transcription

Spam : Classement statistique de messages
José-Marcio Martins da Cruz, Spam : Classement statistique de messages électroniques Une approche pragmatique, Paris : Presses des MINES, collection Mathématiques et
informatique, 2012.
© TRANSVALOR - Presses des MINES, 2012
60, boulevard Saint-Michel - 75272 Paris Cedex 06 - France
email : [email protected]
www.pressesdesmines.com
© Photo de couverture : José-Marcio Martins da Cruz
ISBN : 978-2-911256-83-7
Dépôt légal : 2012
Achevé d’imprimer en 2012 (Paris)
Tous droits de reproduction, de traduction, d’adaptation et d’exécution réservés pour tous les pays.
Spam :
Classement statistique
de messages électroniques
Une approche pragmatique
Collection Mathématiques et informatique
Dans la même collection
X. Deshen, P. Montesinos
IWIA 2010 International Workshop
on Image Analysis
S. Desprès, M. Crampes
IC 2010
21es Journées Francophones
d’Ingénierie des Connaissances
C. Laurgeau
Direction : P. Fuchs,
Coordination générale : G. Moreau,
Coordination du volume :
J-M. Burkhardt et S. Coquillart
Le Traité de la réalité virtuelle vol.2
L’interfaçage, l’immersion et
l’interaction en environnement virtuel
Direction Philippe Fuchs, Coordination
générale G. Moreau, coordination du
volume : A. Berthoz et JL. Vercher
Le Siècle de la voiture intelligente
Le Traité de la réalité virtuelle vol.1
L’Homme et l’environnement virtuel
Direction : P. Fuchs,
Coordination générale :
G. Moreau;
Coordination du volume : S.Donikian
Edited by J. Cagnol and
J-P. Zolesio,
Le Traité de la réalité virtuelle vol.5
Les humains virtuels
Direction : P. Fuchs,
Coordination générale : G Moreau,
Coordination du volume : B. Arnaldi
et P. Guitton
Le Traité de la réalité virtuelle vol.4
Les applications de la réalité virtuelle
Direction : P. Fuchs,
Coordination générale : G. Moreau,
coordination du volume : G. Moreau
et J. Tisseau
Le Traité de la réalité virtuelle vol.3
Outils et modèles informatiques
InformationProcessing
Recent Mathematical Advances
in Optimization and Control
F. Goulette
Modélisation 3D automatique
Outils de géométrie différentielle
Spam :
Classement statistique
de messages électroniques
Une approche pragmatique
José-Marcio Martins da Cruz
À mes parents
Marcelino da Cruz
(1899 - 2000)
Palmira Pereira Martins da Cruz
(1912 - 2002)
Le mérite de cet ouvrage ne revient pas uniquement à l’auteur. Nombreux
sont ceux qui, d’une façon ou d’une autre, ont contribué à sa réalisation. Je me
contente de citer ceux dont la contribution a été fondamentale. Tout d’abord,
Alain Galli, professeur à l’Ecole des Mines de Paris, pour le soutien indispensable en statistiques, a largement contribué avec des suggestions, en particulier,
dans l’utilisation des séries temporelles. Les discussions que j’ai eu, avec beaucoup de plaisir, avec Gordon V. Cormack de l’Université de Waterloo m’ont
été utiles, d’une part, dans l’établissement d’un modèle de classement en ligne
de messages et, d’autre part, dans la définition de la méthodologie d’évaluation
des classificateurs. Gladys Huberman, directrice du Centre de Calcul et des Systèmes d’Information de l’Ecole des Mines qui, autres les discussions techniques,
a accordé les conditions matérielles pour effectuer ces travaux – un soutien long
et indispensable. Enfin, je tiens à remercier Sandra Rodrigues, des Presses de
l’Ecole des Mines, pour le travail méticuleux et indispensable de relecture.
i
Avant propos
Somos irmãos, José-Márcio e eu. Nascemos em terras encharcadas, aquelas
terras que escancaram suas portas para as águas do rio Paraguai formando
assim desenhos transparentes cobertos de tintas azuis das águas e verdes das
matas : o Pantanal do Brasil. Viemos ao mundo através de pais que nos ensinaram que a alegria e a coragem é saúde para a vida toda. Eles são o nosso porto.
A gente foi criada rente ao chão, ganhava o tempo cuidando de fazer contas de
cabeça, sem comparações. Vejo de volta esses números, um solo de abstrações,
na tese do meu irmão mais novo.
Há no tronco da lı́ngua portuguesa, uma palavra que me afeta pelo lado
esquerdo da coragem e talvez pela quantidade de sal que carrego nos vãos do
meu corpo por conta de uma coisa que se herda ainda no útero, o andor sagrado
e a casa de habitação. Essa palavra é Finisterra. O sentido quase inteiro dessa
palavra nos é dado pela geografia fı́sica e pelo sentimento lusitano de se lançar
ao mar. Da geografia, vem a noção de ponto mais ocidental do continente
europeu que é um chão de pedra cercado de mar e céu. O outro vem do homem
que habita esse solo e, que na época dos Descobrimentos, pensou o horizonte
como a linha que fecha o seu território. Finisterra era, para os portugueses,
aquela ponta de terra no extremo sudoeste de Portugal onde se fincou um
mirante imaginário : o horizonte. Por herança e honra paterna, recebemos um
fragmento inteiro dessa palavra Finisterra para as nossas vidas. Essa é a nossa
comunhão de bens.
José-Márcio finda a sua tese, aqui se acaba a terra, o cabo mais ao sul
daquela herdade que se anda firme, mas que chega um dia que há-de se romper
àquela ponta de terra e alcançar o mar e fazer crer que o fim da terra é o
primeiro ato. Não tem como ficar na fronteira, está-se no limite. Por limite,
entendo uma grandeza constante, da qual outra grandeza pode aproximar-se
indefinidamente sem nunca atingi-la. Há sempre passos a dar ainda que à estaca
zero, que se recria, que se recomeça.
Aquece o meu coração saber que, lá atrás quando andávamos de bicicleta
pelas ruas de terra vermelha da nossa cidade do interior, não havia destino
traçado, mas sim uma história a ser escrita pelo próprio punho, como esta tese.
E liberdades !
iii
Jose-Marcio est mon frère. Nous sommes nés sur des terres trempées, qui
ouvrent violemment leurs portes aux eaux de la rivière Paraguay formant des
dessins translucides colorés par le bleu des eaux et le vert des forêts : le Pantanal
du Brésil. Nos parents nous ont appris que la joie et le courage nous procureront
la santé durant toute notre vie. Ils sont notre port. Nous avons été élevés proches
de la terre et nous passions notre temps à faire du calcul mental. Aujourd’hui,
je retrouve ces chiffres, telle une partition d’abstractions, dans la thèse de mon
plus jeune frère.
Dans la langue portugaise il existe un mot qui me touche par son côté malhabilement courageux, peut-être à cause de la quantité de sel que je porte dans
mes entrailles, le résultat de quelque chose qui se transmet déjà dans l’utérus.
Ce mot est Finisterra 1 . Le sens de ce mot nous est donné par la géophysique et
par le sentiment lusitanien de s’élancer vers la mer. De la géographie vient la
notion de ”point le plus occidental du continent européen”, un sol de pierres entouré par la mer et le ciel. La notion de sentiment vient de l’homme qui habite
ce sol et qui, du temps des Découvertes, pensait que l’horizon constituait la fin
de son territoire. Finisterra était, pour les Portugais, cette pointe de terre à
l’extrême sud-ouest du Portugal où un belvédère imaginaire était transpercé :
l’horizon. Nos parents nous ont légué un fragment intact de ce mot Finisterra.
C’est là notre communion de biens.
José-Marcio achève sa thèse, ici finit la terre, le cap le plus au sud de la
terre ferme, mais qui un jour s’en détachera et prendra la mer pour faire croire
que la fin de la terre était seulement le premier acte. Impossible de rester aux
abords, à la limite. Par limite, j’entends une grandeur constante qu’une autre
grandeur peut approcher indéfiniment, sans jamais l’atteindre. Il y a toujours
des pas à faire, même au point de départ, qui, lui, se renouvelle, se recrée.
Cela me réchauffe le cœur de savoir que, par le passé, quand nous faisions
du vélo dans les rues de terre rouge de notre petit village, nous n’avions pas une
destinée toute tracée, mais une histoire à écrire de nos propres mains, comme
cette thèse.
Liberté !
Lucenne Cruz
Rio de Janeiro, Brésil, le 12 juin 2011
1 N.d.t. - Au Portugal, Finisterra fait référence au Cabo da Roca sis à 42 km à l’ouest
de Lisbonne. Le poète Luis de Camões (1525-1580) décrivait le cap dans les Lusiadas comme
”l’endroit où la terre s’arrête et où la mer commence”.
iv
Préface
Qui n’a pas été confronté aux courriers indésirables, les spams ? Ce phénomène qui s’est développé dans les années 1990 est une véritable plaie. Les
spams représentent actuellement l’essentiel du trafic de messagerie et il est vital de pouvoir les détecter et les éliminer de façon satisfaisante. Le livre de
José-Marcio Martins da Cruz issu de sa thèse fait le point de façon très pédagogique sur le sujet. Il commence par un volet historique où il relate l’origine
du nom de spams pour désigner ces messages, très vite on entre dans le vif
du sujet en abordant les classificateurs statistiques. L’auteur s’intéresse ensuite
à l’évolution temporelle des flots de spams, et aux méthodes d’apprentissage
actif.
Cette évolution temporelle, peu ou pas abordée dans ce domaine, fait l’objet
d’une étude spécifique dans laquelle il est montré que des flots de spams provenant de différents corpus ont des caractéristiques statistiques et temporelles
communes et que les flots de hams et de spams ont des dynamiques différentes.
Par ailleurs les scores des classificateurs se dégradent en fonction de la date de
mise à jour de la base d’apprentissage, mais la dégradation est en fait assez
lente pour ne pas nécessiter de fréquentes mises à jour de cette base
Dès les premières pages on se rend compte que l’expérience de José Marcio
lui permet de prendre un grand recul sur le sujet ce qui donne à son livre un style
ou transparait une vision très personnelle du domaine. Une des conséquences
est que cet ouvrage, bien qu’assez technique se lit avec plaisir.
Ce qui fait la grande originalité et une partie de l’intérêt de cet ouvrage est
la remise en cause par l’auteur de beaucoup d’idées communément répandues
dans le traitement des spams. Le mieux est de le citer : ”Un de ces mythes
consiste à dire que l’utilisation mutualisée d’un filtre de contenu pour classer les
messages d’une communauté n’est pas faisable puisque ”les boites aux lettres de
personnes différentes sont différentes” (sic). Un des objectifs de cette recherche
a été justement l’étude systématique de ce contexte et nous avons pu démontrer
que l’on peut obtenir des résultats satisfaisants avec des solutions relativement
simples”.
Alain Galli
Paris, le 20 mai 2012
v
Introduction
Il faut se méfier des ingénieurs. Ça commence par la machine à
coudre et ça finit par la bombe atomique.
Marcel Pagnol
Internet et les messages indésirables
La création d’Internet remonte aux années 1970, à l’initiative du DARPA,
pour faciliter les communications entre les chercheurs et les départements de
l’administration américaine. Dans les années 1990, Internet est devenu un outil
grand public qui, petit à petit, a pris une part importante dans le fonctionnement de notre société aussi bien sur le plan individuel que dans les entreprises
et organismes de l’administration grâce aux applications Web et à la messagerie
électronique. Dans les organisations professionnelles, ces applications ont pris
une place si importante que leur activité parfois cesse en cas d’indisponibilité
ou de mauvais fonctionnement.
Parmi les plaies se propageant par la messagerie électronique se trouvent
les virus et les spams. Ces derniers sont les messages électroniques envoyés
aveuglement et en masse et proposant, par exemple, toute une panoplie de
produits pharmaceutiques, de la contrefaçon ou encore de la pornographie.
Jusqu’à la fin des années 1990 l’activité spam était restée marginale. Aujourd’hui, les estimations divergent mais globalement on estime que le spam
génère entre 70 % et 95 % du trafic SMTP sur Internet. Il s’agit d’une gêne
au trafic puisque d’une part il faut dimensionner les infrastructures réseau en
conséquence et d’autre part cela constitue une perte de temps pour les destinataires de ces messages.
Depuis la fin des années 1990, une panoplie de solutions de filtrage sont apparues, certaines basées sur l’identification du chemin parcouru par le message
et d’autres basées sur le contenu des messages, certaines objectives et d’autres
moins, voire farfelues. L’empirisme d’un nombre de solutions a créé un nombre
important de mythes et de fausses idées.
vii
Un de ces mythes consiste à dire que l’utilisation mutualisée d’un filtre de
contenu pour classer les messages d’une communauté n’est pas faisable puisque
”les boı̂tes aux lettres de personnes différentes sont différentes” sic. Un des
objectifs de cette recherche a été justement l’étude systématique de ce contexte
et nous avons pu démontrer que l’on peut obtenir des résultats satisfaisants
avec des solutions relativement simples.
Un spam, un ham, c’est quoi, exactement ?
®
SPAM 2 est un produit à base de viande épicée et conditionné en boı̂te. Ce
mot est formé des initiales de ”Shoulder Pork and hAM” ou ”SPiced hAM”. En
1970, le groupe Monty Python Flying Circus a présenté un sketch qui se passait
dans un restaurant où tous les plats du menu étaient faits avec SPAM . Le
sketch finissait par une cacophonie où tous chantaient : ”Spam, spam, spam,
spam, spam, spam, spam, spam, lovely spam ! Wonderful spam !”3 . L’utilisation
du mot ”spam” pour ce référer à cette catégorie de messages indésirables vient
du caractère répétitif et envahissant de ce mot dans le sketch.
Il y a plusieurs définitions de spam, certaines plus restrictives que d’autres.
Les entreprises de marketing, par exemple, essaient de promouvoir une définition assez faible de façon à ce que la publicité, même sauvage, ne soit pas
considérée comme du spam.
Dans le contexte de ces travaux, nous avons considéré comme spam les
messages satisfaisant, en même temps, les trois critères suivants :
– les messages n’ont pas été sollicités et n’ont aucun intérêt ;
– les messages ont été envoyés en masse ;
– le destinataire ne connait pas l’expéditeur (même si l’inverse peut ne pas
être vrai).
Cependant, cette définition admet une appréciation subjective, en particulier du premier critère, où l’expression ”non sollicité” est remplacée par ”non
souhaité”. Ce flou est néanmoins inévitable et ajoute une incertitude dans les
résultats que nous avons pu observer dans la partie expérimentale.
Malgré la diversité des définitions et les controverses, cette définition semble
être la plus acceptable car elle tend vers l’appréciation faite par le destinataire.
C’est, à notre avis, l’objectif de toute application de classement : la satisfaction
de l’utilisateur.
Les messages indésirables sont parfois aussi désignés par UBE (Unsollicited
Bulk Email) ou UCE (Unsollicited Commercial Email).
Les messages légitimes, par opposition aux spams, sont souvent désignés par
le mot ham – probablement pour dire que ”spam, c’est mauvais mais ham, c’est
bon”.
®
2
®
est une marque déposée de Hormel Foods - http://www.spam.com.
SPAM
On peut retrouver ce sketch sur internet, par exemple, à http://www.youtube.com/
watch?v=ODshB09FQ8w ou http://www.montypython.net/scripts/spamskit.php.
3
viii
Chapitre 0. Introduction
Le filtrage de spam basé sur le contenu
Une approche souvent utilisée pour filtrer le spam est de vérifier si un message en cours d’examen satisfait un certain nombre de critères – des règles.
Si oui, le message est refusé et, dans le cas contraire, le message est accepté.
Ces critères sont par exemple : la présence de l’expéditeur dans une liste noire,
un nombre important de messages du même expéditeur dans une période très
courte ou encore la présence de certains mots (viagra, pornographie, etc.) dans
le contenu du message. En général, un seul critère ne suffit pas pour atteindre
un niveau d’efficacité satisfaisant : il faut alors les combiner. Mais la combinaison optimale n’est pas forcément triviale à trouver et, assez souvent, cela se
fait grâce à des simplifications pas toujours justifiées.
Dans une approche naı̈ve, les critères sont établis à l’avance et manuellement. Il s’agit de construire une fonction dont le paramètre en entrée est une
représentation du message à classer (qu’il ait déjà été vu ou pas) et le résultat
est l’étiquette indiquant l’appartenance à une des classes possibles : ham ou
spam. La difficulté vient du fait qu’il n’y a pas de modèle mathématique permettant d’associer une classe à un message et, s’il y en avait un, il serait très
complexe.
L’approche alternative, l’apprentissage artificiel, consiste à utiliser un ensemble d’exemples, avec les étiquettes associées, de taille suffisante pour être représentatif de l’ensemble des messages, et de laisser un certain ”algorithme” ”apprendre” la relation fonctionnelle pouvant exister entre l’ensemble d’exemples et
l’ensemble de classes. Cette relation fonctionnelle, dans le sens mathématique,
peut ne pas exister dans tous les cas. L’objectif est que la relation, apprise sur
un petit nombre d’exemples, puisse être généralisée à l’ensemble des messages
possibles, avec un faible taux d’erreur.
Un ensemble de critères est toujours nécessaire. Soit les critères sont renseignés explicitement, soit on se contente de définir une heuristique permettant à
”l’algorithme” de construire lui-même cet ensemble de critères. C’est ce qui se
passe dans une application de classement d’objets textuels, où le dictionnaire
est constitué pendant l’apprentissage et non pas établi à l’avance. Ces critères
sont appelés ”attributs” (features) et peuvent correspondre, par exemple, à la
présence ou l’absence d’un mot du dictionnaire dans le message.
L’approche par apprentissage artificiel est particulièrement intéressante lorsqu’il n’y a pas de modèle mathématique ou lorsque ce modèle est trop complexe.
Cette approche, appliquée au contenu des messages, est celle qui nous intéresse
dans ces travaux, même si nous reconnaissons que ce n’est pas la seule approche
efficace.
Il existe une dualité entre l’apprentissage artificiel et l’inférence statistique
[260, p. 11], avec utilisation de termes différents pour représenter les mêmes
choses. Néanmoins, il y a une différence de principe entre ces deux domaines :
le premier s’intéresse plus à l’aspect algorithmique du problème tandis que
le deuxième s’occupe plutôt de la compréhension et de la modélisation des
données. Nous estimons que les technologies de filtrage sont arrivées à un point
où l’amélioration de l’efficacité des filtres actuels passe nécessairement par une
meilleure compréhension du problème et des données.
ix
La démarche de nos travaux
Les techniques employées actuellement dans les logiciels libres ou commerciaux semblent avoir atteint leurs limites. Les grands fournisseurs de solutions
de filtrage tablent sur des méthodes telles que les listes noires4 ou les listes
de réputation5 . L’expérience montre que ces solutions permettent de dégrossir
largement le flot de messages, mais lorsque l’on cherche une efficacité plus importante, il faut faire appel à des méthodes de filtrage basées sur le contenu,
que ce soient des classificateurs statistiques ou des classificateurs avec des règles
fixes.
L’utilisation des classificateurs statistiques a souvent été considérée d’un
intérêt limité à un usage individuel. Les résultats de recherche traitant de leur
utilisation partagée sont, à notre connaissance, très rares et ne permettent pas
de tirer des conclusions.
Nous nous intéressons justement à l’utilisation partagée d’un classificateur
statistique dans une communauté telle qu’une université ou un organisme de
recherche, avec des milliers d’utilisateurs de la messagerie, des centres d’intérêt
assez diversifiés, mais ayant un minimum de caractéristiques communes.
Depuis une dizaine d’années, l’utilisation de classificateurs statistiques pour
le filtrage de spam est dominée par les classificateurs ”dit bayésiens” développés
par les praticiens des logiciels libres. Le domaine de la recherche s’intéresse à
la problématique du spam depuis longtemps, avant même les praticiens, mais,
comme nous verrons dans le chapitre consacré à l’historique, il y a un fossé
considérable entre ces deux communautés qui ont, parfois, du mal à se parler.
Nous essayons de combler cette lacune par une modeste incursion dans les
domaines d’apprentissage artificiel et de la statistique.
Notre démarche s’est partiellement inspirée de l’abstract d’un article publié
par David Hand :
A great many tools have been developed for supervised classification, ranging from early methods such as linear discriminant analysis through to modern developments such as neural networks and
support vector machines. A large number of comparative studies
have been conducted in attempts to establish the relative superiority of these methods. [...] these comparisons often fail to take into
account important aspects of real problems, so that the apparent
superiority of more sophisticated methods may be something of an
illusion. In particular, simple methods typically yield performance
almost as good as more sophisticated methods, to the extent that
the difference in performance may be swamped by other sources of
uncertainty that generally are not considered in the classical supervised classification paradigm.
David Hand - Classifier Technology and the Illusion of
Progress [125]
4
5
x
Par exemple, Spamhaus - http://www.spamhaus.org.
Par exemple, Cisco/Ironport http://www.senderbase.org.
Chapitre 0. Introduction
Cette remarque faite à la marge d’un article de conférence ainsi qu’un autre
article de Leo Breiman [38], quelques années avant, ont suscité des réactions et
des commentaires intéressants de la part de chercheurs reconnus tels D. R. Cox,
Brad Efron ou encore Emanuel Parzen. Néanmoins, malgré leur divergence
sur des points spécifiques, on observe une unanimité sur la pertinence de la
remarque.
Leo Breiman compare deux cultures : celle des statisticiens et celle des
spécialistes de la modélisation algorithmique (intelligence artificielle), avec un
penchant pour cette dernière. Il ressort de ce dialogue que ces démarches sont,
toutes les deux, complémentaires et nécessaires.
Ces remarques ont été faites dans des contextes de classement autres que
celui du classement de messages électroniques, avec une portée générale sur la
problématique de classement utilisant des techniques d’apprentissage artificiel.
Ceci explique notre démarche. De nombreux travaux ont été publiés sur le
spam mais, à notre connaissance, assez peu ont été vraiment évalués dans des
conditions réelles et se sont limités à l’aspect algorithmique du problème.
Notre démarche a consisté à :
– utiliser un classificateur relativement simple, adapté au contexte réel ;
– utiliser des données réelles, collectées sur une période assez longue ;
– comprendre, le mieux possible, les limitations liées au contexte ;
– comparer les résultats obtenus avec des données réelles et synthétiques,
et publiées par ailleurs.
L’objectif de ces travaux de recherche n’est pas de proposer une solution
optimale à la problématique du spam mais de faire une pause et rechercher une
meilleure compréhension de la problématique et comprendre les limites de ce
que l’on peut obtenir avec un classificateur suffisamment simple.
Travaux similaires et contributions
De nombreux travaux portant sur des points particuliers de la problématique de filtrage de spam ont déjà été publiés : des propositions d’algorithmes
et de méthodes de filtrage. Les travaux qui nous ont semblé les plus intéressants
sont ceux de Gordon Cormack (par exemple [61], [71], [58] ou [60]), qui a été
le premier à vouloir sortir de la logique de recherche du ”meilleur algorithme”
de filtrage de spam. Comme nous verrons dans le chapitre sur l’historique, sa
contribution principale porte, d’une part, sur la constatation que le filtrage de
messages électroniques est un problème de classement en ligne et non en batch
et, d’autre part, sur l’élaboration d’une méthodologie d’évaluation de filtres,
basée sur l’utilisation d’un corpus unique et commun de messages.
La première contribution de nos travaux porte sur l’amélioration de la
connaissance de la problématique du spam. Quasiment tous les algorithmes
connus en apprentissage artificiel ont déjà été expérimentés, avec des résultats
très bons. La question qui se pose est : faut-il chercher des algorithmes encore plus performants ou faut-il étudier les données pour comprendre ce qui
empêche d’aller plus loin ? Nous avons choisi la deuxième option. Pour cela,
nous utilisons des données réelles et non plus synthétiques, et nous étudions
xi
l’évolution temporelle et le résultat de classement de flots de messages à l’aide
d’outils telles les séries temporelles et des demi-variogrammes.
La deuxième contribution résultant de notre démarche donne suite au commentaire de Hand discuté dans la section précédente. Nous avons cherché à
utiliser un algorithme de classement aussi simple que possible, mais construit
”astucieusement”, de façon à pouvoir identifier ses possibles faiblesses et limitations. S’il y a des améliorations à faire, elles pourraient être faites justement
pour combler ces points.
Assez souvent, on considère que les caractéristiques des flots de messages
varient beaucoup avec leur âge et qu’un classificateur doit impérativement être
construit avec des messages de même âge que les messages à classer. Avec Gordon Cormack [63] [82] nous avons démontré que si l’on prend la précaution de
supprimer les références temporelles, la dérive des caractéristiques statistiques
des messages n’est pas aussi importante, ce qui nous permet d’utiliser, dans
certaines limites, indifféremment des messages récents ou plus anciens dans
l’apprentissage d’un filtre.
Sur les méthodes de filtrage, nous avons étudié la combinaison d’une boucle
de retour d’information de classement correct et l’apprentissage en ligne par
approximation stochastique.
Notre objectif initial était l’étude de l’utilisation partagée d’un filtre de
messages, basé sur le contenu, dans une communauté. Nous avons utilisé le
classificateur simple pour démontrer que dans les conditions d’expérimentation
l’efficacité restait encore bonne que les messages soient destinés à un seul utilisateur ou à un petit groupe, assez hétérogène, pour qui nous avons pu collecter
des échantillons de messages.
Dans une deuxième partie de nos contributions (ou plutôt des perspectives), nous avons effleuré quelques domaines permettant de mieux connaı̂tre
et/ou modéliser les flots de messages. Ces voies n’ont pas été complètement
traitées, mais nous avons estimé utile de les mentionner comme des pistes pour
de nouvelles recherches.
Organisation de ce livre
La première partie de ce livre constitue une introduction : une présentation
de l’environnement de classement de messages électroniques et l’historique des
travaux sur les classificateurs statistiques basés sur le contenu.
La partie suivante étudie les briques d’un filtre anti-spam : la représentation
des messages et les algorithmes de classement et d’apprentissage. Dans chaque
chapitre nous mettons en valeur ce qui est relevant pour le problème de filtrage
de spam.
La troisième partie décrit le problème qui nous concerne : le classement
mutualisé de messages, basé sur le contenu. Dans cette partie, nous examinons
les points qui apparaissent ou qui prennent de l’importance dans le contexte
de filtrage mutualisé de spam. Nous proposons, ensuite, une architecture de
classement, la plus simple possible pour tenir compte de la démarche choisie,
mais adaptée au problème de classement mutualisé de messages.
xii
Chapitre 0. Introduction
La partie suivante présente des résultats expérimentaux obtenus. Ces expérimentations visent, d’une part, à l’acquisition de connaissance sur les caractéristiques temporelles des flots de messages et, d’autre part, à étudier de
façon pragmatique l’efficacité d’un classificateur simple dans un contexte de
classement mutualisé ou pas et avec ensembles de messages synthétiques ou
réels.
La partie ”Réflexions à approfondir” contient des points que nous n’avons
qu’effleuré ou qui n’ont été traités qu’en partie, mais qui constituent des pistes
de réflexion intéressantes. Ces réflexions portent sur trois aspects : la représentation spatiale des messages et la facilité ou difficulté de classement, de possibles
méthodes de comparaison de flots ou ensembles de messages et enfin, la possibilité de représenter de façon hiérarchique un ensemble de messages (c.à.d. des
modèles de mélange).
Enfin, un chapitre dédié aux conclusions et des annexes.
xiii
CHAPITRE
1
L’environnement d’un filtre anti-spam
Un bon croquis vaut mieux qu’un long discours.
Napoléon Bonaparte
Ce chapitre propose une vue globale des filtres anti-spam : l’environnement
et les parties constituantes. La plupart des concepts présentés ici seront approfondis individuellement dans les chapitres suivants.
1.1
Anatomie d’un message électronique
La Figure 1.1 ci-après présente le découpage d’un message électronique, avec
le contenu effectif et le dialogue (enveloppe du message) entre deux dispositifs
client et serveur de messagerie.
À noter que les adresses de messagerie que l’on voit dans l’enveloppe ne
correspondent pas à celles des en-têtes : le routage du message est effectué
selon les adresses de l’enveloppe – une situation possible aussi dans le routage
des courriers papier traditionnels.
1.2
Le processus de filtrage
Le scénario des figures Figure 1.2 et Figure 1.3 représente assez bien un
contexte générique de filtrage de spam, même s’il existe des nombreuses variantes.
Un flot de messages est soumis au filtre, dans l’ordre d’arrivée des messages1.
1 Pour être précis, les filtres, placés sur une passerelle de messagerie, peuvent recevoir et
traiter simultanément plusieurs messages, mais les messages sont toujours mis, un par un,
dans la boı̂te aux lettres du destinataire
1
1.2. Le processus de filtrage
Trying 194.214.158.200...
Connected to paris.ensmp.fr.
Escape character is ’^]’.
<--- 220 paris.ensmp.fr ESMTP Sendmail 8.14.4/8.14.4
---> HELO saci.ensmp.fr
<--- 250 paris.ensmp.fr Hello saci, pleased to meet you
---> MAIL from:<[email protected]>
<--- 250 2.1.0 <[email protected]>... Sender ok
---> RCPT to:<[email protected]>
<--- 250 2.1.5 <[email protected]>... Recipient ok
---> RCPT to:<[email protected]>
<--- 250 2.1.5 <[email protected]>... Recipient ok
---> DATA
<--- 354 Enter mail, end with "." on a line by itself
En-t^
etes
From: Jose-Marcio Martins <[email protected]>
To: Jean-Claude Dupont <[email protected]>
Subject: Un message de test
Date: Sun, 12 Dec 2010 19:32:42 -0200
Corps du message
Salut Jean-Claude,
Comment vas-tu ? Ceci est juste un message de test !
Joe
<--- 250 2.0.0 oBGL0kRC016832 Message accepted for delivery
---> QUIT
<--- 221 2.0.0 paris.ensmp.fr closing connection
Connection to paris.ensmp.fr closed by foreign host.
Fig. 1.1: Une transaction entre deux terminaux (client et serveur) de messagerie. Le contenu de la boı̂te extérieure correspond aux échanges entre les deux
terminaux : c’est l’enveloppe du message. La boı̂te de deuxième niveau correspond au contenu effectif du message, avec deux composantes : les en-têtes et
le corps du message.
Après traitement, le filtre associe chaque message à une des classes – ham ou
spam – indiquant, éventuellement, l’incertitude du classement à l’aide d’une
valeur numérique (score). Le destinataire (un être humain) reçoit le message,
valide ou rectifie le classement proposé par le filtre : les messages utiles sont
retenus et les spams supprimés. Dans un autre scénario, le filtre peut mettre
les spams probables dans un sas (quarantaine). En tout cas, le destinataire doit
corriger les erreurs de classement.
Le destinataire peut aussi retourner des informations au filtre, permettant
la mise à jour des modèles utilisés par l’algorithme de classement. Cette particularité caractérise, comme nous le verrons par la suite, le scénario typique
d’apprentissage en ligne.
Remarque 1.1. – Il convient de préciser la différence entre les applications de
2
Chapitre 1. L’environnement d’un filtre anti-spam
classement et de filtrage :
– une application de classement reçoit un flot d’objets et associe une catégorie (classe) à chaque objet traité ;
– une application de filtrage reçoit des objets en entrée et sélectionne (ou
laisse passer) ceux obéissant certains critères pré-définis.
MSA/MTA
Internet
MTA et Filtre
Stockage
Botnets
Expéditeur
Destinataire
Fig. 1.2: Trajet typique simplifié d’un message : après soumission du message
à un MTA (Mail Transport Agent ou ”serveur de mail”), celui-ci recherchera
son équivalent le plus proche du destinataire (un MX ou Mail eXchanger) qui
s’occupera du filtrage en arrivée et enregistrement dans un serveur de stockage
de messages.
1.2.1
Aspects Temporels
Un flot de messages n’est pas statique : ses caractéristiques évoluent en
permanence. Cette dérive impacte les messages de trois façons :
– La répartition des classes – la Figure 1.4 montre la variation du taux
de spam à l’entrée de l’École des Mines de Paris, sur une période d’un
mois. On peut distinguer l’activité de nuit (pics fins) et de week-end (pics
plus larges) qui correspondent aux périodes où il y a une baisse dans les
échanges de messages professionnels. Sur des périodes plus longues (une
année, par exemple) on remarque une évolution plus ou moins périodique
dans les hams liée aux vacances et fêtes et des variations irrégulières
dans les spams, plutôt liées à des événements aléatoires (début ou fin
d’activité d’un spammeur, arrêt d’un réseau de botnets, événement lié à
une célébrité, etc.) ;
– La répartition des genres à l’intérieur de chaque classe – pour les
spams, par exemple, cela correspond à la distribution des genres : pornographie, arnaques, médicaments, etc. Les caractéristiques des messages
dépendent du genre. Des variations dans leur répartition produisent des
variations dans les caractéristiques globales du flot.
3
1.2. Le processus de filtrage
Messages (M,?)
Classificateur
Modèles
(M, Classe, Drapeau de Requête)
Validation
Apprentissage
(M,Ham) ou (M,Spam)
(M,Ham)
(M,Spam)
Inbox
Poubelle
Fig. 1.3: Le processus de classement de messages et les interactions possibles
entre le filtre et le destinataire final.
– L’évolution des messages – Les messages légitimes évoluent peu : les
expéditeurs ne changent pas souvent leurs habitudes d’écriture et, sauf
dans quelques cas, la topologie des réseaux de correspondants d’un utilisateur reste relativement stable. Les messages de la classe spam évolue
en permanence, dans le contenu et dans la forme, principalement pour
déjouer les filtres.
Suite à l’existence de ces dérives, le problème du classement de messages
doit être étudié comme étant un processus en ligne [61] : les classificateurs
doivent être mis à jour régulièrement et tenir compte de l’ordre chronologique
des messages.
Ces dérives, à la fois qualitatives et quantitatives, sont dues à la génération
des messages. Les retards dus aux interactions entre le filtre et le destinataire
peuvent aussi avoir des conséquences sur le fonctionnement du classificateur.
1.2.2
Interactions avec le destinataire
Les interactions avec le destinataire sont à double sens : le destinataire
retourne des informations vers le filtre et modifie son comportement (pour
l’apprentissage) et vice-versa.
Le retour d’information de l’utilisateur rend possible l’apprentissage en ligne
mais complexifie le modèle du processus : il s’agit d’une action humaine que
l’on ne peut pas modéliser avec précision. Citons quelques exemples de comportements humains qui affectent le modèle [60] :
– Retards – les messages ne sont pas traités par le destinataire immédiatement après classement, mais à des intervalles irréguliers allant de
quelques minutes à plusieurs heures, voire plusieurs jours. Les messages
classés entre-temps ne profiteront pas des corrections apportées par le
4
Chapitre 1. L’environnement d’un filtre anti-spam
1000
Nombre de messages par jour
Fraction de spams dans le trafic (%)
100
80
60
40
20
0
Spams
Hams
800
600
400
200
0
0
5
10
15
20
25
30
0
jour
(a) Variation journalière du taux de spam à
l’entrée du domaine ensmp.fr. Les pics coı̈ncident avec la baisse d’activité professionnelle : nuits et week-ends (pics plus larges)
100
200
300
400
500
Jour
(b) Évolution du nombre de messages, par
classe et par jour, reçus par l’auteur sur une
période d’un an et demi. La baisse vers le jour
400 correspond à la fermeture de McColo en
novembre 2008.
Fig. 1.4: Évolution de la fraction de spams dans le flot de messages à court
(1 mois - Figure 1.4a) et à moyen (1 an et demi - Figure 1.4b) terme. On
remarque la stabilité relative du nombre de messages légitimes par jour, tandis
que les spams ont plutôt tendance à augmenter considérablement.
retour d’information ;
– Retour partiel – le retour d’information peut être systématique ou
concerner seulement une partie des messages. Assez souvent les destinataires ont l’habitude de ne renseigner que les messages mal classés.
Parfois, ils sont plus attentifs au contenu de la boı̂te légitime et ne signalent que les spams non détectés ;
– Des retours d’information erronés – Dans des expérimentations demandant à des utilisateurs humains de classer des messages, des taux
d’erreur variant entre 3% et 7% [249] [118] ont été rapportés. D’autres
études ont montré que les erreurs ne sont pas uniformément distribuées
selon le genre de message, même à l’intérieur de la même classe [151].
Les classificateurs de messages électroniques les plus performants ont des
taux d’erreur typiques de l’ordre de 0.5%. Ces erreurs, injectées dans les
modèles utilisés par ces classificateurs ne sont pas sans conséquence sur
leur efficacité [64].
Le classificateur, à son tour, a une influence sur le comportement de l’utilisateur. Par exemple, Plice et al. [202] ont suggéré que plus le taux de spam est
faible, plus on est attentif au nombre de spams mal classés.
1.2.3
Interactions avec l’expéditeur
Il arrive qu’un spammeur souhaite avoir des informations sur la logique de
fonctionnement d’un filtre anti-spam, pour pouvoir adapter ses messages afin
qu’ils puissent arriver dans la boı̂te aux lettres des destinataires et être lus, si
possible, sans être classés comme du spams.
Lorsque le filtrage se fait par le contenu des messages, les interactions avec
5
1.3. L’apprentissage
l’expéditeur sont indirectes. Si un filtre rejette le message, l’expéditeur peut le
savoir immédiatement. En revanche, si le filtre se contente de marquer le message, l’expéditeur doit utiliser des moyens actifs pour pouvoir déduire comment
le message a été classé.
Lowd et Meek [179] [180] ont imaginé des scénarios possibles d’interaction
active dans lesquels l’expéditeur envoie des séquences de messages avec des
contenus différents et avec, par exemple, des liens cachés vers des pages web
sous son contrôle. La détection d’une consultation de ces pages permet d’inférer
que le message est bien arrivé dans la boı̂te aux lettres du destinataire et a
bien été lu. Avec ces méthodes on peut déduire assez finement les seuils de
détection du filtre. Elles sont utilisées, le plus souvent, par des entreprises de
marketing pour évaluer globalement les taux de pénétration de leurs campagnes
publicitaires.
1.3
L’apprentissage
L’apprentissage est le processus permettant de construire un modèle, à partir d’un ensemble d’exemples (ou données d’apprentissage), qui sera utilisé par
la suite par l’algorithme de classement pour associer une étiquette à un message
non vu pendant l’apprentissage. Un exemple est un couple (message, étiquette).
Un algorithme de classement doté d’un modèle est un classificateur.
Ce processus peut prendre des formes différentes selon le type d’algorithme
de classement. Dans le cas d’un classificateur bayésien naı̈f, par exemple, il
s’agit de compter, pour chaque classe et pour chaque terme du dictionnaire,
le nombre de documents où le terme est présent alors que dans le cas d’un
classificateur SVM, il s’agit de déterminer l’équation d’un hyperplan séparant
les deux classes selon certains critères d’optimalité.
On parle d’apprentissage supervisé lorsque les modèles sont construits à
partir d’un ensemble d’exemples étiquetés et d’apprentissage non supervisé dans
le cas contraire. L’apprentissage non supervisé est utilisé dans les applications
de clustering, où le but est le regroupement des objets par leur ressemblance,
sans connaı̂tre, à priori, la classe associée à chaque objet.
On distingue aussi l’apprentissage en ligne et l’apprentissage hors ligne.
Dans l’apprentissage hors ligne (ou en batch), les exemples sont entièrement
traités dès le départ avant toute opération de classement, tandis que dans
l’apprentissage en ligne les exemples sont des objets réels à classer et l’apprentissage se fait, au fur et à mesure, grâce au retour d’information concernant les
classements qui viennent d’être effectués [239, p.241].
L’apprentissage en ligne a deux caractéristiques qui le rendent particulièrement différent de celui hors ligne : les exemples sont présentés dans un ordre
précis : l’ordre chronologique, et le nombre d’exemples utilisés pour l’apprentissage peut ne pas être borné. Le processus d’apprentissage doit intégrer un
dispositif permettant d’oublier automatiquement les exemples trop anciens.
Étant donné le caractère évolutif des caractéristiques des messages électroniques, l’apprentissage d’un filtre anti-spam relève typiquement de l’apprentissage en ligne et doit tenir compte des phénomènes temporels et des interactions
6
Chapitre 1. L’environnement d’un filtre anti-spam
entre le filtre et les destinataires.
1.4
Le filtre
Ham
Message
Représentation de
l’Information
Algorithme de
Classement
Spam
Paramètres
Filtre anti-spam
Fig. 1.5: Schéma simplifié d’un filtre anti-spam
Il s’agit de l’élément central du processus. Il est constitué de trois parties
(voir Figure 1.5) :
– l’algorithme de classement – c’est la partie ”intelligente”. Cette partie contient l’implémentation informatique d’une méthode de classement
(bayésien naı̈f, SVM, régression logistique, réseau de neurones, ...) ;
– la représentation des messages – cette partie est chargée d’extraire
les caractéristiques (ou attributs) des messages qui seront manipulées par
l’algorithme de classement. Les messages bruts sont constitués de suites de
caractères qui ne sont pas manipulables directement par les algorithmes
de classement ;
– le modèle (ou les paramètres) – c’est l’ensemble des données utilisées
par l’algorithme de classement ; il résulte du processus d’apprentissage. Il
servira de référence pour classer les nouveaux messages. Leur forme varie
selon le type d’algorithme de classement : les coefficients d’un hyperplan
séparateur pour un algorithme du type SVM ou encore les distributions
des termes dans chaque classe pour un algorithme du type bayésien naı̈f.
Les algorithmes de classement n’ont pas, ou alors très peu, de particularités
liées au problème de filtrage de spam. Ce sont des algorithmes utilisés aussi bien
pour le traitement d’informations textuelles que pour le traitement d’images,
de données sismiques ou autres.
L’ensemble algorithme de classement et modèle constitue un classificateur.
1.5
La représentation des messages
En général, les algorithmes de classement ne savent manipuler que des objets structurés tels un vecteur ou une matrice. Les messages électroniques sont
des objets textuels non structurés qu’il faut représenter de façon à ce qu’ils
7
1.5. La représentation des messages
puissent être traités. La représentation la plus courante est celle d’un vecteur
où chaque dimension correspond à un attribut du message. Dans une application d’apprentissage artificiel, un attribut est un critère quelconque à prendre
en compte. Un terme est un attribut lorsque les objets sont des objets textuels.
Il existe deux approches pour définir ces attributs.
Dans la première approche, les attributs sont définis manuellement : ils correspondent, en général, à la présence de certains mots clés avec une valeur
discriminante élevée ou alors à des caractéristiques empiriques, par exemple :
il s’agit d’un message dont le contenu est riche en balises HTML, images, ou
liens vers des sites web. Les attributs définis manuellement sont en nombre
fixe et dépassent rarement le millier. Sauf référence à des cas particuliers, cette
approche n’est pas traitée dans cette thèse : d’une part l’efficacité des classificateurs utilisant ce type de méthode n’est pas concurrentielle [93] et, d’autre
part, la messagerie électronique étant un processus non stationnaire, l’évolution
exige une intervention manuelle permanente pour créer de nouveaux attributs
ou pour supprimer ceux devenus inutiles. Il existe des produits de filtrage de
spam basés sur cette approche.
Dans la deuxième approche, ce ne sont pas les attributs qui sont définis
à l’avance, mais les règles permettant de les extraire. Une règle serait, par
exemple, celle permettant d’extraire les mots : un attribut est une suite de
caractères compris entre deux caractères délimiteurs : un espace ou signe de
ponctuation. L’ensemble de tous les mots différents trouvés dans l’ensemble
des exemples constitue le vocabulaire. Cette règle fait en sorte que l’ensemble
des attributs évolue naturellement sans intervention humaine. L’apprentissage
consiste à construire l’ensemble des attributs et à définir le poids de chacun.
Ainsi, un message est représenté sous la forme d’un vecteur où chaque dimension correspond à un terme du vocabulaire. La valeur associée à chaque
dimension indique soit la présence/absence du terme dans le message, soit son
nombre d’occurrences. Les termes peuvent être des mots ou des n-grams (suites
de n caractères ou mots).
Les messages sont constitués de deux parties : le corps avec le contenu
effectif, et les en-têtes ou méta-informations avec, par exemple, des informations
de format et de traçabilité. Les informations présentes dans ces deux parties ne
sont pas de même nature et n’ont pas le même pouvoir discriminant.
Dans la bibliographie concernant le filtrage de spam, il n’est pas rare que
cet aspect ne soit pas traité du tout, ou le soit de façon superficielle, si l’objet
principal de la communication est un algorithme de classement. Or, on ne peut
comparer l’efficacité intrinsèque de deux algorithmes de classement que si les
représentations utilisées sont précisées et identiques.
8
CHAPITRE
2
Historique
Study the past, if you would divine the future.
Confucius
Ce chapitre contient un bref historique des applications de filtrage de spam.
Nous nous intéressons particulièrement à celles qui se basent sur l’apprentissage artificiel. Ces développements ont été menés de façon indépendante par la
communauté de la recherche et celle des praticiens, développeurs de logiciels
libres. Les travaux des chercheurs ont débuté avant mais ce sont ceux de la
communauté des praticiens qui sont devenus populaires.
2.1
2.1.1
La communauté de la recherche
Les débuts : expérimentations avec classificateurs
Les premières publications concernant le classement de messages électroniques basé sur des méthodes d’intelligence artificielle datent de 1996.
Cohen [55] a comparé RIPPER [56] et Rocchio [182, p. 269] pour le classement thématique de messages. RIPPER est un classificateur utilisant un ensemble de règles (présence ou absence des mots du dictionnaire) construites
automatiquement pendant la phase d’apprentissage. Rocchio représente le message à classer sous la forme d’un vecteur et évalue la distance (généralement
euclidienne) entre ce vecteur et les vecteurs prototypes de chaque classe, associant le message à la classe la plus proche. Rocchio a son origine dans les
applications d’indexation et de recherche documentaire. Les deux méthodes
ont présenté des résultats similaires. Cohen a constaté que les résultats étaient
meilleurs dans le cas d’une utilisation individuelle plutôt que collective.
9
2.1. La communauté de la recherche
Les deux premières publications concernant le filtrage de spam sont apparues en 1998, dans une même conférence. Pantel [200] et Sahami et al. [220]
ont proposé l’utilisation d’un classificateur bayésien naı̈f [182, p. 234] pour le
classement de spams. Ils ont utilisé les 500 mots les plus significatifs de chaque
message avec des résultats intéressants, pour l’époque. Les auteurs signalent des
aspects spécifiques au filtrage de spam : la dissymétrie des coûts associés aux
erreurs de classement, l’utilisation d’attributs synthétiques tels que les en-têtes
ou des mises en forme particulières du message. Les auteurs ont aussi remarqué que le classement binaire (ham/spam) était plus efficace que le classement
multi-classes tenant compte du genre du message (pornographie, escroquerie,
médicaments ; etc.).
L’utilisation de SVMs (Machines à Vecteur de Support ) [138] pour le filtrage
de spam a été proposée en 1999 par Drucker et al. [93], qui a comparé l’efficacité
d’un classificateur SVM linéaire avec RIPPER [56], Rocchio [182, p. 269] et
Boosting [104]. Cette publication est intéressante puisque c’est la première à
comparer un large éventail de configurations d’expérimentation (en particulier
sur la construction et la sélection d’attributs ou les modes d’apprentissage). La
plupart des conclusions n’ont pas encore été contredites :
– SVM et boosted trees sont comparables, mais les SVMs permettent d’atteindre plus facilement des taux de faux positifs inférieurs ;
– les méthodes basées sur des règles (RIPPER et Rocchio) ne sont pas
compétitives pour le filtrage de spam ;
– l’apprentissage des boosted trees est excessivement long ;
– pour les SVMs, les résultats sont meilleurs avec des attributs binaires
(présence ou absence) alors que les attributs multinomiaux (nombre d’occurrences) sont à privilégier pour les boosted trees ;
– les procédures de sélection d’attributs constituent des traitements lourds
et il vaut mieux les intégrer dans l’apprentissage si on veut les utiliser ;
– l’exclusion des termes neutres (stop words) n’améliore pas l’efficacité du
filtre.
Plusieurs autres résultats de recherche concernant l’utilisation de SVMs
pour le filtrage de spam ont été publiés par la suite. Kolcz [148] a étudié la
prise en compte des erreurs de classification spécifiques à chaque classe. Islam [131] a proposé une méthode de sélection d’attributs. Malgré l’efficacité
constatée, les SVMs restent des algorithmes non triviaux à mettre en œuvre et
consommateurs de ressources. Des implémentations efficaces ont été proposées,
par exemple, par Joachims [137] [139] et Bordes [30], pour des SVMs linéaires
dans un contexte général de classement. Pour l’apprentissage et le classement en
ligne de spams, Sculley [229] a proposé l’utilisation de ROSVMs (Relaxed Online SVMs), une simplification limitant le nombre d’itérations de l’algorithme
d’optimisation et d’exemples avec une efficacité de classement qui restait encore
proche de celle que l’on peut obtenir sans simplification.
Androutsopoulos et al. ont évalué et comparé le classificateur bayésien
naı̈f [8], le classificateur à mots-clés [7] et k-NN (les k voisins les plus proches)
[9] [221] explorant la sensibilité des méthodes à différentes variantes de confi10

Documents pareils