Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 109

Applications

Pour certaines parties, reprises de slides de Thorsten Joachims,


Cornell University

Julien Lemoine

3 juin 2008

Julien Lemoine () Applications 3 juin 2008 1 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 2 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 3 / 109


Classification

Classification supervisée
Classification supervisée (classification) ou
catégorisation(categorization)
Séparer un ensemble de documents dans des catégories préétablies
Nécessite une base d’apprentissage ou les catégories sont déjà
affectées au document
Technique dite “d’apprentissage” (machine learning)

Classification non supervisée


Classification non supervisée (clustering)
Aucune catégorie préétablie
Regrouper les documents en classes homogènes, découvrir de
nouvelles “catégories” dans les documents

Julien Lemoine () Applications 3 juin 2008 4 / 109


Classification

Problèmes communs
Les problématiques de traitement du langage naturel (TLN/NLP)
sont communes aux deux applications
Il faut transformer un document en un ensemble de descripteurs

Julien Lemoine () Applications 3 juin 2008 5 / 109


Classification

Choix des descripteurs


Un accord Microsoft-Yahoo peut-être ce week-end
[2008-05-03 09:35]
NEW YORK (Reuters) - Microsoft et Yahoo négocient et leurs discussions
se sont même intensifiées pour tenter de parvenir à un accord amiable par
lequel le groupe internet passerait dans le giron du numéro un mondial des
logiciels, a-t-on indiqué vendredi de sources proches du dossier.

Julien Lemoine () Applications 3 juin 2008 6 / 109


Classification

Choix des descripteurs - niveau lexical

Julien Lemoine () Applications 3 juin 2008 7 / 109


Classification

Choix des descripteurs - niveau morpho-syntaxique

Julien Lemoine () Applications 3 juin 2008 8 / 109


Classification

Choix des descripteurs - niveau morpho-syntaxique


lemme étiquette lemme étiquette
accord nom commun Microsoft-Yahoo nom propre
week-end nom commun NEW nom propre
YORK nom propre Reuters nom propre
Microsoft nom propre Yahoo nom propre
discussion nom commun accord nom commun
amical adjectif groupe nom commun
internet adjectif giron nom commun
numéro un nom commun mondial adjectif
logiciel nom commun vendredi nom commun
source nom commun proche adjectif
dossier nom commun

Julien Lemoine () Applications 3 juin 2008 9 / 109


Classification

Choix des descripteurs - groupes nominaux


lemme étiquette lemme étiquette
accord NC accord amiable GN
Microsoft-Yahoo NP groupe internet GN
week-end NC giron numéro un mondial GN
NEW YORK NP numéro un mondial logiciel GN
Reuters NP vendredi source proche GN
Microsoft NP source proche dossier GN
Yahoo NP
discussion NC

Julien Lemoine () Applications 3 juin 2008 10 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 11 / 109


Classification supervisée

Objectif
Affecter des documents (ou des parties de documents) dans des catégories
prédéfinies en fonction de leurs contenus

Types de documents
Document (classique),
Paragraphe ou phrase,
Site internet,
...

Type de catégories
classement par sujet,
classement par auteur,
classement par style,
...
Julien Lemoine () Applications 3 juin 2008 12 / 109
Classification supervisée

Exemple
Le groupe de télécoms britannique Vodafone annonce la conclusion d’un
accord en vue de l’acquisition de ZYB, société danoise non cotée. ZYB
apporte ainsi au groupe son outil de gestion de réseaux sociaux,
permettant aux abonnés mobiles de sauvegarder et partager leurs contacts
et leur agenda en ligne. Le prix sur lequel les parties se sont entendues
s’élève à 31,5 Millions d’Euros, en numéraire.

Objectif
Déterminer si le document ci-dessus fait partie de la catégorie “acquisition
de société” ou pas.

Julien Lemoine () Applications 3 juin 2008 13 / 109


Classification supervisée

Applications
Support: Trouver l’expert le plus approprié pour traiter ce problème
Alerte sur l’actualité: étiqueter les articles intéressants pour une
personne particulière
Gestion de la connaissance: organiser une base de documents par
catégories ayant un sens pour l’utilisateur
Crawl spécifique: récupérer toutes les pages sur un thème particulier
Détection de spam: est ce qu’un nouveau mail est un spam ou pas
...

Julien Lemoine () Applications 3 juin 2008 14 / 109


Classification supervisée

Technologies
Règles ou requêtes manuelles
Apprentissage

Pourquoi utiliser de l’apprentissage ?


Les règles sont souvent trop complexes à écrire et lourdes à maintenir (par
exemple pour la détection de spam, où trouver toutes les pages qui
contiennent une offre d’emploi, ...)

Julien Lemoine () Applications 3 juin 2008 15 / 109


Classification supervisée

Apprentissage

Figure: L’apprentissage utilise une base d’exemples pour déterminer la catégorie


d’un nouveau document en minimisant les erreurs

Julien Lemoine () Applications 3 juin 2008 16 / 109


Classification supervisée

Étapes
Générateur: générer des descripteurs pour chaque document de la
base
Apprentissage: Donner une valeur/poids à chaque descripteur en
utilisant la probabilité P(Y | X ), X est l’ensemble de documents de la
base d’apprentissage et Y l’ensemble des catégories

Base d’apprentissage

(x~1 , y1 ), ..., (x~n , yn ) ≈ P(X , Y )

Objectif
Trouver une règle de classification h avec une faible erreur de prédiction

Julien Lemoine () Applications 3 juin 2008 17 / 109


Classification supervisée

Erreur de prédiction
Aussi appelée “Taux d’erreur”
Probabilité de faire une erreur sur un document de la base de
validation
Z
Errp (h) = P(h(~x ) 6= y ) = ∆(h(~x ), y )P(~x , y )dxdy

Fonction de coût
Ajouter une “pénalité” à chaque erreur de classification
Zero-One loss:

0 Si h(~x ) = y
∆(h(~x ), y ) =
1 Sinon

Julien Lemoine () Applications 3 juin 2008 18 / 109


Classification supervisée

Apprentissage discriminatif
Proposer un modèle pour P(Y | X ).
Les paramètres (ou les coefficients dans le cas des méthodes
non-paramétriques) de ce modèle sont estimés par minimisation du
coût de classification
Exemples : arbres décisionnels, régression logistique (linéaire,
quadratique, SVM, ...), ...

Apprentissage génératif
Classification bayesienne
Cherche une structure pour la distribution jointe des entrées X et
sorties Y .
Exemples: Analyse Discrimante Linéaire (LDA), classifieurs Bayes
Naı̈fs (NB), ...

