Vous êtes sur la page 1sur 39

Une introduction à la recherche d’information

Rémi Gilleron

Université Lille & INRIA Lille & Cristal UMR CNRS

Source principale : Introduction to Information Retrieval, C.D. Manning, P.


Raghavan, H. Schütze, Cambridge University Press

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 1 / 39
Un monde de données et de documents

numériques, hétérogènes
mails, rapports, documents textuels, pages Web, ...
mais aussi dessins, images et video,
mais encore produits par les capteurs, les réseaux sociaux, les
plate-formes d’intermédiation, ...

et en grande quantité
Exemple : 60 trillions (60 000 000 000 000) de pages Web !

génèrent de nouveaux besoins applicatifs


comme la recherche, la recommandation, la suggestion, ...

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 2 / 39
La recherche d’information (RI) – Information Retrieval

Qu’est-ce que cela désigne ?


Les principes et méthodes utilisées pour rechercher de l’information,
souvent dans des bases de textes et documents, éventuellement multimedia.

Exemples d’applications
outils de recherche dans les mails, dans les fichiers, ...
systèmes de ri documentaires,
systèmes de ri pour les bases de documents d’une entreprise,
systèmes de ri sur le Web tels que google, bing

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 3 / 39
Plan du cours

1 recherche séquentielle : outils de recherche dans les fichiers


2 modèle Booléen : indexation, matrices d’incidence et index, requêtes et
calcul de requêtes.
3 modèle vectoriel : indexation, calcul de score de pertinence
4 recherche d’information sur le Web : calcul de score de notoriété,
spécificités du Web.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 4 / 39
Plan

1 Recherche séquentielle

2 Le modèle Booléen – L’indexation

3 Modèle vectoriel - score de pertinence

4 RI sur le WEB

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 5 / 39
Recherche séquentielle dans des documents textuels

Contexte
Le cas d’un document textuel ou d’un ensemble de documents
textuels : mes fichiers, des fichiers textes, des fichiers email, ...
Un document textuel est une (simple) séquence de caractères.

Requêtes
requête simple : un mot-clé comme une séquence de caractères
parfois étendu en un langage de requêtes avec des expressions
régulières : jokers, positions, expressions Booléennes

Réponses aux requêtes


Les parties de textes (les lignes) satisfaisant les conditions exprimées dans la
requête.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 6 / 39
Les algorithmes de recherche
Requête simple
Il suffit de parcourir séquentiellement les textes en recherchant les
occurrences du mot-clé
Les algorithmes sont optimisés : par exemple recherche d’une séquence
génétique dans un gêne.

Requêtes par expressions régulières


Nécessite des algorithmes plus complexes basés sur la théorie des
langages en informatique.

Implantations
recherche simple dans les éditeurs, le navigateur, le lecteur de mail
recherche avancée en linux, dans les éditeurs comme emacs, les
langages de script comme perl

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 7 / 39
Les critiques de la recherche séquentielle

efficace pour des bases de textes de petite taille : le temps de calcul est
linéaire dans la taille de la base,
un langage de requêtes expressif avec jokers, positions et expressions
rationnelles,
pas de pré-traitement de la requête ni des textes : des caractères
(majuscules, accents, ...), des mots (synonyme, lemmes, ...), pas de
suggestion,
recherche exacte donc pas de calcul de score de pertinence.

Comment passer à de plus grandes bases de documents ?

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 8 / 39
Plan

1 Recherche séquentielle

2 Le modèle Booléen – L’indexation

3 Modèle vectoriel - score de pertinence

4 RI sur le WEB

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 9 / 39
Principes de l’indexation

Idée de base
Fait : on ne peut pas parcourir les documents à chaque requête,
on va prétraiter les documents pour savoir rapidement dans quel
document apparaît un mot.

Phases de l’indexation
prétraiter les documents,
constituer un dictionnaire de termes,
construire une structure de données associant termes et documents.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 10 / 39
Les prétraitements
sur les documents
choisir le bon niveau de documents,
représenter chaque document comme une séquence de caractères, i.e.
gérer les problèmes de codages, formats (html, pdf, doc), langues,
représenter chaque document comme une séquence d’unités
élémentaires (les tokens), i.e. écrire des programmes (spécifiques à
chaque langue) utilisant les espaces, ponctuations, ...

