El análisis de contenido no estructurado y la creciente demanda de indicadores que sinteticen rápidamente los eventos a medida que transcurren, son dos grandes tendencias que involucran, no solamente conocimientos técnicos sino de negocio que puedan agregar valor a las empresas, instituciones y personas que lo requieren.
Apache Storm es uno de los paradigmas que nacieron pensando en la era del tiempo real. Describiremos un caso de negocio que presenta el reto de capturar información y entregar conocimiento accionable lo más rápido posible. Trataremos sobre asuntos de negocio, de tecnología y filosofía con relación a la información.
2. ACERCA DE…
Ingeniero de sistemas con énfasis en
inteligencia de negocio.
Consultor líder de Big Data y analítica
para PwC - PricewaterhouseCoopers.
Co-fundador de Meridean, start-up para
investigación de mercados y análisis de
información no estructurada. (5 años).
Creador de PeopleVector, plataforma
para análisis de reputación corporativa en
tiempo real.
3. 1. Apache Storm
2. Los indicadores mandan
3. Arquitectura cloud
4. Procesamiento de lenguaje natural
CONTENIDO
5. ¿QUÉ TAN RÁPIDO ES “TIEMPO
REAL”?
Definición blanda:
“El sistema generalmente
no es tiempo real, pero si
debe ser bastante rápido
la mayoría del tiempo”
Real
time
segundos
ml s.
Near real-time
minutos - horas
Offline
horas - dias
ej: filtros
ej: correlaciones
ej: análisis
comportamiento
Batch
In motion
6. I. APACHE STORM
Es un framework para
computación en tiempo real
distribuida y tolerante a
fallas.
Originado en
BackType/Twitter, bajo
código abierto desde 2011.
Procesamiento individual a
medida que cada mensaje
llega (at-least-one)
7. CASOS DE USO
Twitter (220 nodos, 50B mensajes/día. 2013)
Detectar trending topics, personalización de ads,
búsquedas ad-hoc, optimización de ingresos.
Yahoo (320 nodos, 130k mensajes/s. 2013)
Eventos de usuarios, analizar feeds de contenidos y logs
de aplicaciones
Spotify (22 nodos, 200k mensajes/s. 2014)
Motor de recomendaciones, Generación de Ads y
monitoreo
Netflix, Alibaba, Cisco, WeatherChannel…
13. EJEMPLO EN LOCAL
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("palabras", new FiltrarSimbolos(), 1);
builder.setBolt(“conteo_palabras", new ContarPalabras(),
3)
.shuffleGrouping("palabras");
builder.setBolt(“listado_palabras", new ImprimirConteo(),
2)
.shuffleGrouping(“conteo_palabras");
Map conf = new HashMap();
conf.put(Config.TOPOLOGY_WORKERS, 4);
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("mi_topologia", conf,
builder.createTopology());
14. EJEMPLO EN REMOTO
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("palabras", new FiltrarSimbolos(), 1);
builder.setBolt(“conteo_palabras", new ContarPalabras(),
3)
.shuffleGrouping("palabras");
builder.setBolt(“listado_palabras", new ImprimirConteo(),
2)
.shuffleGrouping(“conteo_palabras");
Map conf = new HashMap();
conf.put(Config.TOPOLOGY_WORKERS, 4);
StormSubmitter.submitTopology(“mi_topologia”,
conf, builder.createTopology());
18. ¿POR QUÉ USAMOS
STORM?
¿POR QUÉ ALGO EN
TIEMPO REAL?
¿QUÉ VALOR SE LES VA
A DAR A LOS CLIENTES?
¿SOLO SE NECESITA
TIEMPO REAL?
19. TOMA DE DECISIONES
Teoría de la información de Shannon:
La información y la incertidumbre están
inversamente relacionadas. Entre más
información tenga una sentencia,
menor incertidumbre hay.
Decisiones
20. TOMA DE DECISIONES
Hay 2.300 tuits
sobre la marca
85% negativos
15% positivos
Los mensajes negativos (85%)
contienen lo términos ladrones,
factura
El autor @MaoGomez ( de influencia alta,
ubicado en Cali) está publicando múltiples
mensajes negativos sobre la marca con las
palabras ladrones, factura y esta siendo difundido
(53 Rts y 14 conversaciones )
Tomar decisión
21. VALOR DE INDICADORES
0
El autor @MaoGomez ( de influencia
alta, en Cali) está publicando
múltiples mensajes negativos sobre
la marca con las palabras ladrones,
factura y esta siendo difundido (53
Rts y 14 conversaciones )
5 min 15 min 1 hora 1 día 1 mes
Aporta a la operación
No aporta a la estrategia
Tiempo necesario
22. VALOR DE INDICADORES
0
En el último mes el 55%
de las menciones
negativas pertenecieron a
la categoría facturación.
Con 33 autores de
influencia alta
5 min 15 min 1 hora 1 día 1 mes
Aporta a la estrategia
Tiempo necesario
30. CATEGORIZACIÓN
seed: ~20000 tuits
y posts
(Clasificador SVM)
Aprender reglas para decidir
si un determinado elemento
pertenece o no a un conjunto
Supervisado
Y
No Supervisado
Representación de palabras
en vectores característicos
Dump de Wikipedia
en español
31. Representar las palabras como vectores de muchas
dimensiones. Con ello, encuentran que palabras similares
se acomodan unas al lado de las otras en un espacio
vectorial altamente dimensional.
Ira ——> odio ——> enojo ——> iracundo
Pantalla ——> display ——> LCD ——>Oled
Bonito ——> atractivo ——> lindo ——> chévere
Apple ——> Samsung ——> LG ——> Motorola
32. Con solo
tuits y posts
Con
información
externa
(blogs,
Word2vec,
Wikipedia)
33. SENTIMIENTO
seed: ~75000 tuits
y posts
Supervisado Inducción de Reglas
Ó
+
Diccionario
palabras (-5,0,5)
(Clasificador SVM)
aprenden reglas para decidir
si un determinado elemento
pertenece o no a un conjunto