Algorithme de recommandation d'ami basé sur les données mobiles
bonjour a tous je m appelle suzy etudiante en master computer science. je travaille presentement sur le theme intitule:CONTEXT-AWARE FRIEND RECOMMENDATION ALGORITHM BASED ON MOBILE DATA.et j ai un peu du mal.
quelqu'un aurait-il une idee par rapport a mon theme. toutes suggestions seraient la bienvenue.
merci
Les amis de nos amis sont-ils vraiment nos amis ?
Bonjour, :D
La remarque de tbc92 est tout à fait pertinente:
Citation:
... Si A est ami avec B et B ami avec C, alors A est ami avec C, ce n'est pas applicable ...
A et C peuvent présenter suffisamment d'affinités avec B pour se déclarer "amis" de celui-ci, et se trouver mutuellement éloignés l'un de l'autre, au point de n'avoir aucune raison d'établir une relation.
Supposons les 3 personnes caractérisées par les listes de réponses ordonnées:
Code:
1 2 3 4
|
La = ( + , 0 , + , 0 , - , 0 , - , 0 )
Lb = ( + , + , + , + , - , - , - , - )
Lc = ( 0 , + , 0 , + , 0 , - , 0 , - ) |
A et B, de même que B et C, présentent 4 compatibilités et aucune incompatibilité: ils peuvent donc nouer un lien.
Par contre A et C s'emmerderont royalement ensemble, faute de goût commun.
La relation d'amitié, telle qu'elle est définie ici, n'est donc pas transitive:
les propositions (A ami de B) et (B ami de C) n'impliquent pas (A ami de C);
elle est seulement réflexive (A ami de A) et symétrique: (A ami de B) entraîne (B ami de A).
Une déclaration d'amitié entre X et Y (comme c'est romantique ! :aie: Où sont mes kleenex ?) peut être algorithmiquement initiée à partir d'un "produit scalaire" de deux "vecteurs de personnalité": p = Lx * Ly
vérifiant la condition: (p > Seuil) ;
toutefois les conditions ((La*Lb) > Seuil) et ((Lb*Lc) > Seuil) n'entraîneront pas ((La*Lc) > Seuil) .
Rien à voir évidemment avec une amitié réellement vécue, qui peut unir durablement (et même toute une vie) deux personnes à priori très éloignées par leur milieu, leurs opinions ou leur activité professionnelle. Cela ne se réduit pas à une simple convergence de goût ou de centres d'intérêts.
Algorithme de recommandation d'ami basé sur les données mobiles
@valentin03
Ta remarque est exacte, mais la restriction des réponses à deux options (0 / +) ne change rien à l'affaire: si l'on inverse dans l'exemple donné tous les signes (-), on vérifie que:
1°) A et B d'une part, B et C d'autre part présentent toujours 4 réponses identiques;
2°) A et C n'en ont aucune, et je crains qu'ils ne se morfondent tout autant au cours d'une soirée à deux ... à moins qu'ils ne se découvrent des affinités inattendues, non codées sur les réseaux sociaux. :D
1 pièce(s) jointe(s)
Algorithme de recommandation d'ami basé sur les données mobiles
Citation:
Envoyé par
valentin03
@: wiwaxia: On peut effectivement introduire un taux de compatibilité (distance) qui complexifiera le problème ...
Je n'ai fait que formaliser - d'une manière peut-être un peu abrupte, il est vrai - ce que tu as proposé dès le début (#2):
Citation:
Envoyé par
valentin03
... Il te suffit de comparer le nombre d"égalités de choix par couples de noms de personne
en considérant les listes de réponses comme des vecteurs d'un espace de dimension (n) - 8, dans le cas des exemples cités - dont les composantes sont entières et ne peuvent prendre que les valeurs (0) ou (1).
La distance de Manhattan alors introduite s'identifie au nombre de réponses différentes: DXY = Nrd
et sa valeur maximale au nombre total de réponses, donc à la dimension de l'espace envisagé: Dmax = Ntot = n ;
tu t'es de ton côté intéressé au nombre de réponses identiques: Nri = Ntot - Nrd = n - DXY ,
qui n'est autre que le complément de la distance à sa valeur maximale.
Les taux de compatibilité (ou de proximité) et d'éloignement sont des rapports eux aussi complémentaires, compris entre zéro et l'unité:
Te = (DXY / Dmax) = (Nrd / Ntot) ;
Tc = (Nri / Ntot) = (Ntot - Nrd) / Ntot , soit finalement: Tc = 1 - Te .
Les relations d'amitié proposées, qui faisaient intervenir deux seuils du taux d'éloignement (0.2 te 0.4)
Citation:
# (x ami de Y) si et seulement si (DXY < 0.2 * Dmax)
# (X quasi-ami de Y) si et seulement si (0.2 * Dmax < DXY < 0.4 * Dmax) .
s'expriment tout aussi bien à l'aide des taux de compatibilité:
# (x ami de Y) si et seulement si ((DXY / Dmax) = (1 - Tc) < 0.2 * ) , soit : (Tc > 0.8) ;
# (X quasi-ami de Y) si et seulement si (0.2 < (DXY / Dmax) = (1 - Tc) < 0.4) , soit ici: (0.6 < Tc < 0.8) .
Nous parlons donc bien de la même chose, à l'aide de paramètres complémentaires.
# Remarque: il est possible d'envisager une somme coefficientée, si l'on estime les diverses réponses d'importance inégale;
ainsi la distance deviendra: DXY = Sk=1N(Ck*Abs(xk - yk)) ,
et sa valeur maximale: Dmax = Sk=1N(Ck) ;
résultats dont se déduiront sans changement les taux d'éloignement et de compatibilité:
Te = (DXY / Dmax) et Tc = 1 - Te .
@Susy: J'espère sincèrement que tu n'as pas été découragée par l'exposé précédent; le paragraphe ci-dessus résume ce qu'il faut tester pour s'assurer d'une relation d'amitié (ou de quasi-amitié, si l'on y tient).
Citation:
Envoyé par
suzy91
... D'après la logique A avec B ; B avec C alors A avec C ?
Non, justement: c'est bien l'erreur à éviter.
(A ami de B) et (B ami de C) n'impliquent pas (A ami de C), mais seulement (A ami de A) et (B ami de A).
Un moyen simple de s'en rappeler est de penser à un triangle:Pièce jointe 323121
Ici AB = BC , mais AC = 1.98 * AB ;
bien que (A) soit proche de (B), et (B) proche de (C), (A) est nettement plus éloigné de (C) !