Vous êtes sur la page 1sur 61

Chapitre II

Les modèles de
recherche d'information

L’objectif de ce chapitre est d’introduire
les principaux modèles (avec algorithmes
associés) utilisés en Recherche
d’Information (RI).
.
Plan

1. L’indexation et la représentation des documents


2. Les modèles standard de la RI ad hoc :
2.1. Le modèle booléen
2.2. Le modèle vectoriel
2.3 .Les modèles probabilistes
Indexation, Représentation

Généralement, nous trouvons deux grandes techniques:

▧ Indexation par sac-de-mots et représentation vectorielle


▧ Le fichier inverse : indexation efficace
Indexation, Représentation

Etapes de l’indexation textuelle


1. Segmentation
▧ Découper un texte en mots :
l’information donne sens à l’esprit
l’, information, donne, sens, à, l’, esprit
▧ soit 7 mots mais seulement 6 types ;
▧ nécessité d’un dictionnaire (au moins léger) pour certains mots
ou expressions
Indexation, Représentation

Etapes de l’indexation textuelle


2. Filtrage par un anti-dictionnaire des mots vides
3. Normalisation
▧ Filtrage par un anti-dictionnaire des mots vides
▧ De la casse, des formes fléchies, des familles lexicales
▧ Lemmatisation, racinisation
Sac-de-mots : inform, don, sens, esprit
Indexation, Représentation

Représentation vectorielle des docs


L’ensemble des types forme le vocabulaire d’une collection.
Soit M la taille de ce vocabulaire, et soit N le nombre de
documents dans la collection
On considère l’espace vectoriel à M dimensions (RM), dans
lequel chaque axe correspond à un type
Indexation, Représentation

Représentation vectorielle des docs


Chaque document est alors représenté par un vecteur de RM
dont les coordonnées sont les poids des mots dans le document :

𝑑
▧ Présence/absence :𝑡𝑤 = 1 si w apparaît dans d , 0 sinon
𝑑 = #𝑜𝑐𝑐 𝑤, 𝑑
▧ Nbre d’occurrences : 𝑡𝑤

𝑑 # 𝑜𝑐𝑐(𝑤,𝑑)
▧ Nombre d’occurrences normalisé : 𝑡𝑤 = σ 𝑤 ′ #𝑜𝑐𝑐(𝑤 ′ ,𝑑)

▧ Autres : Le tf*idf
Indexation, Représentation

Représentation vectorielle des docs


La représentation vectorielle adoptée permet d’avoir
directement accès aux outils mathématiques associés :
distances, similarités, réduction de dimensions, ...
Indexation, Représentation

Exercice :
▧ Chaque document est représenté par un tableau à M
dimensions contenant les poids (coordonnées) des termes
(types, mots) ; écrire un algorithme qui calcule le produit
𝑑 𝑡 𝑑′
scalaire entre 2 documents 𝑠𝑐𝑎𝑙 𝑑, 𝑑′ = σ𝑤 𝑡𝑤 𝑤
▧ Quelle est la complexité d’un algorithme qui calcule le
produit scalaire entre un document et tous les autres
documents de la collection ?
Indexation, Représentation

Une représentation creuse !


La majorité des termes de la collection n’apparaissent pas
dans un document donné ; chaque document a donc la
majeure partie de ses coordonnées nulles ; un gain d’espace
peut être obtenu en ne représentant pas ces coordonnées
nulles
Indexation, Représentation

Une représentation creuse !


Exemple de représentation creuse

−int l (𝑙𝑜𝑛𝑔. 𝑑𝑢 𝑑𝑜𝑐. (𝑡𝑦𝑝𝑒𝑠))


−𝑇𝑎𝑏𝑇𝑒𝑟𝑚𝑒𝑠 𝑖𝑛𝑡[𝑙] (𝑖𝑛𝑑𝑖𝑐𝑒𝑠 𝑑𝑒𝑠 𝑡𝑒𝑟𝑚𝑒𝑠)
𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡 𝑑
−𝑇𝑎𝑏𝑃𝑜𝑖𝑑𝑠 𝑓𝑙𝑜𝑎𝑡[𝑙] (𝑝𝑜𝑖𝑑𝑠 𝑑𝑒𝑠 𝑡𝑒𝑟𝑚𝑒𝑠)
− ……
Indexation, Représentation