Julien Lemoine () Applications 3 juin 2008 19 / 109


Classification supervisée

Classification Bayesienne
Si on connaı̂t P(Y = 1 | X ) et P(Y = −1 | X ), la classification
optimal est :

1 Si P(Y = 1 | X = ~x ) > P(Y = −1 | X = ~x )
h(~x ) ==
−1 Sinon

Julien Lemoine () Applications 3 juin 2008 20 / 109


Classification supervisée

Théorème de Bayes
P(X | Y )P(Y )
P(Y | X ) =
P(X )

Et aussi
X
P(X ) = P(X | Y = y )P(Y = y )
y ∈Y

Julien Lemoine () Applications 3 juin 2008 21 / 109


Classification supervisée

Usage pour la classification

P(Y = 1 | X = ~x ) = 1 − P(Y = −1 | X = ~x )
On applique le théorème de Bayes :

P(X = ~x | Y = 1)P(Y = 1)
P(Y = 1 | X = ~x ) =
P(X = ~x )

Si on applique maintenant la fonction de classification :

P(Y = 1 | X = ~x ) > P(Y = −1 | X = ~x )

est équivalent à :

P(X = ~x | Y = 1)P(Y = 1) > P(X = ~x | Y = −1)P(Y = −1)

Julien Lemoine () Applications 3 juin 2008 22 / 109


Classification supervisée

Modèles sur le texte


Quelle est la probabilité d’avoir un document dans la classe +1 et
dans la classe −1: Il faut estimer la probabilité
P(X = ~x | Y = 1)P(Y = 1) et P(X = ~x | Y = −1)P(Y = −1)
Prend pour hypothèse que les mots sont indépendants
On obtient (|~x | = nombre de mots du document x et wi = i ème mot
du document x)
|~x |
Y
P(X = ~x | Y = 1) = P(W = wi | Y = 1)
i=1

|~x |
Y
P(X = ~x | Y = −1) = P(W = wi | Y = −1)
i=1

Julien Lemoine () Applications 3 juin 2008 23 / 109


Classification supervisée

Classifieur Bayes Naı̈f


Pour chaque classe, on a un modèle probabiliste :
|~x |
Y
P(X = ~x | Y ) = P(W = wi | Y )
i=1

Règle de classification:
On prédit la classe +1 Si :
|~
x|
Y
P(Y = 1) P(W = wi | Y = +1) >
i=1

|~
x|
Y
P(Y = −1) P(W = wi | Y = −1)
i=1

Sinon on prédit la classe −1

Julien Lemoine () Applications 3 juin 2008 24 / 109


Classification supervisée

Estimation des paramètres


Soit n le nombre de documents dans la base d’apprentissage
Soit pos/neg le nombre d’exemples positifs/négatifs dans cette base
Soit TF (w , y ) le nombre d’occurrences du mot w dans la classe y
Soit ly le nombre de mots dans la classe y
Estimation de P(Y ) : fraction du nombre d’exemples positifs/négatifs
dans le corpus d’apprentissage
pos neg
P(Y = 1) = et P(Y = −1) =
n n
Estimation de P(W | Y ) en utilisant un “estimateur de Laplace” pour
éviter les probabilités nulles

TF (w , y ) + 1
P(W = w | Y = y ) =
ly + 2

Julien Lemoine () Applications 3 juin 2008 25 / 109


Classification supervisée

Hypothèses du classifieur Bayes Naı̈f


Les mots sont indépendants entre eux
Chaque document est dans une classe uniquement
Les probabilités des mots ne dépendent pas de la taille du document

Julien Lemoine () Applications 3 juin 2008 26 / 109


Classification supervisée

Avantages du classifieur Bayes Naı̈f


Fondé sur un modèle théorique
Très simple
Plutôt efficace
Rapide dans la phase d’apprentissage et de classification

Inconvénients du classifieur Bayes Naı̈f


L’hypothèse d’indépendance est fausse dans le texte
Moins bonne qualité que d’autres méthodes (SVM)
Il existe des bases complexes pour lesquels les résultats sont mauvais

Julien Lemoine () Applications 3 juin 2008 27 / 109


Classification supervisée

Méthodes classiques
On dispose pour chaque catégorie de la liste des descripteurs (avec
leurs poids)
Quand un nouveau document arrive:
Parcourir toutes les catégories
Calculer le score pour chacune d’elles
Prendre la meilleur catégorie
Coûteux car il faut balayer pour chaque catégorie l’ensemble des
descripteurs : O(C × M) (C nombre de catégories et M le nombre de
descripteurs)

Julien Lemoine () Applications 3 juin 2008 28 / 109


Classification supervisée

Espace dual
Pour chaque mot, on conserve la liste des catégories pour lesquelles le
poids de ce mot est non nul
Quand un nouveau document arrive, on recherche les mots qu’il
contient et on calcule la similarité avec les catégories qui ont au
moins un mot en commun avec le document
Peu coûteux : O(|D| × C ) dans le pire des cas (|D| = nombre de
mots dans le document), mais en pratique O(|D|) car il y a peu de
descripteurs en commun entre les catégories

Julien Lemoine () Applications 3 juin 2008 29 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 30 / 109


Classification non supervisée

Principe
Le principe de la classification non supervisée (clustering) est le même
en Data-Mining et Text-Mining : séparer un ensemble d’éléments
(une entrée d’une base de données ou un document) en classes
Une classe doit contenir des documents similaires (homogènes) et
deux documents similaires ne devraient pas être dans deux classes
différentes
On appelle partition les classes obtenues si chaque document est dans
une classe
Problème extrêmement combinatoire: nombre de partitions d’un
ensemble de n objets = Bn (nombre de Bell, ex B6 = 203,
B20 = 5.1724 × 1013 , B71 = 4.0811 × 1074 )

Julien Lemoine () Applications 3 juin 2008 31 / 109


Classification non supervisée

Même technique qu’en Data-Mining ?


En fait non, il y a de nombreuses différences avec le Data-Mining :
En data mining, on a de nombreux individus et peu de descripteurs
(| Elt |>>| Desc |), En text mining on a énormément de descripteurs
et peu de documents (| Desc |>>| Elt |)
En data mining, la matrice est plutôt pleine (quelques valeurs
manquantes), en Text-Mining elle est fortement creuse
En Data-Mining il y a souvent plus de variables qualitatives que de
variables quantitatives (non discrétisées) : dépend du domaine
d’application
En Data-Mining, on connaı̂t souvent les données (le nombre de
classes/segments), alors qu’en Text-Mining on connaı̂t rarement les
documents