sur les tokens


normalisation syntaxique, i.e. gérer accents, majuscules, dates, ...
normalisation linguistique, i.e. lemmatiser ? Faire du stemming ?
définir le vocabulaire, i.e. quels mots retenir pour l’indexation ? Par
exemple, utilise-t-on une stop-liste ?

Phase complexe qui nécessite de nombreux outils logiciels (gestion des


formats, tokenization, normalisation) et de nombreux choix
Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 11 / 39
Modèle Booléen

On suppose un ensemble de documents D où chaque document est une


séquence de termes d’un dictionnaire (vocabulaire) V

Requêtes
requête simple : un mot-clé
langage de requêtes : combinaison Booléenne de mots clés
étendu à des requêtes par position : requêtes par phrase, requêtes par
position

Réponses aux requêtes


l’ensemble des documents satisfaisant les conditions exprimées dans la
requête.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 12 / 39
Première structure de données pour l’indexation

Matrice d’incidence
On mémorise l’appartenance de chaque mot du vocabulaire V dans chaque
document par une matrice indicée en ligne par les mots de V et en colonne
par les documents de D.

M(w, d) = 1 si w apparaît dans d et 0 sinon

Exemple
mot / #doc ... 125 ... 1548 ... 54 982 ...
... ... ... ... ... ... ... ...
finance ... 1 ... 0 ... 1 ...
... ... ... ... ... ... ... ...
politique ... 0 ... 1 ... 1 ...
... ... ... ... ... ... ... ...

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 13 / 39
Accès rapide à une ligne pour un mot

Comment ?
1 Recherche séquentielle : temps linéaire dans la taille du vocabulaire.
Trop lent !
2 Recherche dichotomique : le vocabulaire est trié, on regarde le mot du
mileu, on cherche sur le même principe dans la première ou seconde
moitié. Temps logarithmique dans la taille du vocabulaire. C’est bien !
3 Recherche avec un arbre de recherche : arbre dont les feuilles donnent
accès à la ligne et les noeuds disent quelle branche suivre. Temps
logarithmique dans la taille du vocabulaire. C’est bien !
4 Recherche avec une fonction de hachage : fonction qui calcule le
numéro de ligne à partir du mot. Temps constant. C’est excellent !
Mais, attention, pour les solutions 2, 3 et 4, il faut gérer l’ordre, l’arbre ou la
fonction lorsque le vocabulaire est modifié.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 14 / 39
Les algorithmes de calcul d’une requête

Requête simple à 1 mot clé


1 Trouver la ligne correspondant au mot.
2 Renvoyer les documents avec des 1 dans la ligne.

Requêtes Booléennes
1 Trouver les lignes correspondant aux mots qui apparaissent dans la
requête
2 Faire les opérations Booléennes sur les lignes (les vecteurs)
3 Renvoyer les documents avec un 1 dans la ligne résultat.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 15 / 39
Les critiques du Modèle Booléen avec matrice d’incidence

efficace : le temps de calcul est logarithmique dans la taille du


vocabulaire et linéaire dans le nombre de documents donc  à un
temps linéaire dans la taille de la base de documents
un langage de requêtes expressif avec expressions Booléennes sur des
mots clé avec des algorithmes simples,
recherche exacte donc pas de calcul de score de pertinence,
pas de requête par phrase et par position,
Limites : taille de la matrice. Exemple : 1 000 000 documents et 100 000
mots donnent une matrice de taille 100 milliards !

Comment passer à l’échelle pour de plus grandes bases ?

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 16 / 39
Deuxième structure de données pour l’indexation

Index – “Inverted Index”


Idée : ne mémoriser que les 1 de la matrice
Pour chaque mot du vocabulaire V , on mémorise la liste des documents,
ordonnée par numéros croissants, dans lesquels le mot apparaît.

Exemple
mot / liste
... ...
finance : ... → 125 → ... → 54 982 → ...
... ...
politique : ...→ 1548 → 54982 → ...
... ...

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 17 / 39
Les algorithmes de calcul d’une requête

