Systèmes de recherche d`information

Download Report

Transcript Systèmes de recherche d`information

Systèmes de Recherche d’Information
1
Systèmes de recherche d’information (SRI)
 Information retrieval Systems(IRS) utilisent un modèle plus
simple que celui des bases de données
 L’information est organisée sous forme de collection de
documents
 Les documents ne sont pas structurés (pas de schéma)
 La recherche d’information consiste à retourner les documents
pertinents à la requête de l’utilisateur
 La requête peut être sous forme de mots clés (keywords) ou
bien des documents de référence
 e.g., les documents contenant les mots “bases de données”
 Cas particulier: La RI sur le WEB est devenue extrêmement
importante
 E.g. google, altavista, …
2
Les SRI (Suite)
 Différences par rapport aux SGBD
 Les SRI n’ont pas les problèmes de transactions,
concurrence et reprises sur panne
 Les SRI s’intéressent à des problèmes non abordés par les
SGBD classiques
Recherche approximative par mots clés
Classement des documents retournés par degré de
pertinence
3
Recherche par mot clé
 Dans la recherche plein texte, tout mot dans chaque document est considéré
comme mot clé (on parle aussi de terme)
 Les SRI autorisent l’utilisation des connecteurs logiques (et, ou, non) pour combiner
les mots clés de la recherche lors de l’expression des requêtes
 Le classement des documents selon leur pertinence est un point critique (voir par
exemple le succès de Google)
 La pertinence est basée sur des facteurs tels que :
 Fréquence de termes
– Fréquence d’un terme dans un document
 Fréquence inverse des documents
– Dans combien de documents le mot clé apparaît-il ?
» Moins de documents  plus important sera le mot clé
 Hyperliens vers le document
– Plus il y a de liens vers le document  plus le document sera important
…
4
Classement selon les termes
 FT-FID (Fréquence de Terme/Fréquence Inverse de Document):
 Soit n(d) = Le nombre de termes dans le document d
 Soit n(d, t) = le nombre d’occurrences de t dans d (FT)
 Soit n(t) = le nombre de documents contenant t (1/FID)
 La pertinence de d relativement à t est donnée par
n(d, t)
r(d, t) = log 1 +
n(d)
 On met tout en Log pour réduire l’importance des nombres d’occurrences
 La pertinence de d relativement à la requête Q (ensemble de termes) est donnée
par
r(d, t)

r(d, Q) = tQ
n(t)
5
Classement selon les termes
 La plupart des systèmes affinent ce modèle
 Les mots dans le titre, sous-titres, auteurs, URL sont dotés d’une plus grande
importance
 Les mots apparaissant au début sont plus importants que ceux en fin de
document
 Les mots courants sont supprimés de la requête (de, la, les, un …)
 appelés stop words
 Proximité: Si les mots apparaissent plus proches les uns des autres dans d que
dans d’, alors d est plus pertinent que d’
 Les documents sont retournés selon l’ordre décroissant de leur pertinence
 Généralement, seuls les premiers sont retournés
6
Pertinence selon les Hyperliens
 Si on ne se base que sur les fréquences des mots, le
nombre de documents retournés par les moteurs de
recherche peut être énorme
 L’utilisation de la fréquence seulement rend le « spam »
facile
Ex: une agence de voyages peut ajouter
artificiellement plusieurs fois les termes « agence » et
« voyage » pour s’assurer un bon classement
 Pour éviter le spam, il suffit de classer les sites en fonction
de leur « popularité »
 Idée: utiliser la popularité des sites (le nombre d’accès)
pour classer les documents retournés
 Problème: Impossible de faire ce compte
7
Pertinence selon les Hyperliens (suite)
 Solution: utiliser le nombre d’hyperliens pointant vers le site
 Compter un lien à partir de chaque site
 Ce n’est pas parce que plusieurs pages du même site pointent
vers S que S devient plus prestigieux
 Toutes les pages d’un même site ont la même popularité
 La popularité d’un site est plus facile à calculer que celle des
pages
 Raffinements
 Quand on calcule la popularité d’un site, donner plus de poids aux
liens provenant de sites prestigieux
 Définition circulaire
 Systèmes linéaires à résoudre simultanément
 C’est l’approche utilisée par Google
