• Aucun résultat trouvé

Algorithmes de recherche et de recommandation

1.6 Organisation de la thèse

2.1.3 Algorithmes de recherche et de recommandation

La plupart des contributions précédentes se focalisent sur la prédiction de scores entre un objet et un utilisateur. Généralement, la recommandation exploite cette information pour en retourner les meilleures prédictions, étant donné un utilisateur u.

Les solutions de top-N vont parcourir les structures de données déjà exis- tantes, comme la matrice S afin de produire ces recommandations. À l’inverse, les solutions de type top-k vont s’appuyer sur des listes inversées (décrites plus loin) afin de calculer ces recommandations. L’utilisation de ces listes permet une plus grande interactivité avec l’utilisateur qui pourra par exemple soumettre des requêtes, ou se voir recommander des objets dynamiquement en fonction de ceux qu’il consulte à l’instant présent.

Algorithme 1: Calcul des top-N recommandations via une recomman-

dation à base de contenus

Input:

M : la matrice m × m des k plus proches

U : un vecteur de taille m indiquant si un objet à été évalué par u

N : le nombre de recommandations souhaité

Output:

Les top-N recommandations. 1 begin 2 x ← M U; 3 for j ← 1 to m do 4 if Uj *= 0 then 5 xi ← 0; 6 for j ← 1 to m do

7 if xj ne fait pas partie des top-N recommandations dans x then

8 xj ← 0;

9 return x;

Top-N

Étant donné l’ensemble des objets I et la matrice Users × Items S, le but d’une recommandation top-N est de recommander à l’utilisateur courant u un ensemble trié d’au maximum N objets qu’il n’a pas encore accédé [48, 79]. Ainsi, via une approche basée sur les contenus, la recommandation peut se produire en deux étapes, telles que décrites dans l’Algorithme 1 :

1. La première consiste à construire une matrice Mm×m telle que chaque ligne et colonne représentent un objet – m est donc le nombre d’objets. Toutes les cases indiquent dans un premier temps la similarité entre l’objet i et j si

i *= j. Puis, si j ne fait pas partie des k objets les plus similaires à i alors sa

valeur est passée à 0. En définitive, on obtient une matrice M dont chaque colonne i contient les k objets le plus proches de i. Ramener à 0 tous les objets permet de réduire l’occupation mémoire de M et donc d’augmenter les performances.

2. La seconde étape consiste à appliquer ce modèle (i.e. utiliser la matrice) pour calculer les top-N recommandations. L’algorithme 1 présente une ma- nière de calculer ces recommandations. L’algorithme prend en paramètre la matrice M et un vecteur de taille m indiquant par le chiffre 1, les objets évalués par l’utilisateur u, et par 0 ceux qui ne l’ont pas été. N est le nombre de recommandations souhaité. L’opération consiste à multiplier M par U pour obtenir un vecteur x. Chaque objet dans x aura une valeur dépendante

List 1 Asteraceae it 1 30 it4 28 it9 27 it3 26 it7 25 it8 23 it5 17 it6 14 88 84 80 it1 65 it2 63 it3 70 it4 66 it5 70 it6 60 it7 61 it8 71 Threshold Item Overall

Score f = s1+s2+s3 Item Score List 2 Helianthus it2 28 it6 27 it7 25 it5 24 it9 23 it 1 21 it8 20 it6 14 Item Score List 3 Tuberosus it3 30 it5 29 it8 28 it4 25 it2 24 it6 19 it13 15 it 1 14 Item Score it2 11 it11 10 75 it9 62 ... .... it4 13 it14 12 it9 12 it7 11 it14 9 ... .... 63 ... ... .... ... .... it11 10 ... .... it11 8 ... .... (a) (b) (c) Iteration 1 2 3 4 5 ...

Figure 2.5: (a) listes inversées. (b) valeur du seuil en fonction de la position.

(c) score global d’un objet.

de sa similarité avec les objets accédés par u. Ces derniers sont ensuite mis à 0 afin de ne pas les recommander. Puis, en dernière instance, les objets ne faisant pas partie du top-N sont mis à 0. Finalement, le vecteur ne contient que les top-N objets les plus similaires aux objets déjà évalués par u.

Top-k

Les algorithmes de top-k [7, 54, 9] offrent une plus grande interactivité avec l’utilisateur en lui permettant de soumettre des requêtes, directement (e.g. re- quête à mots clés) ou indirectement (e.g. les objets qu’il consulte constitueront la requête [96]). Il s’agit donc de lui retourner, étant donné une requête q, les k objets maximisant un score.