Requête simple à 1 mot clé


1 Trouver la ligne correspondant au mot.
2 Renvoyer les documents dans la liste.

Requête conjonctive à 2 mots clé


1 Trouver les listes correspondant aux deux mots,
2 Faire l’intersection des deux listes. Comment ? Penser à utiliser l’ordre

Requête Booléennes
1 Requête conjonctive à 3 mots clé. Peut-on être astucieux ?
2 Requêtes avec des OU ? Des NON ?

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 18 / 39
Et les requêtes par phrase ? Par position ?

Enrichir l’index
Il faut, en effet, être capable de savoir à quelle position apparait chaque mot.
Dans l’index, pour chaque mot et chaque document, on ajoute la liste des
positions où apparaît le mot. Par exemple,
finance : ... → 125 : (37, 235, 312) → ... → 54 982 : (122) → ...

Algorithme de calcul de requête par phrase


Appliquer l’algorithme d’intersection
et vérifier les conditions de position quand tous les mots apparaissent.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 19 / 39
Les critiques du Modèle Booléen avec index

efficace : le temps de calcul est logarithmique dans la taille du


vocabulaire et linéaire dans la taille des listes, donc un gain en temps
de calcul et en espace par rapport à une matrice d’incidence
un langage de requêtes avec mots-clés, conjonctions et requêtes par
position,
recherche exacte donc pas de calcul de score de pertinence,
nécessite un index enrichi avec des listes de position, des nombres de
documents. Cet index doit être géré et mis à jour.

Comment passer à des calculs de score de pertinence ?

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 20 / 39
Plan

1 Recherche séquentielle

2 Le modèle Booléen – L’indexation

3 Modèle vectoriel - score de pertinence

4 RI sur le WEB

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 21 / 39
Modèle vectoriel

On suppose un ensemble de documents D où chaque document est une


séquence de termes d’un dictionnaire (vocabulaire) V

Requêtes
requête simple : un mot-clé ou plusieurs mots clés
et des requêtes par phrase,
parfois des requêtes sur des parties de documents (titre, résumé), par
positions, Booléennes

Réponses aux requêtes


Une liste de documents ordonnée par score de pertinence dont on ne
regarde souvent que le début : algorithme des k-best avec souvent k=10.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 22 / 39
Représenter les documents - term frequency

Objectif de la représentation
Calculer un score de pertinence d’un document w.r.t. une requête.
Ce score va devoir tenir compte des fréquences d’apparition des mots de la
requête dans le document, dans tous les documents, de la longueur des
documents, ...

Première proposition
Term Frequency tf (w, d) est le nombre d’apparitions du mot w de V
dans le document d
Un document d peut être vu comme un vecteur ~d indicé sur V avec des
valeurs entières.
~d = (0, 0, 2, 0, 0, 5, ...) si d ne contient pas le premier mot de V , ni le
deuxième, mais le troisième apparaît 2 fois, ...

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 23 / 39
Inverse Document Frequency

Critiques de la term frequency


Elle ne tient pas compte de l’importance des mots dans la collection. En
effet, savoir qu’un mot apparaît souvent dans un document alors qu’il
apparaît souvent dans beaucoup de documents n’est pas très informatif !

tenir compte aussi de la fréquence dans tous les documents


On a le choix entre le nombre d’apparitions dans toute la collection ou
le nombre de documents dans lequel il apparaît

Reuters collection frequency cf (w) document frequency df (w)


try 10 422 8 760
insurance 10 440 3 997
On constate que la document frequency df est plus discriminante.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 24 / 39
Représenter les documents - tf-idf

Inverse document frequency


Inverse Document frequency d’un mot w est idf (w) = log( df N(w) ) et
I Si w est rare, df (w) est petit, idf (w) est grand.
I Si w est fréquent, df (w) est grand, idf (w) est petit.

Représentation tf-idf
tf -idf (w, d) = tf (w, d) × idf (w). Un document d peut être vu comme
un vecteur ~d indicé sur V avec des valeurs réelles.
et tf -idf (w, d) est
I grand si w apparaît souvent dans d et est rare dans la collection
I petit si w apparaît peu souvent dans d ou si w est fréquent dans la
collection
I très petit w apparaît peu souvent dans d et est fréquent dans la
collection

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 25 / 39
Conclusion sur la représentation des documents

