• Aucun résultat trouvé

9.2

Repr´esentation des messages

Le choix du niveau de d´ecomposition - mots ou caract`eres - pour la repr´esentation de messages ne peut pas se justifier ni de fa¸con analytique, ni de fa¸con objective. Il s’agit juste d’un choix justifi´e par des arguments subjectifs. Des arguments qui pourront ne pas ˆetre valables dans l’avenir ou dans d’autres contextes linguistiques.

Notre choix est d’utiliser des 4-grams de niveau caract`ere extraits de la fa¸con suivante : on consid`ere une fenˆetre textuelle de taille 4 caract`eres se d´epla¸cant le long du message, caract`ere par caract`ere. Ainsi, la phrase ”allons enfants de la patrie” va g´en´erer les 4-grams suivants : ”allo”, ”llon”, ”lons”, ”ons ”, ”ns e”, ”s en”, ” enf”, ”enfa”, ”nfan”, ...

Plusieurs arguments justifient le choix niveau caract`ere et pas mot :

– simplicit´e et pr´ecision - l’heuristique d’extraction de n-grams de niveau caract`ere peut ˆetre d´efinie de fa¸con pr´ecise, tandis que l’extraction de mots suppose la d´efinition d’un ensemble de caract`eres s´eparateurs. Certains de ces caract`eres seront ou pas des s´eparateurs, selon le contexte et la langue, par exemple le ”.” selon qu’il se trouve `a la fin d’un mot (fin de mot et de phrase), entour´e de chiffres (s´eparateur d´ecimal) ou entour´e de lettres (partie d’une sigle). Il n’y a pas d’heuristique simple et g´en´erale permettant de d´efinir la r`egle d’extraction des mots ;

– robustesse - les n-grams de niveau caract`ere plus r´esistants aux attaques visant le proces- sus de segmentation des messages. Une technique souvent utilis´e les ”spammeurs” est, par exemple, l’introduction de caract`eres s´eparateurs (espaces, virgules, caract`eres sp´eciaux, ...) entre les lettres des mots critiques (p. ex., ”V,I,A,G,R,A”) de fa¸con `a perturber l’algorithme de segmentation des messages. Par ailleurs, ce niveau de d´ecomposition est courante dans les outils de correction orthographique, puisqu’il permet de d´etecter et corriger les erreurs, consid´er´ees comme du bruit ;

– regroupement par le sens - l’utilisation des n-grams est une fa¸con simple d’extraire la racine des mots permettant de regrouper, par exemple, des formes conjugu´ees. Dans ce cas de repr´esentation de niveau mot, il faut faire appel `a des op´erations de lemmatisation et/ou stemming, avec des heuristiques non triviales et d´ependantes de la langue utilis´ee.

– d´ependances inter mots - l’extraction des n-grams au fil de l’eau permet de pr´eserver, au moins partiellement, la relation de succession des termes dans le texte, ce qui n’est pas le cas lorsque l’unit´e est le mot.

La longueur, quatre, a ´et´e choisie de fa¸con exp´erimentale, dans des exp´erimentations pr´elimi- naires, et constitue un compromis entre la complexit´e et la capacit´e d’extraction d’information : l’ordre 3 semble ne pas extraire suffisamment d’information et le niveau 5 g´en`ere des classifica- teurs exigent plus d’´echantillons pour constituer un vocabulaire significatif.

Un argument contre l’utilisation de mots comme terme ´el´ementaire de segmentation est l’envi- ronnement de fonctionnement hostile. En effet, dans la classe ham les messages sont bien r´edig´es alors que ce n’est pas le cas dans la classe spam. Des nombreuses astuces sont utilis´ees pour tromper les analyseurs lexicaux des classificateurs. Par exemple, le mot ”VIAGRA” peut ˆetre ´ecrit soit comme ”V I A G R A” (insertion de caract`eres s´eparateurs entre les lettres) ou alors ”VI4@R4” (remplacement de lettres par des caract`eres visuellement semblables). Le but ´etant de faire en sorte que le texte soit visuellement compr´ehensible par l’exp´editeur mais pas par un analyseur lexical.

Enfin, ces choix sont `a revoir dans les contextes de langue dominante dans le flot. Par exemple, la langue dominante peut appartenir `a la famille des langues agglutinantes (turc, hongrois, ou japonais) ou ˆetre cod´ee avec d’autres familles de caract`eres (langues asiatiques ou des pays de l’est). Malheureusement, nous n’avons pas d’´echantillons de messages permettant de v´erifier ces contextes.

Chapitre 9. Un filtre anti-spam avec apprentissage actif en ligne

Sprob

m

Slogit

w0 w1 w2 w3 wn

Fig. 9.2: SLDC - Un classificateur linear discriminant simple

9.3

SLDC - Simple Linear Discriminative Classifier

Nous avons choisi un algorithme du type discriminant lin´eaire, simple, d´ecrit par la Figure 9.2. Du point de vue fonctionnel (en mode classement), il est similaire au Perceptron, avec la fonction de lien (link function) remplac´ee par une fonction sigmo¨ıde. L’algorithme de classement s’inspire, en partie, de celui propos´e par Goodman et Yih [115], avec une strat´egie d’apprentissage diff´erente (actif plutˆot que supervis´e) et des modifications dans la repr´esentation des messages.

Le r´esultat du classificateur est une valeur de score, ´evalu´ee selon l’´Equation 6.14, et pr´esent´e en deux ´echelles : logit (−∞, ∞) et probabilit´e [0, 1]. Ces scores sont donn´es par :

Slogit =− hw · mi

Sprob=

1 1 + e−hw·mi

(9.1) avec w le vecteur de param`etres du classificateur et m la repr´esentation du message `a classer. La classe attribu´ee par le classificateur r´esulte d’un seuillage utilisant une valeur triviale de seuil :

ˆ y = ( 1 si Slogit> 0 (spam) 0 si Slogit≤ 0 (ham) (9.2) Les deux scores Slogitet ˆy = Sprob´etant li´es par la fonction sigmo¨ıde, la valeur de seuil Slogit = 0,

correspond `a Sprob= 1/2.

Remarque 9.1 (Les ´echelles des scores). Les d´esignations Slogitet Sprobconstituent, d’une certaine

fa¸con, un abus de langage et servent juste `a ´etablir un lien entre les ´echelles de valeur de ces deux pr´esentations de score et ne correspondent pas `a une estimation de probabilit´e `a posteriori de la classe, comme on pourrait penser. La raison principale, dans le contexte pr´esent, est que l’apprentissage actif ne r´esulte pas d’un ´echantillonnage i.i.d. de l’ensemble d’exemples.

9.3.1

Apprentissage

Notre choix d’apprentissage en ligne se fait par descente de gradient stochastique (voir Annexe C). La fonction de coˆut est l’erreur quadratique :

Lt= (yt− ˆyt)2 (9.3)

avec y ∈ {0, 1} l’´etiquette r´eelle du message et 0 ≤ ˆy ≤ 1 est le score du message, estim´e par le classificateur.

La mise `a jour du vecteur de param`etres se fait selon : wt+1= wt+ ηt+1∇wLt

= wt+ ηt+1(yt− ˆyt)m

(9.4) Le taux d’apprentissage ηt suit une loi de r´ecurrence d´efinie par :

ηt=

1− η