Le fichier inverse
Possibilité d’accélérer le calcul dans le cas de représentations
creuses, en utilisant un fichier inverse qui fournit, pour chaque
terme, l’ensemble des documents dans lesquels il apparaît :

−int l (𝑛𝑏. 𝑑𝑢 𝑑𝑜𝑐. 𝑎𝑠𝑠𝑜𝑐)


−TabDocs int[l] (indices des docs)
Terme i ……..
Indexation, Représentation

Le fichier inverse
On procède alors en 2 étapes :
1 Construction de l’ensemble des documents qui contiennent au
moins un terme de la requête
2 Calcul de la similarité/distance entre requête et les documents
de cet ensemble
Remarque : Avantageux (gain de 3 à 5 ordres de grandeur) avec
toute mesure (distance, similarité) qui ne fait pas intervenir les
termes non présents dans un document. Produit scalaire ?, cosinus ?,
distance euclidienne.
Indexation, Représentation

Le fichier inverse (Illustration)


Collection

programmation langage C java · · ·


d1 3 (1) 2 (1) 4 (1) 0 (0) · · ·
d2 5 (1) 1 (1) 0 (0) 0 (0) · · ·
d3 0 (0) 0 (0) 0 (0) 3 (1) · · ·

Fichier inverse
d1 d2 d3 ···
programmation 1 1 0 ···
langage 1 1 0 ···
C 1 0 0 ···
··· ··· ··· ···
Indexation, Représentation
Construction du fichier inverse
Dans le cadre d’une collection statique, 3 étapes principales
régissent la construction du fichier inverse :
1. Extraction des paires d’identifiants (terme, doc), passe complète
sur la collection
2. Tri des paires suivant les id. de terme, puis les id. de docs
3. Regroupement des paires pour établir, pour chaque terme, la
liste des docs
Ces étapes ne posent aucun problème dans le cas de petites
collections où tout se fait en mémoire

PB !!!! Pour les grandes collections ?


Indexation, Représentation

Construction du fichier inverse


L’algorithme BSBI

• n←0

• while (tous les docs n’ont pas été traités)

• do

• n←n+1

• block ← ParseBlock()

• BSBI-Invert(block)

• WriteBlockToDisk(block,f
n
)

• MergeBlocks(f , ..., f ;f
1 n merged
)
Indexation, Représentation

Construction du fichier inverse


L’algorithme BSBI

L’inversion, dans BSBI, consiste en un tri sur les identifiants de


termes (première clé) et les identifiants de documents
(deuxième clé). Le résultat est donc un fichier inverse pour le
bloc lu. Complexité en O(T log T) où T est le nombre de paires
terme-document (mais étapes de lecture et de fusion peuvent
être plus longues)
Indexation, Représentation

Construction du fichier inverse


L’algorithme BSBI

Exemple
w1 = "brutus", w2 = "caesar", w3 = "julius", w4 = "kill",
w5 = "noble"

w1 : d1 w2 : d4 w2 : d1
w3 : d10 w1 : d3 w4 : d8
w5 : d5 w2 : d2 w1 : d7
Le Modèle Boolean

▪ Le modèle booléen est le premier modèle de la RI.


▪ Il est basé sur la théorie des ensembles.
▪ Un document est représenté par l’ensemble des termes qui
le composent.
▪ la requête « retrieval » définit simplement l’ensemble de
tous les documents indexés avec le terme « retrieval ».
▪ Les requêtes peuvent être composées de plusieurs termes
reliés entre eux par des opérateurs de la logique booléenne
« and, or, not ».
Le Modèle Boolean

▪ Modèle de connaissances : 𝑻 = 𝒕𝒊 , 𝒊 ∈ 𝟏. . 𝑴
• Termes 𝑡𝑖 qui indexent les documents
▪ Le modèle de documents (contenu) est une expression
booléenne dans la logique des propositions avec les 𝑡𝑖
considérés comme des propositions :
• Un document 𝑫𝟏 est représenté par une formule 𝑫𝟏
𝑫𝟏 = 𝒕𝟏 ∩ 𝒕𝟑 ∩ 𝒕𝟐𝟓𝟎 ∩ 𝒕𝟐𝟓𝟒
• Une requête 𝑸 est représentée par une formule logique 𝑸
𝑸 = 𝒕𝟏 ∩ 𝒕𝟑 ∪ 𝒕𝟐𝟓 ∩ 𝒕𝟏𝟎𝟒𝟓 ∩ ¬𝒕𝟏𝟑𝟒
Le Modèle Boolean

