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.