• Aucun résultat trouvé

Les mesures de proximit´e que nous consid´erons ici sont des fonctions prenant en entr´ee un graphe et deux nœuds et retournant une quantit´e permettant d’´evaluer combien ces deux nœuds sont proches l’un de l’autre. ´Etonnamment le lien entre mesure de proximit´e et communaut´e que nous venons de mettre en ´evidence n’est pas (ou tr`es peu) exploit´e dans la litt´erature. Les mesures de proximit´e ont pourtant de nombreuses autres applications, bien plus r´epandues, pour l’´etude des r´eseaux, notamment en ce qui concerne la pr´ediction de liens : intuitivement deux nœuds non-connect´es, mais qui sont ´evalu´es comme tr`es proches l’un de l’autre par une mesure de proximit´e ad hoc ont plus de chance de se connecter dans le futur que s’ils ´etaient ´evalu´es comme ´eloign´es l’un de l’autre. La pr´ediction de liens est si importante qu’elle constitue un domaine `a part enti`ere de l’analyse des r´eseaux. L’une de ses applications les plus populaires est la recommandation, par exemple la suggestion d’amis sur un r´eseau social ou de produits dans les boutiques en ligne. Il existe ainsi plusieurs articles d’´etat de l’art sur les mesures de proximit´e, dont certains sont g´en´eraux [44] et d’autres appliqu´es `a la pr´ediction de liens [161, 94].

Nous reprenons et ´etendons ici ces ´etats de l’art en d´etaillant les mesures de proximit´e qui nous semblent ˆetre les plus pertinentes pour la d´etection de communaut´es. Les deux mesures de proximit´es les plus imm´ediates sont sans doute :

— la distance entre les deux nœuds, c’est-`a-dire le nombre minimal de sauts pour aller de l’un `a l’autre et

— le nombre de voisins partag´es par les deux nœuds, ou bien des variantes prenant en compte seulement le voisinage des deux nœuds (comme la similarit´e de Jaccard entre deux ensembles de voisins2 ou la similarit´e d’Adamic-Adar [8] qui donne souvent 2. Pour deux nœuds a et b elle est donn´ee par : J(a, b) = |Na∩Nb|

|Na∪Nb| o`u Na (resp. Nb) est l’ensemble des voisins de a (resp. b).

(a) ��� ��� ��� ��������������� ����������������������� ������������������ (b) (c) ��� ��� ��� ��������������� ����������������������� ������������������ (d) (e) 100 101 102 Scor e de p roxi mité

classement du n ud en fonction du score

(f)

Figure 3.4 – Proximit´e d´ecroissante (nous avons utilis´e ici l’opinion propag´ee [52] que nous d´etaillerons plus tard dans ce chapitre) des nœuds d’un graphe jouet `a un nœud d’int´erˆet. Sur la repr´esentation du graphe (avec un layout graphviz [57]), le nœud d’int´erˆet est au centre et l’intensit´e de la couleur des nœuds est proportionnelle `a leur proximit´e au nœud d’int´erˆet.

les meilleurs r´esultats dans le cadre de la pr´ediction de liens).

Ces deux mesures de proximit´e sont int´eressantes, mais n´eanmoins trop simples. En effet (comme nous l’avons vu pr´ec´edemment) la premi`ere donne des valeurs enti`eres qui sont en g´en´eral tr`es faibles et identiques pour tous les nœuds. De plus, elle ne prend pas en compte la redondance des liens : deux nœuds `a distance 2 partageant un seul voisin auront la mˆeme proximit´e que deux nœuds `a distance 2 partageant un grand nombre de voisins. Avec le deuxi`eme type de mesure de proximit´e, l’effet inverse se produit. En effet, en utilisant le mˆeme exemple, deux nœuds `a distance 2 partageant un grand nombre de voisins auront une plus grande proximit´e que deux nœuds `a distance 2 n’en partageant qu’un seul, ainsi la redondance est bien prise en compte. Par contre, toute paire de nœuds `a distance sup´erieure `a 2 aura une proximit´e nulle, ce qui n’est pas satisfaisant.

La construction de mesures de proximit´e plus ´elabor´ees prenant en compte la distance et la redondance s’impose donc. Voici les mesures de proximit´e que nous avons jug´ees les plus pertinentes : — l’indice de Katz [79] : Katz(i, j) = l=0 βlN SPl (i, j)

o`u N SPl est le nombre de chemins (simples, c’est-`a-dire sans boucle) de longueur l entre les deux nœuds i et j. N SPl est cependant souvent trop long `a calculer sur de grands graphes pour l ≥ 4. Nous verrons qu’utiliser les NBP (Non-Bactracking Paths), c’est-`a-dire le nombre de chemins sans boucle de longueur 2, mais pouvant avoir des boucles plus grandes permet de raisonnablement pallier ce probl`eme. Il existe ´egalement une variante, le Local Path Index, ne prenant en compte que les chemins de longueur inf´erieure `a un param`etre λ [101].

— Le pagerank enracin´e [119] d´ej`a cit´e pr´ec´edemment : soit un marcheur al´eatoire qui commence `a marcher depuis un nœud d’int´erˆet en allant `a chaque fois al´eatoirement vers un voisin et en se t´el´eportant au nœud de d´epart avec la probabilit´e α. La pro-babilit´e de trouver le marcheur au temps infini situ´e sur un nœud donn´e correspond `a la proximit´e de ce nœud au nœud d’int´erˆet. On remarque que cette mesure de proximit´e n’est pas sym´etrique. De plus, cette mesure de proximit´e entre un nœud d’int´erˆet et tous les nœuds du graphe peut ˆetre obtenue avec l’algorithme de point fixe suivant :

Xt+1= (1− α)T Xt+ αX0

o`u Xt est le vecteur de scores apr`es n it´erations (Xt[i] correspond `a la probabilit´e d’avoir un marcheur au nœud i apr`es t pas), X0 est initialis´e avec le vecteur nul sauf pour le nœud d’int´erˆet qui est initialis´e `a 1. T est la matrice de transition : Tkl = lkl

