Motor de recomendaciones – Prueba de concepto

Manual de Talend Big Data y Machine Learning

Eche un vistazo a las demás entregas de la serie:

Configuración de Sandbox

Mantenimiento predictivo de IoTEvaluación de riesgos en tiempo realOptimización de
almacenes de datos

Introducción

Ahora que ya ha descargado el entorno virtual de Talend Big Data y Machine Learning Sandbox, ha llegado el momento de analizar formas prácticas de darle una utilidad comercial. En este ejemplo demostraremos cómo recomendar las películas más relevantes a los usuarios en función de recomendaciones de la página web ficticia Base de datos de películas Talend. Gracias a las capacidades de machine learning que ofrece Talend, podemos recomendar películas basándonos en las puntuaciones que ha dado cada visitante. En primer lugar, entrenará el modelo de recomendación usando una gran cantidad de datos de puntuaciones (para crear un modelo se emplea un mínimo de 100 000) recabadas de la página web MovieLens. Este modelo nos permitirá dar recomendaciones sobre películas a los visitantes a los que es más probable que les gusten porque otros usuarios anteriores mostraron las mismas preferencias a juzgar por las puntuaciones que dieron.

Esquema del motor de recomendaciones de Sandbox


Lo más destacado

Machine Learning

Aproveche las capacidades de machine learning de Talend para incorporar un motor de recomendaciones a su página web.

Spark Streaming/En tiempo real

Utilice la tecnología de Spark Streaming para dar recomendaciones en tiempo real a sus usuarios.

Icono de servicio REST

Servicio REST para Live Dashboard

Utilice un servicio web REST para rastrear los movimientos del usuario en un panel de control web.


Ejecución

Acceda al portal de casos prácticos del motor de recomendaciones desde la página de carga de Sandbox para obtener indicaciones de ejecución rápida y una interfaz web gráfica.

Acceso a la página web del motor de recomendaciones de Sandbox