▪ Modèle de connaissances : 𝑻 = 𝒕𝒊 , 𝒊 ∈ 𝟏. . 𝑴
• Termes 𝑡𝑖 qui indexent les documents
▪ La fonction de correspondance est basée sur l’implication
logique en logique des propositions :
• Un document 𝐷 répond a une requête 𝑄 si et seulement si
𝐷⊃𝑄
• Utilisation de déduction par
𝐴𝑥𝑖𝑜𝑚𝑒 ∶ 𝑎 ∩ 𝑏 ⊃ 𝑎, 𝑎 ∩ 𝑏 ⊃ 𝑏, 𝑎 ⊃ 𝑎 ∪ 𝑏 ⊃ 𝑏, 𝑏 ⊃ 𝑎 ∪ 𝑏 , …
𝑀𝑜𝑑𝑢𝑠 𝑝𝑜𝑛𝑒𝑛𝑠 𝑀𝑃 : 𝑠𝑖 𝑎 𝑒𝑡 𝑎 ⊃ 𝑏 𝑎𝑙𝑜𝑟𝑠 𝑏
Le Modèle Boolean
▪ Exemple
• 𝐷 = 𝑡𝟏 ∧ 𝑡3 et Q= 𝑡𝟏 ∨ 𝑡4
▪ Déduction
1. 𝑡𝟏 ∧ 𝑡3 ⊃ 𝑡1 (é𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡 𝑎 𝐷 ⊃ 𝑡1 )
2. 𝑀𝑃 1 ∶ 𝑡1
3. 𝑡1 ⊃ 𝑡1 ∨ 𝑡4 (é𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡 𝑎 𝑡1 ⊃ 𝑄)
4. MP(3) : Q
▪ Déduction
Q est donc dérivable à partir de D, donc 𝐷 ⊃ 𝑄 : le document
répond à la requête.
Le Modèle Boolean

▪ Correspondance stricte
𝑄 = 𝑡𝟏 ∧ 𝑡3 ∧ 𝑡4
𝐷1 = 𝑡𝟏 ∧ 𝑡4
𝐷1 ⊃ 𝑄

Le document 𝐷1 n’est pas pertinent pour la requête Q d’après le


modèle, alors qu’il contient une description ≪ proche ≫ de la
requête.
Le Modèle Boolean

▪ Pas de distinction entre les documents pertinents


𝑄 = 𝑡𝟏 ∧ 𝑡3 ∧ 𝑡4
𝐷2 = 𝑡𝟏 ∧ 𝑡4 , 𝐷3 = 𝑡𝟏 ∧ 𝑡3 ∧ 𝑡4 ∧ 𝑡5 ∧ 𝑡6 ∧ 𝑡7
𝐷2 ⊃ 𝑄 𝑒𝑡 𝐷3 ⊃ 𝑄

Le document 𝐷2 est-il plus ou moins pertinent que 𝐷3 pour la


requête Z ?

▪ Expression de requêtes complexe


𝑄 = 𝑡1 ∧ 𝑡4 ∨ 𝑡6 ∧ 𝑡8 ∨ (¬𝑡10 ∧ 𝑡40) … … ? ? ? ?
Le Modèle Boolean
▪ Exemple
- q = programmation ∧ langage ∧ (C ∨ java)
(q = [prog. ∧ lang. ∧ C] ∨ [prog. ∧ lang. ∧ java])

programmation langage C java ···


d1 3 (1) 2 (1) 4 (1) 0 (0) ···
d2 5 (1) 1 (1) 0 (0) 0 (0) ···
d0 0 (0) 0 (0) 0 (0) 3 (1) ···
Le Modèle Boolean
▪ Considérations algorithmiques
Quand la matrice documents-termes est creuse
(lignes et colonnes), utiliser un fichier inverse pour
sélectionner le sous-ensemble des documents qui ont un
score de pertinence non nul avec la requête (sélection
rapidement réalisée). Le score de pertinence n’est alors
calculé que sur les documents de ce sous-ensemble
(généralisation à d’autres types de score).

d1 d2 d3 ···
programmation 1 1 0 ···
langage 1 1 0 ···
C 1 0 0 ···
··· ··· ··· ···
Le Modèle Boolean

