Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aprendizaje de comportamientos

Aprendizaje de comportamientos

Uno de los principales problemas de las aplicaciones modernas es conocer de forma precisa cómo usan los usuarios nuestra aplicación. Es decir, saber a que horas se utilizan unas funcionalidades o incluso conocer cómo un usuario ha sido capaz de llegar a una de nuestras nuevas funcionalidades. En esta charla describiremos una posible manera de obtener las políticas de comportamiento de nuestros usuarios y conocer cómo se mueven por nuestra aplicación. Describiremos cómo podemos obtener esta información (Colas de mensajes), almacenarla y utilizarla con el fin de intentar aprender o definir comportamientos comunes entre nuestros usuarios. Esta información puede servir para mejorar nuestra aplicación, su funcionalidad o para construir sistemas automáticos que realicen ciertas tareas por ellos.

Moisés Martínez

November 14, 2016
Tweet

More Decks by Moisés Martínez

Other Decks in Research

Transcript

  1. Acerca de mi PhD en Ciencias de la Computación Planificación

    de Tareas Aprendizaje Automático No supervisado Aprendizaje Automático por Refuerzo Organizador T3chFest https://t3chfest.uc3m.es Lead Data Scientist https://es.linkedin.com/in/momartinm @moisipm
  2. QUE ES UN COMPORTAMIENTO Comportamiento básico es una acción en

    nuestra aplicación ◉ Leer un artículo o un contenido ◉ Añadir un producto al carrito de la compra ◉ Escribir un comentario
  3. QUE ES UN COMPORTAMIENTO Comportamiento complejo es una secuencia de

    acciones ordenadas temporalmente en nuestra aplicación ◉ Realizar una compra de varios productos ◉ Secuencia de acciones
  4. PARA QUÉ SIRVE APRENDER COMPORTAMIENTOS Conocer a nuestros usuarios Funcionalidades

    más utilizadas Funcionalidades menos utilizadas Población objetivo Orden en el que se usan las funcionalidades Horarios de uso
  5. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP
  6. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP Información incompleta
  7. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP Información incompleta NoSQL Sistema de generación de datos. Información almacenada en formato JSON.
  8. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP Información incompleta NoSQL Sistema de generación de datos. Información almacenada en formato JSON. Información baja utilidad
  9. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP Información incompleta HDFS Almacenamiento masivo mediante ficheros. Información almacenada en secuencias (líneas) de datos. NoSQL Sistema de generación de datos. Información almacenada en formato JSON. Información baja utilidad
  10. RECOLECCIÓN DE DATOS Logs Archivos de log que generan nuestros

    servidores. Sistema de identificación mediante IP Información incompleta HDFS Almacenamiento masivo mediante ficheros. Información almacenada en secuencias (líneas) de datos. Método de generación NoSQL Sistema de generación de datos. Información almacenada en formato JSON. Redundancia información
  11. RECOLECCIÓN DE DATOS MEDIANTE HDFS Com Com Com Com Com

    NameNode Cola de mensaje (Kafka, RabbitMQ) HDFS DataNodes ... Consumidor Productor Productor Productor
  12. Ejemplo de comportamientos id IP Fecha acción proceso 38382932333 2.136.32.54

    11/12/2012 02:26:14 añadir (1) publicación 34324555444 95.120.92.4 11/12/2012 10:15:21 añadir (1) comentario 32323443434 194.69.224.43 11/13/2016 15:26:14 borrar (2) publicación
  13. TRANSFORMACIÓN Y GENERACIÓN DE DATOS ◉ Combinar información de diferentes

    ficheros de datos ◉ Generación de nuevos atributos mediante la utilización de otros ◉ División de atributos en atributos más sencillos
  14. TRANSFORMACIÓN Y GENERACIÓN DE DATOS Data Node 1 Data Node

    2 Data Node 3 Data Node 4 Data Node 5 Worker 1 Worker 2 Worker 3 Worker 4 Worker 5 Name Node Driver Executor Executor Executor Executor Master Transformador A B A B A B A A A
  15. Información transformada id pais dia hora sexo edad tema acción

    proceso 383829 32333 7 Sab (7) 2 1 27 tech (1) añadir (1) publicacion (3) 343245 55444 8 Sab (7) 10 0 21 cocina (10) añadir (1) Comentario (5) 323234 43434 7 Dom (1) 15 1 19 moda (13) acceder (2) publicacion (3)
  16. Información transformada id pais dia hora sexo edad tema acción

    proceso 383829 32333 7 Sab (7) 146 1 27 tech (1) añadir (1) publicacion (3) 343245 55444 8 Sab (7) 615 0 21 cocina (10) añadir (1) Comentario (2) 323234 43434 7 Dom (1) 926 1 19 moda (13) acceder (2) publicacion (3)
  17. Aprendizaje Supervisado Conocer las clases Ejemplos etiquetados Random Forests Clases

    Profundidad Número de árboles Regresión Logistica APRENDIZAJE DEL MODELO Aprendizaje no Supervisado No necesitamos conocer las clases Ejemplos no están etiquetados K-means, k-means++ o Bisecting -means Clusters Iteraciones
  18. APRENDIZAJE DEL MODELO (K-Means) Cluster Pais (10) dia hora sexo

    edad tema(22) Acción (4) Proceso (10) 1 6.24 5.21 616.32 0.98 35.21 16.43 1.23 3.41 2 4.56 2.16 1382.23 0.09 29.34 7.21 2.02 4.97 3 8.91 3.75 924.43 0.53 27.02 10.24 2.21 2.46 4 3.21 1.28 1324.32 0.12 36.23 13.01 3.91 3.45
  19. APRENDIZAJE DEL MODELO (K-Means) Cluster Pais (10) dia hora sexo

    edad tema(22) Acción (4) Proceso (10) 1 IND V 10:26 H 35.21 IND Acceder publicación 2 IND L 23:03 M 29.34 IND Añadir publicación 3 IND X/J 15:40 M/H 27.02 IND Añadir comentario 4 IND M 22:07 M 36.23 Moda Acceder publicación
  20. UTILIZACIÓN DEL MODELO Utilizar Spark para clasificar a nuestros nuevos

    usuarios Nos faltan atributos Construir un algoritmo IBL (Instance-Based Learning)
  21. UTILIZACIÓN DEL MODELO (IBL) Modelo Carac 1 Carac 2 Caract

    3 Carac n ... Función de similitud Nuevo usuario Clase 1 Clase 2 … Clase m Función de selección Clase
  22. UTILIZACIÓN DEL MODELO (IBL) Modelo Carac 1 Carac 2 Caract

    3 Carac n ... Función de similitud Nuevo usuario Clase 1 Clase 2 … Clase m LAZY LEARNING Función de selección Clase
  23. Información transformada id pais dia hora sexo edad tema a1

    a2 a3 a4 a5 a6 383829 32333 7 Sab (7) 2 1 27 tech (1) 2 3 5 7 2 3 343245 55444 8 Sab (7) 10 0 21 cocina (10) 2 4 5 6 7 3 323234 43434 7 Dom (1) 15 1 19 deport es (13) 3 5 6 3 3 4
  24. Revisando el Aprendizaje de Comportamientos IBL Transform ación Recolección Generación

    C 1 C2 n ... Nuevo usuario Cola de Mensajes MLLib MapReduce/Spark