Esta tesis propone un algoritmo de recomendación de usuarios en Twitter basado en la topología de la red. El algoritmo clasifica y recolecta usuarios según las relaciones entre ellos, los jerarquiza mediante funciones de scoring y combina los resultados para generar recomendaciones. El trabajo implementa el algoritmo en un framework y lo evalúa experimentalmente buscando la mejor combinación de parámetros para recomendar fuentes de información.
El rol de las TIC en la competitividad de las PyME - Verónica Alderete
Recomendación de usuarios en Twitter basada en topología
1. TESIS DE GRADO
Recomendación de usuarios en Twitter basada en topología
Universidad Nacional del Centro de la Provincia de Buenos Aires
Autor:
Joan Sol Roo
Director:
Dr. Marcelo Armentano
Fecha:
11/06/2014
2. 1
Resumen
Encontrar fuentes de información de buena calidad dentro de la comunidad de micro-blogging usando Twitter se vuelve esencial para los usuarios que utilizan esta plataforma en búsqueda de información. En este contexto, el enfoque tradicional de recomendación de usuarios basado en el análisis de contenido se dificulta debido al número de usuarios candidatos a evaluar en la red, en conjunto con limitaciones impuestas por Twitter para acceder a sus datos.
En este trabajo se evalúa una alternativa de recomendación de usuarios basada únicamente en el estudio de la topología de red, donde usuarios con intereses y temáticas en común se interrelacionan, generando comunidades implícitas.
Keywords:
Sistemas de Recomendación de Información, Redes Sociales, Filtrado colaborativo, Twitter.
3. 2
Contenido
1 Introducción ........................................................................................................................... 8
1.1 Twitter.................................................................................................................................. 8
1.2 Objetivo ............................................................................................................................... 8
1.3 Organización del documento ............................................................................................... 8
2 Marco Teórico ...................................................................................................................... 11
2.1 Sistemas de recomendación .............................................................................................. 11
2.2 Métricas ............................................................................................................................. 11
2.2.1 Recall ............................................................................................................................... 11
2.2.2 Precisión .......................................................................................................................... 12
2.2.3 nDCG (Normalized discounted cumulative gain) ............................................................ 12
2.3 Link Prediction ................................................................................................................... 13
2.4 Link Analysis ....................................................................................................................... 14
2.4.1 InDegree .......................................................................................................................... 15
2.4.2 PageRank ......................................................................................................................... 16
2.4.3 HITS ................................................................................................................................. 17
2.4.4 SALSA ............................................................................................................................... 18
2.4.5 Who to follow .................................................................................................................. 20
2.4.6 Generalización ................................................................................................................. 20
2.4.7 Caminos híbridos ............................................................................................................. 24
2.4.8 Big Data ........................................................................................................................... 25
3 Algoritmo de recomendación topológica ............................................................................. 27
3.1 Clasificación de usuarios .................................................................................................... 27
3.1.1 Clasificación basada en relaciones .................................................................................. 28
3.2 Recolección de usuarios .................................................................................................... 29
3.2.1 Restricciones de Fanout .................................................................................................. 31
3.2.2 Matrices de transición configurables .............................................................................. 32
3.2.3 Algoritmo presentado ..................................................................................................... 33
3.3 Ranking .............................................................................................................................. 34
3.3.1 Peso ................................................................................................................................. 34
4. 3
3.3.2 Índice de fuente de información (IS) ............................................................................... 35
3.3.3 Ranking basado en comparación de seguidores ............................................................. 35
3.3.4 Función de scoring compuesta ........................................................................................ 38
3.4 Combinación de resultados ............................................................................................... 38
3.5 Conclusión .......................................................................................................................... 40
4 Diseño e Implementación .................................................................................................... 42
4.1 Usuario ............................................................................................................................... 42
4.2 Usuario Factory .................................................................................................................. 43
4.3 Criterio Usuario .................................................................................................................. 45
4.4 Comparador Usuarios ........................................................................................................ 45
4.5 Scoring Usuario .................................................................................................................. 46
4.6 Recolector y Nivel Recolección .......................................................................................... 47
4.7 Factory de Recolección de Usuarios .................................................................................. 47
4.8 Ranking y combinación de resultados ............................................................................... 48
4.9 Conclusión .......................................................................................................................... 50
5 Experimentación................................................................................................................... 52
5.1 Tratamiento de datos ........................................................................................................ 52
5.1.1 Valor característico ......................................................................................................... 52
5.2 Validación cruzada ............................................................................................................. 53
5.2.1 K-fold cross-validation ..................................................................................................... 53
5.2.2 Dataset ............................................................................................................................ 53
5.2.3 Caracterización de algoritmos ......................................................................................... 54
5.2.4 Recomendación de fuentes de información ................................................................... 76
5.2.5 Recomendación de amigos ............................................................................................. 83
5.3 Evaluación Subjetiva .......................................................................................................... 88
5.3.1 Experimento .................................................................................................................... 88
5.3.2 Precisión en k posiciones ................................................................................................ 90
5.3.3 nDCG en posiciones ......................................................................................................... 91
5.4 Conclusión .......................................................................................................................... 92
6 Interfaz web.......................................................................................................................... 94
6.1 Inviabilidad practica ........................................................................................................... 94
6.2 Arquitectura general .......................................................................................................... 95
6. 5
3.2 Encabezado ...................................................................................................................... 119
3.3 Atributos primitivos ......................................................................................................... 119
3.4 Atributo no primitivo (relación 1:1) ................................................................................. 120
3.5 Colección (relación 1:N y N:N) ......................................................................................... 120
4 Solución en acción .............................................................................................................. 120
4.1 Proxy ................................................................................................................................ 121
4.2 Caché ............................................................................................................................... 122
5 Resultados experimentales ................................................................................................ 122
5.1 Proceso de recuperación de la red (Crawling) ................................................................. 122
5.2 Proceso de reevaluación de la red ................................................................................... 123
5.3 Evaluación de red en caché ............................................................................................. 124
7. 6
Í ndice de tablas
Tabla 1: Comparación entre las técnicas de recorrido estático e incremental ................................. 24
Tabla 2: Algoritmos estudiados ......................................................................................................... 55
Tabla 3: Funciones de scoring utilizadas por los rankings iniciales ................................................... 55
Tabla 4: Recall total obtenido para cada algoritmo y combinación de parámetros ......................... 56
Tabla 5: Subcategorías de pruebas ................................................................................................... 56
Tabla 6: Recall total para los algoritmos principales, para cada combinación de parámetros y subcategoría ...................................................................................................................................... 57
Tabla 7: Posición mediana del último encontrado para cada algoritmo y conjunto de parámetros 58
Tabla 8: Recall en k para cada algoritmo y combinación de parámetros ......................................... 60
Tabla 9: Recall en 100 para cada algoritmo seleccionado y combinación de parámetros ............... 61
Tabla 10: Recall en 1.000 para cada algoritmo seleccionado y combinación de parámetros .......... 61
Tabla 11: Recall en 10.000 para cada algoritmo seleccionado y combinación de parámetros ........ 61
Tabla 12: Encontrados totales para cada algoritmo seleccionado y combinación de parámetros .. 63
Tabla 13: Encontrados en 100 para cada algoritmo seleccionado y combinación de parámetros .. 65
Tabla 14: Encontrados en 1.000 para cada algoritmo seleccionado y combinación de parámetros 65
Tabla 15: Encontrados en 10.000 para cada algoritmo seleccionado y combinación de parámetros ........................................................................................................................................................... 65
Tabla 16: Frecuencia de encontrados para los algoritmos preseleccionados y cada combinación de parámetros ........................................................................................................................................ 67
Tabla 17: Frecuencia acumulada de encontrados para los algoritmos preseleccionados y cada combinación de parámetros ............................................................................................................. 68
Tabla 18: Mediana de los tiempos de ejecución para todos los algoritmos y conjuntos de parámetros ........................................................................................................................................ 70
Tabla 19: Aporte de cada acierto en nDGC 10 .................................................................................. 71
Tabla 20: Resultados obtenidos para nDGC 10 ................................................................................. 72
Tabla 21: Resultados obtenidos para nDGC 10 según número de seguidos ..................................... 73
Tabla 22: Resultados obtenidos para la precisión en 1, en 5, y en 10 .............................................. 74
Tabla 23: Cuadro comparativo entre los algoritmos seleccionados ................................................. 74
Tabla 24: Relación entre métricas y parámetros de fanout .............................................................. 75
Tabla 25: Recall en k en la recomendación de fuentes de información ........................................... 77
Tabla 26: Encontrados en k en la recomendación de fuentes de información ................................. 78
Tabla 27: Frecuencia de encontrados en la recomendación de fuentes de información ................. 80
Tabla 28: nDCG en 10 en la recomendación de fuentes de información ......................................... 81
Tabla 29: Precisión en k en la recomendación de fuentes de información ...................................... 82
Tabla 30: Recall en k en la recomendación de amigos ..................................................................... 84
Tabla 31: Frecuencia de encontrados en la recomendación de amigos ........................................... 85
Tabla 32: nDCG en 10 en la recomendación de amigos según seguidos .......................................... 86
Tabla 33: Precisión en k en la recomendación de amigos ................................................................ 87
Tabla 34: Voluntarios para la evaluación subjetiva........................................................................... 89
9. 8
1 Introducción
1.1 Twitter
Twitter es una red social con servicio de microblogging que permite a sus usuarios enviar y leer mensajes cortos de una longitud de 140 caracteres, llamados tweets. Dichos mensajes pueden tener cualquier contenido, sin embargo existen algunos usuarios particulares que publican tweets sobre un tema determinado. Cada vez que se publica un nuevo tweet, este aparece en la página de inicio del usuario que lo creó. La red también permite seguir usuarios, una forma de permitir actualizaciones constantes sobre las novedades publicadas. Así, cada usuario sigue otros que son de su interés.
Los tweets son mensajes publicados por los usuarios, donde se pueden hacer menciones a otros usuarios, el uso de etiquetas (“hashtags” en la terminología de Twitter) para delimitar palabras clave (se antepone el símbolo # a dichos términos), volver a publicar algún tweet subido por otro usuario (denominados “retweets”). Twitter presenta al usuario los tweets ordenados por fecha de creación descendente, por lo tanto puede pensarse como una línea de tiempo, en donde las publicaciones se encuentran agrupadas en diferentes timelines. Otras opciones permiten mandar mensajes directos a un usuario (direct message), y ver los temas del momento (trending topics).
Las relaciones seguidor-seguido pueden ser simétricas, lo que puede considerarse una relación de amistad. Según estudios, estas relaciones son poco comunes en Twitter[1][2][3], la comparación de snapshots de la red no parece indicar un cambio: las relaciones simétricas rondaban 22.1% en 2009 y 19.5% en 2012[19], aun cuando la red ha aumentado más de 10 veces su tamaño en este intervalo. En contraste, muchos usuarios que utilizan Twitter son buscadores de información sobre sus temas de interés, siguiendo las fuentes de información que hablan de éstos: en 2012 más del 30% de los usuarios activos no poseía siquiera una relación simétrica[18]. Es por esto que los usuarios de Twitter se beneficiarían con una aplicación que los asistiera en encontrar dichas fuentes de información.
1.2 Objetivo
En este trabajo se propone diseñar un algoritmo de recomendación que explote las características de la topología de las redes sociales para recomendar fuentes de información, permitiendo alcanzar aquellos usuarios de mayor interés y disminuyendo así la interacción con la API de Twitter, al evitar la evaluación del total de la red.
1.3 Organización del documento
El documento se encuentra dividido en 7 capítulos como se detalla a continuación:
Capítulo 2: Se inicia con el estudio sobre los elementos componentes del problema, comenzando con una breve introducción a los sistemas de recomendación y métricas de utilidad; luego, se revisa la literatura existente sobre las redes sociales en general y Twitter en particular, un campo estudio relativamente nuevo; un punto clave de esta etapa es la detección de los roles de los usuarios en la red social y la semántica de las interacciones; por último, se estudia análisis de las
10. 9
relaciones entre entidades y su influencia compone un campo de estudio por sí mismo, el cual sienta las bases de este trabajo, así como de otras alternativas de recomendación a las redes sociales.
Capítulo 3: Una vez detallados los elementos componentes del problema y el contexto de la solución, se procede a generar una alternativa que combine el estudio de las relaciones con características específicas de las interacciones entre usuarios en Twitter, que dan lugar a las comunidades implícitas. Luego, el trabajo se centra en el estudio de las posibles variables que permiten ajustar el algoritmo general, abriendo la búsqueda de la mejor combinación de parámetros.
Capítulo 4: Una vez establecido el algoritmo general, se plantea el diseño e implementación de un framework para su ejecución y configuración, centrándose en la idea que el mismo puede requerir su extensión en un futuro, en particular, para superar las limitaciones impuestas por el alcance del trabajo actual y la infraestructura disponible.
Capítulo 5: Disponiendo del algoritmo y su implementación, se procede a estudiar experimentalmente los efectos de las variables presentadas previamente, en busca de la mejor combinación de parámetros que conlleven a mejorar los usuarios de interés alcanzados y el orden de las recomendaciones generadas. Dadas las limitaciones presentadas por Twitter, los estudios son realizados primero sobre un dataset, con el fin de encontrar el mejor algoritmo para la recomendación directa de fuentes de información (es decir, que ofrezca la mayor precisión), para luego probarlo en un conjunto más reducido de usuarios reales, comparando el recomendador presentado con el provisto por el propio Twitter. En el proceso, se describen los beneficios del algoritmo y los parámetros recomendables para maximizar la recolección, para un posterior post- proceso.
Capítulo 6: Habiendo seleccionado el algoritmo con mejor precisión en la recomendación de fuentes de información, solo resta su publicación para el beneficio de usuarios reales. Para esto, se plantea el diseño general de una aplicación web que permita la utilización, y si se desea configuración, del algoritmo de recomendación presentado.
Capítulo 7: Finalmente, se resume el trabajo realizado y se presentan los beneficios provistos, en conjunto con las limitaciones enfrentadas, abriendo la puerta para continuar el estudio de la recomendación de fuentes de información en Twitter.
12. 11
2 Marco Teórico
En este capítulo se introducirán los conceptos fundamentales del dominio de los sistemas de recomendación en general y aplicados a las redes de documentos interconectados.
2.1 Sistemas de recomendación
Los sistemas de recomendación son sistemas específicos de filtrado de información que buscan recomendar ítems de interés al usuario. Para ello, extraen del perfil del usuario algunas características de referencia, en busca de predecir el interés que puede tener en un ítem que aún no ha evaluado.
En nuestro caso, se utilizará los usuarios actualmente seguidos por un interesado como punto de partida, para obtener las fuentes seguidas por usuarios similares (éstos son aquellos que poseen el mayor número de fuentes en común con el interesado). Se considera parte del perfil de un usuario de Twitter a los siguientes componentes: sus características básicas que permiten la identificación (nombre e ID de usuario); sus relaciones (seguidos y seguidores) y las estadísticas derivadas (cantidad de tweets, de seguidos y de seguidores).
Las anteriores representan al usuario dentro de todo Twitter (espacio de búsqueda); existe otro factor, atado a la búsqueda local realizada (subred): su peso, dado por la cantidad de ocurrencias de un usuario al recorrer una subred.
2.2 Métricas
Para evaluar las recomendaciones provistas, se utilizarán tres métricas que comparan el conjunto de usuarios esperados (o de interés) con la recomendación obtenida. Dado que se evaluarán algoritmos de recomendación, se estudiarán los resultados seleccionando los N primeros recomendados.
Ilustración 1: Diagrama de Venn ilustrando los conjuntos sobre los que operan las métricas planteadas
2.2.1 Recall
Evalúa el porcentaje de usuarios encontrados sobre el total de esperados, midiendo la capacidad de recuperación del algoritmo. Es inversamente proporcional al grado falsos negativos (usuarios que deberían ser incluidos, pero en su lugar no son alcanzados o bien son excluidos).
13. 12
| | | | | | | |
Recall en N: Recall en primeros N usuarios recomendados. Cuando se refiera al Recall sin especificar un valor de N, será al máximo obtenido al estudiar el total de los usuarios alcanzados.
2.2.2 Precisión
Evalúa el porcentaje de aciertos sobre el conjunto de recomendados. Es inversamente proporcional al grado falsos negativos (usuarios que deberían ser excluidos, pero en su lugar son incluidos). | | | | | | | |
Precisión en N: Precisión en primeros N usuarios recomendados. A diferencia del recall, no se hablará de la precisión sin asignar un valor a N.
2.2.3 nDCG (Normalized discounted cumulative gain)
Evalúa el orden en que son presentados los aciertos, permitiendo cuantificar la calidad de la recomendación, basándose en la premisa que una buena recomendación los mejores resultados entre las primeras posiciones. La manera más sencilla de explicar su construcción es de manera incremental.
La ganancia acumulativa (cumulative gain) computa la utilidad de un conjunto sumando el total de los pesos de los elementos contenidos. Para una posición dada , se evalúa hasta como: Σ
La ganancia acumulativa descontada (discounted cumulative gain) aplica una penalización a los buenos documentos que se encuentran alejados de las primeras posiciones, disminuyendo la relevancia logarítmicamente proporcional a la posición en la que fueron encontrados. Para una posición dada , se evalúa hasta como: Σ
14. 13
Para el caso estudiado, se desconocen la relevancia de los documentos de interés, por lo que se utilizará una relevancia binaria, siendo 1 si el documento es de interés, cero en caso contrario. En este contexto, puede simplificarse hasta como: Σ
Sea el valor obtenido para la recomendación ideal, donde los elementos son recomendados según el orden descendente de peso en las primeras posiciones, es posible computar la ganancia acumulativa descontada normalizada como:
Para el caso estudiado, no se ha provisto un peso de manera explícita, por lo que se procederá a utilizar un peso binario, siendo 1 en caso que el usuario sea de interés, y 0 en caso contrario.
2.3 Link Prediction
Este campo de investigación enfrenta resolver el siguiente problema:
Dado el estado de una red, ¿es posible inferir cuáles nuevas relaciones son probables que ocurran?
Distintos autores han enfrentado este problema, buscando cuantificar la proximidad entre dos nodos, y sus aportes pueden dividirse en grandes rasgos en: 1) aquellos que observan el contenido, 2) aquellos que estudian las relaciones entre nodos, o bien 3) aquellos que toman un enfoque hibrido.
Chen et al. [5] compararon algoritmos basados en relaciones y en contenido para recomendaciones de usuarios, encontrando que el primero es mejor detectando contactos conocidos mientras que el segundo en encontrar nuevas relaciones. Sun et al. [6] utilizaron un algoritmo basado en difusión para obtener un grupo de usuarios que toman el rol de reporteros en emergencias. Más relacionado a nuestro trabajo, están los algoritmos de recomendación de usuarios en Twitter a partir de un subconjunto de usuarios presentado por Hannon et al. [7]. Estos autores consideraron múltiples estrategias de generación de perfiles de acuerdo a cómo los usuarios son representados en un enfoque basado en contenidos (sus tweets y los de los usuarios con los que se relacionan), un enfoque basado en sus relaciones (basados en los IDs de sus seguidores y/o de sus seguidos), así como enfoques híbridos.
Buscando explicar por qué el contenido y la topología ofrecen pistas de quién recomendar, son de utilidad los aportes de Hong et al.[4], que estudian las temáticas y categorías de temáticas dentro de Twitter, mientras que Java et al.[1] estudian las comunidades implícitas que existen en Twitter
15. 14
y que tratan temáticas relacionadas. Dentro de estas comunidades los usuarios pueden categorizarse en: fuentes, buscadores de información, o bien amigos. Cha et al. [10] infieren la influencia de los usuarios basándose en la dinámica de la red, con dos conclusiones relevantes para este trabajo: 1) un gran número de seguidores implica una gran audiencia, pero no necesariamente publicaciones informativas: las fuentes de información se caracterizan por sus seguidores “retweeteando” sus estados, mientras que las figuras mediáticas se caracterizan por un gran número de menciones; 2) existen usuarios cuya influencia se dispara en un periodo corto de tiempo, atada a eventos puntuales. Lamentablemente, Cha et al. sólo estudian las influencias relativas a temáticas sobre el total, pero dejan de lado la influencia relativa dentro de comunidades.
2.4 Link Analysis
Es de interés para este trabajo el campo de investigación conocido como link analysis, donde se estudian las relaciones entre documentos. Asociado a los sistemas de recuperación de información, el ejemplo más conocido son los buscadores web, que en la búsqueda de recomendar fuentes de información confiables (denominadas autoridades), asignan relevancia aun conjunto de páginas web basándose en sus hipervínculos.
En el contexto de las redes sociales, los algoritmos de link analysis pueden ser utilizados para link prediction, si se considera que la relevancia de un usuario dado está relacionada con la proximidad a otros usuarios. El modelo de la red social de Twitter permite este estudio: grafos dirigidos de grandes dimensiones, donde los nodos pueden clasificarse en autoridades (fuentes de información) o hubs (buscadores de información).
A modo de introducción, se describirán a continuación los algoritmos más conocidos. En el Apéndice A se detallan conceptos relacionados acerca de Cadenas de Markov, que fundamentan estos algoritmos.
Primero se establecerán los elementos involucrados:
Vector de pesos de Autoridad A: vector n-dimensional de pesos asociados a las autoridades, donde Ai es el puntaje de autoridad del nodo i.
[ ]
Vector de pesos de hub H: vector n-dimensional de pesos asociados a los hubs, donde Hi es el puntaje de hub del nodo i.
16. 15
[ ]
Matriz de arcos salientes F (forward): matriz bidimensional cuadrada que indica en la posición (i,j) la probabilidad de avanzar desde i hasta j, correspondiente a la matriz de transiciones asociada a la cadena de Markov estacionaria:
|
Donde indica la ausencia de un arco.
Matriz de arcos entrantes B (backward): matriz bidimensional que indica en la posición (i,j) la probabilidad de salto desde un nodo i a un nodo j si se invierte la dirección de los arcos (Ilustración 2). Corresponde a la matriz transpuesta de la matriz de arcos salientes normalizada para ser una matriz de transiciones válida:
Σ
Donde indica la ausencia de un arco.
Ilustración 2: Relación entre arco entrante B y saliente F.
Numero de arcos en vector | |: cantidad de arcos posibles (cuya probabilidad es mayor a cero) para un nodo i dado, es decir, basado en la i-ésima fila de la matriz X.
Numero de arcos en matriz | |: cantidad de arcos posibles (cuya probabilidad es mayor a cero) de la matriz X.
2.4.1 InDegree
Una simple heurística que puede considerarse la predecesora de todos los algoritmos de ranking de Link analysis, consiste en ordenar las páginas por su popularidad (o visibilidad). La popularidad de una página es medida por el número de referencias a ella. | |
17. 16
Puede aplicarse de manera sencilla para redes sociales como Twitter, ordenando los usuarios por su número de seguidores.
2.4.2 PageRank
La intuición utilizada en InDegree es que una buena autoridad es una página apuntada por muchos nodos en el grafo. PageRank[12] extiende esta idea observando que no todos los arcos poseen el mismo peso. Vínculos desde páginas de alta calidad deberían conferir mayor autoridad. Es entonces no solo importante saber cuántas páginas apuntan, sino también si esas páginas son importantes. Para esto, realizan un recorrido aleatorio en el grafo que simula el comportamiento de un “random surfer”, que comienza desde un nodo D elegido al azar (generalmente asumiendo una distribución uniforme), eligiendo a cada paso con probabilidad d (factor de dispersión) optar por uno de los links, y con probabilidad 1-d saltar al azar entre todos los N sitios disponibles. El puntaje de autoridad Ai para un nodo i (pagerank del nodo i) es la fracción de tiempo que se ha detenido en dicho nodo, proporcional al número de visitas durante el recorrido, y corresponde con la distribución estacionaria de la cadena de Markov asociada al recorrido aleatorio sobre la red.
Algebraicamente, el puntaje de autoridad para un nodo es: Σ | |
Y el cálculo global de puntajes de autoridad: [ ]
Como puede apreciarse, el PageRank de una página se define recursivamente con las páginas que la referencian, siendo necesario para su cálculo un acercamiento iterativo. Si bien la formula presentada muestra el algoritmo como una operación de matrices y vectores, en la práctica F es una matriz dispersa, permitiendo ahorrar memoria y tiempo de procesamiento al utilizar un enfoque procedural. A continuación en el Algoritmo 1 se presenta el pseudocódigo asociado.
Algoritmo 1 – PageRank
Sea Ai(t) el peso de autoridad asociado al nodo i en la iteración t
1. inicializar
Para cada nodo i A
2. iterar hasta convergencia
Repetir hasta que los pesos converjan
Para cada nodo i A
Σ | |
18. 17
2.4.3 HITS
Propuesto en el mismo año de PageRank y de manera independiente, HITS (Hyperlink Induced Topic Distillation) sostiene que no necesariamente las buenas autoridades señalan a otras buenas autoridades; en su lugar, hay nodos especiales, llamados Hubs, los cuales poseen colecciones de links a buenas autoridades.
Ilustración 3: Transformación de un grafo dirigido (izquierda) en un grafo bipartido hub-autorities no dirigido (derecha)
HITS plantea un esquema de propagación de dos niveles, donde la validación de las autoridades es realizada desde Hubs, en lugar de hacerse directamente entre autoridades. Para esto, cada página posee ambos roles (pudiendo modelarse como un grafo bipartido, Ilustración 3) donde el peso de los Hubs es la suma de los pesos de las autoridades a las que apunta, estos a su vez son la suma de los pesos de los Hubs que las referencian, reforzándose mutuamente. Σ ( ) Σ
Dado que se enfrenta una situación de dependencia circular, los valores se computan iterativamente, inicializando todos los pesos en 1. Para evitar la divergencia, los valores deben ser normalizados tras cada iteración, de tal manera que la norma L2 sea igual a 1. A continuación en el Algoritmo 2 se presenta el pseudocódigo asociado.
19. 18
Algoritmo 2 – HITS (Hyperlink Induced Topic Distillation)
Sea Ai(t) el peso de autoridad asociado al nodo i en la iteración t
Sea Hi(t) el peso de hub asociado al nodo i en la iteración t
1. inicializar
Para cada nodo i A
Para cada nodo i H
2. iterar hasta convergencia
Repetir hasta que los pesos converjan
2.1 propagar hubs
Para cada hub i H Σ
Normalizar H
Para cada autoridad i A
Σ
Normalizar A
A diferencia de PageRank, HITS no es presentado como un recorrido aleatorio. Sin embargo, es posible realizar una observación interesante sobre los pesos asignados por el algoritmo HITS tras n iteraciones. Recordando que B y F indican los arcos entrantes y salientes, estos pueden combinarse para obtener caminos más largos. Por ejemplo, (BF)n es un camino que alterna entre arcos entrantes y salientes n veces. Luego, sea (BF)n(ij) el conjunto de caminos que parten del nodo i, es posible concluir[14] que el puntaje de autoridad asignado a un nodo i tras n iteraciones es proporcional al número de caminos BF de longitud n que parten desde el nodo; resultados similares pueden obtenerse para el puntaje de hub. | | | | | | | | De esta manera, es posible considerar el peso obtenido a partir de una serie de pasos determinados, siendo esta una solución restrictiva sobre el problema de recorrido aleatorio sobre grafos, que puede resolverse mediante de cadenas de Markov. Este algoritmo ha sido la inspiración de la solución presentada en el capítulo 0.
2.4.4 SALSA
Combinando ideas de HITS y PageRank, SALSA[15] (Stochastic Approach for Link-Structure Analysis) se basa en un recorrido aleatorio de un grafo bipartido, conformado por autoridades y hubs. En HITS, los hubs propagan su peso a todas las autoridades referenciadas, y estas suman todos los pesos propagados. El algoritmo SALSA normaliza los pesos a propagar, dividiéndolos por el número de arcos involucrados. Así, los hubs propagan su peso, dividido el número de autoridades referenciadas, mientras que estas propagan su peso dividido el número de Hubs que
20. 19
los referencian. Siendo i, j dos nodos autoridad, es posible definir un arco no dirigido entre ellos, si comparten un hub k. La probabilidad P de navegar entre i y j en un recorrido aleatorio se define como: Σ | | | |
Es posible definir de manera similar la relación entre hubs. Σ | | | |
De aquí es posible obtener los pesos asociados a cada nodo. Σ | | Σ | | Y globalmente:
Nuevamente se enfrenta una situación de dependencia circular, recurriendo nuevamente a un acercamiento iterativo. A continuación en el Algoritmo 3 se presenta el pseudocódigo asociado.
Algoritmo 3 – SALSA (Stochastic Approach for Link-Structure Analysis)
Sea Ai(t) el peso de autoridad asociado al nodo i en la iteración t
Sea Hi(t) el peso de hub asociado al nodo i en la iteración t
1. inicializar
Para cada nodo i A
Para cada nodo i H
2. iterar hasta convergencia
Repetir hasta que los pesos converjan
Para cada autoridad i A
Σ | ( )|
Para cada hub i H Σ | ( )| (t)
21. 20
2.4.5 Who to follow
En 2013, el equipo de Twitter publicó un estudio [11] donde describen el algoritmo WTF (who to follow), utilizado para la recomendación desde 2010; el enfoque utilizado, como puede observarse en la Ilustración 4, se basa en dos etapas:
1. Obtención del “Círculo de confianza”, constituido por los usuarios con mayor impacto sobre un conjunto inicial. Para lograrlo, utiliza un recorrido egocéntrico centrado en el usuario, similar a un PageRank personalizado[16].
2. Propagación de pesos, usando un modelo de autoridades y hubs basado en SALSA.
Ilustración 4: conjuntos de trabajo del algoritmo WTF
Al finalizar, el algoritmo recomienda las autoridades como intereses y los hubs como usuarios similares, ordenados por puntaje. Lamentablemente, WTF no provee ningún pseudocódigo, solo una descripción de alto nivel del algoritmo.
A continuación se estudia la generalización de los algoritmos presentados, en busca de una mejor comprensión de la manera en que se relacionan.
2.4.6 Generalización
Recordando la notación introducida al inicio de la sección 2.4, A es un vector n-dimensional de pesos asociados a las autoridades, donde Ai el puntaje autoridad para un nodo i. B y F indican los arcos entrantes y salientes respectivamente; Como se observó en HITS, estos pueden combinarse para obtener un camino P de largo n. Sea P(i) el conjunto de caminos que parten del nodo i (o bien conjunto de nodos), y P(i,j) el conjunto de caminos que parten de i y llegan a j, ambos subconjuntos de los presentados previamente. Es posible definir entonces el peso de autoridad de j sobre P tras n iteraciones como el número de caminos que llegan a j sobre el total de caminos posibles: | | | |
22. 21
Lo cual coincide con el peso asociado en un recorrido aleatorio, y es posible evaluar utilizando cadenas de Markov, al igual que los restantes algoritmos presentados. Recordando el cálculo para la matriz de transición tras n pasos para cadenas de Markov: Π
Siendo la i-esima fila la probabilidad de transición desde el nodo i a cada uno de los nodos.
Sea el vector A la distribución inicial de autoridad, que asigna un peso total de 1 entre los nodos de partida1, es posible definir la autoridad sobre Pn como: (Π ) 2
Es posible observar entonces que existe un algoritmo subyacente común entre PageRank (sin dispersión), SALSA y WTF al momento de asignar el peso de autoridad, variando solo el camino utilizado, mediante las matrices de transición utilizadas. Así, solo es necesario definir la secuencia de movimientos para cada uno, con la serie de matrices de transición asociada:
PageRank: Navegar los arcos entrantes n veces, utilizando la probabilidad del nodo de salida:
SALSA: Alternar entre retroceder hacia los hubs y volver a avanzar hacia las fuentes n veces:
HITS: Si bien no es presentado como un recorrido aleatorio, se ha observado que es posible llegar a la misma definición de peso de autoridad que el obtenido con SALSA:
1 En particular, el vector A0 con ceros en todas las posiciones excepto en la i-ésima posición, provee el peso considerando solo los caminos que inician en el nodo i.
2 A fin de preservar el camino, el orden de multiplicación de matrices es inverso al camino seguido, dada la falta de conmutatividad.
23. 22
WTF: Iniciar con un recorrido aleatorio de k pasos para alcanzar el círculo de confianza, desde ahí avanzar una vez más hasta las fuentes, y desde ahí realizar el recorrido de SALSA iterando n veces:
Dependiendo de las características del grafo, la evaluación de los algoritmos listados es de un elevado coste computacional, y los requisitos de memoria pueden ser inaceptables, pero existen opciones de optimización. Para un camino dado, se pueden considerar dos alternativas básicas:
1. Recorrido estático: computar la matriz de transición para el camino completo Pn, permitiendo subsecuentes evaluaciones de la misma secuencia de transiciones para distintas distribuciones iniciales de autoridad.
2. Recorrido incremental: computar a cada paso únicamente las transiciones con probabilidad mayor a cero, disminuyendo en gran medida la cantidad de operaciones requeridas, en particular para matrices de transición y distribuciones iniciales ralas.
A continuación, se evalúan las características de cada una de estas alternativas, y la posibilidad de combinarlas.
Recorrido estático 2.4.6.1
Recordando la segunda definición del peso de autoridad sobre un camino dado: (Π )
En la formula se indica que es posible evaluar la serie de pasos y luego aplicar la distribución inicial. Este acercamiento evita la necesidad de iterar sobre el grafo para obtener una recomendación personalizada, una vez obtenida la matriz de transición del camino. Así, los algoritmos presentados pueden evaluarse como: ( ) [ ] [ ] [ ] [ ]
Siendo el único elemento desconocido al momento de la recomendación el conjunto de pesos iniciales . La matriz de transición del camino (entre corchetes) se calcula como el seguimiento de los arcos para el camino, en orden inverso.
De esta manera, para un camino dado, se requiere actualizar la matriz de transición solo cuando el grafo es actualizado. Como desventaja, es requerido evaluar el total de los N2 arcos posibles tantas
24. 23
veces como pasos tenga el camino, lo que puede ser inviable dados los requerimientos de memoria. Adicionalmente, para redes dinámicas, se dificulta la generación de recomendaciones online, siendo una mejor estrategia para el cálculo de la matriz de transiciones un proceso batch.
Recorrido incremental 2.4.6.2
Recordando la primera definición del peso de autoridad sobre un camino dado: A A
En esta fórmula, los pesos A asignados para un camino de n pasos se definen recursivamente como el peso para n-1 pasos sobre el camino, aplicando , la matriz de transiciones del nivel n.
Es posible observar que, para o A ralas, esta operación realiza una gran cantidad de multiplicaciones donde uno de los términos es cero (o bien el nodo de partida posee un peso de autoridad nulo, o no existe un arco hacia el correspondiente nodo destino). Una solución intuitiva es realizar solo las operaciones donde ambos términos son no nulos, reduciendo en gran medida tanto las operaciones requeridas como la utilización de memoria, y permitiendo recomendaciones online.
A continuación en el Algoritmo 4 se muestra el pseudocódigo para caminos incrementales optimizado para matrices de transición ralas, de carácter iterativo.
Algoritmo 4 – Caminos incrementales
Entrada:
P el camino a recorrer
N(0) el conjunto de usuarios de partida
Usado:
N(t) los nodos alcanzados en el nivel t
Ai(0) el peso inicial del nodo i
Ai(t) el peso asociado al nodo i en el nivel t
1. Para cada nodo i N(0)
| |
2. Para cada nivel p en P, o hasta convergencia
2.1. Para cada par
2.2. A
Como puede observarse, el algoritmo toma como entrada un camino a recorrer P y un conjunto de nodos iniciales N(0). Los pasos seguidos son:
1. Inicializar de manera uniforme el peso inicial A(0) entre los nodos iniciales N(0).
2. Iterar cada nivel p del camino P, o bien hasta convergencia:
25. 24
2.1. Actualizar los pesos de autoridad A(t+1) del siguiente nivel N(t+1) utilizando la matriz de transiciones p asociada al nivel, pero sólo para aquellos nodos donde existe una transición desde el nivel actual (la probabilidad de salto es mayor a cero).
2.2. Seleccionar solo aquellos nodos N(t+1) que fueron alcanzados durante el recorrido
Sobre este algoritmo es posible realizar mejoras, a saber:
Muestreo: al actualizar (2.1) se considera cada par de arcos que alcanza el nodo a fin de propagar el peso. En su lugar, es posible realizar un muestreo aleatorio, tomando una muestra de tamaño configurable.
Poda: al seleccionar los nodos alcanzados (2.2), se consideran todos aquellos cuya probabilidad es mayor a cero. Es posible extender esto utilizando un umbral, descartando aquellos nodos cuya probabilidad de ser alcanzados no es suficiente.
Criterios avanzados: tanto al actualizar (2.1) y seleccionar (2.2), es posible considerar condiciones adicionales, en particular características de los nodos como la relación entre arcos entrantes y salientes, o una clasificación obtenida por otros medios.
Este algoritmo muestra una gran flexibilidad, al costo de necesitar recorrer el grafo para cada recomendación. En el capítulo 0 se estudia la personalización de este algoritmo para generar recomendaciones en Twitter.
2.4.7 Caminos híbridos
Se puede observar en la Tabla 1 que ambos algoritmos son complementarios, pero no es posible utilizarlos simultáneamente debido a su relación con la serie de transiciones a utilizar. Como alternativa, es posible dividir el algoritmo de recorrido en dos o más partes, utilizando para cada una de ellas una de las técnicas de recorrido.
Tabla 1: Comparación entre las técnicas de recorrido estático e incremental Ventajas Desventajas Recorrido estático
Permite calcular pesos de autoridad sin recorrer el grafo.
Depende del camino.
Posee una operación muy costosa en memoria y tiempo de procesamiento. Recorrido incrementales
Permite recorrer el grafo de manera eficiente.
Independiente del camino.
Requiere recorrer el grafo cada vez.
A modo de ejemplo, considerando el caso de dos sub-caminos:
Donde para se utiliza un camino incremental y para un camino estático. De aquí es posible calcular la autoridad a lo largo del camino como:
26. 25
{ (Π )
Recordemos el camino planteado de manera genérica para definir WTF: Iniciar con un recorrido aleatorio para alcanzar el círculo de confianza, avanzar una vez más hasta las autoridades, y desde ahí realizar el recorrido de SALSA:
Es posible observar las razones por las que se ha tomado esta decisión, dado que el camino puede dividirse en un camino no definido y un camino estático . De esta manera, es posible calcular la matriz de transición para el camino estático, y realizar recomendaciones dinámicamente sólo con alcanzar un círculo de confianza.
La utilización de recorridos híbridos permite obtener recomendaciones sobre caminos dinámicos con cierto grado de optimización, pero para esto es necesaria la capacidad de procesar el total de la red, que, según sea el dominio del problema, puede inferir grandes requerimientos de hardware.
2.4.8 Big Data
Big data refiere a una colección de datos tan grande y compleja que las técnicas tradicionales de procesamiento resultan ineficientes. En el contexto de link analysis, la resolución suele involucrar clústeres (Hadoop[16]) o servidores monolíticos (Cassovary[11]), para permitir almacenar en memoria principal el total de la red, ya sea en un mismo equipo o de manera distribuida.
Este trabajo plantea un algoritmo que, a un mayor costo temporal, puede ejecutarse en un equipo doméstico, a partir de recorridos incrementales y poda del número de arcos considerados, distribuyendo el costo de inicialización de la estructura en el tiempo. El mismo algoritmo puede implementarse mediante MapReduce, en caso de disponer el hardware necesario.
27. 26
Capí tulo 3:
Algoritmo de recomendacio n topolo gica
28. 27
3 Algoritmo de recomendación topológica
Este trabajo tiene como objetivo obtener resultados aceptables para la recomendación de fuentes de información en el menor tiempo posible, explotando la semántica que conllevan las relaciones entre usuarios. El punto de partida para la recomendación se basa en la existencia de usuarios similares, con los cuales el usuario interesado comparte comunidades e intereses; cuanto mayor sea la similitud con ellos, mayor será la capacidad de predicción desde ellos, permitiendo sugerir tanto fuentes de información como otros usuarios similares.
En líneas generales, el algoritmo utiliza la noción de caminos incrementales presentada en la sección 2.4.6.2: un recorrido aleatorio como una serie de movimientos hacia adelante o hacia atrás, donde el peso asociado depende del número de arcos que alcanzan al nodo, sobre el total de caminos posibles en dicha secuencia de movimientos. A diferencia de los algoritmos presentados en link analysis (2.4), en lugar de iterar hasta alcanzar la convergencia, se siguen los arcos a lo largo de un camino dado, con una semántica asociada.
Dado que el algoritmo presentado depende de los roles de los usuarios en la red, es necesario hacer una breve introducción a la clasificación de usuarios dentro de este contexto.
3.1 Clasificación de usuarios
Como se ha visto en el capítulo 2.3, los usuarios en el contexto de Twitter pueden clasificarse como usuarios mediáticos (fuentes de información y celebridades) [1][11] o usuarios similares (buscadores de información y amigos)[1], basándose en su función e interacción, según las comunidades implícitas de las que forman parte.
Las comunidades son conjuntos de usuarios que comparten una temática o locación específica. Las comunidades no son excluyentes, pudiendo un usuario formar parte de más de una, e incluso teniendo distintos roles en cada una de ellas.
Ilustración 5: Ejemplo de comunidades
29. 28
Al aplicar HITS sobre Twitter[1], es posible encontrar usuarios con mayor peso de autoridad (mediáticos) o de hub (buscadores de información); estos resultados pueden obtenerse tanto global como localmente a una comunidad, con la salvedad que los roles para un mismo usuario pueden variar de comunidad en comunidad: en un caso extremo un usuario puede ser fuente de información en una comunidad y un buscador de información en otra. Para un usuario dado, se llaman amigos a aquellos buscadores de información con los cuales se poseen relaciones simétricas; dentro de una comunidad, es posible clasificar un usuario como “amigo”, es decir que utiliza la red con el fin de interactuar con pares, al tener valores elevados de autoridad y hub, o bien por un alto porcentaje de relaciones simétricas.
Cada usuario puede publicar distintas clases de contenidos en distintas comunidades. Los usuarios mediáticos pueden clasificarse según la calidad del contenido publicado[11]: las fuentes de información publican material de interés, lo que lleva a que su contenido sea retweeteado (citado) un mayor número de veces; las celebridades en cambio se caracterizan por un mayor número de menciones. Los amigos pueden detectarse por hilos de conversación basados mensajes personales.
3.1.1 Clasificación basada en relaciones
Puede observarse entonces que desde las conexiones de usuarios no es posible diferenciar entre fuentes de información y celebridades, siendo necesario estudiar el contenido; por esto, esta división será excluida del estudio, considerando todos los usuarios mediáticos como posibles fuentes de información. La clasificación resultante coincide con la utilizada en los algoritmos que dividen los usuarios en Autoridades y Hubs.
Durante el desarrollo, se ha encontrado que las fuentes de información se destacan por tener mayor cantidad de seguidores que seguidos; si un usuario es una potencial fuente de información, se espera que la relación entre seguidores y seguidos sea menor a un valor límite , es decir:
En nuestro caso, y para evitar falsos positivos en casos donde el usuario pertenece a una red densamente interconectada, se establecerá . Es decir, se considerarán fuentes de información candidatas a aquellos usuarios con más del doble de seguidores que seguidos.
Métricas como el índice de fuente de información (IS)[17] estudian la relación entre seguidos y seguidores, permitiendo asignar un puntaje como fuente de información global. ( )
A partir de esta métrica es posible determinar no solo aquellos usuarios que cumplen con el criterio mínimo para ser fuentes de información, sino que pueden compararse entre sí, proveyendo una función heurística para el ranking, como se verá en la sección 3.3.
30. 29
3.2 Recolección de usuarios
Para un usuario dado, es posible dividir el conjunto de usuarios actualmente seguidos utilizando la clasificación fuente/similar. Esta clasificación puede realizarse globalmente o para comunidades, con dos implicaciones distintas: globalmente se obtendrían como fuentes a aquellos usuarios más influyentes de Twitter (top influencials, según Cha et al. [11]), localmente a comunidades se obtendrían como fuentes de información aquellos que cumplen ese rol dentro de la comunidad. Volviendo al usuario inicial, aquellos usuarios que sigue actualmente lo ubican entonces dentro de una o más comunidades.
Considerando nuevamente en la Ilustración 6 una red de ejemplo como la presentada en la sección 3.1, y centrándose en el nodo que identifica al usuario “4”, es posible definir a partir de los usuarios actualmente seguidos a que comunidades pertenece el usuario, y en qué grado. Inicialmente, es posible decir que 1/3 de los usuarios seguidos pertenecen a la comunidad 1, y 2/3 pertenecen a la comunidad 2. Un recorrido aleatorio sobre esta red no solo permitiría obtener las probabilidades de alcanzar otros usuarios de las comunidades actuales, sino también alcanzar otras comunidades estrechamente relacionadas (en el ejemplo, a partir del nodo 11 y 13, alcanzar el nodo 16), sin que sea estudiado el contenido. Este es el principio en el que se basa el proyecto presentado.
Ilustración 6: Ejemplo de comunidades, resaltando los arcos salientes del usuario número 4.
A continuación en la Ilustración 7 se exponen los tipos de usuarios y presuntas relaciones que los unen, según las características topológicas observadas en la sección 3.1.
31. 30
Ilustración 7: Usuarios actualmente seguidos y usuarios alcanzables desde el usuario inicial
Es posible observar las relaciones entre usuarios que existen diversos caminos posibles desde un usuario inicial hacia fuentes de información no seguidas actualmente, entre los que se destacan:
1. Según Fuentes seguidas: Alternar entre arcos salientes y entrantes, al igual que SALSA
2. Según Usuarios similares seguidos: Avanzar sobre los arcos salientes, al igual que PageRank
3. Según amigos: considerar de entre los arcos salientes, solo aquellos que son simétricos, y desde allí considerar los seguidos. Una versión más restrictiva del recorrido 2.
Como puede observase, existe una relación entre estos recorridos y los algoritmos de link analysis estudiados en la sección 2.4. Otra característica en común es la imposibilidad de clasificar de manera fehaciente como fuente de información (autoridad) o usuario similar (hub) solo con observar el nodo; entonces, se consideran todos los usuarios seguidos como pertenecientes a ambas categorías, cumpliendo uno u otro rol según sea su posición en el recorrido.
A partir de esto, es posible utilizar el algoritmo generalizado de link analysis presentado en el capítulo 2.4.6 sobre los dos caminos, como se muestra en la Ilustración 8.
32. 31
Ilustración 8: Recorrido de algoritmos
Como puede observarse en la Ilustración 7 y la Ilustración 8, se espera que los conjuntos alcanzados por ambos recorridos no sean disjuntos; en la sección 3.4 se estudia cómo aprovechar esta característica.
En este contexto, el algoritmo caminos incrementales presentado en 2.4.6.2 ofrece un buen punto de partida. A continuación se estudian las modificaciones específicas consideradas para utilizarlo sobre la red de Twitter.
3.2.1 Restricciones de Fanout
Se ha establecido que las dimensiones de la red hacen que la evaluación total sea inviable 3. Por esto, se plantea imponer un límite configurable a los nodos y arcos utilizados durante el recorrido.
Límite de nodos alcanzados: los nodos seleccionados al finalizar un nivel no serán solo aquellos que posean una probabilidad de ser alcanzados mayor a cero, sino que seleccionarán los con mayor peso.
Límite de arcos por nodo: existen usuarios que poseen una cantidad de relaciones fuera de la media; estos usuarios aumentan en gran medida el número nodos alcanzados a cada nivel, pero la probabilidad propagada será necesariamente menor (siendo la probabilidad de salto uniformemente distribuida, a mayor cantidad de arcos, menor propagación a cada
3 Cassovary, el motor de link analysis utilizado por Who To Follow de Twitter requiere mantener el total de la red representada en memoria, en un mismo servidor con 160GiB de RAM. Aun con los requerimientos de hardware, el API de Twitter limita en gran medida la extracción de estas conexiones, lo que hace prácticamente imposible la recuperación total de la red.
33. 32
nodo alcanzado). Por eso, para un usuario dado se considera hasta un máximo de arcos; en caso de que el número de arcos sea mayor al máximo se seleccionan arcos de manera aleatoria4.
Límite de nodos considerados: al evaluar una subred con demasiados nodos, es posible saturar los límites memoria. Por esto, se establece no se almacenarán más de pesos de autoridad. Cuando | | supere , se descartarán aquellos con menor peso, hasta reducir | | a , con el factor de compresión, entre 0 y 1. Una vez realizado este proceso, que será denominado “compresión”, el algoritmo puede continuar con la ejecución.
De esta manera, es posible encontrar el conjunto de parámetros que permitan la ejecución del algoritmo en un equipo con limitaciones de hardware.
3.2.2 Matrices de transición configurables
Hasta el momento se han estudiado matrices de transición normalizadas, que reflejan la probabilidad de salto desde un nodo a otro, siendo este el enfoque utilizado en cadenas de Markov. La alternativa planteada permite elegir entre:
Matriz de transición binaria: La alternativa más sencilla, donde cada matriz de transición posee un uno en caso de que exista el arco, cero en caso contrario.
{
Matriz de transición probabilística: partiendo de las matrices de transición binarias, representan la probabilidad de salto sobre cada arco, considerando una distribución uniforme. Sea M el total de nodos en la red, la probabilidad de salto de i a j se define como:
Σ
Matriz de transición normalizada: partiendo de las matrices de transición binarias, permite obtener un resultado en la propagación normalizada, pero sin penalizar aquellos nodos que poseen un gran número de arcos.
Matriz de transición personalizada: en lugar de distribuir uniformemente, es posible definir otras matrices de transiciones según se desee.
4 Se realiza de manera aleatoria dado que cualquier otro método de selección o descarte requeriría evaluaciones adicionales, teniendo que recuperar cada uno de los nodos independientemente. Dado que se está tratando de disminuir las consultas a bases de datos y servicios, sólo se trabaja con listas de IDs.
34. 33
3.2.3 Algoritmo presentado
A continuación se estudia la integración de las modificaciones realizadas sobre el algoritmo de recorridos incrementales presentado en 2.4.6.2, resultando en un algoritmo de uso general con flexibilidad en la definición de toma de decisiones, presentado en el Algoritmo 5.
El algoritmo parte de un grupo inicial de nodos N(0), entre los que distribuye el peso inicial A(0) de modo uniforme (paso 1). Luego, itera para cada nivel p del camino dado P o bien hasta convergencia (paso 2): en cada paso de la iteración t, se avanza sobre los arcos, según la dirección indicada por el nivel p en que se encuentra, siempre y cuando el arco sea válido según un criterio de salto dado (paso 2.1), siempre evitando excederse del límite máximo de nodos (paso 2.2). Una vez evaluados todos los nodos del nivel N(t), se procede a seleccionar un subconjunto de los alcanzados N(t+1), según un criterio de selección dado (paso 2.3). En paralelo a la propagación de peso, se propaga el número de menciones.
Cabe aclarar que el peso inicial se distribuye de modo uniforme (inciso 1) puesto que este es el enfoque utilizado en recorridos aleatorios, y simplifica la entrada del algoritmo. En caso de desearse, es posible utilizar otro método para la distribución inicial, utilizando por ejemplo inicialización manual o alguna técnica de ranking.
Algoritmo 5 – Caminos incrementales modificado
Entrada:
P el camino a recorrer, de largo n
N(0) el conjunto de usuarios de partida
Usado:
N(t) los nodos alcanzados en el nivel t
Ai(0) el peso inicial del nodo i
Ai(t) el peso asociado al nodo i en el nivel t
Mi (t) el número de menciones del i en el nivel t
1. Para cada nodo i N(0)
| |
2. Para cada nivel p en P, o hasta convergencia
2.1. Para cada par
2.2. Compactar (A(
2.3. A
2.4. A
35. 34
Como puede observarse, el algoritmo es flexible, permitiendo configurar:
Criterio de salto: para determinar qué arcos serán considerados y que nodos serán candidatos de ser alcanzados, utilizando por ejemplo:
o Clasificación: saltar desde o hasta nodos que pertenezcan a una categoría dada.
o Muestreo: seleccionar a lo sumo arcos.
Factor de propagación: corresponde a la entrada de la matriz de transición que indica el factor de propagación desde i hasta j. Puede construirse utilizando, por ejemplo:
o Valor binario: caso más sencillo, donde el valor es uno si hay un arco y cero en caso contrario, pero genera una propagación no normalizada.
o Valor probabilidad uniforme: la entrada corresponde a la probabilidad de salto, con una distribución uniforme. Corresponde al recorrido aleatorio sobre cadenas de Markov.
o Valor binario normalizado: Definido de igual manera que el valor binario, pero el peso asociado a la existencia de un arco se reemplaza por ⁄, con M el total de nodos de la red. De esta manera, se obtiene un peso normalizado.
o Valor personalizado: Un valor distinto a las alternativas presentadas previamente.
Criterio de selección: determinar qué nodos serán realmente alcanzados, por ejemplo:
o Peso: seleccionar solo aquellos nodos cuyo peso sea superior a un umbral dado.
o Máximo: seleccionar a los sumo nodos
o Clasificación: Seleccionar solo aquellos nodos que pertenezcan a una categoría dada.
Cada una de las opciones de configuración dadas influye en la calidad y la cantidad de recomendaciones generadas: tanto los criterios de salto como selección reducen el número final de nodos alcanzados, y por lo tanto pueden llegar a afectar negativamente el recall. Adicionalmente, la poda reduce el número de caminos seguidos, por lo tanto afecta los pesos propagados y en consecuencia la precisión; otras técnicas de ranking, estudiadas en la siguiente sección, se verán también afectadas negativamente si se reduce el número de buenos candidatos en el conjunto final a rankear. Es de gran interés entonces determinar la interacción entre los parámetros, lo que se hará en el capítulo 0.
3.3 Ranking
Una vez obtenido un conjunto de usuarios candidatos, es necesario presentarlos al usuario interesado como una lista ordenada. En esta sección se estudian distintas alternativas para asignar el puntaje con el que se realiza el ordenamiento.
3.3.1 Peso
Al finalizar el recorrido, los nodos alcanzados tienen un peso asociado basado en la cantidad de caminos que llegaron a ellos. La alternativa más sencilla es simplemente considerar el peso como puntaje asociado.
36. 35
Sobre el conjunto de usuarios alcanzados por el algoritmo de recolección, es posible seleccionar utilizando un criterio de clasificación heurística aquellos candidatos que son fuentes de información. Al eliminar del conjunto aquellos que no pueden ser fuentes, se reducen los falsos positivos, e idealmente mejora la precisión entre los recomendados.
3.3.2 Índice de fuente de información (IS)
Siendo el objetivo de este trabajo recomendar fuentes de información, el Índice de fuente de información presentado en la sección 3.1.1 permite asignar un puntaje heurístico estimando la calidad del usuario candidato como fuente de información. ( )
3.3.3 Ranking basado en comparación de seguidores
En el capítulo 2.3 se ha mencionado el trabajo de Hannon et al. [7], donde se generan perfiles de usuario basados en las sus interrelaciones, generando una solución que sostienen se asemeja al filtrado colaborativo. En su trabajo, al comparar las recomendaciones utilizando perfiles basados en contenido con las obtenidas al utilizar perfiles basados en interrelaciones, las segundas ofrecen igual o mejor precisión. Los perfiles considerados para un usuario objetivo fueron:
S1: El usuario es representado por las palabras de sus tweets
S2: El usuario es representado por las palabras de los tweets de sus seguidos
S3: El usuario es representado por las palabras de los tweets de sus seguidores
S4: El usuario es representado por una combinación de S1, S2 y S3
S5: El usuario es representado por los ids de sus usuarios seguidos
S6: El usuario es representado por los ids de sus usuarios seguidores
S7: El usuario es representado por una combinación de S5 y S6
S8: La función de puntaje combina resultados de S1 y S6
S9: La función de puntaje se basa en la posición de los usuarios en cada una de las recomendaciones, favoreciendo usuarios frecuentemente recomendados
Ilustración 9: Resultados de precisión para los algoritmos Hannon et al.
37. 36
En la Ilustración 9 se muestran los resultados reportados por Hannon et al. [7]. Puede observarse que al generar perfiles de usuario considerando solo los seguidores (S6) obtienen resultados que igualan o superan las demás alternativas.
Para cada una de las estrategias de generación de perfiles, se utilizó como puntaje una función de similitud entre un perfil objetivo (usuario interesado) y los usuarios candidatos, definida de igual manera, independientemente del contenido de los perfiles.
La similitud entre un perfil objetivo y un perfil candidato se obtiene realizando el producto escalar entre los vectores de pesos asociados y respectivamente, y normalizando respecto al total de términos contenidos en el perfil objetivo. | |
En orden de calcular el peso asociado para cada término del perfil, existen múltiples alternativas, entre las cuales el trabajo presentado considera dos.
Recuento de ocurrencias 3.3.3.1
Al asignar peso a un término del perfil, la estrategia más sencilla es simplemente contar el número de ocurrencias del término. A modo de ejemplo, en el caso de los perfiles basados en tweets, el peso de cada palabra es la cantidad de ocurrencias de esta entre el total de tweets contenidos en el perfil.
Particularmente, si el perfil es un conjunto de elementos únicos (como en S5 o S6), el elemento poseerá un peso de 1 en caso que el elemento se encuentre en el perfil, 0 en caso contrario. En consecuencia, y serán vectores binarios, y puede simplificarse el cálculo de la función de similitud a: | | | |
Siendo B(i) el conjunto de arcos entrantes al nodo i, el puntaje de similitud para el algoritmo S6, puede computarse como: | | | |
Esta alternativa resulta sencilla de implementar, pero no toma en cuenta la rareza de los elementos, ni las dimensiones de los conjuntos, tendiendo entonces a favorecer perfiles con mayor cantidad de términos, en especial aquellos que son frecuentes en el dominio.
TF-IDF 3.3.3.2
TFIDF (term frequency–inverse document frequency) es una métrica tomada del área de recuperación de información y que se aplica originalmente a texto. Esta alternativa da mayor
38. 37
importancia a aquellos términos (para nuestro caso, IDs de usuario) más frecuentes para el documento (en nuestro caso, perfil) objetivo, pero menos frecuentes entre todos los documentos.
TFIDF se define como el producto de dos estadísticas, la frecuencia del termino (TF - Term frecuency) y la frecuencia inversa en documentos (IDF - inverse document frecuency).
La frecuencia del término en el documento , se basa en la cantidad de ocurrencias del término i en el documento T sobre el total de ocurrencias de todos los términos en el documento. Σ
La frecuencia inversa en documentos del término el subconjunto de documentos U se define como el logaritmo de la relación entre el número de documentos evaluados con el número de documentos que contienen al término : | | | |
La similitud entre dos documentos puede computarse entonces como: ( ) Σ ( ) | |
Si bien en su trabajo plantean una misma estrategia para el peso de cada termino, al trabajar con listas de seguidores o seguidos (S5 y S6 respectivamente) no existen repeticiones. En estos casos es posible simplificar la frecuencia del término a: { | |⁄
Y en consecuencia: ( ) | | Σ( | | | | | | | | ) ( ) | | Σ( | | | | | | )
De entre las alternativas presentadas por Hannon et al. Solo será considerada para este trabajo S6, dado que se basa en topología y provee los mejores resultados. Sea B(i) y F(i) el conjunto de
39. 38
usuarios seguidores y seguidos respectivamente, y N el total de usuarios de la red, el puntaje de similitud basado en los usuarios seguidores (S6) se define como: ( ) | || | Σ( | | | | )
Puede observarse que esta función utiliza los mismos elementos tratos durante la recolección, permitiendo incorporarla sin dificultad a la solución presentada.
3.3.4 Función de scoring compuesta
Cada una de las funciones presentadas previamente representa distintos aspectos sobre el interés del usuario.
El peso propagado durante la recolección indica la cercanía a nivel comunidades
El índice de fuente de información da una estimación inicial del potencial como proveedor de información del usuario, independientemente de la cercanía
El puntaje de Hannon S6 indica la similitud directa entre el usuario candidato y el inicial, dando una información alternativa a la obtenida mediante propagación de pesos.
3.4 Combinación de resultados
Distintos recorridos o distintas funciones de ranking generan distintas recomendaciones. A continuación se estudia la posibilidad de mejorar los resultados individuales al combinarlos.
Partiendo de dos algoritmos que proveen una recomendación ordenada, aquellos usuarios recomendados por el algoritmo “1” pueden combinarse con los provistos por el algoritmo “2”, utilizando operaciones de conjuntos sobre los nodos, y luego combinando los pesos asociados.
Ilustración 10: Diagrama de Venn ilustrando la relación entre las recomendaciones provistas por los algoritmos Fuentes y Amigos.
40. 39
Desde la perspectiva del algoritmo “1”, los usuarios recomendados por el algoritmo “2” pueden ser:
Elementos redundantes:
Elementos nuevos:
Las operaciones básicas entre estos dos conjuntos son:
Unión: Incorporando los elementos nuevos, en busca de aumentar el recall
Intersección: Conservando solo los elementos redundantes, en búsqueda de mejorar la precisión
Respecto a la combinación de los puntajes asociados, existen diversas alternativas. A continuación se estudian las alternativas consideradas, que pueden extenderse de manera sencilla para n recomendaciones.
Combinación lineal 3.4.1.1
Utilizando un factor de combinación , se puede definir el peso de autoridad compuesto como:
El factor de combinación puede obtenerse de distintas maneras:
Equiprobable: solución trivial, donde se promedian los pesos obtenidos por distintos recorridos.
Asignado por parámetro: si se conoce la precisión media de los recorridos, es posible establecer el valor de modo explícito.
Criterio: es posible utilizar un criterio para determinar el porcentaje de cada una de las categorías, y utilizarlo como factor de escala.
Combinación no lineal 3.4.1.2
Si se desconoce la escala de cada ranking, y se considera que ambos proveen información vital, es posible obtener un ranking combinado multiplicando los rankings individuales.
Combinación con prioridades 3.4.1.3
Si ambos algoritmos ofrecen puntajes a grupos disjuntos de usuarios, o bien el primero ofrece consistentemente mejores puntajes para un subconjunto de interés, puede definirse el puntaje con prioridades como: {
Con y normalizados.
41. 40
Multiplicando el valor de por el mínimo obtenido para el conjunto de interés para , se conserva el orden de interno de cada ranking, pero el conjunto de interés se encontrará primero en el ranking.
3.5 Conclusión
En este capítulo se ha presentado un algoritmo de recomendación basado en topología, y se ha establecido un framework genérico para la ejecución del algoritmo, permitiendo la configuración y extensión de estrategias asociadas. Sobre este framework, se han presentado dos recorridos basados en la existencia de comunidades, en busca de generar recolecciones rápidas, para luego mejorar mediante técnicas de ranking.
A continuación en el capítulo 0 se presenta el diseño asociado a la implementación del algoritmo, y en el capítulo 0 se presenta la experimentación para la evaluación de los distintos aspectos configurables.
43. 42
4 Diseño e Implementación
Como lenguaje de programación se ha seleccionado Java, bajo el paradigma de programación orientada a objetos. La idea principal sobre este diseño es que las clases diseñadas puedan ser reutilizadas posteriormente a modo de biblioteca; internamente, los paquetes deben tener alta cohesión y bajo acoplamiento, facilitando así las tareas de expansión y mantenimiento de los mismos.
El diseño del algoritmo de recomendación se ha dividido en paquetes, reflejando los diferentes aspectos del proyecto. Cada uno de estos paquetes exporta una interfaz fundamental que provee el comportamiento requerido.
Ilustración 11: Diagrama de clases indicando solo las interfaces exportadas por cada paquete. Se han excluido las dependencias de la interfaz usuario por simplicidad.
4.1 Usuario
El paquete fundamental contiene la información sobre el usuario, sus interrelaciones, tweets y metadatos. Al diseñar el usuario se debe tener en cuenta el número de usuarios totales que se mantendrán en memoria, y la redundancia de las consultas.
Tres decisiones fundamentales son:
Patrón flyweight (conocido también como objeto ligero): solo se mantiene en memoria una única instancia del usuario completo; cada una de las copias será un proxy referenciando a instancia completa.
Inicialización lazy: como se ha visto previamente, un usuario consta de distintas partes separables (en particular al tratar con Twitter API), aprovechando esta característica, la instancia del usuario se va completando al ser requerido.
44. 43
Relaciones como arreglo de IDs: dado el número de arcos posibles para un usuario, crear una instancia de cada uno de los referenciados requiere la creación de un gran número de objetos que adicionalmente difícilmente sean utilizados. Por esto, cada usuario solo conserva el ID de cada uno de aquellos con los que se relaciona, pudiendo obtenerlos al momento de ser requerido.
A continuación, en la Ilustración 12, pueden observarse las clases fundamentales. Un usuario proxy almacena la información correspondiente a la instancia y su puntaje, e interactúa con un Factory de usuarios asociado, solicitando cuando lo requiera la actualización de la información correspondiente al usuario, y proveyendo métodos de alto nivel para obtener los seguidos y seguidores como listas de usuarios. Las implementaciones de Usuario corresponden a TwitterAPI y dataset utilizado.
Ilustración 12: Diagrama de clases del paquete Usuario. Se han omitido métodos getters y setters triviales, propios de estructuras de datos.
4.2 Usuario Factory
Para solucionar las diferencias entre las fuentes de información (a saber, el API de Twitter y el dataset), se utiliza una interfaz genérica. Las principales características son:
45. 44
Patrón Factory: la creación y en consecuencia la selección del mejor método para obtener los usuarios es delegada a una clase específica, asociada a la fuente de información y consideraciones correspondientes.
Persistencia: dadas las grandes limitaciones que impone Twitter, se utiliza una base de datos local donde se almacenan las consultas realizadas. Estos datos poseen una fecha de modificación, lo que permite imponer una antigüedad máxima después de la cual debe volver a consultarse al API.
Caché: el patrón flyweight requiere una indexación de las instancias actuales; se extiende esta decisión a mantener en memoria las últimas consultas realizadas. Dado que en este proyecto no se realizan modificaciones de los datos, no es necesario evaluar posibles inconsistencias entre valores referenciados entre distintos objetos livianos, aun cuando el objeto indexado deba ser desalojado de la caché.
Facade: a fin de abstraer las capas superiores de la decisión de solicitar información al API o a la base de datos, se crea una capa intermedia que atiende las consultas y se encarga del mantenimiento de los usuarios en memoria y base de datos. Para el caso del dataset, la información contenida es mucho menor, limitando el facade a un simple wrapper de los llamados a los servicios de la base de datos.
A continuación en la Ilustración 13 pueden observarse los factories implementados, donde se muestra una íntima relación con la implementación asociada, indicadas en el inciso anterior.
Ilustración 13: Diagrama de clases del paquete Factory usuario.
46. 45
4.3 Criterio Usuario
Al momento de generar criterios de decisión, existen una gran cantidad de posibilidades. Se ha decidido utilizar el patrón strategy, junto con el patrón composite para criterios múltiples, maximizando la flexibilidad. A continuación en la Ilustración 14 se indican los criterios planteados, quedando abierta la posibilidad de crear nuevos, en caso de necesitarse.
Ilustración 14: Diagrama de clases del paquete Criterio Usuario.
4.4 Comparador Usuarios
Similar al caso de los criterios, existe una gran cantidad de maneras de comparar usuarios. Al momento de implementar, se optó por utilizar nuevamente el patrón strategy, extendiendo a su vez la interfaz estándar de Java Comparator, aprovechando de esta manera los algoritmos de ordenamiento provistos por las librerías del lenguaje. Para el caso de comparadores complejos, se ha utilizado el patrón composite. En la Ilustración 15 se indican los comparadores implementados.
47. 46
Ilustración 15: Diagrama de clases del paquete Comparador Usuarios.
4.5 Scoring Usuario
La evaluación del scoring final para la recomendación requiere en algunos casos considerar el total de los usuarios candidatos, por razones de normalización o términos globales (como es el caso de la frecuencia inversa del documento en TF-IDF); por esto, la clase responsable de la función de scoring evalúa el total de los usuarios candidatos. A continuación pueden observarse las clases implementadas, nuevamente basándose en el patrón strategy.
Ilustración 16: Diagrama de clases del paquete Scoring Usuario.
48. 47
4.6 Recolector y Nivel Recolección
El recolector se encarga de coordinar la ejecución sucesiva de los niveles planteados, y el retorno de los resultados obtenidos. Un nivel de recolección cuenta con el modo de recorrido, y está íntimamente ligado a que lista de usuarios y que estrategias de normalización utilizar. Siendo de interés para este proyecto solo utilizar seguidos y seguidores, la implementación realizada es sencilla, pero flexible en caso de necesitarse en el futuro.
Ilustración 17: Diagrama de clases del paquete Nivel de Recolección.
4.7 Factory de Recolección de Usuarios
Dado que en cada nivel deben tomarse decisiones sobre las listas de usuarios a construir, se utiliza nuevamente un Factory intermediario entre las consultas desde el nivel y el Factory de Usuarios. Este se encarga del muestreo, en caso que la cantidad de usuarios siguientes sea demasiado
49. 48
grande, así como de la normalización de pesos, previo al salto; dado que se encuentra íntimamente relacionado con el comportamiento del nivel, se delega la construcción de estos al Factory, permitiendo ocultar de manera transparente la lógica de comunicación con las capas inferiores.
Ilustración 18: Diagrama de clases del paquete Nivel de Recolección.
4.8 Ranking y combinación de resultados
El ranking requiere asignar un valor numérico a cada usuario a recomendar. Al final de la recolección, cada usuario posee dos valores asociados: el peso y el número de menciones; otros puntajes pueden computarse externamente, basados en sus características como el IS o nodos vecinos como los rankings colaborativos presentados por Hannon. A su vez, es posible combinar distintas estrategias de ranking de diversas maneras. La implementación provista provee cada una
50. 49
de las alternativas presentadas, y da lugar a la extensión en caso que sea necesario, en particular, si se desea incluir procesamiento de contenido.
Ilustración 19: Diagrama de clases del paquete Ranking usuarios.
Dos rankings pueden combinarse mediante operaciones de conjuntos; se han implementado las funciones de unión e intersección, permitiendo modificar que estrategia se utiliza para combinar los puntajes individuales.
51. 50
Ilustración 20: Diagrama de clases del paquete Combinación de puntajes.
4.9 Conclusión
Puede observarse que la implementación del algoritmo propuesto presenta flexibilidad en cada uno de los puntos requeridos para su extensión. En caso que se desee incluir procesamiento de contenido, solo se deben implementar las interfaces o bien extender las clases correspondientes.
53. 52
5 Experimentación
En este capítulo se presentan las pruebas realizadas sobre los algoritmos planteados para evaluar la capacidad de 1) alcanzar usuarios de interés, y 2) generar recomendaciones. Para esto, se estudian primero de manera general distintas combinaciones de recorridos y parámetros, para generar una preselección, y luego se evalúa la mejor combinación en comparación con otras alternativas de ranking basadas en topología.
5.1 Tratamiento de datos
Una vez realizados los experimentos sobre una muestra del total de usuarios, se obtiene un valor para cada métrica de interés por cada experimento realizado; es necesario entonces resumir los resultados obtenidos a fin de realizar conclusiones. En esta sección se estudian las medidas básicas utilizadas.
5.1.1 Valor característico
A fin de obtener un valor representativo que resuma los resultados obtenidos se utilizarán medidas de tendencia central. A continuación se estudian las alternativas más comunes con sus ventajas y desventajas.
Media aritmética 5.1.1.1
La media aritmética (también llamada promedio o media) de un conjunto finito de números es el valor característico de una serie de datos cuantitativos objeto de estudio que parte del principio de la esperanza matemática o valor esperado, se obtiene a partir de la suma de todos sus valores dividida entre el número de sumandos. ̅ Σ
Una de las limitaciones de la media aritmética es que se trata de una medida muy sensible a los valores atípicos: valores muy grandes tienden a aumentarla mientras que valores muy pequeños tienden a reducirla, lo que implica que puede dejar de ser representativa de la población.
Esta medida es la más utilizada en la literatura, y será utilizada para dar un primer acercamiento a los resultados obtenidos.
Mediana 5.1.1.2
En el ámbito de la estadística, la mediana representa el valor de la variable de posición central en un conjunto de datos ordenados, separándolo en una mitad mayor y una menor. Para el caso de las métricas estudiadas, indica un valor umbral para el 50% de los resultados obtenidos.
A diferencia de la media, no es sensible a valores atípicos, por lo que suele utilizase cuando los datos se encuentran dispersos, pero al depender de solo uno (o a lo sumo dos) de los valores de la muestra se vuelve menos representativa.
54. 53
5.2 Validación cruzada
En este experimento se utilizó 3-fold cross-validation, dividiendo el conjunto de usuarios actualmente seguidos en tres subconjuntos, y ocultando un subconjunto a la vez, para luego evaluar la capacidad de los algoritmos de recuperar los usuarios ocultos.
Al evaluar las métricas explicadas previamente, el conjunto de usuarios de interés es conocido, estando conformado por los usuarios ocultos. 5.2.1 K-fold cross-validation
En k-fold cross-validation, la muestra original es particionada de manera aleatoria en k sub- muestras de igual tamaño. De las k sub-muestras, una es conservada para probar el modelo, mientras que las k - 1 restantes se utilizan para entrenamiento. La validación cruzada es repetida k veces (folds) con cada una de las k sub-muestras utilizándolas exactamente una vez como conjunto de prueba. Los k resultados se combinan (utilizando la media, por ejemplo) para producir una única estimación. La ventaja de este método sobre muestreo aleatorio es que cada uno de los subconjuntos es utilizado tanto como entrenamiento y validación, y cada observación es utilizada exactamente una vez.
5.2.2 Dataset
Para la evaluación automática se ha utilizado el dataset5 provisto por Kwak et al. [3], que consta de 41.7 millones de usuarios con un total de 1.47 mil millones relaciones seguidor-seguido. Para determinar la distribución de seguidos y seguidores, Kwak et al. estudian la función de distribución complementaria CCDF (por su nombre en inglés Complementary cumulative distribution function), definida como el complemento de la distribución acumulada. CCDF indica la probabilidad de encontrar un usuario con más seguidos o seguidores que un valor umbral t.
Los resultados para CCDF sobre el dataset se encuentran en Ilustración 21.
5 http://an.kaist.ac.kr/traces/WWW2010.html
55. 54
Ilustración 21: distribución complementaria del dataset provisto por Kwak et al.
Kwak et al. describen en detalle el comportamiento del número de seguidos y seguidores, indicando que responden a la Ley exponencial, tal como otras redes sociales. A continuación se presentan las observaciones más importantes.
Centrándose en los usuarios seguidos, puede observarse que existe una anomalía sobre luego de los primeros 20, lo cual coincide con la recomendación inicial de Twitter a nuevos usuarios. Pocos usuarios poseen más de 10.000 seguidos, solo páginas de políticos y celebridades, que ofrecen alguna forma de atención al cliente.
Solo unos pocos poseen más de un millón de seguidores, y estos son o bien celebridades (como Ashton Kutcher y Britney Spears) o medios masivos (como CNN y TIMES). De estos usuarios, algunos poseen relaciones simétricas con sus seguidores, pero no en la mayoría de los casos.
En general, existe un bajo grado de reciprocidad: del total de las relaciones entre usuarios, 77.9% son unidireccionales, dejando sólo un 22.1% reciprocas; esto es bajo en comparación con estudios sobre otras redes sociales (68% en Flickr [4] y 84% en Yahoo!). Incluso, del total de los usuarios contenidos en el dataset, el 67.6% no son seguidos por ninguno de los usuarios a los que siguen, indicando el uso de la red como una herramienta para buscar información más que para interacción social.
5.2.3 Caracterización de algoritmos
A fin de determinar el comportamiento individual de los algoritmos presentados, se realizaron recomendaciones para 200 usuarios, variando los parámetros de fanout. En esta primera etapa no se busca recomendar fuentes, sino determinar qué algoritmos poseen mayor potencial para este
56. 55
fin. Los algoritmos presentados en la Tabla 2 se definen a partir de 4 recorridos y 6 combinaciones de recorridos:
Tabla 2: Algoritmos estudiados Nombre Recorrido Transición Scoring interno A1
fuentes
binaria
peso A2
fuentes
probabilística
peso A3
A1 Unión A2
N/A
6 A4
A1 Intersección A2
N/A
A5
Amigos
binaria
Peso A6
Amigos
probabilística
Peso A7
A5 Unión A6
N/A
4 A8
A5 Intersección A6
N/A
A9
A2 Unión A6
N/A
4 A10
A2 Intersección A6
N/A
Para el peso, se consideraron 3 funciones de scoring, presentados en la Tabla 3:
Tabla 3: Funciones de scoring utilizadas por los rankings iniciales Nombre Scoring externo R1
Peso durante recolección A2
Menciones durante recolección7 R3
Cada uno de estos algoritmos será estudiado con las siguientes configuraciones de fanout:
Límite de arcos por nodo: {5 mil; 20mil}
Cantidad máxima de arcos (seguidor o seguido) que se evaluaran desde un usuario. Disminuye la influencia de nodos sumideros y fuentes.
Límite de nodos por nivel: {200; 800}
Para los algoritmos de más de dos niveles, se consideró la posibilidad de no utilizar usuarios alcanzados por los niveles anteriores.
Límite máximo de usuarios: 2 millones
Cantidad de usuarios máxima considerada durante la evaluación de un nivel. Al superar el máximo se descartarán todos los usuarios con una sola ocurrencia (compactación), y se proseguirá con la recomendación.
Dado el número de variables a estudiar, se presentarán primero las tablas de resultados obtenidos para cada conjunto de parámetros y luego se descompondrán para estudiar sus efectos.
6 En caso de no existir uno de los elementos, se utilizara 0.1 como score por defecto
7 Equivalente al peso propagado por la transición binaria
57. 56
Recall 5.2.3.1
El primer objetivo de la evaluación es determinar qué porcentaje de nodos puede recuperarse, dando el conjunto de trabajo a partir del cual seleccionar una recomendación. En la Tabla 4 se presentan los resultados obtenidos para los algoritmos presentados.
Tabla 4: Recall total obtenido para cada algoritmo y combinación de parámetros Algoritmo Recall total 200 nodos 800 nodos 5000 arcos 20000 arcos 5000 arcos 20000 arcos
A1
0,629
0,690
0,745
0,784
A2
0,651
0,706
0,769
0,807
A3
0,706
0,758
0,801
0,835
A4
0,574
0,638
0,713
0,755
A5
0,508
0,545
0,534
0,570
A6
0,508
0,545
0,534
0,570
A7
0,508
0,545
0,534
0,570
A8
0,508
0,545
0,534
0,570
A9
0,719
0,761
0,810 0,842
A10
0,440
0,490
0,494
0,535
Los mejores valores se obtienen con el algoritmo A2 (recorrido según fuentes con transiciones probabilísticas), ya sea directamente o al combinar sus resultados en A3 (recorrido binario según fuentes) y A9 (recorrido probabilístico según amigos); particularmente, el mejor valor se obtiene con A9, lo que resulta una consecuencia lógica dado que se intervienen dos recorridos distintos y por lo tanto se aumenta el número efectivo de usuarios alcanzados. Al estudiar los parámetros de fanout puede observarse que el recall es directamente proporcional tanto al número de nodos como el número de arcos considerados.
5.2.3.1.1 Recall según número de seguidos
Otro factor de importancia es el número de usuarios seguidos, siendo éstos los que proveen información topográfica. En la evaluación por redescubrimiento, los usuarios restantes (holdin) representan el conjunto de usuarios seguidos; según este, es posible clasificar los usuarios de prueba en cuatro subconjuntos de similar tamaño, los rangos para la división en cuatro subconjuntos se encuentran indicados en la Tabla 5.
Tabla 5: Subcategorías de pruebas Categoría seguidos Casos de prueba
19-99
148
100-167
150
168-258
149
259-396
153
Total
600
58. 57
Cada uno de estos subconjuntos cuenta entonces con aproximadamente 150 usuarios, una muestra suficiente para dar resultados significativos. A continuación en la Tabla 6 se exponen los valores de recall asociados a cada uno de los subgrupos generados. Se ha resaltado en naranja el mejor resultado para cada subconjunto.
Tabla 6: Recall total para los algoritmos principales, para cada combinación de parámetros y subcategoría Categoría Seguidos Recall según seguidos Algoritmo 3 (A3) Algoritmo 6 (A6) Algoritmo 9 (A9) N200 N800 N200 N800 N200 N800 L5000 L20000 L5000 L20000 L5000 L20000 L5000 L20000 L5000 L20000 L5000 L20000 19-99
0,624
0,654
0,707
0,740
0,427
0,459
0,427
0,459
0,690
0,718
0,764 0,795 100-167
0,618
0,681
0,751
0,793
0,498
0,533
0,498
0,533
0,693
0,743
0,792 0,828 168-258
0,682
0,737
0,796
0,832
0,563
0,600
0,574
0,612
0,749
0,789
0,830 0,858 259-396
0,679
0,750 0,821
0,857
0,542
0,587
0,635
0,675
0,743
0,794
0,852 0,881
Los parámetros de fanout se encuentran indicados con los prefijos N# para el numero de nodos y L# para el numero de arcos (links).
Puede observarse claramente que A9 ofrece los mejores resultados para cada conjunto de parámetros, en particular, para el mayor fanout estudiado. Así también, el recall aumenta según el número de usuarios seguidos.
Ilustración 22: Comparación del recall obtenido para cada recomendación realizada, ordenada según número de usuarios restantes. Cada evaluación corresponde a un conjunto de parámetros, donde N precede al número de nodos y L al número de arcos.
-
0,10
0,20
0,30
0,40
0,50
0,60
0,70
0,80
0,90
1,00
-
50,00
100,00
150,00
200,00
250,00
300,00
350,00
400,00
Recall
restantes
Recall de A9 según número seguidos
N200-L5000
N800-L20000
59. 58
En la Ilustración 22 se presenta el recall obtenido para A9 para dos juegos de parámetros, ordenados según número de usuarios seguidos restantes, es decir, aquellos usuarios seguidos que no han sido ocultos (que se denominará también holdin, de manera análoga a holdout).
Pueden realizarse una observación de interés: al aumentar el número de seguidos o el fanout, el recall tiende a converger.
5.2.3.1.2 Último encontrado
Para todos los algoritmos, el recall aumenta tanto al incrementar los nodos o arcos considerados, esto tiene un impacto en la cantidad final de nodos alcanzados. A continuación en la Tabla 7 se expone la posición mediana del último usuario recuperado para cada conjunto de parámetros, resaltando en negrita el 25% de los casos con el menor valor para la última posición alcanzada para cada conjunto de parámetros, y en naranja el menor valor global.
Tabla 7: Posición mediana del último encontrado para cada algoritmo y conjunto de parámetros Nombre Algoritmo Ranking Posición último encontrado 200 nodos 800 nodos 5000 arcos 20000 arcos 5000 arcos 20000 arcos A1R1 A1 R1
80.685
243.269
214.305
539.855 A2R1 A2 R1
43.016
162.793
113.455
366.966 A3R1 A3 R1
90.253
261.106
228.763
562.820 A4R1 A4 R1
49.952
148.087
90.266
277.713 A5R1 A5 R1
17.501
22.928
28.383
37.077 A6R1 A6 R1
16.084
21.396
24.960
32.677 A7R1 A7 R1
16.231
21.590
25.089
32.880 A8R1 A8 R1
16.230
21.590
25.088
32.880 A9R1 A9 R1
64.487
210.954
170.141
508.736 A10R1 A10 R1
26.843
67.938
32.452
79.148 A1R2 A1 R2
80.685
243.269
214.305
539.855 A2R2 A2 R2
58.419
234.734
182.924
627.397 A3R2 A3 R2
104.867
321.494
288.544
768.828 A4R2 A4 R2
53.393
178.597
120.849
416.881 A5R2 A5 R2
17.501
22.928
28.383
37.077 A6R2 A6 R2
16.116
21.461
25.318
33.269 A7R2 A7 R2
17.554
22.989
28.426
37.118 A8R2 A8 R2
17.554
22.989
28.426
37.118 A9R2 A9 R2
70.192
258.452
207.939
695.532 A10R2 A10 R2
26.964
68.100
33.420
80.262 A1R3 A1 R3
80.685
243.269
214.305
539.855 A2R3 A2 R3
43.915
167.061
113.494
372.121 A3R3 A3 R3
93.114
259.112
228.902
529.844 A4R3 A4 R3
50.405
152.616
93.153
297.371 A5R3 A5 R3
17.501
22.928
28.383
37.077 A6R3 A6 R3 16.046
21.362
24.923
32.728 A7R3 A7 R3
16.220
21.601
25.200
33.096 A8R3 A8 R3
16.220
21.601
25.200
33.096 A9R3 A9 R3
60.044
192.388
153.102
435.098 A10R3 A10 R3
26.850
67.936
32.569
79.305