8
Le rang des pages
• Intuition: Résoudre l’équation récursive: “une page
est importante s’il y a des pages importantes qui
pointent dessus”
• Analogie avec le raisonnement suivant: Tout le
monde connaît le président. Si X est connu par le
président alors X devient prestigieux même s’il n’est
connu que par peu de personnes
9
Matrice Stochastique du Web
• Énumérer les pages.
• Page i correspond à la ligne i et à la colonne i
• M [i,j ] = 1/n si page j pointe sur n pages, page i
incluse ; 0 si j ne pointe pas sur i
• M[i,j] désigne en fait la probabilité d’aller vers la page i
quand on est à la page j
10
Exemple
Supposons que page j pointe sur 3 pages, dont i
j
i
1/3
11
Marche aléatoire sur le Web
• Soit v un vecteur où v[i] est la probabilité
d’être sur la page i à un certain moment.
• En étant sur i, si l’on suit un lien
aléatoirement, alors la distribution de la
probabilité est donnée par v*M (ou M*v
selon que v est vecteur ligne ou colonne)
12
Marche aléatoire sur le Web (2)
• En partant de n’importe quel v, la limite de
v(M(M(...))) est la distribution des visites des pages
lors d’une marche aléatoire.
• Intuition: L’importance des pages est proportionelle
au nombre de fois qu’elle est visitée lors d’une
marche aléatoire.
13
Exemple: Le Web en 1900
y a
y 1/2 1/2
a 1/2 0
m 0 1/2
Yahoo
Amazon
m
0
1
0
M’soft
La somme sur la colonne j est égale à 1 sauf si de j on ne
peut aller nulle part
14
Simuler une marche aléatoire
• Commencer avec v = [1,1,…,1] représentant
l’idée qu’au départ les pages sont de même
importance. Puis répéter l’application de M
jusqu’à atteindre un point fixe.
15
Exemple
• Equations v = vtM :
• [y, a, m]=[y, a, m]t*M
– y = y /2 + a /2
– a = y /2 + m
– m = a /2
y
a =
m
1
1
1
1
3/2
1/2
5/4
1
3/4
9/8
11/8
1/2
...
6/5
6/5
3/5
16
Quelques Problèmes
 Certaines pages sont “sans issue”
 Ces pages réduisent à néant l’importance.
 D’autres (groupes de) pages absorbent toute
l’importance
 C’est le cas où tous les liens sont vers des
éléments du groupe.
17
Microsoft est sans issue
y a
y 1/2 1/2
a 1/2 0
m 0 1/2
Yahoo
Amazon
m
0
0
0
M’soft
18
Exemple
 Equations v = vtM:
 y = y /2 + a /2
 a = y /2
 m = a /2
y
a =
m
1
1
1
1
1/2
1/2
3/4
1/2
1/4
5/8
3/8
1/4
...
0
0
0
Cela signifie qu’intuitivement, on va forcément se retrouver
dans une situation où l’on ne peut plus avancer.
19
Microsoft ‘aspire’ toute l’importance
y a
y 1/2 1/2
a 1/2 0
m 0 1/2
Yahoo
Amazon
m
0
0
1
M’soft
20
 Équations v = vM:
Exemple
 y = y /2 + a /2
 a = y /2
 m = a /2 + m
y
a =
m
1
1
1
1
1/2
3/2
3/4
1/2
7/4
5/8
3/8
2
...
0
0
3
Intuitivement, ce la signifie que le parcours du web va
« certainement » nous mener à la page microsoft.
21
La solution de Google
 “Taxer” chaque page à chaque itération
 Ajouter la même constante à toutes les pages
 Modéliser une marche aléatoire comme si l’utilisateur
ne fait pas que suivre les liens mais peut aussi taper
des URL’s pour accéder directement à certaines
pages
22
Le même exemple avec 20% de ‘Taxe’
 Équations v = 0.8(Mv ) + 0.2:
 y = 0.8(y /2 + a/2) + 0.2
 a = 0.8(y /2) + 0.2
 m = 0.8(a /2 + m) + 0.2
y
a =
m
1
1
1
1.00 0.84
0.60 0.60
1.40 1.56
0.776
0.536 . . .
1.688
7/11
5/11
21/11
23
Pertinence selon les Hyperliens (suite)
 Un échangeur (hub en anglais) est une page qui contient
des liens vers plusieurs pages
 Une autorité est une page qui contient de l’information sur
