Este documento describe el desarrollo de un analizador de contenido de Twitter que utiliza el framework Hadoop para procesar grandes volúmenes de datos de manera rápida. Presenta tres estrategias para modelar perfiles de usuario basados en bolsas de palabras, entidades y conceptos de DBpedia. Evalúa los tiempos de ejecución de Hadoop frente a un procesamiento secuencial y compara el rendimiento de las diferentes estrategias de perfiles usando métricas como tasa de error y exactitud.
1. Distribuci´on de un analizador de contenido de Twitter
utilizando el framework Hadoop
Mar´ıa Florencia Rodr´ıguez
Pladema
Facultad de Ciencias Exactas
Universidad Nacional del Centro de la Provincia de Buenos Aires
Comisi´on de Investigaciones Cient´ıficas de la Provincia de Buenos Aires
mfrodri@exa.unicen.edu.ar
1 de julio de 2016
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 1 / 25
2. Motivaci´on
¿Por qu´e realizar un analizador de contenido de Twitter?
Inferir intereses de usuario para recomendar contenido.
Problemas:
140 caracteres.
Carencia de un contexto te´orico.
Abreviaciones, errores ortogr´aficos y gram´aticos.
¿Por qu´e Hadoop Map Reduce?
Gran volumen de datos: m´as de 190 millones de usuarios y m´as de 65
millones de posts por d´ıa1.
Velocidad: procesamiento r´apido.
1
www.techcrunch.com/2010/06/08/twitter-190-million-users
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 2 / 25
3. KDD
Figura: Workflow proceso KDD.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 3 / 25
4. Dataset
Se ha monitoreado la actividad de m´as de 20.000 usuarios durante un
per´ıodo de dos meses2.
En conjunto, estas personas publicaron m´as de 10 millones de tweets.
Se considera una muestra de 1619 usuarios, que publicaron m´as de 20
tweets en total y al menos un tweet en cada mes del per´ıodo de
observaci´on.
Este conjunto de datos contiene 2.316.204 tweets.
Para la construcci´on del modelo se consideraron los tweets de 500 usuarios
que han publicado un m´ınimo de 100 tweets.
2
http://www.wis.ewi.tudelft.nl/umap2011/#dataset
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 4 / 25
5. Sistema de recomendaci´on
Figura: Etapas de la clasificaci´on.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 5 / 25
6. Overview
1 Procesamiento de datos
Estrategias de modelado de perfiles
2 Modelo de recomendaci´on
Perfil de usuario
Construcci´on de perfiles de usuario
Hadoop Map Reduce
3 Recomendaci´on de contenido
4 Resultados
5 Mejoras
Resultados
6 Comparaciones finales
Conclusiones y trabajos futuros
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 6 / 25
7. Enfoque propuesto
Dimensi´on de dise˜no Alternativa de dise˜no
Tipo de perfil (i) basado en bolsa de palabras
(ii) basado en entidades
(iii) basado en conceptos
Fuente de informaci´on (i) ´unicamente tweets
Restricciones temporales (i) sin restricciones
Cuadro: Dimensiones de dise˜no para el modelado de perfiles de usuario
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 7 / 25
8. Representaci´on formal de tweets
Un tweet tu ∈ T es representado mediante un vector
tu = {(c1, f1), (c2, f2), ...(cn, fn)} donde cada elemento ci corresponde a un
concepto extra´ıdo de tu y fi es la frecuencia con la que ci aparece en tu.
Estrategia Herramienta
Bolsa de palabras Tokenizador Lucene3
NER TwitIE4
Conceptos DBpedia5
Cuadro: Herramientas usadas seg´un la estrategia de procesamiento.
3
https://lucene.apache.org/
4
https://gate.ac.uk/wiki/twitie.html
5
http://wiki.dbpedia.org/
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 8 / 25
9. Estrategias de modelado de perfiles
Estrategia basada en bolsa de palabras
El perfil PB(u) para un usuario u ∈ U es el conjunto de todos los tokens
que aparecen en el conjunto de tweets TU ∈ T de u, junto con los valores
de ponderaci´on wi .
Estrategia basada en NER
El perfil basado en entidad PE (u) para un usuario u ∈ U es el conjunto de
nombres de entidades ei ∈ E que aparecen en el conjunto de tweets
Tu ∈ T de u, junto con los valores de ponderaci´on wi .
Estrategia basada en conceptos
El perfil basado en conceptos de DBpedia PD(u) para un usuario u ∈ U es
el conjunto de conceptos di ∈ D que aparecen en el conjunto de tweets
Tu ∈ T de u, junto con los valores de ponderaci´on wi .
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 9 / 25
10. Ejemplo de procesamiento de tweets
Tweet tui sin artsbeat: anatomy of a scene: ’harry potter
sin procesar and the deathly hallows part 1’
Bolsa de palabras (artsBeat;1), (anatomy;1), (of;1), (a;1), (scene;1),
(harry;1), (potter;1), (and;1), (the;1) (deathly;1),
(hallows;1), (part;1), (1;1)
Bolsa de palabras (artsBeat;1), (anatomy;1), (scene;1), (harry;1),
sin stop-words (potter;1), (deathly;1),(hallows;1), (part;1), (1;1)
NER (Harry Potter;1)
DBpedia (Anatomy;1), (Harry Potter;1),
(Harry Potter and the Deathly Hallows;1)
Cuadro: Procesamiento para un tweet mediante las diferentes estrategias.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 10 / 25
11. Perfil de usuario
Definition (Perfil de usuario)
Un perfil P(u) para un usuario u ∈ U es el conjunto de pares {c, w(u, c)}
tales que c ∈ C es un concepto extra´ıdo del conjunto de tweets t ∈ Tu,
siendo Tu el conjunto de tweets de u y w(u, c) la funci´on que asigna una
ponderaci´on al concepto c para el usuario u.
P(u) = {c, w(u, c) : u ∈ U; c ∈ C}
En la siguiente ecuaci´on se puede observar la expresi´on correspondiente a
w(u, c).Aqui, f (u, c) es la frecuencia de aparici´on del concepto c ∈ C en
el conjunto de tweets TU ∈ T del usuario u ∈ U.
w(u, c) =
fu,c
maxfu,c
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 11 / 25
12. Ejemplo de perfiles de usuario
Dado un usuario u ∈ U y su conjunto de tweets Tu formado por tres
elementos, el perfil seg´un cada estrategia queda representado como sigue:
Tu artsBeat: anatomy of a scene: ’harry potter and the deathly
hallows part 1’
the real roots of 7 magical beasts from harry potter
can ’toy story 3’ win the best oscar?
PB(u) {(harry,1),(potter,1),(artsBeat,0.5),(anatomy,0.5),(scene,0.5),
(deathly,0.5),(hallows,0.5),(part,0.5),(1,0.5),(real,0.5),
(roots,0.5),(7,0.5),(magical,0.5),(beasts,0.5),(from,0.5),
(can,0.5),(toy,0.5),(story,0.5),(3,0.5),(win,0.5),(best,0.5),
(picture,0.5),(oscar,0.5)}
PE (u) {(HarryPotter,1),(ToyStory,0.5)}
PD(u) {(HarryPotter,1),(ToyStory,1),(anatomy,1),(ocar,1)}
Cuadro: Ejemplos de perfiles de usuario.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 12 / 25
13. Distribuci´on de datos
Figura: Arquitectura HDFS.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 13 / 25
14. Hadoop MapReduce Framework (1)
Figura: Flujo de datos Map-Reduce.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 14 / 25
15. Hadoop MapReduce Framework (2)
Como su nombre lo indica, el modelo Map-Reduce, presenta dos fases:
map y reduce.
La fase map funciona como extractor y asigna valores a determinadas
claves para un ´unico documento.
TokenizerMapper: CLASS EXTENDS Mapper
map(key: STRING, tweet: TEXT, context: CONTEXT):VOID
analyzer: StandardAnalyzer
stream: TokenStream
stream = analyzer.tokenStream(tweet)
while (stream.incrementToken())
word = stream.getAttribute()
context.write(word,1)
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 15 / 25
16. Hadoop MapReduce Framework (3)
La fase reduce realiza la funci´on de acumulaci´on y combina las claves de
m´ultiples documentos para crear un valor reducido (combinado) ´unico para
cada clave a partir de los m´ultiples valores generados.
TokenizerReducer: CLASS EXTENDS Reducer
reduce(key:TEXT,values:ITERABLE<INT>,context:CONTEXT)
sum:INTEGER
for (val: values)
sum = sum + val.get()
context.write(key,result);
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 16 / 25
17. Resultados de ejecuci´on
El dataset se almacena en un cl´uster y se construyen perfiles de usuario
PB(u) para 1, 50 y 100 usuarios con el fin de analizar los tiempos de
ejecuci´on utilizando un procesamiento secuencial y Map-Reduce.
1 usuario 50 usuarios 100 usuarios
Map-Reduce 3529 ms 14310 ms 33619 ms
Secuencial 171 ms 1237043 ms 3110887 ms
Cuadro: Comparaci´on entre tiempos de construcci´on de perfiles para distintos
tama˜nos de dataset.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 17 / 25
18. Algoritmo de recomendaci´on
Definition (Algoritmo de recomendaci´on)
Dado un perfil de usuario P(u) representado mediante un vector y un
conjunto de tweets T = {P(t1), . . . P(tn)} representadas mediante perfiles
(con la misma representaci´on vectorial), el algoritmo de recomendaci´on
clasifica los tweets seg´un la similitud de coseno:
simcoseno(P(u), P(ti )) =
P(u).P(ti )
||P(u)||.||P(ti )||
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 18 / 25
19. Resultados de la recomendaci´on
Se mide el comportamiento de las diferentes estrategias de construcci´on de
perfiles de usuario seg´un la tasa de error, la exactitud y el valor F del
modelo.
Tasa de error Exactitud Valor F
PB(u) 0.25 0.75 0.79
PB(u)6 0.13 0.87 0.88
PE (u) 0.37 0.63 0.41
PD(u) 0.39 0.6 0.34
Cuadro: Tasa de error, exactitud y valor-F para cada estrategia.
6
Sin stop words
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 19 / 25
20. Perfil de usuario mixto
Definition (Perfil mixto)
Un perfil de usuario PM(u), para un usuario u ∈ U que combina los
perfiles PB(u), PE (u) y PD(u) generados a trav´es de las estrategia basada
en bolsa de palabras (sin palabras vac´ıas), en entidades y en recursos de
DBpedia, respectivamente, se define mediante la ecuaci´on:
PM(u) = {n1 ∗ PB(u)a + n2 ∗ PE (u) + n3 ∗ PD(u) :
u ∈ U, n1 + n2 + n3 = 1}
a
Sin stop-words
a
Sin stop-words
En la definici´on n1, n2 y n3 indican el peso que se le da a cada perfil.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 20 / 25
21. Ponderaciones para perfil mixto
Perfil mixto
PM(u) = {n1 ∗ PB(u) + n2 ∗ PE (u) + n3 ∗ PD(u) :
u ∈ U, n1 + n2 + n3 = 1}
Perfil PM(u) n1 n2 n3
PM1 (u) 0,33 0,33 0,33
PM2 (u) 0,5 0,3 0,2
PM3 (u) 0,5 0,5 0
PM4 (u) 0,5 0,5 0
PM5 (u) 0,7 0,3 0
Cuadro: Pesos asignados a cada estrategia para armar perfiles combinados.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 21 / 25
22. Resultados de la recomendaci´on
Tasa de error, exactitud y el valor F del modelo para diferentes
configuraciones del perfil mixto.
PM(u) n1 n2 n3 Tasa de error Exactitud Valor F
PM1 (u) 0,33 0,33 0,33 0,3 0,7 0,57
PM2 (u) 0,5 0,3 0,2 0,22 0,77 0,71
PM3 (u) 0,5 0,5 0 0,3 0,7 0,57
PM4 (u) 0,5 0,5 0 0,3 0,7 0,57
PM5 (u) 0,7 0,3 0 0,15 0,85 0,83
Cuadro: Tasa de error, exactitud y valor F de los perfiles combinados.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 22 / 25
23. Comparaciones
Bolsa de Palabra EntidadPM
0
0,2
0,4
0,6
0,8
0,13
0,37
0,15
0,87
0,63
0,85
0,88
0,41
0,83
Tasa de error
Exactitud
Valor-F
Figura: Tasa de error, exactitud y valor-F para las estrategias basada en bolsa de
palabras, entidades y PM .
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 23 / 25
24. Conclusiones
Un buen indicador de los intereses de un usuario son los t´erminos que
utiliza con mayor frecuencia.
La mejor estrategia para el filtrado de contenido es realizar un
reconocimiento de nombres de entidades.
Al combinar estas dos estrategias, se obtienen mejores
recomendaciones.
Utilizar un framework de procesamiento distribuido se reducen
notablemente los tiempos de procesamiento.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 24 / 25
25. Trabajos futuros y limitaciones
Grandes clusters con m´ultiples nodos.
Feedback de usuarios reales.
Hashtags.
Trending topic.
An´alisis de patrones temporales.
Otras redes sociales.
Recomendaci´on de video, m´usica, etc.
Mar´ıa Florencia Rodr´ıguez (PLADEMA) Analizador de contenido de Twitter 1 de julio de 2016 25 / 25