Afin de calculer un top-k, il est nécessaire de construire un ensemble de listes inversées [7]. Ces listes associent un attribut (e.g. un mot clé) aux objets qui le contiennent, accompagnés de leur score par rapport à cet attribut ; un objet dont le score serait 0 n’est tout simplement pas présent dans la liste. Enfin, les contenus de chaque liste sont triés par score décroissant. La Figure 2.5 présente des listes inversées, et la première liste contient les objets (i.e. items) contenant le mot « Asteraceae » associés à leur score par rapport à ce mot (e.g. similarité

entre l’objet et le mot).

Le top-k, décrit dans l’Algorithme 2 et illustré par la Figure 2.5 fonctionne de la manière suivante. Supposons que l’objectif soit de calculer les 5 meilleurs objets (i.e. top-5 ). Il s’agit dans un premier temps de calculer l’ensemble des listes in- versées qui seront utilisées dans le calcul, et qui forment l’entrée de l’algorithme ; dans le cas où la requête est à mots clés, les listes sont celles associées à chacun des mots de la requête. Dans l’exemple de la Figure 2.5, la requête « Asteraceae Helianthus Tuberosus » (i.e. espèce de tournesol) a été soumise, et les listes in- versées correspondants à chacun de ces mots sont donc choisies. L’algorithme

Algorithme 2: Calcul des top-k recommandations étant donné une re-

quête q

Input:

Lq : les listes inversées pour la requête q

k : le nombre de résultats souhaités Output:

Rq : La liste des k meilleurs résultats 1 begin

2 Rq ← ∅

3 repeat

4 1. sorted access in parallel in each list in Lq

5 2. given each item accessed in 1 in a list L ∈ Lq, perform a random access in the other lists in Lq to compute its full score

6 3. maintain in Rq the k best items seen until now

7 4. compute the threshold δ

8 until |Rq| = k and score(it) ≥ δ ∀it ∈ Rq

9 return Rq

va effectuer successivement des accès triés en parallèle dans chacune des listes inversées fournies en entrée (ligne 4). Un accès trié (i.e. sorted access ou SA), consiste à récupérer les objets d’une liste dans l’ordre (i.e. du premier vers le dernier). Dans la figure, les objets récupérés par les premiers accès triés sont it1,

it2 et it3. Lorsqu’un objet est récupéré, un accès aléatoire est réalisé dans cha- cune des autres listes fournies en entrée. Un accès aléatoire (i.e. random access ou

RA) consiste à récupérer directement le score d’un objet dans une liste donnée.

Enfin, les scores obtenus par l’accès triés et par les accès aléatoires sont combinés (e.g. somme, min, max) afin d’obtenir le score final de l’objet. Dans la figure, la combinaison est la somme et le score de it1 est 30 + 21 + 14 = 65. L’algorithme répète ces opérations jusqu’à obtenir k objets dont le score est supérieur à un seuil δ. Un seuil définit le score maximum potentiel que les objets non encore accédés peuvent obtenir ; il est calculé comme l’agrégation des scores (la méthode d’agrégation/combinaison doit être la même que celle utilisée pour le calcul du

score des objets) correspondant aux derniers accès triés faits dans chaque liste. Ainsi, dans la figure, lors du premier accès, le seuil vaut δ = 28 + 28 + 30 = 88. Après 5 itérations, on peut observer que les 5 meilleurs objets (i.e. dont le score est le meilleur) ont un score supérieur au seuil δ = 63. L’algorithme a donc calculé un top-5 et peut s’arrêter.

Le top-k peut également s’appliquer aux approches collaboratives où les résul- tats dépendent des profils utilisateurs [9] (e.g. le score d’un objet est par exemple la note qu’un utilisateur lui a donné, ou une prédiction).

Bilan des algorithmes de recherche et de recommandation

Deux points de vue ont été présentés : les approches automatiques top-N, qui, en exploitant la matrice S, vont retourner les N meilleures prédictions à chaque utilisateur, et les approches interactives (i.e. nécessitant une requête soumise par un utilisateur) top-k, qui vont retourner les k objets maximisant un score – étant donné la requête, le profil utilisateur ou d’autres choses.

Malheureusement, les résultats issus de ces méthodes sont généralement re- dondants [176]. Premièrement, lorsque la matrice S est exploitée, la probabilité que les recommandations concernent des objets déjà populaires (et donc ne né- cessitant que peu de recommandations) est forte ; ces objets représentent en effet la majeure partie des notes de la matrice S. Deuxièmement, lorsque leur contenu est exploité, les recommandations font référence à des objets très proches et très similaires. Enfin, puisque le profil de l’utilisateur est utilisé dans le calcul des recommandations (i.e. recommandation d’objets similaires à ceux partagés ou évalués par l’utilisateur courant, ou provenant d’utilisateurs très similaires), ces dernières sont finalement très proches des précédents partages ou évaluations de l’utilisateur, limitant par là l’effet de découverte.

La section qui suit introduit aux méthodes de diversification et de sérendipité qui ont pour but d’aborder les trois points limitant précédemment évoqués.