un sujet particulier (plusieurs pages pointent vers elle)
 Chaque page lui est associé un degré de « prestige
d’échangeur » basé sur le prestige des autorités sur
lesquelles elle pointe
 Chaque page lui est associé un degré de « prestige
d’autorité » basé sur le prestige des échangeurs qui
pointent sur elle
 Utiliser le « prestige d’autorité » pour classer les résultats
24
Matrice de transition A
 A [i,j ] = 1 si page i pointe sur page j, 0 sinon
Exemple
Yahoo
Amazon
y a m
y 1 1 1
A= a 1 0 1
m 0 1 0
M’soft
25
Utilisation de A
 Soient h et a des vecteurs mesurant respectivement le
degrés d’échangeur (‘hubbiness’) et d’autorité de chaque
page
 Équations: h = Aa; a = AT h.
 Degrés d’échangeur de p = somme des degrés
d’autorité des pages sur lesquelles p pointe
 Degrés d’autorité de p = somme des degrés
d’échangeur des pages pointant sur p
26
Conséquences
 De h = Aa et a = AT h on voit que:
 h = AAT h
 a = ATA a
 Ce sont donc des équations de point fixe qu’on peut
résoudre par itération comme dans le cas précédent.
 On suppose d’abord que chaque page a un degré
égal à 1
27
Yahoo
Amazon
111
A= 101
010
y
Exemple
a
m
y 1 1 1
A= a 1 0 1
m 0 1 0
M’soft
110
AT = 1 0 1
110
321
AAT= 2 2 0
101
212
ATA= 1 2 1
212
a(yahoo) =
a(amazon) =
a(m’soft) =
1
1
1
5
4
5
24
18
24
114
84
114
...
...
...



h(yahoo) =
h(amazon) =
h(m’soft) =
1
1
1
6
4
2
28
20
8
132
96
36
...
...
...



28
Solution
 Les systèmes ne convergeant pas, on utilise plutôt les équations suivantes:
 h = λAa; a = μAT h (λ et μ sont des nombres fractionnaires)
 D’où h = λμAAT h et a = λμATA a.
 Chaque équation du type y = λμ (3y +2a +m) nous permet d’exprimer λμ en
fonction de y, a et m
 Faire l’égalité entre ces différentes expressions
 Pour l’exemple et pour h on a:
 y = λμ (3y +2a +m)
 a = λμ (2y +2a )
 m = λμ (y +m)
 Ainsi λμ = y/(3y +2a +m) = a / (2y +2a ) = m / (y +m)
29
Solution (suite)
 Supposer y = 1.
λμ = 1/(3 +2a +m) = a / (2 +2a ) = m / (1+m)
 Des deux derniers termes on a:
a +am = 2m +2am d’où a = 2m /(1-m ) (i)
 Du premier et du troisième termes on a:
1+m = 3m + 2am +m 2 d’où a =(1-2m -m 2)/2m (ii)
 De (I) et (ii) on a:
1 - 2m - m 2 - m + 2m 2 + m 3 = 4m 2 1-3m-3m2+m3=0
 Ainsi m = 0.268 et a = 0.735
 On peut ensuite calculer l’autorité
h(yahoo) = 1
h(amazon) = 0.735
h(m’soft) = 0.268 1
a(yahoo)
a(amazon)
a(m’soft)
=1+3
=2
=1+3
30
Recherche basée sur la similarité
 Récupérer les documents qui ressemblent à un document d
 La Similarité peut être mesurée sur la base des mots
communs
Ex. Trouver k termes dans d maximisant r(d, t) puis
utiliser ces termes comme une requête
 La Similarité peut être utilisée pour affiner l’ensemble des
résultats retourné par une recherche avec mots clés :
 L’utilisateur sélectionne un petit nombre de documents puis
demande au système de ne garder que ceux qui leur
ressemblent le plus
31
Synonymes et Homonymes
 Synonymes
 Ex. document: “moto réparation”, requête: “moto maintenance”
 Le système doit savoir que “maintenance” et “réparation” sont
synonymes
 Le système alors pourra transformer la requête en “moto et (réparation
ou maintenance)”
 Homonymes
 Ex. “fenêtre” a différents sens (construction ou écran)
 Des travaux en langage naturel permettent de lever les ambiguïtés à
partir du contexte (reste très difficile)
 Problème: Ajouter des synonymes introduit le problèmes des
