A first approach to a destination recommendation system based on machine learning, challenge for Data Scientist position @LATAM, improvements can be done on market segmentation, user clustering, model and accuracy. Spanish content.
Pineda - Metodologia de la investigacion manual para el desarrollo de persona...
LATAM Challenge
1. LATAM Challenge
Diseño e implementación de una red neuronal para
recomendación de destinos
Sebastián Camberos
Abril 2018
2. Descripción LATAM Challenge
• Objetivo: recomendar destinos a
nivel cliente
• Libre elección de arquitectura
para recomendación
• Origen datos: muestra
suministrada por LATAM con
usuarios y destinos anónimos
• Muestra (sin procesar)
- 18.4 millones registros x 10 campos
- 5.7 GB de datos distribuidos en 6
archivos con formato JSON
3. ¿Cuál es el Data Journey?
Preferencias
Usuarios
Estructura
Dataset
Distribuciones Consolidación
Machine
Learning
Inferencia
SQL (Google BigQuery) + Python Python Python + TensorFlow + TensorBoard
• Filtro de datos en base
a rangos de estadística
descriptiva
• Eliminación variables
• Generación pares
origen - destino por
usuario
• Incorporación variable
para segmentación
• Determinación de
distribuciones de
frecuencia por variable
• Cálculo de parámetros
estadísticos (valor
esperado y desviación
estándar)
• Inspección dataset
• Identificación variables
• Cantidad registros
• Registros nulos
• Estructura de datos
sobre línea temporal
• Límites de variables
numéricas (edad,
distancia, precio)
• Dimensión de
categorías (destinos,
usuarios, género)
• Aplicación de filtros
adicionales para
segmentación (edad,
distancia, género,
frecuencia de viaje)
• Construcción tensor de
preferencias (usuarios
vs destinos)
• Separación muestra en
set de entrenamiento y
validación
• Redimensionamiento
tensores
• Calibración hiper
parámetros (referencia
Hinton, 2007)
• Ejecución
entrenamiento red
neuronal
• Seguimiento función de
pérdida
• Visualización evolución
entrenamiento
• Inferencia de
preferencias sobre
usuario aleatorio (set
validación)
4.
5.
6. • Preprocesamiento datos
- Uso Google BigQuery para reducir
tiempo de procesamiento
- Incorporación variable para
segmentación: frecuencia de viaje
para [usuario, origen, destino]
- Eliminación variables precio, reserva,
salida y llegada
- Consolidación muestra 2.29 millones
de registros x 7 campos
Consolidación
7.
8. Machine Learning
• Descripción modelo
- Basado en Restricted Boltzmann
Machine como filtro colaborativo
(Hinton, 2007)
- Diseño original para recomendación
de películas (catálogo Netflix)
- Red neuronal 2 layers (1 hidden + 1
visible)
- Hidden layer con 128 unidades
neuronales y activación sigmoid
- Código Python 2.7 y TensorFlow 1.6
• Calibración hiper parámetros
- Pesos iniciales aleatorios
- Optimizador Contrastive Divergence
- Entrenamiento por batches
10. Inferencia
Evolución de
recomendación
vs preferencia
original para
idéntico usuario
a 16, 32, 64 y
128 epochs
• Inferencia da cuenta de
preferencias de los usuarios y
sugiere destinos alternativos
• No obstante, el modelo requiere
pruebas adicionales para,
- Establecer estabilidad
- Confirmar asignación de
calificaciones a preferencias
originales para un gran número de
usuarios
16 epochs
32 epochs
64 epochs
128 epochs