Julien Lemoine () Applications 3 juin 2008 32 / 109


Classification non supervisée

Applications (1/3)
Détection de nouveaux événements dans un flux de dépêches (TDT: topic
detection and tracking), défit TREC sur ce sujet depuis la fin des années
90. Exemple de résultat sur le corpus TDT1 (CNN & Reuters, Jan-Fev
1995) :
Taille de la classe Meilleurs descripteurs de la classe
330 republ, clinton, congress, hous, amend,
217 simpson, presecut, trial, jury
98 israel, palestin, gaza, peac, aragat
97 japan, kobe, earthquake, quak, toky
93 russian, chhech, chechny, grozn, yeltsin

Julien Lemoine () Applications 3 juin 2008 33 / 109


Classification non supervisée

Applications (2/3)
Synthétiser les résultats d’une recherche (clusty.com).
Exemple sur la requête orange :
Taille de la classe Meilleurs descripteurs de la classe
89 Orange County
19 UK
13 Mobile
9 France, Telecom
9 Video
7 City of Orange
5 Citrus
6 Forecast, Conditions
7 History
6 Orange Box

Julien Lemoine () Applications 3 juin 2008 34 / 109


Classification non supervisée

Applications (3/3)
Classifier les documents d’une collection (vue synthétique d’un
corpus) : objectif découvrir l’information cachée dans un ensemble de
documents (par exemple analyse de mails de clients). Logiciels: SAS
Text Miner, Temis Insight Discoverer, ALCESTE, ...
Aide à la constitution de ressources. Par exemple taxonomie, création
de listes, ...

Julien Lemoine () Applications 3 juin 2008 35 / 109


Classification non supervisée

Les étapes
Définir le besoin et surtout les descripteurs (c.f. Cours1 sur les
techniques pour obtenir les descripteurs d’un document)
Choisir la mesure de similarité entre les documents (et surtout bien la
comprendre !)
Choisir l’algorithme/méthode pour obtenir les classes en fonction du
besoin (fixation du nombre de classes, fixation d’un seuil, complexité,
modèle mathématique, ...)
Exemple: maximiser la fonction objectif ci-dessous
X X X
Sim(Di , Dj )
Ci ∈P Di ∈Ci Dj ∈Ci ,i>j

Julien Lemoine () Applications 3 juin 2008 36 / 109


Classification non supervisée

Mesure de similarité
Distance euclidienne (norme L2 ) :
p
2
X
L2 (~x , x~0 ) = (xi − x 0 i )
i=1

norme L1
p
X
L1 (~x , x~0 ) = (| xi − x 0 i |)
i=1

similarité cosinus:
< ~x , x~0 >
cos(~x , x~0 ) =
| ~x | × | x~0 |
Une mesure de similarité a souvent tendance à favoriser soit les petits
documents soit les grands documents
Difficile de comparer des documents de tailles différentes
Julien Lemoine () Applications 3 juin 2008 37 / 109
Classification non supervisée

Définition du problème
Soit le problème de classification suivant :
Document Mot1 Mot2 Mot3 Mot4 Mot5
D1 1 0 1 1 0
D2 0 1 1 0 1
D3 1 0 0 0 1
D4 0 1 0 1 1
D5 1 0 0 1 0
D6 0 0 1 0 1
Trouver Les classes de documents homogènes (parallèle avec théorie
des votes)
A ne pas confondre avec le bi-clustering/sériation (permuter les
lignes/colonnes de cette matrice pour trouver une forme
blocks/diagonale)

Julien Lemoine () Applications 3 juin 2008 38 / 109


Classification non supervisée

Modélisation
d la matrice à classifier, dij = 1 si le descripteur j est dans le
document Di , 0 sinon
Soit l’accord entre deux documents, le nombre de descripteurs en
commun entre deux documents Aii 0 = < D ~ i , D~i 0 >
Soit l’accord maximum entre deux documents donnés par
AMii 0 = Min(Aii , Ai 0 i 0 ) (favorise les grands documents) ou
AMii 0 = Max(Aii , Ai 0 i 0 ) (favorise les petits documents)
Soit la matrice à trouver X , tel que Xii 0 = 1 si i et i 0 sont dans la
même classe, 0 sinon

Julien Lemoine () Applications 3 juin 2008 39 / 109


Classification non supervisée

Modélisation
On maximise le critère suivant :
n X
X n
C (X ) = (Aii 0 − αAMii 0 )Xii 0
i=0 i=0

1
Que penser du seuil α ? que représente α = 2 ? Que penser de la
matrice X ?

Julien Lemoine () Applications 3 juin 2008 40 / 109


Classification non supervisée

Modélisation
X est une relation d’équivalence, on cherche donc à chercher
l’optimum :
X n Xn
C (X ) = (Aii 0 − αAMii 0 )Xii 0
i=0 i=0

sachant les contraintes d’une relation d’équivalence :

r éflexivité : Xii = 1
symétrie : Xii 0 = Xi 0 i
transitivité : Xii 0 + Xi 0 i 00 − Xii 00 ≤ 1

On peut donc trouver l’optimal à ce problème en utilisant un solveur


linéaire (ex: GLPK, Ilog CPLEX, ...)

Julien Lemoine () Applications 3 juin 2008 41 / 109


Classification non supervisée

Programme linéaire
Modélisation proposée par J.F. Marcotorchino and P. Michaud (IBM,
1981 pour les données numériques, fin des années 90 pour le texte)
Le problème d’optimisation linéaire est tellement contraint qu’en
pratique un solveur sur nombres flottants suffit, il est très rarement
nécessaire d’utiliser un solveur sur nombres entiers
en pratique on utilise une heuristique pour le modèle mathématique
(il existe des heuristiques en O(N) pour ce problème)

Julien Lemoine () Applications 3 juin 2008 42 / 109


Classification non supervisée

Matrice de similarité
D1 D2 D3 D4 D5 D6
D1 3 1 1 1 2 1
D2 1 3 1 2 0 2
D3 1 1 2 1 1 1
D4 1 2 1 3 1 1
D5 2 0 1 1 2 0
D6 1 2 1 1 0 2

Julien Lemoine () Applications 3 juin 2008 43 / 109


Classification non supervisée

Matrice de coût avec α = 1/2 et AM = min


D1 D2 D3 D4 D5 D6
D1 1.5 -0.5 0 -0.5 1 0
D2 -0.5 1.5 0 0.5 -1 1
D3 0 0 1 0 0 0
D4 -0.5 0.5 0 1.5 0 0
D5 1 -1 0 0 1 -1
D6 0 1 0 0 -1 1