Avantages et désavantages
▪ + Facile à développer
▪ - Pertinence binaire ne permet pas de tenir compte des
recouvrements thématiques partiels
▪ - Passage d’une besoin d’information à une expression
booléenne

Remarque : À la base de beaucoup de systèmes commerciaux


Le Modèle Vectoriel

Rappels sur les vecteurs en géométrie 2D

Un espace à deux dimensions


▧ Une origine
▧ Deux axes perpendiculaires avec des unités
▧ Un point défini par deux coordonnées sur ces axes
Le Modèle Vectoriel

Rappels sur les vecteurs en géométrie 2D

Un vecteur dans un espace à deux dimensions


▧ Définition informelle : une direction, un sens et une distance
▧ Définition formelle : deux coordonnées sur les axes
Le Modèle Vectoriel

Calculs sur les vecteurs


Coordonnées

▧ Soit un vecteur u défini par ses coordonnées 𝑈𝑥 , 𝑈𝑦 .


Norme
▧ Longueur du vecteur
▧ Formule pour le vecteur 𝑈 :

𝑈 = 𝑈𝑥2 + 𝑈𝑦2
Le Modèle Vectoriel

Calculs sur les vecteurs


Produit scalaire
▧ Produit de deux vecteurs qui renvoie un nombre (scalaire)
▧ Formule :
𝑈. 𝑉 = 𝑈𝑥 . 𝑉𝑥 + 𝑈𝑦 . 𝑉𝑦
Le Modèle Vectoriel

Calculs sur les vecteurs


Cosinus
La mesure dépend de l’angle formé entre deux vecteurs
▧ Elle est comprise entre -1 et 1 pour des angles entre 0 et 2pi
(entre 0 et 1 pour des angles entre 0 et pi/2)
▧ Formule :

𝑈. 𝑉
cos 𝑈, 𝑉 =
𝑈 𝑉
Le Modèle Vectoriel

Généralisation à n dimensions
Vecteur
▧ Un vecteur est placé dans un espace à n dimensions (n axes)
▧ Un vecteur u est défini par un n-uplet (𝑈1 , 𝑈2 , … . , 𝑈𝑛 )

Vecteur

𝑁
𝑈 = ෍ 𝑈𝑖2
𝑖=1
Le Modèle Vectoriel

Généralisation à n dimensions
Produit Scalaire
𝑁
𝑈. 𝑉 = ෍ 𝑈𝑖 𝑉𝑖
𝑖=1

Cosinus
𝑈.𝑉
cos(𝑈, 𝑉) = 𝑈 𝑉
Le Modèle Vectoriel
▧ Proposé par Salton dans le système SMART (Salton, G. 1970)
▧ Idée de base :
Représenter les documents et les requêtes sous forme de
vecteurs dans l’espace vectoriel engendré par tous les termes de
la collection de documents :
T<t1,t2, …, tM> (un terme = une dimension)
o Document : dj= (w1j, w2j, …, wMj )
o Requête : q= (w1q, w2q, …, wMq )
wij: poids du terme ti dans le document dj tf*idf
Le Modèle Vectoriel
Représentation des documents dans un espace vectoriel
▧ Un texte comme un sac de mots
▧ Pondération des mots
▧ La représentation vectorielle ne tient pas compte de l’ordre
des mots
✓ « Un garçon manque une pomme » est représenté par le même
vecteur que « une pomme mange un garçon »
✓  c’est ce que l’on appelle « Sac de mots » (Bag of words)
Le Modèle Vectoriel
Représentation des documents dans un espace vectoriel
✓ Une collection de n documents et M termes distincts peut être
représentée sous forme de matrice

✓ La requête est également représentée par un vecteur.


Le Modèle Vectoriel
Mesure de la pertinence
✓ Pertinence est traduite comme une similarité de vecteurs

✓ La pertinence est traduite en une similarité vectorielle :


un document est d1 est d’autant plus pertinent à une requête que
le vecteur associé est similaire à celui de la requête..
Le Modèle Vectoriel
Pondération des mots
▧ Pondération naïve
✓ Poids binaire (1 si terme présent dans le document, 0 sinon)
✓ Fréquence du mot dans le document

▧ Pondération plus intelligente


✓ On utilise des fonctions correctrices de la fréquence
✓ On prend aussi en compte la distribution du mot dans la
collection où est plongée le texte
Le Modèle Vectoriel
Pondération des mots

