• Aucun résultat trouvé

3.5 Calcul des propagations avec le mod`ele de Dijkstra bas´ee sur

3.5.2 Algorithme de calcul de la probabilit´e de propagation

L’algorithme PPCA est un algorithme bas´e sur l’algorithme Dijkstra. Pour calculer la fonction d’´energie pi pour tous les membres mi du r´eseau social, nous devons utiliser un algorithme it´eratif [134]. Notre approche est bas´ee sur le mod`ele de programmation MapRedure pour le traitement de grands ensembles de donn´ees avec un algorithme parall`ele. Nous concevons notre algorithme (3 ) bas´e sur Dijkstra.

L’algorithme proc`ede comme suit :

1. initialisation : pow = 1, ∀i 6= ow pi = 0. C’est `a dire, uniquement le propri´etaire des donn´ees mow qui poss`ede ses donn´ees.

2. It´erations : A chaque it´eration, l’algorithme calcule pi pour mi ∈ N uti- lisant la formule (1). La technique MapReduce est utilis´ee pour trouver la propagation maximale entre un utilisateurs et le reste du r´eseau so- cial `a l’aide du graphe de r´eseau social. Ainsi, nous parall´elisons la phase de recherche sur les diff´erentes Map pour trouver les propagations de donn´ees de chaque membre avec le reste des Crowders. Le reducer per- met de regrouper les propagations par membre.

• La fonction Map est appliqu´ee en parall`ele `a chaque paire dans l’ensemble de donn´ees d’entr´ee. Chaque Map re¸coit en entr´ee une liste de membres. Pour chaque membre elle calcule la liste des propagations de donn´ees avec le reste des membres du r´eseau social en se basant sur la matrice du r´eseau r´ecup´er´ee `a partir du contexte. Cela produit une liste de paires pour chaque appel. Le motif de MapReduce recueille toutes les paires avec la mˆeme cl´e de toutes les listes et les regroupe, en cr´eant un groupe pour chaque cl´e. La inputM apk < key, value > devient dans notre cas

< U ser,useri >, o`u i repr´esente le num´ero de l’utilisateur. La Map g´en´er´ee

OutputM apk < key, List(key, value) > sera comme suit :< U serN umber, List(< HashCodek,

P ropagation >) > o`u, Hash code est le code unique identifiant l’utili- sateur userk tout en prenant en compte sa structure. La P ropagation repr´esente la probabilit´e de propagation du useri aux reste des utilisa- teurs.

Le but du script de map est de mod´eliser les donn´ees en < key, value > paires et au reducer de regrouper les paires ´emises < Key, value >. Ce qui signifie essentiellement que, les paires avec la mˆeme cl´e sont re- group´ees et transmises `a une seule machine, qui ensuite ex´ecutera le script reducer sur eux.

• La fonction Reducer combine les valeurs d’une cl´e. Dans notre cas, elle permet de grouper les propagations par utilisateur .

La figure 3.5(a) d´ecrit l’application du MapReduce et la figure 3.5(b) d´ecrit sont impl´ementation.

calculer. Réseau de solution U1 Reduce Réseau de Solution U1 U2 U3 U2 U1 U3 U4

(a)

(b)

MapReduce

( ): Cluster U : Membre U2 U3 U4 U5

MAP MAP MAP MAP MAP

Matrice de propagation

Propagations Propagations

Figure 3.5 – Architecture du MapReduce et son application

En appliquant notre algorithme `a la matrice de propagation cit´ee ci dessus, on obtient la matrice de propagation suivante :

       

Bob Alice John David M ickael George

Bob 1 0.28 0, 09 0.16 0.38 0.7 Alice 0.12 1 0.28 0.48 0.9 0.18 John 0.01 0.09 1 0.2 0.1 0.02 David 0.07 0.46 0.15 1 0, 5 0.1 M ickael 0.14 0.9 0.31 0.5 1 0.2 George 0.7 0.3 0.18 0.19 0.32 1        

Algorithm 3 Mapper function of the Propagation probability computing algorithm (PPCA)

Require: InputM ap – The list of members to be computed u – The member to be computed u – owner of the data Ensure: pred – longest path tree from u

1: G hM, Ei ← Social Network Recovery Function() – labeled directed

graph of the social network where M in the Members and E are the Edges

2: for each member u in InputMap do 3: for u in V do 4: P (u) = 0 5: mark(u) = undiscovered 6: pred(u) = null 7: end for 8: P(s) = 1 {distance to source is 1}

9: Q = a priority queue of all vertices u sorted by P(u) {until all vertices

processed}

10: while Q is nonEmpty do

11: u = extract vertex with maximum P(u) from Q 12: for v ∈ Adj(u) do

13: if P (u) ∗ w(u, v) > P (v) then

14: P (v) = 1 − ( Q

u∈Adj(u)

(P (u) × (1 − w(u, v)))) {relax(u,v)}

15: decrease v′s key in Q to P(v)

16: pred(v) = u

17: end if

18: end for

19: mark(u) = finished

20: end while{[The pred define the longest path tree]} 21: Collect (pred)

La fonction Reducer se pr´esente comme suit :

Algorithm 4 Reducer function of the Propagation probability computing algorithm (PPCA)

Require: InputM ap – List of propagations

1: while InputM ap has more value do

2: pred – The longest path tree of the member mo

3: Collect(mo,pred) – Collect propagation of the member mo 4: end while

Pour analyser l’algorithme de calcul de la probabilit´e de propagation, on rappelle que n = —utilisateurs — et m = —relations directes—. Nous comptabilisons le temps consacr´e `a chaque utilisateur apr`es son extraction de la file d’attente prioritaire. Il faut O(log n) pour extraire l’utilisateur de la file . Pour chaque relation directe, nous passons potentiellement O(log n) de temps si nous avons besoin de diminuer la cl´e des utilisateurs voisins. Ainsi le temps est de O(log n + deg(u)· log n).

Les autres ´etapes consistant `a ex´ecuter la mise `a jour en temps constant. En rappelant que la somme des degr´es des sommets dans un graphe est de O(m). Le temps global de fonctionnement est donn´e par T (n, m), o`u O(n, m)

= P

n∈V(log n + deg(u) · log n) = P

n∈V (1 + deg(u)) log n = log n P

n∈V (1 + deg(u)) = (log n)(n + 2m) = O((n + m) log n).

Comme G est connect´e, n n’est pas asymptotiquement sup´erieur `a m, donc c’est O(m log n). Pour calculer les propagations cach´ees pour chaque utilisateur, la complexit´e de calcul doit ˆetre de n * O(m log n). Par contre, nous somme entrain d’utiliser le mod`ele de MapReduce dans notre approche, donc on peut parall´eliser le traitement en n Maps. Ceci nous am`ene `a une complexit´e de (n ∗ O(m log n)) ÷ n ⇒ O(m log n).

Dans la figure 3.6, on note que l’algorithme PPCA d´ecouvre les relations indirectes cach´ees entre Alice et David. Il met ´egalement `a jours la matrice de propagation en modifiant les valeurs de propagation z´ero en des vraies valeurs de propagation cach´ee. Pour une raison de visibilit´e la figure contient seulement la propagation `a jour pour Alice, Bob et John.

Figure 3.6 – R´esultats du PPCA