Julien Lemoine () Applications 3 juin 2008 44 / 109


Classification non supervisée

Matrice de coût avec α = 1/2 et AM = min


D1 D5 D3 D2 D4 D6
D1 1.5 1 0 -0.5 -0.5 0
D5 1 1 0 -1 0 -1
D3 0 0 1 0 0 0
D2 -0.5 -1 0 1.5 0.5 1
D4 -0.5 0 0 0.5 1.5 0
D6 0 -1 0 1 0 1
3 solutions optimales de même coût :
{D1 , D5 , D3 }, {D2 , D4 , D6 },
{D1 , D5 }, {D3 }, {D2 , D4 , D6 },
{D1 , D5 }, {D3 , D2 , D4 , D6 },

Julien Lemoine () Applications 3 juin 2008 45 / 109


Classification non supervisée

Conclusion
Bien choisir les descripteurs (les plus adaptés au domaine), ne pas
négliger les aspects TLN dans la classification de documents
Bien choisir sa mesure de similarité et connaı̂tre les conséquences de
ce choix
Le choix de l’algorithme/heuristique est moins important, il faut
surtout connaı̂tre les limites de la technologie (impossible de revenir
sur une erreur pour une classification hiérarchique ascendante,
problème de fixation de classe pour un K-means, ...)

Julien Lemoine () Applications 3 juin 2008 46 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 47 / 109


Classification semi-supervisée

Principe
Les réglages des algorithmes de classification supervisée sont
complexes : comment extraire les descripteurs des documents, définir
la similarité entre documents, choisir le bon algorithme, ...
Idée: on pourrait donner un ensemble de documents déjà classifiés
pour apprendre comment classifier de manière automatique (mais
sans faire de la catégorisation) : “supervised clustering”
Par exemple prendre une journée de dépêches qu’on classifie pour
déterminer le meilleur modèle de classification à donner à un
algorithme de classification non supervisée

Julien Lemoine () Applications 3 juin 2008 48 / 109


Classification semi-supervisée

Principe
on suppose qu’on a une séquence de n exemples :

(x1 , y1 )(x2 , y2 )...(xn , yn )

ou x correspond à l’ensemble des documents et y correspond à la


partition
A partir de cet exemple, on essaye d’apprendre une mesure de
similarité capable de comparer deux documents

Julien Lemoine () Applications 3 juin 2008 49 / 109


Classification semi-supervisée

Pourquoi la similarité ?
Le choix des descripteurs est un domaine métier, il reste assez facile à
déterminer en fonction du domaine
La qualité/pertinence de la classification non supervisée dépend plus
de la similarité que de l’algorithme en lui même
Même avec un algorithme loin de l’état de l’art, une bonne mesure de
similarité donnera des résultats corrects (l’inverse est totalement faux
!)

Julien Lemoine () Applications 3 juin 2008 50 / 109


Classification semi-supervisée

Similarité
Pour chaque paire de documents xi et xj , nous avons un vecteur la
représentant. Par exemple le produit scalaire : φ~ij =< x~i , x~j >
Chaque dimension du vecteur φ~ij représente un descripteur qui reste
défini par l’utilisateur et doit être adapté au problème
La similarité entre les documents xi et xj est donnée par le produit
scalaire entre un vecteur de poids appris et le vecteur φ~ij

~ , φ~ij >
Sim(xi , xj ) =< w

Si un descripteur est plus important pour la classification, son poids


~ sera probablement important
associé dans le vecteur w

Julien Lemoine () Applications 3 juin 2008 51 / 109


Classification semi-supervisée

Comment apprendre ?
Est-ce possible avec un classifieur binaire ?
A partir d’une base d’apprentissage (xi , yj ), i ∈ (0...n), j ∈ (0..k),
pour chaque paire de documents xi , xi 0 :
~ 0 est un exemple positif
Si xi et xi 0 sont dans la même classe, alors φii
~ 0
Sinon φii est un exemple négatif
Lancer un apprentissage et utiliser le résultat comme paramètre de
l’algorithme non supervisée

Julien Lemoine () Applications 3 juin 2008 52 / 109


Classification semi-supervisée

Exemple simple
Soit une base d’aprentissage constituée de 5 documents et 2 classes :
y1 = {x1 , x2 } et y2 = {x3 , x4 , x5 }
Exemples positifs : φ~12 , φ~34 , φ~35 , φ~45
Exemples négatifs : φ~13 , φ~14 , φ~15 , φ~23 , φ~24 , φ~25
En utilisant un SVM à deux catégories, on obtient un vecteur de
~ :
poids w
~ , φ~ij >
Sim(xi , xj ) =< w

Julien Lemoine () Applications 3 juin 2008 53 / 109


Classification semi-supervisée

Qualité d’apprentissage
Dans la plupart des problèmes de classification non supervisée, il y a
beaucoup plus d’exemples négatifs que positifs
L’aprentissage risque donc de sous-estimer les exemples positifs
On risque de trop modéliser les relations intra-classes sans modéliser
les relations inter-classes (qui doivent être le plus faible possible) et
les effets de transitivités inter-classes

Figure: un bon classifieur doit maximiser la similarité en vert mais aussi


minimiser la similarité bleue et autoriser des similarités transitives

Julien Lemoine () Applications 3 juin 2008 54 / 109


Classification semi-supervisée

Application en classification de dépêches (1/2)


Université de Cornell (Ithaca)
Base d’apprentissage de 30 jours, 900 dépêches par jour dans 70
classes
5 régions sont extraites de chaque article : titre de la page, phrase la
plus pertinente (extraite par deux heuristiques), texte de l’article et
les citations (quotes)
Pour chacune des 5 régions, ils ont construit 3 vecteurs (mots
simples, bi-grammes, tri-grammes)
Ils ont construit à nouveau 15 vecteurs (copie des 15 vecteurs
précédents en utilisant un stemmer)

Julien Lemoine () Applications 3 juin 2008 55 / 109


Classification semi-supervisé

Application en classification de dépêches (2/2)


Au final, il y a 30 vecteurs qui contiennent les TF-IDF de chaque
descripteur
Pour chaque article, le vecteur de comparaison phi~ contient 31
dimensions : les 30 vecteurs + un biais toujours égal à 1
Résultat : les deux poids les plus importants sont les mots simples
pour le texte et les tri-grammes pour les citations

Julien Lemoine () Applications 3 juin 2008 56 / 109


