• No se han encontrado resultados

Operaciones de conjuntos entre redes

4. friends/followers: relaciones sociales que representan amigos / seguidores

4.2 Implementación y Diseño 

4.2.3 Arquitectura Pipe and Filter

4.3.2.3 Operaciones de conjuntos entre redes

 

 

Este proceso, tiene como entrada la lista de usuarios a recomendar R. En dicha lista,  se aplica un proceso de transformación donde a cada usuario se le aplicará un peso  inicial, que consta del número de apariciones en la lista R. De manera que su salida  será un estructura de clave valor, donde su clave k será el identificador del usuario y su  valor la cantidad de repeticiones en R. 

 

Figura 26. Pipe “Ponderación de recomendados” 

   

 

La abstracción de esta tarea en un proceso independiente, tiene como objetivo  brindar una flexibilidad a la hora de cambiar la lógica de ponderación. Esto permite  aplicar un peso a través de una lógica más compleja, sin la necesidad de modificar  otros procesos. 

 

4.3.2.3 Operaciones de conjuntos entre redes   

El siguiente proceso, a través de operaciones de unión en intersección de dos o más  redes, se encarga de combinar los resultados y ponderar nuevamente la lista de  resultados R’. Dicho proceso define dos operaciones básicas. 

  Union   

La unión entre dos o más redes de conexiones permite que la red amplíe sus 

conexiones, dando una mayor diversidad de posibles candidatos a recomendar. Dado  dos conjuntos C’ y C’’, formalmente la unión está dada por:   

 

 

Cuando a una red C’ se le aplica una operación de unión con una segunda red C’’ se  tendrá como resultado una red que contendrá nuevas relaciones con distinta 

semántica. 

Esta semántica, relaciona dos nodos de distinta forma.   

Por ejemplo, si tenemos dos conjuntos C’ red de followers/followees del usuario U T =0  y le aplicamos una operación con otra red de mentions C’’ del mismo usuario U T ,  pueden ocurrir los siguientes casos: 

 

Dados los dos siguientes conjuntos con sus respectivos pesos   

 

 

 

 

1. Que un usuario “x” solo pertenece a C’ , no tendrá efecto en la lista resultante.   

2. Si un usuario “x” no perteneciente a C’, y que si pertenece a C’’, implica una  nueva conexión para el usuario U T

 

3. Si un usuario “x” pertenece tanto a C’ como a C’’, esta conexión se pondera con  un valor que depende de que peso signifique para el usuario U T una conexión de  esta C’’. 

   

La lista resultante de operar C’ U C’’ sera:   

 

     

Como se puede ver la en la lista resultante U C’,C’’ se amplía con dos nuevos 

elementos, y en el caso del usuario 1, cambia su peso (w) siendo ahora 3 + 7*w 0 . Su  nuevo peso va depender de tres factores, su peso en C’ y C’’, y un factor w 0 . El factor  w 0 depende del usuario U T y es una ponderación que mide la importancia que U T le da  a un tipo determinado de relación, en este caso a mentions. 

 

W 0 básicamente le permite decir al usuario U T que priorice relaciones de menciones  sobre followers, por ejemplo, puede que un usuario le dé el doble de importancia a una  mention que a una relación followers, por lo que su factor w 0 será igual 2. 

   

Intersección    

Al contrario de la unión, la intersección reduce las conexiones a sólo aquellas que se  encuentren en ambos conjuntos. Esta operación permite crear conexiones de lazos  más fuertes, reduciendo en un volumen considerable el número de conexiones a  analizar. 

Análogo a la unión, la intersección se define como:   

C’,C’’

= x 

∈ C’ Λ x  

∈C’’ 

 

   

Siendo los conjuntos C’ y C’’ los definidos para la unión, ahora tenemos:    

 

 

 

La lista resultante de aplicar la operación de intersección, reduce el conjunto a un  único elemento, siendo este uno de los elementos con mayor peso.  

 

 

4.3.2.4 Priorización de resultados    

Esta tarea, si bien no es más que un ordenamiento de la lista de usuarios, su eficaz  empleo es fundamental para el sistema de recomendación. El orden en que aparezca  cada usuario en la lista final de recomendación, dependerá totalmente del peso 

asociado a este, por ende existen muchos factores que pueden implicar una alteración  en el. 

 

Algunas de las variables son:  

1. Tipo de usuario para el cual se realiza la recomendación. 

2. Tipo de operación (Unión/Intersección) y relación aplicada (mentions/replies,  etc). 

3. Factor de peso (w 0 ) dado a la relación aplicada. 

4. Numero de seguidores, replicas, retweets, menciones, etc.   

Para poder ordenar los usuarios en la lista, se implementó una estructura, que permite  comparar usuario por distintas variables del usuario.  

 

Figura 27. Diagrama de clases para los tipos de comparadores 

 

La estructura creada, está formada por una interface, y sus clases que la 

implementan. La interface define la signatura del método que debe ser implementado  para poder comparar un usuario. Cada una de sus clases representan una 

comparación de acuerdo algún atributo del usuario. Este patrón de diseño conocido  como composite, permite agregar de manera sencilla una nuevo comparador al  usuario, y la posibilidad de crear comparadores compuestos, que permite aplicar un  orden por múltiples atributos del usuario.  

   

Por ejemplo, para un tipo de usuario Information Sources, le puede interesar que las  primeras posiciones de la lista este compuesto por usuarios que tengan mayor número  de seguidores, y mayor número de menciones realizadas. Para cumplir este requisito,  es necesario crear un comparador compuesto por followers y mentions. 

 

 

 

 

 

 

 

5. Análisis de resultados 

 

En este capítulo se presentará todo el análisis referido a los resultados de la tesis,  gráficos y conclusiones realizadas luego de correr las distintas simulaciones para el  algoritmo. 

 

Para las pruebas, de los casi medio millón de usuarios implicados en el dataset,  fueron seleccionados alrededor de 2000 usuarios, cuya relaciones se presentan en  todas las redes. De estos usuarios, se tomó una muestra aleatoria de 200 usuarios  para evaluar el algoritmo y calcular las métricas de recall y precision. 

 

En el primer enfoques, se analizará cómo la operación de unión influye en los  resultados, operando una red con toda la información extraída del dataset, y también,  se analizará, que aporte agrega cada red conjuntamente con la de followees/followers.   

5.1 Unión 

   

En este perfil, se realizará la unión entre las redes de followees/followers, mentions,  retweets y replies. La idea detrás de esta operación, es evaluar una red de mayor  tamaño, con nuevos usuarios que se pueden incorporar al realizar la unión de cada una  de las redes mencionadas anteriormente.  

 

La elección de los perfiles de configuración, fueron tomados con el objetivo de  maximizar las métricas de recall/precisión y determinar qué tipo de red tiene mayor  impacto tanto positivo como negativo de acuerdo a la hipótesis planteada. 

 

Con estos objetivos, se plantearon los siguiente 4 perfiles, que de ahora en adelante  se referencian como P 1 , P 2 , P 3 y P 4 

   

Perfil 1 P 1 : unión de followees/followers con mention, replies y retweets.  Perfil 2 P 2 : unión de followees/followers con mention. 

Perfil 3 P 3 : unión de followees/followers con replies.  Perfil 4 P 4 : unión de followees/followers con retweets.     

Documento similar