Recomendación de usuarios de Twitter
basada en la topología de red
Integrante: Maximiliano Cabrera, José Manuel Vacas Director: Dr. Marcelo Armentano
1 Introducción 1.1 Motivación 1.2 Propuesta
2 Marco Teórico y Conceptual 2.1 Descripción del dominio
2.1.1 Microblogging 2.1.2 Twitter
2.1.3 Sistemas de recomendación 2.1.4 Metricas
2.2 Trabajos relacionados
2.2.1 Clasificación de usuarios 2.2.2 Recomendación de usuarios 2.2.3 Priorización de resultados
3. Solución propuesta
3.1. Clasificación de usuarios 3.2. Lista de candidatos principales 3.3. Priorización de resultados 3.4. Evaluación
3.5. Simulación
4. Implementación 4.1 Herramientas
4.1.1 Struts 2 4.1.2 Hibernate
4.2 Implementación y Diseño
4.2.1 Data Transformation System 4.2.2 Service Layer
4.2.3 Simulación 4.2.3.1 Poda 4.3.2.2 Perfiles
4.2.3 Arquitectura Pipe and Filter
4.2.3.1 Algoritmo de recomendación 4.3.2.2 Ponderación de recomendados
4.3.2.3 Operaciones de conjuntos entre redes 4.3.2.4 Priorización de resultados
5.1 Unión 5.2 Interseccion
5.2.3 Intersección con mentions (P6) 5.2.4 Intersección con replies (P7) 5.2.5 Intersección con Retweets (P8) 5.3 Recomendador de amistades
5.3.1 Union 5.3.2 Intersección
6. Conclusiones 6.2 Limitaciones 6.3 Trabajos Futuros
Bibliografia
1 Introducción
1.1 Motivación
Twitter es en la actualidad una de las redes sociales favoritas de los usuarios de internet, gracias a que los mantiene informados de lo que ocurre en cualquier parte del mundo en tiempo real. El éxito de Twitter ha sido tal que gobiernos y la iniciativa
privada la han incluido en la lista de los medios de comunicación para difundir acciones e información pública. El uso que los usuarios de internet le han dado a las redes sociales, en particular a Twitter, y el impacto que ésta ha generado sobre la sociedad y su relación con el gobierno es tan grande como versátil [1].
Hoy en día, existe una diversidad muy amplia en contextos diferentes donde Twitter se hace presente. Algunas de ellas van desde un tweet que un usuario común hace en su perfil, hasta actos solidarios para realizar recaudaciones de todo tipo, personas que se ayudan, marketing político , historias de famosos , expertos que recomiendan
artículos relevantes, medios que informan en tiempo real, es mucho más que la idea original de Twitter de mantenerse en contacto con familiares y amigos a pesar de la distancia y el tiempo.
Se citan a continuación algunos de los usos más profesionales que se le ha dado a la red [2]:
● Como herramienta de marketing y publicidad ● Como herramienta informativa
● Como herramienta de negocios y ventas ● Como herramienta de aprendizaje
● Como herramienta de reclutamiento en Recursos Humanos
El propio Twitter incluye un sistema de “a quién seguir” [4], pero la única información disponible acerca de la información usada para hacer la recomendación es “las
sugerencias se basan en varios factores, incluyendo las personas que sigues y las que ellos siguen” [5].
Existe una gran versatilidad de trabajos en el área. En grandes rasgos, estos trabajos pueden dividirse en tres tipos:
1. aquellos que observan el contenido
2. aquellos que estudian las relaciones entre nodos 3. aquellos que toman un enfoque híbrido.
Algunos ponen el foco en el ranking de usuarios de acuerdo a su influencia en la red completa[6]. Otros
usan tanto la estructura de red followers/followees como los tweets publicados en la red como un medio para recomendar a las personas que comparten los mismos intereses relacionados con el contenido con el usuario que recibirá las
recomendaciones [7].
Hannon et al. [8]. consideraron múltiples estrategias de generación de perfiles de acuerdo a cómo los usuarios son representados en un enfoque basado en contenido (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.
La gran cantidad de usuarios actualmente activos en la red, sumado a la gran
variedad de intereses y usos que cada uno de estos le dan, hace que sea difícil para un miembro nuevo encontrar perfiles que le puedan resultar interesantes. Es por esto que un sistema de recomendación de usuarios es una herramienta sumamente útil para usuarios que utilizan Twitter como consumidores de información.
1.2 Propuesta
La propuesta de este trabajo es evaluar estrategias de recomendación recolectando datos topológicos de la red, los cuales serán clasificados, procesados e interpretados para proveer al usuario un listado de posibles candidatos que puedan resultar de su interés.
Nuestro enfoque íntegramente topológico considera, además de la red “fisica” de followers, otras acciones que pueden brindar información al recomendador, por ejemplo replies, mentions y retweets. Esta información será considerada como relación, y
usadas como una mejora en las recomendaciones.
El algoritmo de recomendación propuesto será evaluado con distintas topologías de redes, que permitirán realizar un análisis comparativo de cómo varía el comportamiento de un sistema de recomendación de acuerdo al dominio de entrada. Esto es, la
medición de las posibles soluciones del sistema de recomendación mediante métricas, que nos ayudarán a medir la calidad del sistema, alterando y evaluando con diferentes topologías de entrada. La idea principal es, enriquecer la topología de red de
conexiones directas de amistad entre usuarios (follower/followee), a través de
información obtenida de otras topologías de interacción entre estos (reply, retweet, y mentions).
2 Marco Teórico y Conceptual
En el marco de este capítulo describiremos el concepto de microblogging, la red social Twitter, y los diferentes tipos de sistemas de recomendación que existen para poder entender el dominio del problema del cual estamos hablando.
2.1 Descripción del dominio
2.1.1 Microblogging
El servicio de microblogging es un servicio que permite a los usuarios escribir textos breves y publicarlos por una variedad de medios, incluyendo mensajes de texto,
mensajería instantánea, correo electrónico, aplicaciones ad hoc o la web. Los mensajes pueden ser vistos por el público o por un grupo específico que puede ser elegido por el usuario.
La principal y más popular característica es su sencillez y sintetización, porque en la mayoría de sistemas de microblogging el tope de escritura son alrededor de 140 caracteres. En esos 140 caracteres podemos contar desde qué estamos haciendo, interactuar con otros usuarios mediante replies y mensajes privados, anunciar cosas, promocionarse, hacer o mantener amistades y networking, encontrar trabajo, etc.
Estos mensajes que publica el usuario se muestran en su página de perfil y son también enviados de forma inmediata a otros usuarios que han elegido la opción de recibirlas. El usuario origen puede restringir el envío de estos mensajes sólo a
miembros de su círculo de amigos, o permitir su acceso a todos los usuarios (público), que es generalmente la opción por defecto[9].
En comparación con los blogs regulares, el microblogging satisface una necesidad de un modo aún más rápido de comunicación. De esta manera reduce el tiempo de los usuarios tanto en la lectura como la generación de contenido. Además de esto, provee una diferencia importante en la frecuencia de actualización. En promedio, un blog prolífico recibe actualizaciones una vez al día o cada pocos días, por otro lado un microblogger puede publicar varias actualizaciones en un solo día.
Aunque la idea de microblogging venía de mucho antes que el nacimiento de Twitter en 2006, la famosa red social fue quien popularizó este servicio.
2.1.2 Twitter
Twitter es el servicio de microblogging más popular sobre noticias, entretenimiento, películas, etc. En los últimos años, se ha convertido en una parte importante de nuestra vida cotidiana, proporcionando herramientas para el intercambio de información.
A primera vista todo el mundo diría que se trata de una herramienta muy limitada porque lo que se hace en ella es básicamente enviar mensajes con un límite de 140 caracteres, similares a un mensaje SMS de un teléfono móvil[10].
Sin embargo, es habitual que empiecen a fluir inmediatamente los temas de
conversación sobre nuevas ideas en todo tipo de campos, como gente interesante a seguir , noticias de última hora, tendencias en los medios sociales, en tecnología, en la moda, recomendaciones de todo tipo de cosas, etc.
El primer “tweet” de la historia fue emitido por uno de sus fundadores, Jack Dorsey, hace ya más de 10 años, el 21 de marzo de 2006[10][11]. En la actualidad, sin la existencia de esta multitudinaria red, “follower”, “follow”, “retweet”, “hashtag” o “mention” serían palabras sin significado para cualquier lector.
Hoy en día, al leer alguno de estos términos, el lector rápidamente los relaciona con el mundo de Twitter. Pese a esto, y dado que a lo largo de este documento haremos uso de varios de los términos, se definirá un pequeño apartado para la terminología.
Terminologia
Uno de los conceptos más populares, por el uso extensivo que se le está dando en el mundo offline, en general, y por parte de los medios de comunicación, en particular es el de hashtag .El hashtag es una etiqueta precedida por el símbolo almohadilla o numeral (#) que permite clasificar y categorizar la temática de los mensajes que acompaña en Twitter.
Por la brevedad de los mensajes en Twitter, los hashtags deben ser cortos, con el fin de dejar al usuario espacio para que escriba lo que quiere comunicar sobre el tema del que se trate, y fáciles de memorizar para fomentar la viralidad y la difusión entre
usuarios, indicando claramente de qué tema se trata. Existen herramientas como Tagdef o Twubs que permiten registrar y definir la temática a la que se refiere el hashtag [12].
Un retweet es cuando se realiza nuevamente una publicación que otro usuario ha escrito, con el objetivo de difundirla entre sus propios seguidores de Twitter. Es una forma de amplificar la señal para que más personas escuchen el mensaje original.
Un reply es una respuesta al Tweet de otra persona. Cuando dos personas están respondiendo entre sí, sólo las personas relevantes, como las que siguen a la persona que respondió y la persona en la conversación, verán la respuesta en su cronología.
Una mención es un Tweet que contiene el @username de otra persona en cualquier parte del cuerpo del Tweet. Visitar la página de perfil de otra cuenta en Twitter no mostrará tweets que los mencionen. Sin embargo, se puede buscar Tweets mencionando su @username.
nivel de tráfico de más de 320 millones de usuarios activos en 2016 [9] se puede convertir en un desafío. Para poder mejorar estas búsquedas y reducir la sobrecarga de información, existen herramientas que pueden ser de gran utilidad conocidas como sistemas de recomendación.
2.1.3 Sistemas de recomendación
Un sistema de recomendación es un sistema inteligente que proporciona a los usuarios una serie de sugerencias personalizadas (recomendaciones) sobre un determinado tipo de elementos (items). Los sistemas de recomendación estudian las características de cada usuario y mediante un procesamiento de los datos, encuentra un subconjunto de ítems que pueden resultar de interés para el usuario.
Todos los sistemas de recomendación tienen como objetivo ayudar al usuario, realizando una serie de recomendaciones de forma que se simplifique al máximo la búsqueda que este debe realizar. Estos sistemas inteligentes estudian las
características de los usuarios y mediante el procesamiento de estos datos son capaces de brindar a cada uno una sugerencia personalizada sobre un tema determinado.
Existen diferentes formas mediante las cuales estos sistemas proporcionan sus resultados, entre ellos existen los SR con filtrado colaborativo, los no colaborativos o con filtrado basado en contenido, con filtrado demográfico, con filtrado basado en el conocimiento y con filtrado híbrido. Seguidamente se describe cada una de estas estrategias para generar recomendaciones:
SR con filtrado colaborativo
los elementos que hayan satisfecho a los otros; de esta forma, si dos usuarios U1 y U2, comparten el mismo sistema de valores y al usuario U1 le ha satisfecho un ítem i, probablemente este ítem también satisfaga al usuario U2 por lo que debería recomendarlo. Por ello, en estos SR la definición de medidas de similitud entre
preferencias es un punto crítico. La situación puede ser representada como una matriz de usuarios e ítems, donde cada celda representa la valoración de un usuario con respecto a un ítem concreto. Así visto, el problema consiste en predecir valores para las celdas que estén vacías [13].
SR con filtrado basado en contenido
Los SR con filtrado basado en contenido muestran las sugerencias al usuario según sus elementos de preferencia, este proceso de filtrado realiza una comparación entre estos elementos para así mostrar la recomendación lo más cercana posible a sus gustos, es decir, recomienda al usuario un elemento similar a otro que ya haya elegido antes. Por ejemplo, si un usuario es afín a los libros de historia, el sistema centrará sus recomendaciones en cualquier libro etiquetado con el tema de historia [14]. Estos sistemas estudian el perfil del usuario basándose en las características de los
elementos que él mismo ha solicitado y ofrece las recomendaciones de acuerdo a su perfil.
SR con filtrado demográfico
SR con filtrado basado en el conocimiento
Analizan la información acerca de cómo un elemento compensa las necesidades de los usuarios y establece relación entre esas necesidades y las recomendaciones. Mientras más información se tenga sobre las necesidades del usuario, más precisas serán las recomendaciones y más se ajustarán a sus gustos. Los sistemas de
recomendación basados en el conocimiento pretenden profundizar en el conocimiento sobre los usuarios y los ítems -mayoritariamente de dominio complejo- para la
elaboración de recomendaciones que encajen de forma adecuada con los requisitos del usuario. Un caso de dominio complejo pueden ser los servicios financieros o cámaras digitales en donde no es suficiente con establecer propiedades del ítem o producto, sino que se tienen que tener en cuenta otros aspectos como pueden ser la experiencia o expectativas del usuario en el dominio a tratar por el sistema de recomendación [14].
SR con filtrado híbrido
Los sistemas de recomendación híbridos combinan diferentes métodos de
recomendación, o bien para eliminar problemas específicos de un sistema en concreto, o para aumentar la precisión de las recomendaciones. Si bien añade complejidad al sistema de búsqueda, estos maximizan la eficiencia de los resultados mostrados a los usuarios.
Típicamente los sistemas de recomendación de filtro colaborativo son combinados con otros sistemas de recomendación para paliar el problema del arranque en frío.
El arranque en frío (en inglés : cold start), es un problema potencial de los equipos basado en sistemas de información , que implican un grado de automatizado de datos de modelos. En concreto, se refiere a la cuestión donde el sistema no puede extraer inferencias para los usuarios o temas sobre los que aún no ha reunido suficiente información.[17]
recomendación, y así, por ejemplo, realizar comparaciones entre ellos, necesitamos tener herramientas que midan la calidad de dichos sistemas de recomendación. Estas herramientas llamadas métricas, nos permiten cuantificar cuán efectivo es nuestro sistema.
2.1.4 Metricas
Hay múltiples formas de medir la calidad de recomendación generada por un
algoritmo, dependiendo de lo que se busque optimizar. Dentro de esta variedad es útil distinguir, en primer término, entre las métricas de error y las métricas de ránking.
Las métricas de error se centran en las puntuaciones que el recomendador predice, de forma que miden qué tan cerca ha estado la puntuación predicha respecto a la puntuación real que el usuario ha dado al ítem objetivo. Las métricas más comunes de este conjunto son Mean Absolute Error (MAE), definida como la media de la diferencia absoluta entre los ratings predichos y los reales; y Root Mean Squared Error (RMSE), igual que la anterior pero tomando el cuadrado de las diferencias (para acentuar los valores más grandes) y la raíz cuadrada del promedio.
Por otro lado, las métricas de ránking sólo prestan atención al orden en el que los ítems han sido recomendados, independientemente de la puntuación que el algoritmo ha calculado. Para este fin se toman métricas que desde hace tiempo se vienen desarrollando en el campo de la Recuperación de Información para evaluar sistemas de búsqueda. Dentro de este conjunto cabe distinguir tres tipos principales de métricas, dependiendo del objetivo que se busque optimizar, métricas de acierto, de diversidad y de novedad.
Metricas de error
MAE
Una de las métricas ampliamente utilizadas dentro de las métricas de errores es el Error Absoluto Medio, o mayormente conocido por su acrónimo MAE (Mean Absolute Error)[10]. Esta métrica calcula la suma de la diferencia entre la calificación del usuario y la calificación prevista y lo divide por el número de ítems considerados.
AE
M
=
|
B1i
|
∑
bk∈Bi
r
|
|
i(b )
k− p
i(b )
k|
|
A partir del error absoluto medio se crearon algunas variantes. Algunas de ellas son, el error cuadrático medio MSE (Mean Squared Error), RMSE (Root Mean Squared Error) y NMAE, conocido como Normalized Mean Absolute Error, o MAE
Normalizado[18].
SE
M
=
B1|
i|
∑
bk∈Bi
(r
i(b )
k− p
i(b )
k)
2La medida de error cuadrático medio enfatiza los grandes errores al cuadrar cada error individual, como se muestra en la ecuación anterior. RMSE se define simplemente como la raíz de MSE.
El MAE normalizado o NMAE es el error absoluto medio, multiplicado por un factor de normalización σ para normalizar el valor con respecto al rango de valores de
clasificación. Esta normalización se realiza con el fin de permitir comparaciones entre conjuntos de datos.
MAE
MAE
MAE
N
= σ
=
r 1− rmax min
Metricas de ranking
Para el entendimiento de las métricas de ranking, se definirá lo que llamamos Matriz de confusión. La Tabla 1, define cuatro conceptos fundamentales para dichas métricas.
Tabla 1. Matriz de confusión
Real\Predicción Negativo Positivo
Negativo a b
Positivo c d
● a es el número de predicciones correctas de que una instancia es negativa. ● b es el número de predicciones incorrectas de que una instancia es positiva. ● c es el número de predicciones incorrectas de que una instancia es negativa. ● b es el número de predicciones correctas de que una instancia es positiva.
Una instancia negativa, es un usuarios perteneciente a la lista de recomendación final, para el cual el usuario no tiene interés en seguir.
Una instancia positiva, es un usuario perteneciente a la lista de recomendación final, para el cual el usuario tiene interés en seguir, lo que también llamamos acierto.
True positive (TP): es la proporción de casos positivos que fueron correctamente identificados.
P
T
=
c+ddFalse positive (FP): es la proporción de casos negativos que fueron incorrectamente identificados como positivos.
P
F
=
bTrue negative (TN): es la proporción de casos negativos que fueron correctamente clasificados.
N
T
=
a+baFalse negative (FN): es la proporción de casos positivos que fueron incorrectamente clasificados como negativos.
N
F
=
c+dcAcierto: evalúan el grado de acierto de la recomendación realizada por el algoritmo. Observa los primeros ítems recomendados por el algoritmo y calculan la proporción de ítems recomendados que gustan al usuario.
Entre las métricas más utilizadas de ranking se encuentran Precisión en N, Recall en N y nDCG, entre muchas otras.
Considerando dos conjuntos, usuarios recomendados U R y los usuarios esperados U E , como indica la Figura 1:
Figura 1. Diagrama de Venn de usuarios
Se pueden definir precisión como la fracción de usuarios recomendados que han resultado ser relevantes para el usuario objetivo [19]. Es inversamente
proporcional al grado falsos positivos (usuarios que deberían ser excluidos, pero en su lugar son incluidos).
P =
U|
Recomendados|
U ⋂ U
|
Recomendados Esperados| =
|
UEncontrados|
U
|
Recomendados|
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.
P
(N)=
|
URecomendados con ranking <= N| |N ⋂ UEsperados| =
N
| |
U
|
Encontrados|
Recall
Similar a Precisión, representa la fracción de usuarios relevantes para el usuario que han sido incluidos en la recomendación al mismo [19]. Mide la capacidad de
recuperación del algoritmo. Es inversamente proporcional al grado de falsos negativos (usuarios que deberían ser incluidos, pero en su lugar no son alcanzados o bien son excluidos).
R
=
U|
Esperados|
U ⋂ U
|
Recomendados Esperados| =
U
|
Esperados|
U
|
Encontrados|
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.
R
(N)=
U|
Esperados|
U ⋂ U
|
Recomendados con ranking <= N Esperados| =
U
|
Esperados|
U
|
Encontrados|
CG
La ganancia acumulada (CG) no incluye la posición de un resultado en la
consideración de la utilidad de un conjunto. De esta manera, se calcula como la suma del total de los pesos Wi de los elementos. Para una posición p, se evalúa CG hasta p como:
CG
p= ∑
p i=1
w
iDCG
La ganancia acumulada descontada DCG (discounted cumulative gain) depende de 2 suposiciones,
● Los documentos más relevantes son más útiles cuando aparecen antes en la lista de resultados.
● Los documentos de mayor relevancia son más útiles que los menos relevantes, que a su vez son más útiles que los documentos no relevantes.
De esto, surge la premisa de que los ítems más relevantes que aparecen en una posición lejana, respecto de las primeras posiciones, deben ser penalizados. Esta penalización reduce el valor de puntuación logarítmicamente a la posición en que se encuentra el elemento.
DCG
p= ∑
p i=1
2 −1wi
log (i+1)2
NDCG
La ganancia acumulada descontada normalizada(Normalized DCG), nos da una métrica cuyo valor puede ser comparable con otras métricas, ya que es normalizado a un valor probabilístico.
Se basa en la relevancia de los artículos recomendados. Para ello, se calcula primero la fórmula DCG, opcionalmente sobre un máximo de p elementos (DCG@p). Este valor obtenido debe compararse con el ideal (IDCG o IDCG@p), que se obtiene de la misma forma que DCG pero ordenando los elementos relevantes de mayor a menor preferencia.
nDCG
p=
IDCGDCGpp2.2 Trabajos relacionados
En este apartado, veremos algunos trabajos relacionados, los cuales se tuvieron en cuenta para obtener conceptos e ideas para el desarrollo de la tesis. Principalmente haremos hincapié en los trabajos que aportaron al desarrollo del algoritmo de
recomendación. A continuación se citará un resumen por tópicos de los temas tratados en dichos trabajos.
2.2.1 Clasificación de usuarios
Para la clasificación de usuarios, se compararon dos trabajos con diferentes enfoques.
Por un lado, el trabajo de Tinati et al. [21], en el que se discute cómo el trabajo de la topología de la influencia de Edelman (TOI) proporcionó el trabajo base para que un nuevo modelo de clasificación fuera producido. Por otro lado, el trabajo presentado por Armentano et al.(2012)[23] en el que se propone una clasificación más reducida, con tres tipos de usuarios. Este último enfoque fue desarrollado como parte de este trabajo.
una nueva plataforma donde cualquiera, con las herramientas de publicación
adecuadas, tiene igualdad de oportunidades para tener influencia, conversar y tener un punto de vista - independientemente de su estatus social, profesión o ubicación [22].
Edelman proponen 5 categorías de usuarios:
Idea Starter
Estos pueden ser considerados como individuos que comienzan un meme
conversacional. Tienden a estar muy comprometidos con los medios de comunicación, tanto on-line como off-line. Utilizan múltiples fuentes de medios sociales, pero tienen una compleja red de relaciones, especialmente en línea. Como resultado de esto, su red de conexiones suele ser limitada, pero esto asegura que las conexiones son de alta calidad. Aunque un Idea Starter puede no ser el que tiene la "idea brillante" ellos son los que inician la conversación, y debido a sus conexiones fiables, están en un ambiente fértil ideal para que esta crezca.
Amplifier
Estos pueden ser considerados como individuos que agrupan múltiples pensamientos y comparten ideas y opiniones. Los amplifiers prosperan compartiendo opiniones de otros y disfrutan de ser los primeros en hacerlo. Tienen una red grande de conexiones y son de confianza dentro de su comunidad. Aunque no sintetizan la información que se comparte, tienden a ser los replicadores del conocimiento. Los amplificadores tienden a ser los individuos que forman parte de una pequeña red confiable de ciertos iniciadores de ideas, tomando sus ideas originales y compartiendolas con una audiencia más grande y visible. Debido a este proceso, existe el riesgo de que los iniciadores de ideas lentamente se conviertan en amplificadores debido a una mayor exposición.
Curator
Estos pueden ser considerados como un individuo que usa un contexto más amplio para definir ideas. Los curators tienden a ofrecer un nivel de transparencia más allá de los Idea Starter y Amplifier. Al seguir el camino de la conversación, tienen un impacto en la manera en la que la conversación toma forma y se propaga. Toman las ideas de los Idea Starter y Amplifiers y las validan, cuestionan o rechazan. Son los lazos que se forman entre ldea Starter y Amplifier, uniendo las ideas para ayudar a aclarar y dirigir el tema de la conversación. Los Curators están conectados a una gran audiencia y a menudo recogen información fuera de su comunidad primaria de interés - adaptando la información a su círculo de redes de interés.
Comentator
Estos pueden ser considerados como individuos que detallan y refinan ideas. Los Commentators agregan o adaptan el flujo de la conversación, añadiendo sus propias opiniones o ideas, pero sin llegar a estar demasiado inmerso en la conversación. A diferencia de las otras categorías, Los Commentators no buscan el reconocimiento ni quieren aumentar su estatus, solo participan en algo en lo que creen fuertemente. Quieren compartir la conversación no para el auto-beneficio.
Viewer
Estos pueden ser considerados como individuos que toman pasivo interés en la
conversación. Estas son las conexiones en el que sólo están conectados para observar en lugar de contribuir a la conversación. Sin embargo, aunque no estén activos, todavía se reflejan en el TOI; mientras que los Viewers no comparten ni crean información on-line, consumen grandes cantidades de información y la comparten con su red off-line.
Este enfoque fue considerado como base del algoritmo de recomendación de
usuarios de nuestro trabajo (el cual se detalla en el capítulo 3), principalmente debido a que nuestro enfoque está centrado en la topología de la red, siendo que la clasificación propuesta en [23] puede ser realizable con estos datos.
Para la clasificación propuesta por Edelman [21], es necesario el uso de contenidos de la red, ya que por ejemplo, para clasificar un usuario como Curator, se requiere el análisis de tweets. Por lo que consideramos no aplicable a nuestro trabajo.
2.2.2 Recomendación de usuarios
Desde hace varios años la recomendación de usuarios a seguir es un tópico importante, por lo que ha sido bastante analizado. Trabajos como [6,24] utilizan un enfoque basado en el ranking de los usuario y su influencia en el total de la red (ej: cantidad de followers), sin embargo este tipo de propuesta no toma en consideración los gustos específicos de los usuarios. Otros trabajos se enfocan en el contenido de los tweets[25] para encontrar usuarios con gustos similares pero tienen la desventaja de necesitar contar con los tweets para su análisis. En contraste con estos el trabajo propuesto en [23] propone un algoritmo basado en proximidad dentro de la red,
teniendo en cuenta las características sociales de esta y tomando las relaciones entre usuarios follower/followee. Esto permite acortar el rango de posibles usuarios a
recomendar basados en la premisa de que el usuario objetivo sigue a usuarios que le parecen interesantes. De esta manera es posible realizar una recomendación basada solamente en características topológicas de la misma y tomando en cuenta los gustos de cada usuario. En nuestro caso, además, permite abstraerse a otras relaciones entre usuarios, como mentions o retweet.
2.2.3 Priorización de resultados
Para la priorización de los resultados, existen diversos trabajos que estudian cómo ponderar los ítems. Si bien esta etapa depende de las características de los ítems que queramos priorizar, y cómo queremos hacer la priorización, existen muchos trabajos que nos pueden ayudar a realizar la priorización de acuerdo a nuestros objetivos.
El trabajo presentado en [23] tiene como objetivo demostrar que las métricas para la clasificación de los usuarios populares en Twitter, no son buenas para ranquear
recomendaciones de los usuarios que el usuario objetivo podría estar interesado en seguir. Aquí se propone recomendar Information sources, se suponen que este tipo de usuarios tendrá muchos seguidores y que seguirán a pocas personas. Si el usuario U x no tiene followees, entonces sólo el número de seguidores se considera sin cambiar el significado de la ponderación. La siguiente ponderación es propuesta como base para comparar con otras métricas, y tiene como finalidad dar un puntaje mayor a aquellos usuarios que contengan mayor cantidad de followers.
ω
f(x) =
||i i ∈∈ followees(x) followers(x)||En Hannon et al [8] se compara el uso de perfiles de usuarios basados en el contenido de sus tweets, el de sus followers y followees con perfiles basados en relaciones llegando a la conclusión de que las segundas obtienen igual o mejor precisión para el caso estudiado.
3. Solución propuesta
En este capítulo, ya teniendo los conocimientos necesarios para entender una solución a la problemática planteada en el primer capítulo y los objetivos de este trabajo, se plantea una solución, haciendo hincapié en los detalles a nivel conceptual.
Como solución a la problemática planteada, se propone el diseño e implementación de una herramienta que permita evaluar estrategias de recomendación recolectando datos topológicos de la red.
Su funcionalidad principal puede dividirse en cuatro grandes etapas que se describen a continuación.
3.1. Clasificación de usuarios
A diferencia de otras redes sociales, en Twitter, ha sido demostrado que el 22.1% de las relaciones son recíprocas [10]. En consecuencia el 77.9% son unidireccionales. El estudio también demostró que el 67.6% de los usuarios no son seguidos por ninguno de los usuarios que ellos siguen. Estos son claros indicadores de que estos usuarios probablemente usen twitter como una fuente de información más que una red social.
Muchos usuarios solo publican información acerca de un tema particular, como deportes, películas, música o un banda de rock. Estos usuarios pueden ser
considerados como fuentes de información o broadcasters. En contraste, la gente que usa twitter para obtener información acerca de algo en particular, como forma de RSS reader, registrándose como seguidores de sus artistas favoritos, celebridades, bloggers o programas de televisión.
En Armentano et al. (2013) [8] se propone una clasificación sobre los usuarios de la red basados en el uso que estos le dan a la misma.
● Information Source/fuentes de información (IS): Gracias a que usuarios usan la red en busca de información de interés, existen usuarios que brindan esa información para que otros puedan leerla.
● Friends/amigos (FS): El tercer tipo de usuario, le da un uso similar al de otras redes sociales (como Facebook), donde la mayor parte de sus conexiones son amistades. Estos usuarios suponen una importante vía de comunicación con sus familiares y amigos de cualquier parte del mundo. Por lo cual lo usan la red como un canal de comunicación.
Si bien existen numerosas y diferentes clasificaciones de usuarios, dependientes de gran cantidad de variables, en este caso, y dado la limitación de la topología de la red, se optará por esta clasificación, esperando un impacto positivo en la recomendación final de usuarios.
Para dicha clasificación, se calculará una función UC (User Clasificator), que podemos distribuir entre tres valores para dicha clasificación.
C(u)
U
=
followers(u) + followees(u)
2
+1
followers(u) − followees(u)
Esto genera un índice en el intervalo [0,1] identificando a los Information Sources como usuarios con un valor cercano a 1 y a usuarios con un valor más cercano a 0 como Information Seekers.
Basados en este índice, y bajo las cotas
∝
1 y∝
2se definirá la clasificación del usuario mediante:
Tabla 2. Cotas inferiores y superiores para la función UC
User \ UC(u)
> α
= 1
< α
= 2
IK 0 0.45
FS 0.45 0.55
IS 0.55 1
3.2. Lista de candidatos principales
Para recomendar usuarios en twitter, primero necesitamos un conjunto de candidatos viables dentro de la red. Por cuestiones de simplificación se explicará el método
empleado para explorar la red basado en followers/followees.
Cada usuario, independientemente del tipo de uso que haga de la red, tiene conexiones que influyen directamente en su perfil, las cuales se define como el conjunto de conexiones salientes con nivel de profundidad uno, o también llamadas conexiones directas, para este caso llamados followees.
El algoritmo para reunir usuarios candidatos a recomendar al usuario objetivo “user U T ”, está basado en la siguiente hipótesis [13]:
un usuario que es también seguido por U T , entonces otras personas seguidas por uf pueden ser de interés para U T .
Dada la Figura 2, aplicaremos dicho algoritmo para el usuario objetivo U T = 0.
Figura 2. Red de followees/followers de profundidad 3
Formalmente, la búsqueda de usuarios candidatos para recomendar se realiza acorde a los siguientes pasos [11]:
1. Iniciar con el usuario objetivo U T , obtener la lista de usuarios que el/ella sigue, llamaremos a esta lista S.
Figura 3. Cálculo de S en red de followees/followers
Luego de aplicar el primer paso, la lista S, definida por los usuarios que el nodo 0 sigue S= {1,2,3}.
2. Por cada elemento en S obtener sus seguidores, llamaremos a la unión de toda esta lista L.
Figura 4. Cálculo de L en red de followees/followers
La lista resultante L, definida como la unión de los seguidores de cada elemento en S. L = {5,4,6,7,8,8,9} (Lista con elementos repetidos).
3. Para cada elemento en L obtener sus usuarios seguidos, llamaremos a la unión de todos sus elementos P.
Figura 5. Cálculo de P en red de followees/followers
La lista de usuarios P = {1,2,3,10,12,12,14,13,13,15,16}. Luego el último paso, consta de quitar aquellos usuario que el usuario objetivo ya sigue.
4. Excluir de P aquellos usuarios que el usuario objetivo ya sigue. Llamaremos al resultado, lista de candidatos R.
Figura 6. Cálculo de R en red de followees/followers
Quedando la lista final como R’ = {10,12,12,14,13,13,15,16}
La lista resultante, si bien no tendrá elementos repetidos, R’ se muestra a modo de ver que los elementos que se encuentran repetidos, serán usados para aumentar el puntaje de dicho nodo.
El razonamiento detrás de esta hipótesis es que el usuario objetivo es un buscador de información que ya ha identificado algunos usuarios de interés actuando como fuentes de información, quienes son sus seguidos. Otras personas que también siguien algunos de los usuario de este grupo ( ejemplo: suscriptores de algunos de los mismos fuentes de información) tienen intereses en común con el usuario objetivo, podrían descubrir otros relevantes fuentes de información en el mismo tema, los cuales se convertirán en sus seguidos.
3.3. Priorización de resultados
El orden en que se presentan los resultados es un factor muy importante, ya que impacta directamente en la calidad del recomendador. Es altamente deseable que las recomendaciones más interesantes al usuario, se presenten en las primeras
posiciones. Tal es el grado de importancia del orden de los elementos, que existen métricas que ayudan a tener un parámetro sobre este orden. Una de ellas es DCG, que penaliza los elementos relevantes que aparecen en posiciones lejanas a las primeras.
Cada tipo de usuario, según la clasificación anteriormente mencionada, tiene interés en diferentes tipos de usuarios. Así, usuarios buscadores de información, estarán más interesados en fuentes de información. De esta manera podemos establecer un orden en la lista de recomendación, dependiendo del tipo de usuario objetivo. Es decir, si a un usuario buscador de información se le presenta dos ítems clasificados como IS e IK, se presentará en primer lugar el usuario IS. Ahora, ¿Cómo se priorizará si dos ítems tienen la misma clasificación ?
Para decidir qué ítem priorizar, se utilizará un sistema de score para cada ítem presentado al usuario. Es decir, que cada ítem tendrá asociado un peso el cual dependerá de algunas variables recolectadas de la topología de la red.
información que el algoritmo puede procesar. Sin embargo, existe un número considerado de variables que se pueden extraer desde la topología de red.
Muchos algoritmos aplican relevancia sobre los datos de los ítems. Llamamos relevancia al puntaje por el cual el algoritmo prioriza el ordenamiento de los ítems a recomendar.
En este caso, la relevancia está fuertemente ligada al tipo de perfil del usuario que realiza la búsqueda. Esto significa, que según el tipo de usuario (IS, IK o FS) sobre el que se realiza la recomendación, los parámetros del algoritmo de score se ajustan con distintos valores. Además de esto, se utilizará la información obtenida de las otras topologías para poder mejorar estos resultados, por ejemplo, darle más peso a usuarios que se encuentran en todas las topologías.
Imaginemos el escenario en el que cada topología de red, nos aporta información para poder determinar el score de cada nodo de la red.
El enfoque planteado, determina un score distinto según quién es la persona a la que se le haga la recomendación. Esto significa que el score calculado para cada usuario de las redes (followees/folowers, replies, mentions, etc) dependerá de quién es el usuario objetivo para el cual se hace la recomendación.
Por ejemplo, si el usuario al cual se le hace la evaluación, es un IS, tendrá más importancia nodos que tengan mayor cantidad de seguidores, ya que un buscador de información, buscará nodos del mismo tipo, para proveer de más información. Por otro lado, si el usuario es un FS, un nodo que hace una mención a un amigo directo del usuario objetivo, tendrá más peso sobre la cantidad de followers que a este lo sigan.
3.4. Evaluación
Para esta etapa, se utilizará un dataset, el cual cuenta con casi 16 millones de registros, y contiene diferentes relaciones entre los usuarios. Estos datos han sido construidos después de monitorear los procesos de propagación en Twitter, antes, durante y después del anuncio del descubrimiento de una nueva partícula con las características del bosón de Higgs [12]. Esto significa, que si bien los Ids de los usuarios han sido anonimizados, dichos datos son reales.
A partir de este dataset, se obtendrán distintos grafos los cuales difieren en el tipo de conexión entre los nodos. Estos serán transformados mediantes operaciones de unión e intersección, con el objetivo de descubrir nuevas relaciones en la red, y ponderarlas mediante un puntaje, que determinará la fuerza de la conexión.
Las conexiones entre los nodos del grafo que se considerarán son:
1. re-tweeting (retweet network): relaciones entre usuarios que hicieron retweets. 2. replying (reply network) : red de respuestas a los tweets existentes.
3. mentioning (mention network): red de conexión mediante menciones entre usuarios.
4. friends/followers: relaciones sociales que representan amigos / seguidores.
Grafos simples
Figura 7. Grafo de followees Figura 8. Grafo de replies
Grafos combinados
Figura 9. Grafo de unión Figura 10. Grafo de intersección
El usuario ‘x’ estará conectado con el usuario ‘y’ si ‘x’ sigue a ‘y’ o si ‘x’ replicó a ‘y’.
El usuario ‘x’ estará conectado con el usuario ‘y’ sólo si ‘x’ sigue a ‘y’ y replica a ‘y’
En las Figura 7 y 8, se puede observar dos gráficos simples, los cuales son
combinados mediante la operación unión e intersección respectivamente. En las Figura 9 y 10, se observan los grafos resultantes con una ponderación, que nos ayudará a determinar la priorización de resultados a recomendar.
Mediante estos grafos, evaluaremos y concluiremos qué relación o relaciones son más conveniente para la recomendación de usuarios.
3.5. Simulación
Para medir la calidad del algoritmo, dado que no contamos con usuarios reales que puedan puntuar la recomendación, usaremos un sistema de simulación. El sistema de simulación básicamente permitirá generar podas en las conexiones de la red, y
mediante distintas evaluaciones, se podrá cuantificar si el algoritmo encuentra como una posible recomendación al/los nodo/s que se ha se han quitado de la red.
La decisión de qué conexión se va a podar, depende totalmente del sistema de simulación, el cual podrá configurarse para, por ejemplo, podar usuarios con mayor cantidad de seguidores, con mayor cantidad de followees, o una sin ningún criterio específico, para el cual elegirá nodos aleatoriamente.
Para entender de manera más clara, en la Figura 11 realizaremos una simple poda sobre la red completa:
Figura 11. Red inicial sobre la que se realizará la poda
Para el siguiente caso, se elegirá una única poda al usuario con mayor cantidad de seguidores. Luego de realizar una poda, puede quedar una subred inaccesible,
impidiendo llegar a un conjunto de nodos desde cualquier punto de la red. Si bien este no es el caso, veremos cómo se reducen la lista de usuarios a recomendar, ya que para el algoritmo, la subred {6,7} es inaccesible.
La red sobre la cual se hará la evaluación quedará como muestra la Figura 12.
Figura 12. Red con poda aplicada
Siguiendo el algoritmo base, explicado anteriormente en el apartado “Lista de
candidatos principales”, evaluaremos la calidad del algoritmo, mostrando los resultados de los pasos intermedios aplicados a la red con la poda mostrada en la Figura 12.
En resumen tendremos:
Paso 1: definido como los followees del nodo U T
S=
Paso 2: por cada nodo en S, tomaremos sus followers
L =
Paso 3: por cada nodo en L, tomaremos sus followees
P =
Paso 4:
R =
sumando un acierto a la predicción. Esta es la base con la cual podremos evaluar la calidad del algoritmo.
Como se dijo antes, esta es solo la base de la simulación y el algoritmo simplificado, con el objetivo de mostrar cómo se evaluará dicho sistema de recomendación, sin tener en cuenta las métricas, priorización de resultados y otros pasos los cuales se aplicaran y explicaran mas adelantes con los resultados obtenidos.
4. Implementación
En el presente capítulo, se detallan las herramientas utilizadas para el desarrollo de la tesis, cuál fue el motivo de sus usos, el diseño y la implementación de los aspectos más relevantes del sistema.
4.1 Herramientas
El desarrollo de la problemática se planteó como una solución orientada a objetos utilizando como lenguaje de programación JAVA. Para mostrar la solución creada, se desarrolló una aplicación web, implementada con el framework Struts2 corriendo en un servidor Apache Tomcat.
4.1.1 Struts 2
Struts es un framework con carácter de software libre para el desarrollo de
aplicaciones Web bajo el patrón MVC en la plataforma Java EE . Se basa en el patrón de diseño MVC el cual separa tres secciones diferenciadas llamadas Modelo, Vista y Controlador. Esto busca separar el modelo de datos, las interfaces de usuario y la lógica de negocios en tres componentes diferentes como muestra la Figura 13.
Figura 13. Arquitectura principal de Struts 2
4.1.2 Hibernate
Por cuestiones de performance, las cuales se explicaran en la sección 4.2.1, se utilizó como gestor de base de datos MySql.
Para poder comunicar la aplicación Java y el repositorio principal en MySql, se utilizó el framework Hibernate, que nos permitió de manera sencilla crear un mapeo entre la capa de modelo y el repositorio.
Figura 14. Arquitectura principal de Hibernate
Esta herramienta permite obtener los datos del repositorio, ya sea a través de consultas en el lenguaje SQL, como en su propio lenguaje llamado HQL.
4.2 Implementación y Diseño
4.2.1 Data Transformation System
El hecho de trabajar con grandes volúmenes de datos, hizo que gran parte del sistema esté enfocado en minimizar los costos de operaciones entre los datos. Para esto, se planteó un sistema externo, que permite transformar los datos para que estos puedan ser operados de manera más eficiente.
Este sistema, conocido como Data Transformation System o por su acrónimo DTS, es un conjunto de objetos y utilidades que permite la automatización de operaciones de extracción, transformación y carga para o desde una base de datos. Los objetos son paquetes DTS y sus componente y utilidades son llamados DTS Tools.
Figura 15. Interacción entre el sistema de recomendación y el DTS
En la Figura 15 se muestra la interacción entre el sistema de transformación de datos y el sistema de recomendación.
En un principio, el sistema de recomendación, no contaba con esta implementación de transformación de datos, lo que fue sumamente costoso ya que se manejaban millones de registros operados a través de un simple data set. El motivo de esta implementación fue la ineficiencia en las operaciones que incluyen gran cantidad de datos. Debido a la gran cantidad de operaciones, es sumamente crítico en cuanto a rendimiento y recursos las decisiones que se tomen tanto a nivel de diseño como de implementación.
Con el objetivo de reducir estos tiempo de operaciones, se realizó el sistema DTS, que hizo que disminuyeran significativamente los tiempos y recursos utilizados. La transformación de datos, es un proceso costoso en cuanto a tiempos iniciales, pero gracias al uso de una red estática (dataset) nos permitió realizar una
transformación masiva de los datos a una estructura más efectiva, la cual será empleada para cualquier tipo de operación.
Este sistema, como se dijo anteriormente, realiza una transformación de datos a estructuras más eficientes. Agregado a esto, realiza cálculos para cada usuario en la red, como son cantidades de seguidores, cantidad de réplicas, menciones, etc, con el objetivo de reducir las operaciones en tiempo de ejecución. La nueva estructura,
permite acceder de manera directa a cálculos que con la estructura inicial demandaban innecesariamente recursos y tiempo de procesamiento.
Figura 16. Estructura de archivo inicial, y estructura de tabla final
En la Figura 16, se intenta ilustrar mediante un ejemplo, cómo se reducen los tiempos de procesamiento a través de la nueva estructura generada por el DTS.
La misma analogía puede ser usada para las relaciones de mentions, replies, retweets, etc. Obteniendo cuántas menciones hizo y cuántas le hicieron a un
determinado usuario, si de menciones se tratase. También, se realizaron cálculos de categorización de usuarios, lo que ayuda a determinar a qué categoría pertenece un determinado usuario sin realizar el cálculo cada vez que se necesite saber la misma.
Si bien esta implementación reduce de manera considerable el tiempo de cálculo, toda la información de las distintas relaciones será almacenada en una única entidad, la cual va ser almacenada en memoria.
La Figura 17, hace referencia a la clase ‘User’, de la cual se cargaran cientos de miles de instancias en memoria. Estos objetos serán mapeados mediante el framework Hibernate, que permite tener un mapeo directo objeto-relacional (ORM). En este caso el mapeo de atributos entre la estructura resultante del DTS y nuestra entidad ‘User’.
Figura 17. Entidad User para mapeo ORM
La entidad contiene, por cada usuario, los resultados de los cálculos hechos entre los archivos del dataset. Cada columna de la entidad contiene la cantidad de seguidores, cantidad de personas que sigue, número de replicas/mentions/retweets hechas por y hacia el usuario, de manera que con la este esquema se reduce de cálculos complejos, a una consulta directa de base de datos.
Pese a esta gran ventaja, el hecho de manejar un objeto más complejo, produce un tradeoff entre tiempos de procesamiento y el almacenamiento en memoria. Cuando un programa o algoritmo compensa el uso de tiempo con espacio se lo conoce como space-time or time-memory tradeoff.