▧ Pondération des termes pour les documents :


✓ Un document
« Un violon est issu de bois précieux comme l’érable, palissandre, l’ébène. »
✓ Pour indexer, la première idée est de compter les mots les plus
fréquents excepté les termes non significatifs comme « de »,
« avec », « comme »…
▧ « Un violon est composé de bois précieux comme l’érable, le palissandre,
l’ébène... »
Le Modèle Vectoriel
Pondération des mots

▧ Fréquence d’un terme (term frequency)


✓ ti,j : la fréquence du terme tj dans le document Di est égale au
nombre d’occurrences de tj dans Di.

✓ Exemple : si violon apparaît 5 fois dans le document D3, avec

violon=t23, alors t3,23 = 5


Le Modèle Vectoriel
Pondération des mots
✓ On tient compte du corpus (base de documents) entier, un
terme qui apparaît beaucoup ne discrimine pas nécessairement
les documents :
Le Modèle Vectoriel
Pondération des mots

▧ Fréquence documentaire d’un terme


✓ dfj : la fréquence dans le corpus du terme tj est le nombre de
documents du corpus où tj apparaît
▧ On utilise l’inverse de la fréquence documentaire, idfj :
✓ Définition simple : idfj = 1 / dfj

✓ Définition la plus utilisée : idfj = log(ND / dfj), avec ND le


nombre de documents du corpus.
Le Modèle Vectoriel
Pondération des mots

▧ Combinaison du tf et de l’idf pour un vecteur document:


✓ Exemple le plus courant
wi,j = ti,j . idfj
▧ Utilisation du tf pour une requête
Le Modèle Vectoriel
Fonction de correspondance :

▧ Fonction de l’angle entre le vecteur requête Q et le vecteur


document Di
Le Modèle Vectoriel

Fonction de correspondance :
▧ Une solution est de calculer le cosinus de l’angle entre le
vecteur requête et le vecteur document.
✓ Produit scalaire
✓ Cosinus de l'angle
✓ Distance euclidienne
Le Modèle Vectoriel
Avantages et inconvénients:
▧ Avantages :
✓ Le langage de requête est plus simple (liste de mot clés)
✓ Les performances sont meilleures grâce à la pondération des
termes
✓ Le renvoi de documents à pertinence partielle est possible
✓ La fonction d'appariement permet de trier les documents
▧ Inconvénients :
✓ Le modèle considère que tous les termes sont indép
Le Modèle Probabiliste
▧ Il existe différentes manières de voir une approche probabiliste de
la recherche d’information
✓ Approche classique : probabilité d’avoir l’événement Pertinent
sachant un document et une requête.
✓ Approche par réseaux d’inférence : probabilité que la requête
soit vraie d’après une inférence à partir du contenu du
document.
✓ Approche par modèle de langue : probabilité qu’une requête
posée soit générée à partir d’un document.
Le Modèle Probabiliste

Modèle probabiliste classique

✓ Le modèle probabiliste classique consiste à calculer la


pertinence d'un document en fonction de pertinences
connues pour d'autres documents.

✓ Ce calcul se fait en estimant la pertinence de chaque index


pour un document et en utilisant le Théorème de Bayes et
une règle de décision
Le Modèle Probabiliste

Modèle probabiliste classique


Le Modèle Probabiliste

Modèle probabiliste classique


Fonction de correspondance :
• Utilisation du théorème de Bayes

Théorème de Bayes sur néon bleu, dans les bureaux


d’Autonomy à Cambridge.
Le Modèle Probabiliste

Modèle probabiliste classique


Fonction de correspondance :
• Utilisation du théorème de Bayes
Le Modèle Probabiliste

Modèle probabiliste classique


Fonction de correspondance :
• Décision : document retourné si

• En RI, on cherche un ordre, donc on peut éliminer Prob(rel)/Prob(nonrel) pour


une requête donnée
• En RI, on passe par les log :
Le Modèle Probabiliste
Modèle probabiliste classique
Fonction de correspondance :
Le Modèle Probabiliste

Modèle probabiliste classique


Le Modèle Probabiliste

Modèle probabiliste classique


Le Modèle Probabiliste

Modèle probabiliste classique


Le Modèle Probabiliste

Modèle probabiliste classique


Le Modèle Probabiliste

Modèle probabiliste classique


A suivre…