homonymes
 Faire appel à l’utilisateur pour lever les ambiguïtés
32
Indexation des Documents
 Un index inverse associe à chaque terme Ti l’ensemble des documents
qui le contiennent
 Les documents sont identifiés par un identificateur (URL dans le cas du
WEB)
 L’index peut aussi stocker
 L’emplacement de Ti dans le document (pour pouvoir utiliser la proximité)
 Le nombre d’occurrences de Ti (pour calculer FT)
 Opération et : Trouver les documents qui contiennent T1, T2, ..., Tn.
 Intersection S1 S2 .....  Sn
 Opération ou : Trouver les documents qui contiennent un des termes T1,
T2, …, Tn
 union, S1 S2 .....  Sn,.
 Chaque Si est triée pour ensuite faciliter la fusion
 “non” peut être implémenté en fusionnant des listes triées
33
Mesurer l’efficience d’un SRI
 Les RI ne peuvent pas être exhaustifs sinon l’espace requis pour
stocker les index serait trop grand.
 Les RI utilisent des structures de données et des méthodes de
compression qui permettent seulement de la recherche
approximative. Ceci implique
 faux négatifs : quelques documents pertinents peuvent ne pas être
retournés
 faux positifs : quelques documents non pertinents peuvent être
retournés
 Dans beaucoup d’application, ce sont les faux négatifs qui posent un
problème
 Mesure de l’efficience :
 Précision – quel est la proportion de documents pertinents retournés
pour une requête (parmi ceux retournés)
 Rappel - quel est la pourcentage de documents pertinents retournés
parmi tous les documents pertinents
34
Mesurer l’efficience d’un SRI (suite)
 Le classement des résultats peut induire de faux positifs/négatifs
 Faire la balance entre Rappel et précision :
 On peut augmenter le rappel en augmentant les documents retournés
(i.e en baissant le degré de pertinence) ce qui provoque la baisse de
la précision
 Mesures en fonction des documents réellement accédés
 L’une est fonction de l’autre
– Ex. “précision de 75% pour un rappel de 50%, et 60% pour un
rappel 75%”
 Problème: Comment définir les documents qui sont réellement
pertinents ?
 En général: jugement humain
 Les systèmes sont mesurés en utilisant des corpus (benchmark)
 TREC (Text REtrieval Conference) Benchmark
35
Web Crawling
 Web crawlers : ce sont des programmes qui localisent et assemblent les
documents du WEB
 Récursivement suivent les hyperliens présents dans des documents déjà
connus
 Quand un document est récupéré
 Il est analysé puis indexé
 Peut ensuite être libéré ou gardé comme une copie dans le cache
 Balayer tout le WEB peut prendre beaucoup de temps (Google annonce 6
semaines avant de ré-analyser un document déjà dans l’index)
 Les moteurs de recherche ne parcourent qu’une partie du WEB
 celui accessible à partir des pages déjà analysées
 Google ré-analyse les pages qui ont été accédées
 Un parcours de tout le WEB prendrait des mois
36
Web Crawling (suite)
 Le balayage (crawling) est effectué par plusieurs processus sur
plusieurs machines en parallèle
 L’ensemble des liens à parcourir se trouve dans une BD
 Les nouveaux liens rencontrés sont ajoutés pour être
balayés ultérieurement
 Le processus d’indexation est lui aussi effectué sur plusieurs
machines
 Création d’un nouvel index
 L’ancien est utilisé pour les requêtes
 Une fois le balayage terminé, le nouveau remplace l’ancien
 Plusieurs machines sont utilisées pour répondre aux requêtes
 Les index résident en mémoire centrale
37
Navigation
 Même si les moteurs de recherche sont de plus en plus
efficaces et pertinents, il est toujours difficile de se retrouver
dans la très longue liste de documents retournés
 Utiliser des répertoires pour naviguer dans le résultat
 Les répertoires peuvent être construits off-line et le moteur
d’indexation affecte un ou plusieurs nœuds à chaque
document récupéré
 Les utilisateurs peuvent alors non seulement voir les
documents qui les intéressent mais même les autres qui
leur sont proches
 On parle alors d’une hiérarchie de classification
 Cette hiérarchie forme un graphe acyclique orienté (ou DAG)
 WEB directories (yahoo, open web directory)
38
Exemple de hiérarchie pour une bibliothèque
39