Classification semi-supervisé

Conclusion
Le modèle binaire ne suffit pas, il est préférable d’apprendre un
modèle plus complexe. Les deux solutions utilisées sont :
Utilisation de méta-heuristique (algorithmes génétiques notamment)
pour résoudre ce problème
Utilisation de SVM non linéaire, le plus aboutie étant SVM struct
(extension de SVM light) permettant d’apprendre exactement ce type
de fonction
Globalement cette technique permet d’améliorer les résultats des
algorithmes de classification non supervisée

Julien Lemoine () Applications 3 juin 2008 57 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 58 / 109


Recherche d’informations

Architecture d’un moteur de recherche

Julien Lemoine () Applications 3 juin 2008 59 / 109


Recherche d’informations

Crawler
Gérer un budget de X pages à indéxer de la manière la plus optimale
possible
Quelles pages télécharger ? Quelles sont les plus importantes ?
Il y a une infinité de pages (gestion des ids de session, des pages
accessibles via différents tags, ...)
Quelles pages rafraı̂chir ?
Éviter les spams
Quelle est la notion d’un site ? Comment gérer les sites avec plusieurs
serveurs (www1.orange.fr = www2.orange.fr),
http://perso.wanadoo.fr doit-il être considéré comme un site ?
Comment obtenir la vrai date d’une page ?
...
Le crawler est un sujet très complexe !
Julien Lemoine () Applications 3 juin 2008 60 / 109
Recherche d’informations

Batches de calculs
Comment déterminer si une page est un spam ou pas ? Il existe de
nombreux types de spam.
Comment trouver les pages les plus pertinentes pour un mot donné ?
Comment trouver les pages les plus populaires ? sur un domaine
précis ?
Comment classifier les pages en catégories ?
...
Les batches doivent gérer une quantité énorme de données et des
problèmes complexes

Julien Lemoine () Applications 3 juin 2008 61 / 109


Recherche d’informations

Indexation
Quelles transformations linguistiques appliquer à un document ?
Quelle score affecter à chaque descripteur d’un document ?
Comment transformer du texte en concepts sémantiques ?
...

Index
Comment stocker de la manière la plus efficace possible les listes
inversées ?
Comment répondre le plus rapidement possible aux requêtes
utilisateurs ?
...

Julien Lemoine () Applications 3 juin 2008 62 / 109


Recherche d’informations

Front
Comment prendre en compte la langue et la géolocalisation d’un
utilisateur (par exemple la requête “cinéma” en france et au “canada”
ne doivent pas donner les mêmes résultats...) ?
Comment corriger les requêtes mal orthographiées ?
...

Complexe
Globalement faire un moteur de recherche est une tâche complexe à tous
les niveaux

Julien Lemoine () Applications 3 juin 2008 63 / 109


Recherche d’informations

Processus de recherche d’informations simple

Julien Lemoine () Applications 3 juin 2008 64 / 109


Recherche d’informations

Historiquement - rechercher sans notation


Renvoyer un ensemble non trié de documents qui satisfont la requête
Utilisation de requêtes booléennes
Inconvénient: la requête doit être très précise pour obtenir un petit
ensemble de documents
Avantages ?

Julien Lemoine () Applications 3 juin 2008 65 / 109


Recherche d’informations

Rechercher avec notations (ranking)


Renvoyer un ensemble de documents qui satisfont la requête triée par
pertinence
Utilisation de requêtes booléennes
Avantages: avoir de nombreux résultats n’est plus un problème, moins
de temps passé à lire les résultats
Inconvénient: avoir une bonne requête est toujours important

Julien Lemoine () Applications 3 juin 2008 66 / 109


Recherche d’informations

Recherche multi-langues (cross-lingual)


Requête dans une langue (Français par exemple)
Renvoie des résultats dans plusieurs langues (par exemple Anglais,
Italien, Allemand, ...)

Recherche distribuée
Plusieurs corpus de documents
Plusieurs machines
Plusieurs paramètres de recherche/indexation
Complexité: fusionner les résultats des différents corpus

Julien Lemoine () Applications 3 juin 2008 67 / 109


Recherche d’informations

Évaluation
Les méthodes d’évaluations sont une partie importante de la
recherche d’informations depuis les années 60
Au début, le travail était de comparer l’indexation automatique et
manuelle (typiquement l’index d’un livre)

Julien Lemoine () Applications 3 juin 2008 68 / 109


Recherche d’informations

Type d’évaluation
Assistance à la formulation de requête
Temps de réponse
Temps processeur utilisé
Pertinence des résultats
En général, comparaison de deux systèmes

Julien Lemoine () Applications 3 juin 2008 69 / 109


Recherche d’informations

Pertinence
La pertinence est difficile à définir de façon satisfaisante
Un document pertinent est un document jugé utile dans le contexte
de la requête
Qui juge ?
Quelle est la définition d’utile ?
Les jugements différents en fonction de la personne
Le contexte de jugement est plus vaste que la requête et le document
Dans un vrai corpus, l’ensemble des documents pertinents est inconnu

Julien Lemoine () Applications 3 juin 2008 70 / 109


Recherche d’informations

Corpus de tests
Les performances d’un système de recherche sont comparées avec un
corpus de test : ensemble de documents, de requêtes et de résultats
jugés pertinents
Plusieurs techniques de comparaison :
Chaque technique est utilisée pour évaluer les résultats d’une requête
Les résultats sont comparés en utilisant une mesure
Mesures les plus connues: la précision, le rappel, les F-mesures
On utilise souvent plusieurs mesures pour évaluer les différents
aspects de la pertinence
On teste souvent avec plusieurs corpus car les mesures sont
dépendantes d’un corpus

Julien Lemoine () Applications 3 juin 2008 71 / 109


Recherche d’informations

Exemples de corpus de tests


Cranfield CACM ISI TREC2
Nb de documents 1,400 3,204 1,460 742,611
Taille 1.5Mo 2.3Mo 2.2Mo 2.1Go
Date création 1968 1983 1983 1991
Nb de stemmes 8226 5493 5448 1M
Nb d’occurrences stemmes 123K 117K 98K 243M
Taille moyenne Doc (mots) 88 37 67 328
Nb de requêtes 225 50 35 100

Julien Lemoine () Applications 3 juin 2008 72 / 109


Recherche d’informations

Évaluation
Pour les petits corpus, il est possible d’évaluer tous les documents
d’une requête, ce n’est pas le cas pour les grands corpus
Juger les n premiers documents pour chaque système