Tenir compte de la longueur des documents


Un document d est représenté comme un vecteur ~d indicé sur V avec le
tf ou le tf -idf .
Les valeurs augmentent avec tf donc aussi avec la longueur du
document. Une solution : normaliser le vecteur, c’est-à-dire se ramener
à des valeurs entre 0 et 1 dont la somme des carrés vaut 1.

Où en sommes-nous ?
On suppose un ensemble de documents D où chaque document est une
séquence de termes d’un dictionnaire (vocabulaire) V ;
On suppose choisie une représentation des documents telle que tout
document d est représenté comme un vecteur ~d de nombres réels.

Reste à définir un score de similarité entre documents !

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 26 / 39
Similarité entre deux documents
Soit deux documents d1 et d2 représentés par des vecteurs d~1 et d~2 , on
définit la similarité entre les documents d1 et d2 par

Sim(d1 , d2 ) = Cos(d~1 , d~2 )

Calcul et propriétés
Le cosinus est calculé en effectuant
I la somme des produits des composantes 2 à 2. Note : un produit est non
nul si les deux composantes sont non nulles, i.e. si le mot est présent
dans les 2 documents
I divisée par le produit des normes des vecteurs où la norme d’un vecteur
est la racine carrée de la somme des carrées des composantes.
Sim(d1 , d2 ) est compris entre 0 et 1, voisin de 1 si les documents sont
similaires, voisin de 0 sinon.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 27 / 39
Score de pertinence entre document et requête
Soit une requête q, c’est un petit document, donc on peut représenter q par
un vecteur ~q. Soit un document d représenté par un vecteur ~d, on définit le
score de pertinence de d par rapport à q par

ScorePertinence(q, d) = Sim(q, d) = Cos(~q, ~d)

Propriétés du score
peut être calculé avec toute représentation vectorielle pour d et q,
souvent tf pour d et tf -idf pour q
est utilisé pour comparer des documents par rapport à une requête,
peut être grand même si tous les mots de la requête ne sont pas
présents dans le document,
peut être calculé efficacement avec un “inverted index”

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 28 / 39
Calcul du score de pertinence
Pré-requis : indexation
Une base de documents D sur un vocabulaire V ,
un index donnant pour tout w de V la liste des documents contenant w,
un accès rapide par le mot dans cet index,
index enrichi par la longueur de la liste, df (t), tf (w, t), ...,
et la liste des positions (requêtes par phrase).

On peut calculer efficacement ScorePertinence(q, d)


Soit une requête q,
seuls les mots de q sont utiles pour calculer le score,
en effet, les composantes de ~q sont nulles sauf pour les mots de q, donc
on utilise l’index et on ne considère que les documents contenant des
mots de q.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 29 / 39
Algorithme des k-best answers

entrée : q un ensemble de mots de V

POUR tout d de D FAIRE Score(d) <- 0 FINPOUR


POUR chaque mot w de q FAIRE
calculer composante vwq d’indice w de vec(q)
FINPOUR
POUR chaque mot w de q
POUR chaque d dans la liste de w FAIRE
calculer composante vwd d’indice w de vec(d)
Score(d) <- Score(d) + vwq * vwd
FINPOUR
FINPOUR
POUR chaque d de D FAIRE normaliser Score(d) FINPOUR

sortie : les k documents de D avec plus grand score

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 30 / 39
Conclusion du modèle vectoriel
Modèle vectoriel
requêtes avec plusieurs mots clés, par phrase. Pas de requêtes
Booléennes.
réponses aux requêtes est un ordre sur les documents et pas un
ensemble de documents,

Score de pertinence
Une base de documents D, un vocabulaire V , un index, nous pouvons
calculer, pour toute requête q, un score de pertinence qui permet de
trier les documents de D par ordre de pertinence par rapport à q.
peut être étendu à des requêtes par phrase,
peut être calculé sur des parties de documents (titre, résumé,
introduction) et les scores combinés,
il existe de nombreuses variantes de formules de calcul,
une brique de base de la RI sur le Web.
Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 31 / 39
Plan

