• No se han encontrado resultados

Recomendación de usuarios de Twitter basada en la topología de red

N/A
N/A
Protected

Academic year: 2020

Share "Recomendación de usuarios de Twitter basada en la topología de red"

Copied!
81
0
0

Texto completo

(1)

Recomendación de usuarios de Twitter 

basada en la topología de red 

             

   

 

 

 

 

   

Integrante: Maximiliano Cabrera, José Manuel Vacas  Director: Dr. Marcelo Armentano 

(2)

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 

(3)

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   

 

(4)

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 

 

(5)

   

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.  

 

(6)

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). 

(7)

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]. 

(8)

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. 

(9)

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. 

 

(10)

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 

(11)

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 

(12)

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] 

(13)

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. 

(14)

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

=

|

B1

|

 

bkBi

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

|

 

bkBi

(r

i

(b )

k

− p

i

(b )

k

)

2

 

 

La 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− r

max  min

 

(15)

 

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+dd

 

False positive (FP): es la proporción de casos negativos que fueron incorrectamente  identificados como positivos. 

P

F

=

b

(16)

True negative (TN): es la proporción de casos negativos que fueron correctamente  clasificados. 

N

T

=

a+ba

 

False negative (FN): es la proporción de casos positivos que fueron incorrectamente  clasificados como negativos. 

N

F

=

c+dc

 

 

Acierto: 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 

(17)

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

|

 

(18)

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

i

 

  DCG   

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. 

(19)

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

=

IDCGDCGpp

 

 

2.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.    

 

(20)

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. 

(21)

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. 

 

(22)

 

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. 

 

 

(23)

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) =

|| 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. 

 

 

(24)

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. 

 

(25)

● 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

2

se definirá la clasificación del  usuario mediante: 

(26)

   

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]: 

 

(27)

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 

     

(28)

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 

(29)

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 

(30)

 

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 

(31)

 

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 

(32)

 

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.  

 

(33)

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.    

 

 

 

 

(34)

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 

   

(35)

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. 

 

(36)

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 

(37)

 

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 

(38)

 

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 =  

   

(39)

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. 

 

(40)

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.   

           

(41)

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. 

   

(42)

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. 

 

   

 

 

(43)

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 

(44)

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. 

(45)

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. 

(46)

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.  

 

Referencias

Documento similar