Mesures
Rappel: pourcentage des documents pertinents qui sont dans les
résultats :
nb de docs pertinents dans les r ésultats
R=
nb de docs pertinents dans le corpus
Précision: Pourcentage des documents pertinents parmis les résultats:
nb de docs pertinents dans les r ésultats
P=
nb de docs dans les r ésultats

Julien Lemoine () Applications 3 juin 2008 73 / 109


Recherche d’informations

Propriétés statistiques du texte


Il y a un modèle stable, indépendant du langage sur l’utilisation des
mots dans un langage naturel
Quelques mots sont très fréquents, la plupart sont rares
En général
Les 2 mots les plus fréquents représentent ≈ 10 − 15% de toutes les
occurrences
Les 6 mots les plus fréquents représentent ≈ 20% de toutes les
occurrences
Les 50 premiers mots représentent ≈ 50% de toutes les occurrences
Un mot fréquent dans un corpus peut être rare dans un autre. Par
exemple “internet” dans des dépêches technologiques / médicales

Julien Lemoine () Applications 3 juin 2008 74 / 109


Recherche d’informations

Loi de Zipf
La loi de Zipf relie la fréquence des mots à leur rang (si on les trie par
fréquence décroissante)
Il existe une constante k, telle que fr équence × rang = k
Si on tri les mots par ordre décroissant :
Soit fr la fréquence du mot à la position r
Soit N le nombre Pd’occurrences et M le nombre de mots
M
Soit pr = Nfr et r =1 pr = 1
On observe (empiriquement) pr = Ar avec A ≈ 0.1
Par conséquence: pr = Nfr = Ar → r × fr = AN
N
k ≈ 10 en anglais

Julien Lemoine () Applications 3 juin 2008 75 / 109


Recherche d’informations

Loi de Zipf
Mot Fréquence r × pr Mot Fréquence r × pr
the 1,130,021 0.059 by 118,863 0.081
of 547,311 0.058 as 109,135 0.080
to 516,635 0.082 at 101,779 0.080
a 464,736 0.098 mr 101,679 0.086
in 390,819 0.103 with 101,210 0.091
and 387,703 0.122 form 96,900 0.092
that 204,351 0.075 he 94,585 0.095
for 199,340 0.084 million 93,515 0.098
is 152,483 0.072 year 90,104 0.100
said 148,302 0.078 its 86,774 0.100
it 134,323 0.078 be 85,588 0.104
on 121,173 0.077 was 83,398 0.105

Julien Lemoine () Applications 3 juin 2008 76 / 109


Recherche d’informations

Prédire la fréquence des mots


AN
Un mot qui a n occurrences a un rang de n
Exemple: n = 50, A = 0.1, N = 100, 000
0.1 × 100, 000
rn = = 200
50
plusieurs mots peuvent avoir n occurrences, le rang rn s’applique au
dernier mot qui a n occurrences
il y a rn mots qui ont plus de n occurrences

Julien Lemoine () Applications 3 juin 2008 77 / 109


Recherche d’informations

Prédire la fréquence des mots


Le nombre de mots qui apparaissent exactement n fois est :
AN AN AN
In = rn − rn+1 = − =
n n+1 n(n + 1)

Le mot qui a le rang le plus élevé a une occurrence et a le rang


rmax = AN
1
Le nombre de mots qui ont une seule occurrence :
In 1
= = 1/2
rmax n(n + 1)

Pourquoi est-ce important ?


Cela permet d’optimiser les structures de données dans l’index
Les algorithmes de notations statistiques dépendent de cette
modélisation
Julien Lemoine () Applications 3 juin 2008 78 / 109
Indexation

Comment indexer ?
Les base de données utilisent des clés primaires et secondaires pour
l’indexation
La base de données permet un accès rapide à un sous ensemble
d’éléments qui sont ensuite analysés pour trouver les éléments
répondant à la requête.
Utiliser un id, le titre, l’auteur, la date... comme clé primaire ?
Bonne idée, mais aucune de ces informations n’est utilisée dans la
requête
Quelles sont les clés utilisées en recherche d’informations ?
N’importe quel mot d’un document est un candidat pour un terme de
requête
Il faut donc indexer tous les mots des documents (indexation full-text)

Julien Lemoine () Applications 3 juin 2008 79 / 109


Indexation full-text

Exemple de document à indexer


How aspartame prevents the toxicity of ochratoxin A.
Creppy EE, Baudrimont I, Anne-Marie .
Toxicology Department, University of Bordeaux, France.

The ubiquitous mycotoxin ochratoxin A (OTA) is found as a frequent


contaminant of a large variety of food and feed and beverage such as beer,
coffee and win. It is produced as a secondary metabolite of moulds from
Aspergillus and Penicillium genera. Ochratoxin A has been shown
experimentally to inhibit protein synthesis by competition with
phenylalanine its structural analogue and also to enhance oxygen reactive
radicals production. The combination of these basic mechanisms with the
unusual long plasma half-life time (35 days in non-human primates and in
humans), the metabolisation of OTA into still active derivatives and
glutathione conjugate both potentially reactive with cellular...

Julien Lemoine () Applications 3 juin 2008 80 / 109


Indexation full-text

Exemple de document à indexer


Mot TF Mot TF Mot TF Mot TF
the 31 by 6 peptide 4 such 3
of 26 affect 6 several 4 toxic 3
and 22 are 5 toxin 4 vitro 3
in 21 aspartame 5 also 3 when 3
a 15 exposure 5 countries 3 added 2
to 11 human 5 given 3 africa 2
as 9 with 5 it 3 balkan 2
ota 9 animals 4 preventative 3 be 2
for 8 include 4 rate 3 been 2
is 8 ochratoxin 4 shown 3 coumpound 2

Julien Lemoine () Applications 3 juin 2008 81 / 109


Indexation full-text

Liens entre l’index et le langage de requêtes


Les accès à l’index sont effectués à partir des atomes du langage de
requêtes :
Mots du texte ainsi que la ponctuation
Structure du document (titre, paragraphe, ...)
Liens inter/intra documents
...
L’index doit supporter les opérations du langage de requête:
Extraire une séquence de mots (phrase query)
Extraire un ensemble de mots liés par des opérateurs booléens
...

Julien Lemoine () Applications 3 juin 2008 82 / 109


Pourquoi créer une structure de données particulière ?

Parcours séquentiel des documents


Très flexible, permet la recherche de patrons très complexes (par ex:
transducteur)
Disponible sous forme de matériel : ex coprocesseur TRW-FDF (Fast
Data Finder)
Coûts en CPU et I/O en O(taille de la base)
Pratique pour les “petites” bases de documents