Abra Talend Studio en el entorno Sandbox. Para este ejemplo trabajaremos en la carpeta RecommendationEngine que encontrará en la vista del repositorio. Analizaremos tareas de los diseños de tarea Standard , Big Data Batch y Big Data Streaming. Cuando esté listo para empezar, realice los siguientes pasos:

  1. Navegue hasta la carpeta RecommendationEngine en tareas Standard. Ejecute la tarea Step_01_EnvironmentSetup en la carpeta A_Setup. Esta tarea inicializa el entorno de demostración a partir de la plataforma de big data que haya elegido. Concretamente, carga datos de inicialización en el HDFS e inicializa las tablas en una base de datos NoSQL. Configuración del motor de recomendaciones de Sandbox
  2. Navegue hasta la carpeta RecommendationEngine en tareas Standard. Para una ejecución rápida, ejecute la tarea Step_02_TrainModel, que encontrará en la carpeta B_Model. Este paso entrena un modelo a partir de datos previos mediante un componente tALSModel. Esta única tarea comprende cuatro tareas individuales Standard y Big Data Batch.Modelo de entrenamiento del motor de recomendaciones
  3. Opcional: Esta única tarea comprende cuatro tareas individuales Standard y Big Data Batch. Para profundizar y entender correctamente el proceso del motor de recomendaciones y, en concreto, el entrenamiento del modelo de machine learning, puede escoger ejecutar cada paso del proceso de forma individual. Para ello, siga estos pasos:
    • Tarea 1: Navegue hasta la carpeta RecommendationEngine en tareas Standard y vaya a B_Model > Sub_Steps. Ejecute la tarea DeleteModel. Esta tarea elimina el modelo de machine learning existente en el directorio del modelo.
    • Tarea 2: Navegue hasta la carpeta RecommendationEngine en tareas Big Data Batch y vaya a Sub_Steps. Ejecute la tarea PrepareMovieData. Esta tarea prepara los datos de películas y alimenta las tablas NoSQL de Cassandra para una extracción rápida durante la ejecución de las recomendaciones en tiempo real.
    • Tarea 3: Navegue hasta la carpeta RecommendationEngine en tareas Big Data Batch y vaya a Sub_Steps. Ejecute la tarea Train. Esta es la tarea que utiliza los datos de películas preparados para entrenar el algoritmo de mínimos cuadrados alternos que se empleará en el motor de recomendaciones para producir recomendaciones de películas individualizadas.
    • Tarea 4: Navegue hasta la carpeta RecommendationEngine en tareas Standard y vaya a B_Model > Sub_Steps. Ejecute la tarea StageModel. Una vez creado y entrenado el modelo, se copiará al HDFS para que el motor de recomendaciones pueda acceder a él.
  4. Navegue hasta la carpeta RecommendationEngine en tareas Standard. Ejecute las tres tareas que aparecen en la carpeta C_Services para habilitar los servicios API necesarios para la interfaz web de esta demostración:

    Step_03a_MoviesService

    Servicio de películas del motor de recomendaciones

    Step_03b_RatingsService

    Servicio de puntuaciones del motor de recomendaciones

    Step_03c_RecommendationsService

    Servicio de recomendaciones del motor de recomendaciones

  5. Navegue hasta la carpeta RecommendationEngine en tareas Big Data Streaming. Ejecute la tarea Step_04a_RecommendationStream .Esta tarea lee valores de Kafka Queue y, en función de esos datos de entrada, enviará recomendaciones de películas en tiempo real de la base de datos NoSQL de Cassandra para mostrarlas al usuario a través de la interfaz web. Flujo del motor de recomendaciones
  6. Ahora navegue hasta la interfaz web. Por defecto, tendrá una sesión iniciada con el usuario Charlie Chaplin. Este usuario ya ha puntuado algunas películas previamente. Elija un Genre (Género) y luego una Movie (Película) de ese género. Al cabo de unos segundos de procesamiento, debería obtener recomendaciones basadas en las películas que ya ha puntuado. Página web de demostración del motor de recomendaciones
    • Si puntúa otras películas para este usuario, tendrá que reentrenar el modelo. Para reentrenar el modelo, primero detenga la tarea Recommendation Stream que se está ejecutando en este momento y realice los siguientes pasos para crear un nuevo modelo que pueda utilizar el motor de recomendaciones:
      • Navegue hasta la carpeta RecommendationEngine en tareas Big Data Batch. Ejecute la tarea Step_06_RetrainModel. Esto incorporará los nuevos datos de entrada al modelo de machine learning para que disponga de la información más actualizada para el usuario.
      • Navegue hasta la carpeta RecommendationEngine en tareas Standard. Ejecute la tarea StageModel en la carpeta B_Model > Sub_Steps. Como mencionaba antes, esto pasará el modelo recién entrenado al HDFS para que resulte accesible al motor de recomendaciones.
      • Reinicie la tarea Recommendation Stream. Con la tarea Recommendation Stream ejecutándose, regrese a la interfaz web y, una vez más, elija un género y una película. Si en esta ocasión se han puntuado suficientes películas, deberían aparecer nuevas recomendaciones.
  7. Para practicar más, también puede empezar sesión con otro usuario en la parte superior derecha de esta página web. Este usuario será totalmente nuevo y no tendrá puntuaciones preseleccionadas. Siguiendo el mismo proceso que antes, puntúe algunas películas, reentrene el modelo y reinicie la tarea Recommendation Stream. De esta forma debería obtener recomendaciones basadas en las puntuaciones del nuevo usuario.

Conclusión

Este ejemplo ilustra el uso de un motor de recomendaciones para dar recomendaciones de películas en tiempo real a partir de información compilada en puntuaciones anteriores de películas de un usuario en particular. Cuanta más información se disponga de los usuarios, más valiosas les resultarán las recomendaciones. Entre bastidores, Talend ha utilizado Spark Streaming y el modelo de mínimos cuadrados alternos para generar las recomendaciones y una base de datos NoSQL como Cassandra con sus capacidades de lectura rápida para alimentar las recomendaciones a la interfaz web en cuestión de segundos.

| Last Updated: junio 26th, 2019