1 Recherche séquentielle

2 Le modèle Booléen – L’indexation

3 Modèle vectoriel - score de pertinence

4 RI sur le WEB

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 32 / 39
Spécificités de la recherche d’information sur le Web

Taille : très grand nombre de documents. Estimation à 60 000 000 000


000 documents.
Hétérogénéité : très grande variété de documents.
Répartition : documents répartis sur Internet.
Structure du Web : documents interconnectés par des hyperliens.

Nous allons voir comment prendre en compte tous ces aspects pour définir
et calculer le score d’un document Web d relativement à une requête q. Ce
score permet de classer les documents par score décroissant et vous les
présenter par pages de 10 résultats.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 33 / 39
Indexation du Web

Création de l’index
définir l’ensemble des documents : tous les documents du Web quel
que soit le format,
définir le vocabulaire : tous les termes apparaissant sur le Web sans
tenir compte de casse et accents,
réalisé par des robots (programmes) qui “crawlent” le Web.
Référencement : facilitez la visite des robots sur votre site.

Spécificités de l’index
Index de très grande dimension : taille du vocabulaire (des millions) et
de la base de documents (des trillions)
Index réparti : des fermes de calcul réparties dans le monde entier

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 34 / 39
Score de pertinence

Soit une requête q composée de plusieurs mots clés


Calcul du score de pertinence
calculé comme dans le modèle vectoriel mais sur plusieurs éléments :
I le contenu du document,
I les contenus des éléments de structure : titres de niveau 1, de niveau 2,
I les métadonnées : title, keywords
I l’adresse du document
I les textes des balises pointant sur le document
les différents scores sont composés (combinaison linéaire)
Référencement : les mots sur lesquels vous souhaitez être référencés
doivent apparaître au bon endroit.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 35 / 39
Utiliser la structure du Web
Sur quel principe ?
Idée de base : une page est importante si beaucoup de pages importantes
pointent sur elle.

Comment ?
Représenter le Web comme un graphe orienté : un noeud est une page
Web, un arc est un hyperlien entre deux pages.
Sur ce graphe, on peut définir un surfeur aléatoire : avec proba c = 0.15,
il va sur une page tirée aléatoirement uniformément ; avec proba
1 − c = 0.85, il suit un des liens de la page avec probabilité uniforme,
avec des mathématiques et de l’informatique, on définit
l’algorithme PageRank qui calcule la probabilité de passer sur chacune
des pages ce qui définit le score de notoriété d’une page Web.
Référencement : bon contenu pour que beaucoup de pages bien
référencées pointent sur la page.
Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 36 / 39
Score sur le Web
Soit une requête q composée de plusieurs mots clés

Le score Score(q, d) d’un moteur de RI combine


le score de pertinence de q relativement à d
le score de notoriété de d
avec une combinaison linéaire avec des coefficients bien choisis.

Il prend également en compte


la langue et le pays,
la (géo)localisation de la requête,
le type de terminal utilisé pour poser la requête,
votre historique si vous êtes identifiés sur un compte,
et autres.

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 37 / 39
Conclusions et interrogations

Référencement
Respecter les règles, normes et facilitez les visites des robots
Contenu adapté avec termes importants bien placés
Contenu intéressant pour que des pages importantes vous référencent

Réflexions sociétales et évolutions en cours


Les formules de calcul de score sont secrètes, bien gardées et évoluent
Interrogation en langage naturel plutôt que par mots clés
Développement du Web des données (“knowledge graph”)

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 38 / 39
Conclusion

Contenu du cours : principes de base pour


Système de RI avec modèle Booléen
Système de RI avec modèle vectoriel (score de pertinence)
Système de RI sur le Web

Implications dans mes pratiques professionnelles futures


Des connaissances mais aussi
une bonne compréhension des principes d’indexation et de calcul de
score
pour être à même de contribuer au bon référencement d’un site Web

Rémi Gilleron (Université Lille & INRIA Lille & Cristal UMR CNRS) Rech. Info. 39 / 39

Vous aimerez peut-être aussi