Utiliser un index
Un index associe un document à de nombreuses “clés”
Obtenir le document quand on demande une de ses “clés”
Pratique pour les “grandes” bases de documents
De nombreuses optimisations sont possibles !

Julien Lemoine () Applications 3 juin 2008 83 / 109


Indexation - Exemple

Indexation
Indexation full-text
Chaque atome de l’index correspond à un mot

Langage de requête
Requêtes sous forme de ET : W1 &W2 &...&Wn
Une requête est une suite de mots

Modèle de recherche
Renvoyer les documents qui satisfont la requête
Un document satisfait la requête si il contient tous les mots de la
requête

Julien Lemoine () Applications 3 juin 2008 84 / 109


Indexation

Index inversé
Source: ensembles de documents
Listes inversées: ensemble de documents organisés par mots :
Une entrée par mot donnant tous les documents qui possèdent ce mot
Les listes inversées sont la manière la plus répandu d’indexer du
contenu aujourd’hui

Julien Lemoine () Applications 3 juin 2008 85 / 109


Indexation

Exemple
Mot DocIDs
DocID Contenu computer 6
1 machine learning database 4
2 human learning human 2
3 learning systems learning 1, 2, 3
4 database theory machine 1
5 operating systems operating 5
6 computer systems systems 3, 5, 6
theory 4

Julien Lemoine () Applications 3 juin 2008 86 / 109


Indexation

Contenu de l’index
Informations sur la présence/absence d’un document dans une liste:
Stocke le Did dans la liste inversée du mot (booléen)
Quelques statistiques (tf, df, doclen, maxtf)
Représente 10% de la taille des documents sources
Information sur la position des mots dans le document d’origine
Doit garder la position de toutes les occurrences du mot dans le
document
Information de scores sur les occurrences
Représente 20-30% de la taille des documents sources

Julien Lemoine () Applications 3 juin 2008 87 / 109


Indexation

Exemple
Mot DocIDs
Opérateurs: computer 6
ET: intersection des database 4
listes inversées human 2
OU: union des listes learning 1, 2, 3
inversées machine 1
NON: complément operating 5
d’une liste inversée systems 3, 5, 6
theory 4

Julien Lemoine () Applications 3 juin 2008 88 / 109


Indexation

Exemple
Mot DocIDs
DocID Contenu computer 6:1
1 machine learning database 4:1
2 human learning human 2:1
3 learning systems learning 1:2, 2:2, 3:1
4 database theory machine 1:1
5 operating systems operating 5:1
6 computer systems systems 3:2, 5:2, 6:2
theory 4:2
Requête “...”: rechercher les mots adjacents
NEAR: rechercher les mots avec une distance ≤ X

Julien Lemoine () Applications 3 juin 2008 89 / 109


Indexation

Vecteurs creux
Les vecteurs en recherche d’informations ont de nombreuses
dimensions, mais sont très creux: on stocke uniquement les éléments
présents sous forme de liste triée :

(0, 0, 0, 0, 4, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0) ⇒ 5 : 4, 8 : 3, 11 : 1

Plus efficace en stockage : O(nombre d’éléments non vides)


Les opérations sur les listes sont rapides et calculées sur plusieurs
listes en parallèles :
intersection: conserve uniquement les éléments qui sont non nuls dans
toutes les listes
union: garde tous les éléments non nuls
produit scalaire: garde tous les éléments qui sont non nuls dans toutes
les listes et somme le produit de leurs fréquences
...
Le résultat est lui aussi un vecteur creux
Julien Lemoine () Applications 3 juin 2008 90 / 109
Indexation

Accéder à la liste inversée

Julien Lemoine () Applications 3 juin 2008 91 / 109


Indexation

Accéder à la liste inversée