dl, o`u lkl est le poids du lien entre les nœuds k et l, et dl est le degr´e du nœud l. α ∈]0, 1[ est un param`etre qui contrˆole la profondeur de l’exploration du r´eseau. Le temps de calcul n´ecessaire est essentiellement lin´eaire en O(t(n + m)) o`u n et m sont respectivement le nombre de nœuds et de liens dans le graphe et t le

nombre d’it´erations n´ecessaires `a la convergence (en g´en´eral de l’ordre du diam`etre du graphe, c’est-`a-dire en O(log(n))). Bien que cette m´ethode soit d´ej`a rapide, il est possible de la rendre encore plus rapide dans certains cas. En particulier, lorsque le coefficient α est grand, on peut en g´en´eral obtenir, pour un graphe creux, une approximation en un temps constant ne d´ependant pas de la taille du graphe [18, 150]. Pour cette raison, nous utiliserons cette mesure de proximit´e dans le chapitre 6 lorsque le temps de calcul sera le principal facteur limitant.

— Le hitting time (resp. commuting time). Pour un nœud source et un nœud cible donn´es, c’est le nombre moyen de pas n´ecessaires `a un marcheur pour aller (resp. pour aller et revenir) de la source `a la cible. Pour un nœud cible donn´e, le hitting time pour chaque autre nœud du graphe vu tour `a tour comme source peut ˆetre calcul´e en r´esolvant le syst`eme lin´eaire suivant, comme d´etaill´e dans [104] :

Hi(j) = � 0 si j = i 1 + � k∈V (j) Hi(k) sinon.

Hi(j) correspond au hitting time pour le nœud source j et le nœud cible i et V (j) d´enote l’ensemble des voisins du nœud j. Le temps de convergence de l’algorithme du point fixe utilis´e pour calculer le rooted pagerank ´etant trop long pour la r´esolution de cet autre syst`eme lin´eaire, nous avons impl´ement´e un algorithme qui permet de le r´esoudre en un temps essentiellement lin´eaire `a l’aide de la m´ethode du gra-dient conjugu´e [73] vue comme une m´ethode it´erative et pr´e-conditionn´ee astucieu-sement3.

— Une autre mesure de proximit´e param´etr´ee est le pagerank enracin´e biais´e par le degr´e de [24] ou par des attributs des liens ou des nœuds. Dans ce cas le poids des liens du r´eseau utilis´e pour calculer le pagerank enracin´e d´epend des attributs et cette d´ependance peut ˆetre apprise de fa¸con supervis´ee.

Toutes ces mesures de proximit´e peuvent permettre de mettre en ´evidence le lien entre communaut´es et proximit´e comme nous l’avons fait pr´ec´edemment. Cependant le rooted pagerank et l’indice de Katz sont param´etr´es et dans certains cas il est souhaitable de pouvoir s’affranchir de ces param`etres ou bien de savoir comment les fixer. De plus, nous verrons plus loin dans ce chapitre, que ces param`etres ne sont pas toujours bien adapt´es. Le calcul du hitting time, quant `a lui, est plutˆot compliqu´e bien que rapide grˆace `a notre algorithme `a base de descente par gradient conjugu´e.

Pour pallier ces probl`emes (temps de calcul et pertinence des param`etres le cas ´ech´eant) nous proposons deux nouvelles mesures de proximit´e.

— La premi`ere sans param`etre est intuitive, simple `a calculer et permet dans la plupart des cas d’arriver `a des r´esultats tr`es satisfaisants. Elle est bas´ee sur la dynamique d’opinion, nous l’appelons l’opinion propag´ee.

— La deuxi`eme mesure que nous proposons incorpore principalement deux param`etres qui permettent de faire ind´ependamment et simultan´ement un compromis entre 3. le code est disponible `a l’url donn´e en introduction : http://bit.ly/maxdan94

“distance et redondance” d’une part et un compromis entre “popularit´e et intimit´e” d’autre part. Compromis qui, comme nous allons le voir, nous semblent n´ecessaires et ne semblent pas pouvoir ˆetre g´er´es par les mesures de proximit´e de l’´etat de l’art comportant un seul param`etre. Notre deuxi`eme mesure de proximit´e peut ˆetre vue comme une variante de l’indice de Katz. Notre mesure, que nous appelons Katz+, permet, contrairement `a la mesure de Katz, de traiter de grands graphes et de g´erer les deux compromis.

Ce sont ces deux mesures de proximit´e que nous allons privil´egier dans le reste du ma-nuscrit bien que d’autres soient utilisables et donnent des r´esultats ´egalement pertinents (moyennant souvent un temps de calcul accru).

3.3 L’opinion propag´ee : une mesure de proximit´e