Como les dije queríamos saber si era posible hacer predicciones agrupadas
sobre el nivel de los individuos en un modelo, para poder hacer predicciones
fusionadas y llamamos a este texto "Previendo la marea alta" debido a que
estábamos interesados en predecir cuando la mayor parte de la gente está en línea y
retwitteando para que podamos difundir nuestro mensaje
La sección vino de una especie de empujón o fue motivada por preguntas como las de
Jimpei Harada, quien era un estudiante en MBA al momento en que se preguntó si era
posible predecir cuando un twit va a ser retwiteado
una de las cosas en que empezamos a pensar es cuando una gran proporción de los
seguidores estarán activos próximamente aquí vemos los datos de 4 semanas y nos
muestra que los picos de tiempo, cuando la gente está activa no es únicamente durante
la semana sino entre una semana y otra; hay algunos picos que también deberíamos
capturar para maximizar el retwit
el momento óptimo varía de semana en semana y en el día de la semana, así que
la pregunta es, podemos hacer algo un poco mejor que un modelo de estacionalidad?, la
estacionalidad acá no se refiere a la primavera o al otoño, lo que sea
en vez de ello, nos referimos a un patrón que está basado en el tiempo que parece
ser el mismo
vamos a comparar, nuestro modelo agregado de individuos, tomamos todos los modelos
de estado, los agrupamos en función de sus predicciones en una forma de
estacionalidad y en lo que se conoce como modelo de agrupamiento autorregresivo
en un modelo de agrupamiento autorregresivo toma uno de estacionalidad
pero también le agrega un factor local de excitamiento, que está
basado en la actividad reciente que ocurrió hace muy poco
aquí tenemos el modelo de estacionalidad el modelo de estacionalidad es muy
sencillo, buscamos en todas las conductas del pasado y realizamos las predicciones
en base al número de retwits que veremos en un tiempo particular, es el promedio de
lo que pasó, para ese día en particular y en ese tiempo particular
entonces promediamos todos los datos aquí tenemos todos los datos unos encima
de otros y la línea azul es el promedio de todos estos datos, esta es nuestra
predicción a lo largo del tiempo, si este fuera el caso y dijéramos quiero hacer un
twit en el momento oportuno, uno debería twitear aquí, el jueves o aquí el viernes
y así sucesivamente
el agregado autoregresivo suma el factor de excitación, entonces en este pico de
los datos, que sabemos fue causado por la captura de Osama Bin Laden, cuando hubo
mucha actividad en twitter sobre ese tema
esto no es algo que necesariamente querramos conocer porque no estoy seguro,
dependiendo de qué mensaje es el que queremos difundir, podría ser que no
quisiéramos quedar involucrados en esa conversación
pero puede que que si quisiéramos si somos una agencia de noticias, por ejemplo, este
sería un pico que quisiéramos predecir
en cualquier caso queremos capturar la causa de esta actividad local, por lo que
el agregado autoregresivo comienza por el modelo de estacionalidad, pero luego
modela los componentes residuales basados en la historia pasada, entonces, lo
podemos pensar que ajusta a una línea recta en función de la historia pasada y
esa línea recta agrega algo al modelo de estacionalidad
el modelo de agregación de individuos es muy sencillo, tomamos estas máquinas
épsilon, estos modelos de estado que creamos para cada diferente usuario y
vemos en qué estado se encuentra actualmente y en el estado en el que se
encuentra actualmente nos dice cual es la probabilidad de que twiteen en el futuro
próximo y si sumamos esas dos probabilidades, y los agregados nos
muestran todas las probabilidades que podemos esperar conocer consistentemente
el número esperado de twits que podemos ver en un futuro cercano. Tenemos dos
usuarios que tienen un 50% de probabilidad de twitear en el próximo período de tiempo
y cuando los sumamos, podemos esperar ver un twit, debido a que ese es el número
esperado de twits que podemos ver en ese espacio
La pregunta entonces es, usando estos métodos diferentes, cómo podemos predecir
que el 10% del pico máximo se alcanzará en ese período? El cuartil p estrella estará
en esa cola de actividad según lo predicho
cuando comparamos estos modelos muchas veces si no usamos una predicción certera
sino que tenemos este umbral que es la forma en que llegamos arriba, necesitamos
saber cual es el número que estamos usando recibe las curvas características y lo
que esto nos muestra para cada uno de estos valores de umbral es cual es la tasa
pasiva predicha versus la tasa verdadera
lo que vemos a partir de esto es que la suma de los modelos individuales lo hace
bastante bien y podemos comparar dos conjuntos de datos, uno de 2011 y otro de
2012 y como podemos ver el modelo de estacionalidad lo hace bastante bien en
2011, no lo hace tan bien en 2012, principalmente debido a que muchos de los
datos no están en el modelo
pero los modelos individuales de agregación lo hacen mucho mejor, se adapta
mejor y va para abajo en su performance pero no tan mal
y el modelo autoregresivo lo hace un poquito mejor en este caso pero para una
tasa positiva, el modelo de agregación individual es sorprendentemente exitoso
y para tasas positivas bajas lo que queremos ver, si somos un grupo que quiere
enviar mucho contenido
probablemente tengamos un número limitado de twits que podamos enviar por día,
debido a que podemos caer en spam
entonces tenemos una tasa positiva baja, queremos estar seguros que nuestra
predicción es la correcta, nos gustaría tener una tasa verdadera positiva tomando
estos dos escenarios
twitear en este espacio es donde querríamos estar, por lo que en general
vamos a preferir el modelo de agregación individual, ya que es el mejor modelo para
el espacio que estamos explorando
entonces, qué significa todo esto como conclusiones? lo que significa es que hay
un nuevo modo de construir MBA, podemos tomar el aprendizaje de máquina y darle
reglas que se usan en los modelos de estado, podemos usar árboles de decisión
podemos usar reglas de asociación, podemos usar otros métodos y los podemos
combinar un MBA automático; no estoy diciendo que es lo que hay que hacer
primero, lo primero que uno intenta es hacerlo en forma regular, mucha gente no
está trabajando en proyectos particulares pero nuestro objetivo aquí es,
eventualmente, desarrollar un conjunto de conocimientos y métodos que nos puedan
proveer de herramientas para la gente que realiza esto constantemente y tal vez
construir algo así en NetLogo; el código puede estar escrito en Python o en otros
lenguajes, ok?
pero también estos métodos tienen limitaciones, requieren de alta resolución
de la serie de datos temporales, necesitás tener muchos datos para el modelo de
estados, no para el aprendizaje de máquina más MBA
para el modelo de estados necesitamos muy buenos datos
en un trabajo futuro, habrá que construir una plataforma de software, que
potencialmente implemente la arquitectura GPGPU
no durante la ejecución, ya que la ejecución del modelo involucra a muchos
agentes interactuando, pero la construcción del modelo puede necesitar
que implementemos GPGPU, debido a que cada una de estas series de datos temporales
pueden ser leídas por procesadores individuales que fueron construidos en
forma individual para el sistema
les quiero mostrar un paso más; el argumento que (...)
es que estos modelos deben ser lo más predictivos posibles para poder separar
los pasos próximos; pero sabemos que en algún punto se va a degradar
entonces tratar de comprender mejor cuan rápido se degrada puede ser muy
interesante
ok, esta fue una intro rápida en un tema particular avanzado en el que estuve
pensando bastante, si tienen preguntas las pueden hacer en el forum y gracias