Trie compilé (RAM): supporte des recherches exactes,
approximatives et préfixes (O(|w |) où w est le mot de la recherche
String B-Tree (Disque) : supporte des recherches exactes et
approximatives (O(|w |) avec uniquement une “page fault”)
Table de Hash (RAM—Disque): supporte uniquement des
recherches exactes (O(1))

Julien Lemoine () Applications 3 juin 2008 92 / 109


Indexation

Construction de l’index
Première étape: construction partielle en mémoire
Lecture séquentielle des documents
Construction des “postings” pour chaque document
Tri en RAM pour créer les listes inversées
Deuxiéme étape: fusion des constructions partielles
Union des listes inversées
O(log(n) x Taille) n = nombre de constructions partielles

Julien Lemoine () Applications 3 juin 2008 93 / 109


Indexation

Compression de l’index
Les listes inversées sont compressées en général
Les listes inversées non compressées avec les positions des mots sont
de taille équivalente aux documents sources
Les listes inversées compressées sans les positions des mots sont
environ 10x plus petites que les documents sources
Les listes inversées compressées avec les positions des mots sont
environ 4-5x plus petites que les documents sources
La plupart des nombres stockés dans les listes sont petits (positions
des mots, fréquences des mots, ...)
On utilise des techniques de compressions simples afin de réduire les
coûts disques sans trop augmenter les coûts CPU

Julien Lemoine () Applications 3 juin 2008 94 / 109


Recherche d’informations

Techniques de compression
Principe: on stocke toujours des offset et non pas les ID, ainsi la liste
inversée : 5 : (1, 3, 10), 8 : (2, 8), 15 : (1, 5) devient
5 : (1, 2, 8), 3 : (2, 6), 7 : (1, 4)
On a beaucoup de petits entiers (mais > 0) qu’on va stocker de
manière efficace : on va utiliser sur un modèle bit à bit
Code unaire: stocke la valeur x sur x bits (x − 1 bits à 1 et 1 bit à 0)
Ex: 1 = 0, 10 = 1111111110
Code γ : stocke x avec un préfixe en code unaire représentant
1 + blog (x)c et un suffixe de blog (x)c bits correspondant à la valeur
x − 2blog (x)c .
Ex: 10 = 1110 010 (préfixe = 4, suffixe = 2), x = 23 + 2

Julien Lemoine () Applications 3 juin 2008 95 / 109


Recherche d’informations

Techniques de compression
Code δ : stocke le préfixe avec un Code γ au lieu d’un code unaire.
Ex: 10 = 11000 010 (préfixe = (3, 0), suffixe = 2) (préfixe = 22 + 0
et suffixe = 2), x = 23 + 2
Code paramétrique de Golomb (basé sur un modèle de Bernouilli) :
idée prendre en compte la probabilité d’apparition du mot pour avoir
la meilleur compression possible (paramètre b): préfixe q + 1 en
unaire et le préfixe en binaire (x − q × b − 1) avec q = b x−1
b c

Julien Lemoine () Applications 3 juin 2008 96 / 109


Recherche d’informations

Techniques de compression
Quand b est une puissance de 2 c’est un code de Rice
La partie binaire du code de Golomb est optimisée. Par exemple
quand b = 6 alors 0 ≤ r ≤ 5
r binaire code
0 000 00
1 001 01
2 010 100
3 011 101
4 100 110
5 101 111
Ex (b = 6): 10 = 10 101 (préfixe = 2, suffixe = 3),
q = 1etr = 3 ⇒ x = b × q + r + 1 = 6 × 1 + 3 + 1 = 10

Julien Lemoine () Applications 3 juin 2008 97 / 109


Recherche d’informations

Exemples de compression
Gap Code unaire Code γ Code δ Golomb Golomb
b=3 b=6
1 0 0 0 00 0 00
2 10 10 0 100 0 0 10 0 01
3 110 10 1 100 1 0 11 0 100
4 1110 110 00 101 00 10 0 0 101
5 11110 110 01 101 01 10 10 0 110
6 111110 110 10 101 10 10 11 0 111
7 1111110 110 11 101 11 110 0 10 00
8 11111110 1110 000 11000 000 110 10 10 01
9 111111110 1110 001 11000 001 110 11 10 100
10 1111111110 1110 010 11000 010 1110 0 10 101

Julien Lemoine () Applications 3 juin 2008 98 / 109


Recherche d’informations

Listes inversées
En pratique toutes les informations des listes inversées sont stockées
sous forme de code à tailles variables (choix du code en fonction du
type d’information)
Ces codes sont très rapides (masques de bits...) et permettent d’avoir
des taux de compression importants
Un simple accès disque permet de ramener une quantité importante
d’informations

Julien Lemoine () Applications 3 juin 2008 99 / 109


Plan

1 Classification

2 Classification supervisée

3 Classification non supervisée

4 Classification semi-supervisée

5 Recherche d’informations
Moteur de recherche
Latent Semantic Indexing

Julien Lemoine () Applications 3 juin 2008 100 / 109


Recherche d’informations

Problèmes des modèles à base de mots


En classification: trop de dimensions pour de nombreux algorithmes
En recherche d’informations:
problème de synonymie: “car” et “automobile”...
Les requêtes et les documents n’utilisent pas les mêmes mots pour
décrire la même chose
En général:
On prend pour hypothèse que tous les mots sont indépendants
Besoin de stocker des vecteurs avec de nombreuses dimensions mais
fortement vides
Objectif: trouver de nouveaux vecteurs dont chaque dimension
représentera un concept indépendant (orthogonal)

Julien Lemoine () Applications 3 juin 2008 101 / 109


Latent Semantic Indexing

Objectif
Autoriser des documents à être similaires même si ils ne partagent
aucun mots
Ne pas utiliser les mots comme descripteurs mais construire des
nouveaux discripteurs (en petit nombres)
Trouver les dimensions “latent semantic”

Hypothèse
La co-occurrence de mots contient de l’informations sémantiques

Méthode
Début: matrice documents/mots
Effectuer une décomposition en valeurs singulières (SVD)
Utiliser les k(≈ 300) meilleurs vecteurs propres comme dimensions
Décrire les documents dans ce nouvel espace
Julien Lemoine () Applications 3 juin 2008 102 / 109
Latent Semantic Analysis

Matrice de départ
Descripteur D1 D2 D3 D4 D5 D6
Astronaut 1 0 1 0 0 0
Cosmonaut 0 1 0 0 0 0
Moon 1 1 0 0 0 0
Car 1 0 0 1 1 0
Truck 0 0 0 1 0 1

Julien Lemoine () Applications 3 juin 2008 103 / 109


Latent Semantic Analysis

Décomposition en valeurs singulières


Pour chaque matrice A, il existe des matrices T , S et D tel que:

A = T × S × D0

T et D sont orthonormales et S = diag (s1 , s2 , ..., sn ) est triée car ordre


croissant (s1 ≥ s2 ≥ ... ≥ sn )

Julien Lemoine () Applications 3 juin 2008 104 / 109


Latent Semantic Analysis

Propriétés des SVD


Avoir uniquement les k premières valeurs
propres(Sk = diag (s1 , s2 , ..., sk , 0, ..., 0) revient à avoir la meilleur
estimation d’ordre k de la matrice A

Ak = T × Sk × D 0

Julien Lemoine () Applications 3 juin 2008 105 / 109


Latent Semantic Analysis

Similarité entre documents


La matrice de similarité entre documents est donnée par :

A0 × A = (D × S) × (D × S)0

La matrice de similarité entre documents (au rang k) est donnée par:

Ak 0 × Ak = (D × Sk ) × (D × Sk )
= (Tk 0 × A)0 × (Tk 0 × A)

Tk est une sous-matrice de T en utilisant uniquement les k première


colonnes
La similarité entre un nouveau document x et une nouvelle requête q
est donnée par :

xk 0 × qk = (Tk 0 × x)0 × (Tk 0 × q)

Julien Lemoine () Applications 3 juin 2008 106 / 109


Latent Semantic Analysis

Avantages
Peut améliorer la recherche et dépasser le problème de “vocabulaire”
Obtient des vecteurs avec peu de dimensions :
Idéal pour les algorithmes d’apprentissage qui ne peuvent pas supporter
un grand nombre de descripteurs
Chaque dimension représente un concept (discutable !)

Julien Lemoine () Applications 3 juin 2008 107 / 109


Latent Semantic Analysis

Inconvénients
Perturbant pour les utilisateurs habitués aux requêtes classiques
Explication du résultat difficile
Les nouveaux vecteurs sont très denses (pas forcement de gain en
stockage car les listes inversées sont efficaces pour stocker des
vecteurs creux)
La polysémie introduit un biais
Coûteux en temps de calcul (à l’indexation)
Aussi utilisé pour trouver des synonymes (Latent Semantic Analysis)

Julien Lemoine () Applications 3 juin 2008 108 / 109


Text Mining

Résumé du cours
Traitements des langues (TLN)
Extraction d’informations (Linguistique/statistiques)
Structures de données utilisées
Classification supervisée/non supervisée/semi supervisée
Recherche d’informations

Moteurs de recherche
Les moteurs de recherche utilisent toutes ces technologies !

Julien Lemoine () Applications 3 juin 2008 109 / 109

Vous aimerez peut-être aussi