Académique Documents
Professionnel Documents
Culture Documents
Équipe Vertigo
Laboratoire CEDRIC
Conservatoire National des Arts & Métiers, Paris, France
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Plan du cours
Les requêtes Booléennes classent les documents en deux catégories : ceux qui
satisfont la requête, et les autres. C’est 1, ou c’est 0.
Exemple (voir plus loin) : cosinus de l’angle entre deux vecteurs normalisés.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
|relevant| ∩ |retrieved |
precision =
|retrieved |
Le rappel est la fraction des documents pertinents présente dans le
résultat.
|relevant| ∩ |retrieved |
recall =
|relevant|
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Pondération des termes
Le classement s’appuie sur l’idée qu’il est possible d’identifier l’importance des
termes dans un document. Deux idées essentielles
Plus un terme est rare dans la collection, plus sa présence dans un document
est importante.
Ex. : musicologie apparaît 100 fois dans une grande collection, 4 fois dans
le document d ⇒ d est un document important pour une recherche sur
“musicologie”.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Pondération des termes
tf(t, d ) = nt,d
|D|
|{d 0 ∈ D | nt,d 0 > 0}|
Ajustement. La valeur obtenu par la formule ci-dessus croît très vite avec la
taille de la collection. On ajuste en prenant le logarithme et on obtient la
fréquence inverse ds docuements (inverse document frequency, idf)
|D|
idf(t) = log 0 .
d ∈ D | nt,d 0 > 0
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Pondération des termes
Le poids d’un terme dans un document est représenté par l’indicateur Term
Frequency—Inverse Document Frequency (tf-idf)
nt,d |D|
tfidf(t, d ) = · log 0
∑t 0 nt 0 ,d d ∈ D | nt,d 0 > 0
Le poids est à 0 pour les termes qui n’apparaissent pas dans le document. On
peut donc prendre un espace multi-dimensionnel où chaque axe est un des
termes du dictionnaire.
[’car’ : 0, ..., ’jaguar’ : 0.04, ..., ’kidney’ : 0, ..., ’new’ : 5, ...., ’world’ : 1.]
Remarque
L’espace a beaucoup de dimensions (des millions d’axes). Chaque vecteur est
principalement constitué de 0.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Similarité basée sur le tf-idf
Il reste à mesurer la distance entre deux vecteurs pour obtenir une notion de
similarité.
Remarque
La requête (ensemble de mots) peut elle-même être vue comme un vecteur
dans cet espace, avec pondération uniforme.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Similarité basée sur le tf-idf
L’intuition
Plus deux documents sont “proches” l’un de l’autre, plus l’angle de leurs
vecteurs descripteurs est petit.
Rappel : le cosinus est une fonction décroisante sur l’intervalle [0, 90].
Comment ?
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Similarité basée sur le tf-idf
Seconde étape : pour deux vecteurs normalisés ~x and ~y , le cosinus est obtenu
˙ .
par le produit scalaire ~x~y
||~x|| = Σi xi yi
En pratique
On multiplie deux à deux les tf-idf des termes communs aux deux vecteurs et
on les cumule.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Similarité basée sur le tf-idf
Variantes du tf-idf
Beaucoup de variantes ont été proposées (et sont implantées – sans doute –
dans les moteurs de recherche).
Variante de la fréquence des termes.
On peut prendre le nombre de termes (standard), le log du nombre de
termes, multiplier par une constante, etc.
Variante de la fréquence des documents.
On peut l’ignorer (tous les termes sont égaux), prendre ou non le log et
varier sa base, etc.
Variante de la normalisation
On peut ne pas normaliser, normaliser par le nombre de mots du
document, par la norme du vecteur, etc.
⇒ les systèmes Open Source comme Lucene vous permettent de définir votre
propre fonction de classement en fonction des tf , idf , etc.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Calcul avec index inversés
Calculer tous les cosinus pour chaque requête : très peu souhaitable....
Les documents en tête de liste sont les plus pertinents pour le terme.
NFE204 - Bases documentaires et NoSQL
Requêtes avec classement
Calcul avec index inversés
Exercice
Algorithme de base
t1 , . . . , tn
. On suppose pour commencer que les listes sont triées sur le docId.
1 On prend la première entrée de chaque liste et on obtient un tuple
T = [e1 , . . . en ] ;
2 Soit d1 le plus petit docId dans les entrées de T : on calcule le socre de d1
(cos(q, d1 )) et on stocke dans une mémoire tampon.
3 Pour chaque entrée ei contenant d1 , on avance sur la liste Li .
Quand toutes les listes sont parcourues, on trie la mémoire tampon sur le score,
et on prend les k premiers.
Pas très efficace car il faut avoir parcouru toutes les listes. Beaucoup
d’optimisations possibles...
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
Plan du cours
Dans le cas du Web (et quelques autres systèmes), les documents sont liés par
des hyperliens.
Intuition
Un document vers lequel convergent beaucoup de chemins est un document
important.
Définition
L’indicateur PageRank (PR) d’une page pi est la probabilité qu’un utilisateur
suivant les liens de manière aléatoire arrive sur Pi .
3
9
2
1
6
5
10
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
(
gij = 0 s’il n’y a pas de lien entre les pages i et j ;
gij = n1i sinon, ni étant le nombre de liens sortant de la page i.
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 1 1 0 1 0
4 4 4 4
0 0 0 1 1 0 0 0 0 0
2 2
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 12 0 0 0 12
G = 1 1 1
3 3 0 3 0 0 0 0 0 0
0 0 0 0 0 13 0 13 0 13
0 31 0 0 0 0 0 0 13 13
1 1
0 0 0 0 0 0 0 0
2 2
0 0 0 0 1 0 0 0 0 0
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
Calcul du PageRank
0.100
0.100
0.100
0.100
0.100
0.100
0.100
0.100
0.100
0.100
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.075
0.058
0.083
0.317
0.033
0.108
0.150
0.033
0.025
0.117
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.108
0.090
0.074
0.193
0.036
0.163
0.154
0.008
0.079
0.094
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.093
0.051
0.108
0.212
0.054
0.152
0.149
0.026
0.048
0.106
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.078
0.062
0.097
0.247
0.051
0.143
0.153
0.016
0.053
0.099
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.093
0.067
0.087
0.232
0.048
0.156
0.138
0.018
0.062
0.099
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.092
0.064
0.098
0.226
0.052
0.148
0.146
0.021
0.058
0.096
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.088
0.063
0.095
0.238
0.049
0.149
0.141
0.019
0.057
0.099
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.091
0.066
0.094
0.232
0.050
0.149
0.143
0.019
0.060
0.096
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.091
0.064
0.095
0.233
0.050
0.150
0.142
0.020
0.058
0.098
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.090
0.065
0.095
0.234
0.050
0.148
0.143
0.019
0.058
0.097
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.091
0.065
0.095
0.233
0.049
0.149
0.142
0.019
0.058
0.098
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.091
0.065
0.095
0.233
0.050
0.149
0.143
0.019
0.058
0.097
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
0.091
0.065
0.095
0.234
0.050
0.149
0.142
0.019
0.058
0.097
NFE204 - Bases documentaires et NoSQL
Classement par mesures d’importance
À chaque étape, on prend en compte la possibilité d’un tel saut avec une
probabilité d (1 − d : damping factor). Ce qui donne :
pr(i) = lim ((1 − d )G T + dU)k v
k→+∞ i
1
où U est une matrice contenant N dans chaque cellule.