Recomendación de usuarios de Twitter basada en la topología de red
|
|
- Antonia Alarcón Moreno
- hace 5 años
- Vistas:
Transcripción
1 Recomendación de usuarios de Twitter basada en la topología de red Integrante: Maximiliano Cabrera, José Manuel Vacas Director: Dr. Marcelo Armentano Co-Director: Dr. Ariel Monteserin Título: Ingeniería en sistemas
2 1 Introducción 1.1 Motivación 1.2 Propuesta 2 Marco Teórico y Conceptual 2.1 Descripción del dominio Microblogging Twitter Sistemas de recomendación Metricas 2.2 Trabajos relacionados Clasificación de usuarios Recomendación de usuarios 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 Struts Hibernate 4.2 Implementación y Diseño Data Transformation System Service Layer Simulación Poda Perfiles Arquitectura Pipe and Filter Algoritmo de recomendación Ponderación de recomendados Operaciones de conjuntos entre redes Priorización de resultados 5. Análisis de resultados 1
3 5.1 Unión 5.2 Interseccion Intersección con mentions (P6) Intersección con replies (P7) Intersección con Retweets (P8) 5.3 Recomendador de amistades Union Intersección 6. Conclusiones 6.2 Limitaciones 6.3 Trabajos Futuros Bibliografia 2
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 Los creadores de Twitter aún se asombran de los usos creativos que la gente le da a la herramienta. Por ejemplo, una de las primeras acciones solidarias relacionadas con esta plataforma de microblogging se registró durante los incendios en San Diego, California, en octubre de 2007: vecinos con sus celulares "twitteaban" el estado del fuego cerca de sus viviendas alertando a otras personas, a los bomberos y a las autoridades; y se estima que esta información ayudó a la evaluación de los damnificados [3]. 3
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. 4
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). 5
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 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]. 6
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 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. 7
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 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 El subscribirse a una cuenta de twitter para recibir lo que esta publica es conocido como follow. Encontrar a quién seguir en Twitter, teniendo en cuenta que posee un 8
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 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 Un SR se dice colaborativo, o sistema de recomendación social [14] si usa la información conocida sobre las preferencias de otros usuarios para realizar la recomendación al usuario que la precise. Los SR colaborativos identifican usuarios cuyas preferencias sean similares a las de otros usuarios y recomiendan a los primeros 9
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 Clasifican a los usuarios de acuerdo a su perfil y hacen las recomendaciones basándose en clases demográficas [15]. Las recomendaciones demográficas son similares a las recomendaciones basadas en el contenido con la excepción de que las similitudes están calculadas a partir de la utilización de información demográfica en lugar de valoraciones de los ítems [16]. Suelen tener en cuenta la clasificación que tiene el usuario según su información personal, estos sistemas agrupan a los usuarios de acuerdo a la edad, sexo, profesión y otras características en función de ofrecer recomendaciones atrayentes para los usuarios que pertenezcan al mismo grupo. 10
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] No obstante, los otros sistemas de recomendación también pueden ser combinados [14]. Para tener un valor cuantitativo de la calidad de nuestro sistema de 11
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 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. 12
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. M AE = 1 Bi 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]. M SE = 1 B i bk Bi (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. 1 N MAE = σ MAE = MAE r max r min 13
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. T P = d c+d False positive (FP): es la proporción de casos negativos que fueron incorrectamente identificados como positivos. P F = b a+b 14
16 True negative (TN): es la proporción de casos negativos que fueron correctamente clasificados. T N = a a+b False negative (FN): es la proporción de casos positivos que fueron incorrectamente clasificados como negativos. F N = c c+d 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 15
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 = Recomendados Esperados = U U U U Recomendados Encontrados 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. U Recomendados con ranking <= N U P (N) = Esperados N = U Encontrados N 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 = Recomendados Esperados U = U U U U Esperados Encontrados Esperados 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) = Recomendados con ranking <= N Esperados U = U U U U Esperados Encontrados Esperados 16
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 w i i=1 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 w 2 i 1 log 2(i+1) 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. Admite además la distinción de diferentes grados de relevancia (a diferencia de métricas como precisión y recall, que consideran relevancia binaria) [20]. 17
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 = DCG p IDCG p 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 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. En Tinati et al. [21], Edelman sostiene que las categorías tradicionales de personas influyentes en un entorno off-line corresponden a una serie de factores sociales como la autoridad, la riqueza o el estado de la celebridad. Sin embargo, internet está ofreciendo 18
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. 19
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. El trabajo propuesto por Armentano et al.(2012)[23], básicamente se consideran dos factores para la clasificación de un usuario U x. La cantidad de seguidores que este tenga (followees), y la cantidad de usuarios que lo siguen (followers). 20
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 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. 21
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. i followers(x) ω f (x) = i followees(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. 22
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 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 Seekers/buscadores de información (IK): Como se explicó anteriormente, estos usuarios usan la red en busca de información de algún interés específico. 23
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. followers(u) followees(u) f ollowers(u) + f ollowees(u) +1 U C(u) = 2 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: 24
26 Tabla 2. Cotas inferiores y superiores para la función UC User \ UC(u) > = α 1 < = α 2 IK FS IS 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]: Los usuarios seguidos por los seguidores de los usuarios seguidos por U T son posibles candidatos a recomendar para U T. En otras palabras, si un usuario Uf sigue a 25
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 26
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 27
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 28
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 29
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 30
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 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. El hecho de que el algoritmo esté basado meramente en la topología de la red, sin analizar contenido de los tweets o el perfil del usuario, pone una restricción en la 31
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. 32
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 33
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. 34
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 35
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 36
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 = Como se puede ver en la lista final R, el algoritmo incluye el nodo podado, por lo que podemos decir que ante la simulación realizada se predijo de forma correcta, 37
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. 38
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 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
41 Figura 13. Arquitectura principal de Struts 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. 40
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. 41
43 4.2 Implementación y Diseño 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 42
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. 43
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. 44
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. Para atacar el problema de espacio en memoria se retrasó el uso de esta clase hasta que fuese estrictamente necesario realizar cálculos con los datos de cantidad de 45
47 menciones, replies, etc. En su lugar, se usó una collection haciendo sólo referencia al identificador del usuario (id de la clase User). Imaginemos que obtenemos la lista de los seguidores del usuario U T con 200 mil seguidores. Figura 18. Lista de seguidores del usuario U T User 1 User 2 User User Simplificaremos cada objeto User de la lista a un String (user_id) y ocho Integers (followers, followees, replies_to, etc). Dejando de lado factores como la arquitectura y la JVM de java, para un objeto de tipo String se requiere 20+(n/2)*4 bytes de memoria, siendo n la cantidad de caracteres del objeto, y 4 Bytes para un objeto tipo Integer. Supondremos un identificador standard de 4 caracteres para la identificación del usuario y simplificando su cálculo a (n/2)*4 tendremos: String = 8 Bytes Integer = 4 bytes User = 8 bytes + 32 bytes = 40 bytes. El espacio para manejar una lista con 200 mil elementos sera superior a 8 Mb. Imaginemos ahora que cada objeto usuario es representado únicamente por su identificador, como muestra la Figura 19. Figura 19. Lista de ids de seguidores del usuario U T user_id 1 user_id 2 user_id user_id Cada identificador ocupará el tamaño de un String. De la misma manera que para el cálculo del objeto User tendremos que cada objeto ocupa 8 bytes de memoria. Por lo que la lista se reducirá a 1,6 Mb. En conclusión, podemos decir que este enfoque reduce el uso de memoria significativamente. 46
48 4.2.2 Service Layer Dado que la implementación del DTS permite únicamente la comunicación con nuestro dataset, es decir, no podría establecer comunicación con otro Data Source, lo que podría ser otro formato de dataset, o la misma API de Twitter, se creó una capa intermedia que establece las operaciones por las cuales se dará la comunicación. Gracias a esta capa, se tiene una abstracción, que permite cambiar la fuente inicial de información e implementando una interface se pueda establecer una comunicación con otras fuentes evitando el uso del DTS. Si bien el hecho de poder comunicarse directamente con la API de twitter sin pasar por el sistema de transformación de datos aporta una mayor flexibilidad, se pierde el aporte de rendimiento obtenido por el DTS, pasándole toda la responsabilidad a la API que se esté implementando. Para el caso de twitter, es muy poco práctico dado a las grandes limitaciones que tiene en cuanto a cantidad de request por tiempo que se puede pedir a la red. 47
49 Figura 20. Interacción de la capa de servicios con el DTS y el sistema de recomendación Si se desease que el sistema funcione bajo otro data source, como puede ser la API de Twitter o un dataset es necesario implementar la interface de servicio. 48
50 Figura 21. Diagrama de clases de la capa de servicios La Figura 21 muestra la implementación realizada para que nuestro sistema pueda comunicarse mediante la capa de servicios con la base de datos. 49
51 4.2.3 Simulación Poda Antes de iniciar una recomendación para un usuario, el sistema debe ser configurado para una simulación, la cual permitirá realizar podas sobre la red. Una poda, básicamente corta cualquier relación entre usuarios, a través de un borrado lógico en la base de datos. Esta tarea es sumamente importante, ya que nos permitirá medir el sistema de recomendación bajo diferentes perfiles de usuario. Figura 22. Diagrama de clases de los tipos de podas 50
52 Para realizar las diferentes pruebas, se creó un conjuntos de podas, con diferentes características, las cuales permiten hacer podas aleatorias, por popularidad o por tipo de usuario. Básicamente se implementaron 5 tipo de podas, con la posibilidad de combinar cualquiera de estas, y con un diseño donde agregar un nuevo tipo de poda requiere solo la implementación de una nueva clase. Poda por popularidad: La poda por popularidad corta las conexiones sobre aquellos usuarios que mayor popularidad tiene sobre la red. Así mismo existe la poda por menor popularidad, la cual actúa sobre usuarios con menor influencia sobre la red. Poda aleatoria: la poda aleatoria no tienen ninguna lógica de decisión sobre los nodos de la red a podar, sino que, como su nombre lo indica, selecciona un subconjunto con X cantidad de nodos a podar de manera aleatoria. La aleatoriedad, permite crear un escenario donde la simulación sea más real que cualquier otra poda, ya que la diversidad de nodos a podar, no está influenciado por ningún perfil de usuario. Poda por tipo de usuario: la poda por tipo de usuario, puede ser configurada según la clasificación de usuarios IS, IK o IF. Este tipo de poda, requiere definir uno de los tres tipos de clasificaciones de usuarios y la cantidad de usuarios a podar, y trabajara podando los X nodos que clasifiquen para el tipo de usuario definido. Por lo que esta poda puede ser instanciada por Informations Sources, Information Sekeers o friends. Cada una de las podas implementadas, puede ser configurada bajo un porcentaje en lugar de podar X cantidad de nodos. Para la mayoría de las pruebas se tomará un 30% de las conexiones totales del usuario. Esto hace que la simulación sea más viable, ya que es absurdo establecer una cantidad fija para diferentes usuarios, debido a que puede ser insignificante la poda de X conexiones para usuarios con muchas relaciones y muy determinante para usuarios con pocas. 51
53 Perfiles Los perfiles de configuración básicamente son instancias de configuraciones para la recomendación. En cada perfil encapsula los distintos objetos que hacen la configuración del recomendador, como lo son las podas, los comparadores y el conjunto de operaciones que se aplicaran al algoritmo principal. Figura 23. Diagrama de clases para los tipos de perfiles Cada clase hija pertenece a una instancia de configuración en la cual se evaluará al recomendador. En el método create se deben instanciar los objetos configurandolos de la manera que se desee. Una vez creado el conjunto de configuraciones, la simulación tendrá una lista de perfiles, y su lista de usuarios para los cuales se realizar la evaluación, simplificando a: 52
54 4.2.3 Arquitectura Pipe and Filter El sistema URSFT user recomendation System For Twitter, utiliza como base una arquitectura pipe and filter. Esta arquitectura consiste en una cadena de procesos, donde en cada uno de ellos, ingresa un conjunto de datos de entrada y se produce una salida aplicando filtro en los datos. Figura 24. Arquitectura Pipe and Filter Para cada proceso, a través de interfaces, se define como es la comunicación con su antecesor y sucesor proceso. De esta manera, cada proceso realiza determinadas acciones con sus datos de entradas, y de acuerdo al formato definido de su proceso sucesor, transforma los datos para que este pueda procesarlos. 53
55 Algoritmo de recomendación En el primer proceso se aplica el algoritmo base de recomendación. Tiene como entrada el usuario U T para el cual se quiere la recomendación, y como salida una lista de posibles candidatos al usuarios. Este consta de los siguientes cuatro pasos: 1. Obtener la lista de usuarios que sigue U T 2. Por cada elemento en S obtener sus seguidores 3. Para cada elemento en L obtener la lista de usuarios que sigue 4. Quitar de P aquello usuario que U T ya sigue Figura 25. Ilustrativo de pasos del algoritmo 54
56 Ponderación de recomendados Este proceso, tiene como entrada la lista de usuarios a recomendar R. En dicha lista, se aplica un proceso de transformación donde a cada usuario se le aplicará un peso inicial, que consta del número de apariciones en la lista R. De manera que su salida será un estructura de clave valor, donde su clave k será el identificador del usuario y su valor la cantidad de repeticiones en R. Figura 26. Pipe Ponderación de recomendados La abstracción de esta tarea en un proceso independiente, tiene como objetivo brindar una flexibilidad a la hora de cambiar la lógica de ponderación. Esto permite aplicar un peso a través de una lógica más compleja, sin la necesidad de modificar otros procesos Operaciones de conjuntos entre redes El siguiente proceso, a través de operaciones de unión en intersección de dos o más redes, se encarga de combinar los resultados y ponderar nuevamente la lista de resultados R. Dicho proceso define dos operaciones básicas. Union La unión entre dos o más redes de conexiones permite que la red amplíe sus conexiones, dando una mayor diversidad de posibles candidatos a recomendar. Dado dos conjuntos C y C, formalmente la unión está dada por: U C,C = x C x C 55
IIC Sistemas Recomendadores. Denis Parra Profesor Asistente, DCC, PUC CHile
Métricas de Evaluación IIC 3633 - Sistemas Recomendadores Denis Parra Profesor Asistente, DCC, PUC CHile TOC En esta clase 1. Prediccion de Ratings: MAE, MSE, RMSE 2. Evaluacion via Precision-Recall 3.
Más detallesEvaluar revistas en Incites Journal Citation Reports
Evaluar revistas en Incites Journal Citation Reports Rachel Mangan Team Lead, Customer Education Specialist rachel.mangan@thomsonreuters.com Contenido Usos de Journal Citation Reports La producción de
Más detallesEVALUAR REVISTAS EN INCITES JOURNAL CITATION REPORTS RACHEL MANGAN TEAM LEAD, CUSTOMER EDUCATION SPECIALIST
EVALUAR REVISTAS EN INCITES JOURNAL CITATION REPORTS RACHEL MANGAN TEAM LEAD, CUSTOMER EDUCATION SPECIALIST RACHEL.MANGAN@THOMSONREUTERS.COM CONTENIDO Usos de Journal Citation Reports La producción de
Más detallesGLOSARIO DE TÉRMINOS DE LOS INFORMES
GLOSARIO DE TÉRMINOS DE LOS INFORMES FACEBOOK Fans: número de personas a los que les gusta mi página de Facebook. Nuevos Fans: aquellas personas que, durante el mes analizado, han hecho click en el botón
Más detallesLA RED DE LOS 140 CARACTERES TWITTER
LA RED DE LOS 140 CARACTERES TWITTER 1 2 QUÉ ES? Microblogging: es como tener un blog donde los posts sólo pueden ser de 140 caracteres (llamados tweets) y puedes actualizarlos a cada momento. Inmediato:
Más detallesMinería de Datos Web. Cursada 2018
Minería de Datos Web Cursada 2018 Proceso de Minería de Texto Clustering de Documentos Clasificación de Documentos Es un método supervisado para dividir documentos en base a categorías predefinidas Los
Más detallesManual Práctico de Twitter
Manual Práctico de Twitter Cómo crear tu perfil y empezar a comunicarte Qué es Twitter? Twitter es un servicio gratuito de microblogging que permite a sus usuarios enviar micro-entradas basadas en texto,
Más detallesDe la Biblioteca tradicional a la Biblioteca 2.0 El uso de las herramientas sociales que permiten el cambio
Biblioteca Pública de la Universidad Nacional de La Plata De la Biblioteca tradicional a la Biblioteca 2.0 El uso de las herramientas sociales que permiten el cambio Lorena Miranda Lorena López Luciano
Más detallesGuías útiles herramientas para gestionar tus eventos en redes sociales.
Guías útiles 12+1 herramientas para gestionar tus eventos en redes sociales www.omnitel.es omnitel@omnitel.es 2 de 16 Qué encontrarás en esta guía? La presencia de Twitter en los eventos es ya una realidad
Más detallesINCITES JOURNAL CITATION REPORTS
INCITES JOURNAL CITATION REPORTS MAYO DE 2014 RACHEL.MANGAN@THOMSONREUTERS.COM FECYT Fundación Española para la Ciencia y la Tecnología La Fundación Española para la Ciencia y la Tecnología (FECYT) es
Más detallesLa red social creada por Mark Zuckerberg, Eduardo Saverin, Chris Hughes y Dustin Moskovitz, para los estudiantes de la Universidad de Harvard, pero
La red social creada por Mark Zuckerberg, Eduardo Saverin, Chris Hughes y Dustin Moskovitz, para los estudiantes de la Universidad de Harvard, pero actualmente abierta a cualquier persona que posea una
Más detallesEstrategias TIC. Twitter como herramienta educativa
Estrategias TIC Twitter como herramienta educativa 1 Twitter es una red social de microblogging que permite, a un usuario registrado, enviar y recibir mensajes de texto de hasta 140 caracteres, llamados
Más detallesIntroducción a Minería de Texto. Fabián Latorre
Introducción a Minería de Texto Fabián Latorre fabian.latorre@quantil.com.co Contenido Qué es la minería de texto? Por qué es relevante? Por qué la estudiamos? Aplicaciones La complejidad del texto no
Más detallesASIGNATURA: DISEÑO Y PRODUCTOS ANÁLISIS Y EVALUACIÓN DE DISEÑOS CONSIDERANDO EL CICLO DE VIDA
ASIGNATURA: DISEÑO Y PRODUCTOS ANÁLISIS Y EVALUACIÓN DE DISEÑOS CONSIDERANDO EL CICLO DE VIDA 1.- INTRODUCCIÓN. Asistimos a un boom de los productos verdes y del diseño ecológico. Muchos de ellos sólo
Más detallesFacebook. capítulo 13
Facebook capítulo 13 Facebook facebook Este portal web fue creado en 2004 por Mark Zuckerberg, que entonces tenía 19 años, y actualmente cuenta con unos 400 millones de usuarios de todo el mundo, según
Más detallesPublished on Marco de Desarrollo de la Junta de Andalucía (http://madeja.i-administracion.juntaandalucia.es/servicios/madeja)
Published on Marco de Desarrollo de la Junta de Andalucía (http://madeja.i-administracion.juntaandalucia.es/servicios/madeja) Análisis del Sistema Área: Ingeniería de requisitos Carácter del recurso: Recomendado
Más detalles3. Diseño de la solución
3. Diseño de la solución 3.1. Diseño del Algoritmo En el siguiente capítulo se desarrollará cada de las variables y requerimientos en el sistema de lógica difusa desarrollado. 3.2. Diagrama de bloques
Más detallesTwitter, la plaza global de pensamientos
www.juventudrebelde.cu Personalidades como el Presidente de los Consejos de Estado y de Ministros, Miguel Díaz-Canel Bermúdez, son usuarios de Twitter. Autor: Twitter Publicado: 12/12/2018 07:58 pm Twitter,
Más detallesModelos de Mercadotecnia Tema 1: Dimensión del Marketing
Tema 1: Dimensión del Marketing Sesión 2: Bases de Datos Objetivo de la Sesión: Al concluir la sesión el alumno reconocerá el proceso para llevar a cabo la minería de datos y describirá cómo las herramientas
Más detallesISO Procedimientos para la evaluación de la Calidad
ISO 19114 Procedimientos para la evaluación de la Calidad Alcances Pautas: para la determinación y evaluación de calidad, (ISO 19113) para Evaluación y Presentación: - informe de calidad de datos (Metadatos)
Más detallesIntroducción. La capa de red:
Introducción La capa de red: Tiene como objetivo llevar los paquetes desde el origen al destino. Es la primera capa de origen a destino. Debe conocer la topología de la red. Debe proporcionar un interfaz
Más detalles3. HERRAMIENTAS DE OPTIMIZACIÓN DEL SISTEMA ELÉCTRICO
3. HERRAMIENTAS DE OPTIMIZACIÓN DEL SISTEMA ELÉCTRICO Con el objetivo de optimizar el control de tensiones y la potencia reactiva se han desarrollado y se continúan desarrollando métodos, técnicas y algoritmos
Más detallesESTUDIO DE EVALUACIÓN DE IMPACTO DE LAS ACTIVIDADES DE LA FUNDACIÓN CEDDET
ASPECTOS GENERALES ESTUDIO DE EVALUACIÓN DE IMPACTO DE LAS ACTIVIDADES DE LA FUNDACIÓN CEDDET 2009-2011 - - Madrid, septiembre 2014 Introducción El objetivo de este estudio de evaluación es generar información
Más detallesIníciate en la Red Social Twitter. Olga López Sipán Técnico (Info-Doc, gestión de la información)
Iníciate en la Red Social Twitter Olga López Sipán Técnico (Info-Doc, gestión de la información) olopez@huesca.es Qué es una red social? Una red social en Internet es una comunidad de usuarios registrados
Más detallesIntroducción.. 2. Desarrollo. 3. Conclusión 7. Bibliografía... 8
Introducción.. 2 Desarrollo. 3 Conclusión 7 Bibliografía... 8 1 INTRODUCCIÓN Hoy en día, las redes sociales se han convertido en un fenómeno importante. De esta manera, provocan cambios en el mundo del
Más detallesManual de usuario. Centro de Evaluación Facultad de Educación Universidad de los Andes. Para PAZATUIDEA. Plataforma PazAtuIdea
Manual de usuario Para PAZATUIDEA Plataforma PazAtuIdea Centro de Evaluación Facultad de Educación Convenio MEN-OIM Centro de Evaluación Facultad de Educación Universidad de los Andes Fecha: 30/06/2018
Más detallesCapítulo 3: Las VLAN
: Las VLAN Última actualización: 11 de Enero de 2004 Autor: Eduardo Collado edu@eduangi.com : 1 Contenido Panorámica de VLAN Segmentación Limitaciones de las VLAN Diferencias entre LANs y VLANs Tipos de
Más detallesTécnicas de Minería de Datos
Técnicas de Minería de Datos Act. Humberto Ramos S. 1 Qué es Minería de datos? El desarrollo de dispositivos tecnológicos para acumular datos a bajo costo. Acumulación o registro de gran cantidad de datos.
Más detallesCómo lograr mayor participación y compromiso de los empleados
BOLETÍN Nº 10 / 2016 Cómo lograr mayor participación y compromiso de los empleados Por Javier Vargas Vicepresidente Regional para América Latina de Right Management Cómo lograr mayor participación y compromiso
Más detallesTwitter. Reconocimiento-NoComercial-CompartirIgual 2.5 España:
Twitter Reconocimiento-NoComercial-CompartirIgual 2.5 España: http://creativecommons.org/licenses/by-nc/2.5/es/ Realizado por: José Sánchez Rodríguez (Universidad de Málaga) josesanchez@uma.es Julio Ruiz
Más detallesxn, y a su vez existen variables que no son determinadas o incontrolables z1, z2 zn.
CAPÍTULO 4 CONSIDERACIONES PARA EL DISEÑO DE EXPERIMENTOS Todos los investigadores realizan experimentos en todos los campos del saber con el objetivo de descubrir algo acerca de un proceso. Un experimento
Más detallesUnidad didáctica 5. Twitter. Descubre Comunicación www.descubrecomunicacion.com @DescubreC
Descubre Comunicación www.descubrecomunicacion.com @DescubreC Qué es Twitter? La red de microblogging por excelencia. Principal característica: entrada de 140 caracteres. Porqué triunfa Twitter? Inmediatez
Más detallesAnexo I CUESTIONARIO UTILIZADO PARA LA RECOGIDA DE INFORMACIÓN
Anexo I CUESTIONARIO UTILIZADO PARA LA RECOGIDA DE INFORMACIÓN 165 ENCUESTA DE COMPORTAMIENTOS Y TIPOLOGÍAS DE VISITANTES EN EUSKADI 166 ANEXO I. CUESTIONARIO UTILIZADO PARA LA RECOGIDA DE INFORMACIÓN
Más detallesNormas sobre calidad de información geográfica
Normas sobre calidad de información geográfica Normalización y Calidad ISO 19113: Información Geográfica Principios de la calidad. ISO 19114: Información Geográfica Procedimientos de evaluación de la calidad.
Más detallesComportamiento del Consumidor. El consumidor online
Comportamiento del Consumidor El consumidor online El consumidor online El consumidor online cambia tan rápido como lo hace Internet. A medida que van apareciendo nuevas tendencias, los usuarios van modificando
Más detallesEvaluación e Integración de Toma de Decisiones en Sistemas de Recomendación. Autor: Rus María Mesas Jávega Tutor: Alejandro Bellogín Kouki
Evaluación e Integración de Toma de Decisiones en Sistemas de Recomendación Autor: Rus María Mesas Jávega Tutor: Alejandro Bellogín Kouki Índice Introducción Estado del Arte Toma de Decisiones en Algoritmos
Más detallesANÁLISIS DE DATOS. Jesús García Herrero
ANÁLISIS DE DATOS Jesús García Herrero ANALISIS DE DATOS EJERCICIOS Una empresa de seguros de automóviles quiere utilizar los datos sobre sus clientes para obtener reglas útiles que permita clasificar
Más detallesImplementación de Componentes
Implementación de Componentes Concepto Un componente es una parte no trivial, casi independiente, y reemplazable de un sistema que llena claramente una funcionalidad dentro de un contexto en una arquitectura
Más detallesAnálisis de Datos. Combinación de clasificadores. Profesor: Dr. Wilfrido Gómez Flores
Análisis de Datos Combinación de clasificadores Profesor: Dr. Wilfrido Gómez Flores 1 Introducción Diversos algoritmos de clasificación están limitados a resolver problemas binarios, es decir, con dos
Más detallesPATRONES DE DISEÑO FRAMEWORKS
PATRONES DE FRAMEWORKS Definiciones Finalidades Características Diseño de software basado en patrones Descripción Utilización de los patrones en el diseño Clasificación FRAMEWORKS Basado en la reutilización
Más detallesIngeniería de Software
Ingeniería de Software 1 Ingeniería de Sistemas Enfoque en variedad de elementos Análisis, diseño y organización de los elementos en un sistema Todo para generar un producto, servicio o tecnología para
Más detallesConecta con tus clientes a través de Facebook
Conecta con tus clientes a través de Facebook Miguel Fernández Arrieta mfernandez@eps.mondragon.edu http://www.linkedin.com/in/miguelfernandezarrieta http://twitter.com/lostinweb20 Mondragon Unibertsitatea
Más detallesmobile intelligence El contenido correcto, al usuario correcto, en el momento Indicado
mobile intelligence El contenido correcto, al usuario correcto, en el momento Indicado Objetivos de una Operadora Personalizar el Cross selling/ Up selling de suscripciones a VAS, datos, voz, etc. Lograr
Más detallesHostalia Guía de uso HOSTALIA CLOUD SEO. Manual de Usuario. Calle San Rafael, Alcobendas (Madrid) Teléfono:
HOSTALIA CLOUD SEO Manual de Usuario Calle San Rafael, 14 28108 Alcobendas (Madrid) Teléfono: 900 103 293 www.hostalia.com INTRODUCCIÓN 3 PRIMEROS PASOS 4 TU INFORME 5 TU PLAN 10 CONFIGURACIÓN 12 CONCEPTOS
Más detallesClasificadores Débiles - AdaBoost
Capítulo 3 Clasificadores Débiles - AdaBoost El término boosting hace referencia a un tipo de algoritmos cuya finalidad es encontrar una hipótesis fuerte a partir de utilizar hipótesis simples y débiles.
Más detallesLos protocolos de enrutamiento dinámico se han usado en redes desde comienzos de la década de los ochenta.
Los protocolos de enrutamiento dinámico se han usado en redes desde comienzos de la década de los ochenta. La primera versión de RIP se lanzó en 1982, pero algunos de los algoritmos básicos dentro del
Más detallesESQUEMAS DE PERSISTENCIA EN LENGUAJES ORIENTADOS A OBJETOS. Martín Pablo Caballero Tutores: Gabriel Bruno y Parruccia Luciano
ESQUEMAS DE PERSISTENCIA EN LENGUAJES ORIENTADOS A OBJETOS Martín Pablo Caballero Tutores: Gabriel Bruno y Parruccia Luciano Alumno becarío de investigación y servicio, de la carrera de Ingeniería en Sistemas
Más detallesGRUPO 1 ESCALAS DE CALIFICACIÓN
GRUPO 1 ESCALAS DE CALIFICACIÓN Qué es una escala? Es un instrumento que permite registrar el grado, de logro de una habilidad, destreza, actitud por parte del estudiante, de acuerdo con una escala determinada
Más detallesPublicidad Digital. Elisa Olazo Mucha Twitter : elisa.olazo. 23 de setiembre de 2015 Lima, Perú
Publicidad Digital Elisa Olazo Mucha elisa.olazo@hibu.com Twitter : elisa.olazo 23 de setiembre de 2015 Lima, Perú hibu plc 2015 1 Hibu hibu Perú es líder en la provisión de servicios de creación de páginas
Más detallesen concreto los objetivos que van del 6 al 9 (aplicaciones, tecnología, implicaciones morales, sociales y éticas, y dimensión internacional)
El componente de la evaluación interna en estos cursos es una exploración matemática. Consiste en un breve informe escrito por el alumno, basado en un tema elegido por este, y que debe centrarse en las
Más detallesSólo se deberán utilizar números enteros y no puntos parciales como fracciones o decimales.
ENSAYO DE TEORIA DEL CONOCIMIENTO Uso de los criterios de evaluación El método de evaluación utilizado por IBO se basa en criterios establecidos. Es decir, al evaluar el ensayo sobre un título prescrito
Más detallesBig Data y Control Estadistico de Procesos. By Marc Schaeffers
Big Data y Control Estadistico de Procesos By Marc Schaeffers Big Data y Control Estadistico de Procesos INTRODUCCIÓN Las empresas han estado aplicando técnicas de control de procesos estadísticos (SPC)
Más detallesTerminología de Twitter
TECNOLOGÍA EDUCACIÓN CONOCIMIENTO Terminología de Twitter Twitter es un servicio gratuito de mensajes sociales, conexiones y "microblogging" para enviar y recibir mensajes de texto cortos (de 140 caracteres)
Más detallespara el mejor funcionamiento de Directorios y Consejos
Uso de Herramientas digitales para el mejor funcionamiento de Directorios y Consejos REPORTE FINAL JULIO 2013 1 Uso de herramientas digitales para el mejor funcionamiento de Directorios Y Consejos Introducción
Más detallesEntrenamiento Completo en Redes Sociales 2016
Entrenamiento Completo en Redes Sociales 2016 Perfil del Instructor Ing. Andrés Subía Ingeniero en Marketing y Banca e Inversión Especialización en Marketing Digital de la Universidad de Illinois, Urbana
Más detallesRedes Sociales UN RECURSO EDUCATIVO
Redes Sociales UN RECURSO EDUCATIVO Moldeamos nuestras herramientas y de ahí en adelante, ellas nos moldean a nosotros! - Marshall Mcluhan Moldeamos a nuestros estudiantes y de ahí en adelante, ellos nos
Más detallesLinkedin: Guía de uso. Utilidades profesionales del Linkedin.
1 Linkedin: Guía de uso. Utilidades profesionales del Linkedin. Principales herramientas de LinkedIn Índice 2.1. Como buscar en LinkedIn 2.2. El buscador avanzado 2.3. Cómo usar LinkedIn con tu email y
Más detallesFICHA DOCENTES: TALLER REDES SOCIALES
FICHA DOCENTES: TALLER REDES SOCIALES FICHA Este tutorial está pensado para ayudar a los docentes o educadores a la hora de brindar lineamientos para compartir en redes sociales los productos audiovisuales
Más detallesEclipse SDK 3.3: Utilizado para el desarrollo del software de la aplicación web.
0. Datos de interés La totalidad del proyecto de título Aplicación web y análisis de señales acústicas provenientes del llanto de los infantes (A web-based application and acoustic signal analysis of the
Más detallesAprendizaje para Clasificación con Factorización Matricial Basado en Listwise para Filtrado Colaborativo
2012 Aprendizaje para Clasificación con Factorización Matricial Basado en Listwise para Filtrado Colaborativo Iván López Espejo 22/04/2012 2 Aprendizaje para Clasificación con Factorización Matricial Basado
Más detallesTema 13 Modelos de Representación de Diagramas
Tema 13 Modelos de Representación de Diagramas En este tema haremos una revisión rápida de los modelos de representación de diagramas, y su utilidad en la Expresión Gráfica. 13.1 Introducción y Definición
Más detallesCÓMO RECLUTAR EN TWITTER. Aprende La Mejor Forma de Publicar Ofertas, Encontrar Candidatos y Mejorar Tu Employer Branding
CÓMO RECLUTAR EN TWITTER Aprende La Mejor Forma de Publicar Ofertas, Encontrar Candidatos y Mejorar Tu Employer Branding Introducción Hoy en día, todo lo que nos rodea avanza de manera muy rápida, y las
Más detallesTEMA 6: INTRODUCCIÓN A UML
TEMA 6: INTRODUCCIÓN A UML Por qué modelamos? El modelado es una parte central de todas las actividades que conducen a la producción de un software de calidad. Como tal la ingeniería software debe basarse
Más detallesGestión por Competencias
MANUAL DE USUARIO Gestión por Competencias 1 INDICE Nº CONTENIDO PAGINA 1 Introducción 3 2 INTRODUCCION La gestión por competencias es una herramienta muy útil para administrar y enfocar mejor el Recurso
Más detallesTeoría de la decisión
Teoría de la decisión Unidad 03.- Decisiones bajo certidumbre Método: Proceso analítico de jerarquías (AHP) (analytical hierarchy process) 1 Decisiones: cómo las queremos? Cuándo y cómo. Oportunas. Bien
Más detallesDISEÑE UNA ESTRATEGIA DIGITAL PARA SU EMPRESA Marketing Digital
DISEÑE UNA ESTRATEGIA DIGITAL PARA SU EMPRESA Marketing Digital Qué es el marketing? Introducción y Definición Qué es el marketing? Introducción y Definición Introducción y Definición Qué es la Publicidad?
Más detallesEl marketing de influencia. Un caso práctico. Araceli Castelló
El marketing de influencia. Un caso práctico www.aracelicastello.com V Encuentro Internacional de Investigadores en Publicidad y Áreas Afines Alicante - octubre de 2015 1. introducción Las opiniones de
Más detallesAgile Barcelona. Personas e interacciones. Analizadas a través de datos, métricas, gráficos y tendencias
Agile Barcelona Personas e interacciones Analizadas a través de datos, métricas, gráficos y tendencias Plataforma web para análisis de datos Universitat Oberta de Catalunya, TFG (Grado Multimedia - 2017)
Más detallesAplicaciones y complementos
Aplicaciones y complementos 1. Cómo mostrar Google Maps Google Maps ofrece una tecnología de asignación eficaz y fácil de usar, además de información comercial local que incluye ubicaciones, información
Más detallesPublicidad digital para las Pymes
Publicidad digital para las Pymes Elisa Olazo Mucha elisa.olazo@hibu.com Seminario Miércoles del exportador - PromPerú Twitter : elisa.olazo 12 de febrero de 2016 Lima, Perú hibu plc 2015 1 Cuál es el
Más detallesAnexo 10. Pruebas verificadas
1 Anexo 10. Pruebas verificadas Introducción El proceso de pruebas inició con una revisión conceptual para la identificación de las pruebas por realizar, a partir de las características del proyecto. En
Más detallesRepetidores o Hubs. Puentes
Repetidores o Hubs Un Repetidor o Hub (también llamado concentrador) es un dispositivo de red de capa 1, que simplemente propaga la señal de la comunicación para que pueda llegar a un mayor número de elementos:
Más detallesCAPITULO 5 RESULTADOS Y CONCLUSIONES
CAPITULO 5 RESULTADOS Y CONCLUSIONES A continuación se describirán los resultados obtenidos durante las pruebas realizadas mencionadas en el capítulo anterior, también se observarán las capacidades de
Más detallesINGENIERÍA DEL SOFTWARE
ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ CARRERA INFORMÁTICA SEMESTRE SÉPTIMO PERIODO ABR. /SEP.-2015 INGENIERÍA DEL SOFTWARE TEMA: RESUMEN#4: LENGUAJE UNIFICADO DE MODELADO
Más detalles1. Propósito. Establecer los puntos que debe cubrir como referencia documental mínima un documento de Diseño de sistemas automatizados.
Página 1 de 8 1. Propósito. Establecer los puntos que debe cubrir como referencia documental mínima un documento de de sistemas automatizados. 2. Ámbito de responsabilidad. RDSI Responsable del Desarrollo
Más detallesQué hace Market Dynamics? Marketing entrante
Qué hace Market Dynamics? Marketing entrante Trabajamos como un imán en vez de un martillo, basado en el contenido que atrae y alimenta los prospectos vs el spam que los molesta. Hay tres etapas: Ser encontrado,
Más detallesLa eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Más detallesCURSO DE BLOGGER REDES SOCIALES YOUTUBE MODULO 3. Youtube YOUTUBE. Redes sociales. a) Qué es Youtube?
REDES SOCIALES Youtube a) Qué es Youtube? El famoso portal sirve para subir y compartir vídeos de una manera muy sencilla, creado por tres trabajadores 2005, Google lo compró en 2006 por 1.650 millones
Más detallesINSTITUTO NACIONAL DE ESTADÍSTICAS (INE) 29 de Abril de 2016
ANEXO ESTADÍSTICO 1 : COEFICIENTES DE VARIACIÓN Y ERROR ASOCIADO AL ESTIMADOR ENCUESTA NACIONAL DE EMPLEO (ENE) INSTITUTO NACIONAL DE ESTADÍSTICAS (INE) 9 de Abril de 016 1 Este anexo estadístico es una
Más detallesEstadística descriptiva e inferencial. Métodos básicos y aplicaciones
descriptiva e inferencial Métodos básicos y aplicaciones 1 Introducción El término estadística suele usarse bajo dos significados distintos: 1 Como colección de datos numéricos: se habla de una estadística
Más detallesMODULO 6. MICROBLOGGING
MODULO 6. MICROBLOGGING 1. Concepto de Microblogging El microblogging, también conocido como nanoblogging, es un servicio que permite a sus usuarios enviar y publicar mensajes breves (alrededor de 140
Más detallesCómo medir la calidad de la educación?
Cómo medir la calidad de la educación? Domingo 13 de Noviembre 2016 Ancell Scheker Mendoza Dirección de Evaluación de la Calidad AGENDA I. CONTEXTUALIZACIÓN II. MEDICIÓN DE LA CALIDAD EN EL SISTEMA EDUCATIVO
Más detallesRECOMENDADOR DE USUARIOS EN UNA PLATAFORMA COLABORATIVA EN BASE A SU PERFIL Y REPUTACIÓN
RECOMENDADOR DE USUARIOS EN UNA PLATAFORMA COLABORATIVA EN BASE A SU PERFIL Y REPUTACIÓN Dra. Silvana Aciar Instituto de Informática UNSJ Día Virtual sobre Sistemas Colaborativos Octubre 2013 1 Indice
Más detallesLa ingeniería del software es una disciplina de ingeniería que comprende todos los aspectos de la producción de software.
Ingeniería del Software. Ian Sommerville Introducción. Preguntas de introducción. Qué es el software? Programas de ordenador y la documentación asociada. Los productos de software se pueden desarrollar
Más detallesTu éxito depende de ti
MARKETING ONLINE Tu éxito depende de ti. La gran mayoría de los usuarios de Internet utilizan los buscadores para encontrar empresas que den soluciones a sus necesidades. El posicionamiento web permite
Más detallesEstudio UPS Pulso del Comprador en Línea
Estudio UPS Pulso del Comprador en Línea Marzo del 2018 Resumen ejecutivo del estudio de INICIO Los compradores en línea de se caracterizan por ser más pacientes, grandes usuarios de la tecnología móvil
Más detallesTecnología para la. Web (MVC)
Tecnología para la Construcción de Aplicaciones Web (MVC) Dr. Víctor J. Sosa vjsosa@tamps.cinvestav.mx Información sintetizada del curso: Introducción a los servicios y servidores de información en Internet
Más detallesRedes Sociales. https://www.infop.hn
Redes Sociales https://www.infop.hn Redes Sociales Qué son las Redes Sociales? Las redes sociales son comunidades virtuales. Es decir, plataformas de Internet que agrupan a personas que se relacionan entre
Más detallesPROCESAMIENTO DISTRIBUIDO
Pág. 1 INTRODUCCIÓN PROCESAMIENTO DISTRIBUIDO Arquitectura de comunicaciones: Software básico de una red de computadoras Brinda soporte para aplicaciones distribuidas Permite diferentes Sistemas Operativos
Más detallesTwitter para novatos. Sep TWITTER PARA NOVATOS
1 PERO...QUÉ ES TWITTER? TWITTER es un servicio de microblogging que permite a sus usuarios enviar micro-entradas basadas en texto, denominadas "tweets", de una longitud máxima de 140 caracteres. El envío
Más detallesPlataformas distribuidas para análisis de grandes grafos. Dr. Cristian Mateos Díaz CONICET / ISISTAN UNICEN
Plataformas distribuidas para análisis de grandes grafos Dr. Cristian Mateos Díaz CONICET / ISISTAN UNICEN http://www.exa.unicen.edu.ar/~cmateos 1 Introducción Big data conduce a grandes volúmenes de datos,
Más detallesCI-5313: Arquitectura y Administración de Base de Datos I Apuntes del curso INDICES (II y III)
CI-5313: Arquitectura y Administración de Base de Datos I Apuntes del curso INDICES (II y III) Soraya Abad Mota Versión 1: Septiembre 2002 Actualizaciones: Enero 2005 y Septiembre 2007 1. Tópico 4: Lineamientos
Más detallesProcesamiento Masivo de Web Spam. Washington Bastidas Santos Jesús González Vera
Procesamiento Masivo de Web Spam Washington Bastidas Santos Jesús González Vera Agenda INTRODUCCIÓN PROBLEMA METODOLOGÍA IMPLEMENTACIÓN EVALUACIÓN Y RESULTADOS CONCLUSIÓN TRABAJO FUTURO BIBLIOGRAFÍA 1
Más detallesCapítulo IV. Diseño del sistema.
Capítulo IV. Diseño del sistema. Este capítulo profundizará sobre la ingeniería de software necesaria para llevar a cabo la implementación del sistema. Por medio de UML podremos analizar de forma gráfica
Más detallesCiudad Guayana, Febrero de 2011
REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA ANTONIO JOSÉ DE SUCRE INGENIERÍA INDUSTRIAL CÁTEDRA: SISTEMAS DE INFORMACIÓN Profesor: Turmero, Iván Ciudad Guayana, Febrero
Más detallesPara llevar a cabo una simulación, se requiere implementar las siguientes etapas:
SIMULACIÓN: La simulación se define como una técnica numérica utilizada para representar un proceso o fenómeno mediante otro más simple que permite analizar sus características. Esta técnica emplea relaciones
Más detallesCapítulo 1 Introducción
Capítulo 1 Introducción 1.1 Ambiente móvil Nuestro trabajo de tesis se centra en la evaluación de consultas en ambiente móviles. Un ambiente móvil consiste en un conjunto de productores y consumidores
Más detallesHOJA DE RUTA PARA UNA PROSPECCIÓN SOCIAL: CÓMO USAR LOS SOCIAL MEDIA PARA ENCONTRAR NUEVOS CLIENTES
HOJA DE RUTA PARA UNA PROSPECCIÓN SOCIAL: CÓMO USAR LOS SOCIAL MEDIA PARA ENCONTRAR NUEVOS CLIENTES Por Maggie Hibma Qué es la Prospección Social? Como un entusiasta del inbound, ya entiendes la importancia
Más detalles