Recomendación

Ver en TensorFlow.org Ejecutar en Google Colab Ver código fuente en GitHub

Las recomendaciones personalizadas se utilizan ampliamente para una variedad de casos de uso en dispositivos móviles, como la recuperación de contenido multimedia, la sugerencia de productos de compra y la recomendación de la siguiente aplicación. Si está interesado en brindar recomendaciones personalizadas en su aplicación respetando la privacidad del usuario, le recomendamos explorar el siguiente ejemplo y conjunto de herramientas.

Empezar

Proporcionamos una aplicación de muestra de TensorFlow Lite que demuestra cómo recomendar elementos relevantes a los usuarios de Android.

Ejemplo de Android

Si está utilizando una plataforma que no sea Android o ya está familiarizado con las API de TensorFlow Lite, puede descargar nuestro modelo de recomendación inicial.

Descargar modelo inicial

También proporcionamos un script de entrenamiento en Github para entrenar su propio modelo de forma configurable.

código de entrenamiento

Comprender la arquitectura del modelo.

Aprovechamos una arquitectura de modelo de codificador dual, con codificador de contexto para codificar el historial de usuario secuencial y codificador de etiquetas para codificar el candidato de recomendación previsto. La similitud entre las codificaciones de contexto y de etiquetas se utiliza para representar la probabilidad de que el candidato previsto satisfaga las necesidades del usuario.

Con esta base de código se proporcionan tres técnicas diferentes de codificación secuencial del historial de usuario:

  • Codificador de bolsa de palabras (BOW): promedia las incrustaciones de las actividades del usuario sin considerar el orden del contexto.
  • Codificador de red neuronal convolucional (CNN): aplica múltiples capas de redes neuronales convolucionales para generar codificación de contexto.
  • Codificador de red neuronal recurrente (RNN): aplicación de una red neuronal recurrente para codificar la secuencia de contexto.

Para modelar la actividad de cada usuario, podríamos usar el ID del elemento de actividad (basado en ID), o múltiples características del elemento (basado en características), o una combinación de ambos. El modelo basado en funciones que utiliza múltiples funciones para codificar colectivamente el comportamiento de los usuarios. Con esta base de código, puede crear modelos basados ​​en ID o en características de forma configurable.

Después del entrenamiento, se exportará un modelo de TensorFlow Lite que puede proporcionar directamente predicciones top-K entre los candidatos a recomendación.

Usa tus datos de entrenamiento

Además del modelo entrenado, proporcionamos un conjunto de herramientas de código abierto en GitHub para entrenar modelos con sus propios datos. Puede seguir este tutorial para aprender a utilizar el kit de herramientas e implementar modelos entrenados en sus propias aplicaciones móviles.

Siga este tutorial para aplicar la misma técnica que se utiliza aquí para entrenar un modelo de recomendación utilizando sus propios conjuntos de datos.

Ejemplos

Como ejemplo, entrenamos modelos de recomendación con enfoques basados ​​en ID y en características. El modelo basado en ID toma solo los ID de películas como entrada, y el modelo basado en características toma como entradas tanto los ID de películas como los ID de géneros de películas. Encuentre los siguientes ejemplos de entradas y salidas.

Entradas

  • ID de películas contextuales:

    • El Rey León (Número: 362)
    • Historia del juguete (Número: 1)
    • (y más)
  • ID de género de película contextual:

    • Animación (Número: 15)
    • Infantil (Número: 9)
    • Musical (Número: 13)
    • Animación (Número: 15)
    • Infantil (Número: 9)
    • Comedia (ID: 2)
    • (y más)

Salidas:

  • ID de películas recomendadas:
    • Toy Story 2 (Número: 3114)
    • (y más)

Puntos de referencia de rendimiento

Los números de referencia de rendimiento se generan con la herramienta que se describe aquí .

Nombre del modelo Tamaño del modelo Dispositivo UPC
recomendación (ID de película como entrada) 0,52 MB Píxel 3 0,09 ms*
Píxel 4 0,05 ms*
recomendación (ID de película y género de película como entradas) 1,3 MB Píxel 3 0,13 ms*
Píxel 4 0,06 ms*

*Se utilizan 4 hilos.

Usa tus datos de entrenamiento

Además del modelo entrenado, proporcionamos un conjunto de herramientas de código abierto en GitHub para entrenar modelos con sus propios datos. Puede seguir este tutorial para aprender a utilizar el kit de herramientas e implementar modelos entrenados en sus propias aplicaciones móviles.

Siga este tutorial para aplicar la misma técnica que se utiliza aquí para entrenar un modelo de recomendación utilizando sus propios conjuntos de datos.

Consejos para la personalización del modelo con tus datos

El modelo previamente entrenado integrado en esta aplicación de demostración se entrena con el conjunto de datos MovieLens ; es posible que desee modificar la configuración del modelo en función de sus propios datos, como el tamaño del vocabulario, la incorporación de atenuaciones y la longitud del contexto de entrada. Aquí hay algunos consejos:

  • Longitud del contexto de entrada: la mejor longitud del contexto de entrada varía según los conjuntos de datos. Sugerimos seleccionar la duración del contexto de entrada en función de cuánto se correlacionan los eventos de etiqueta con los intereses a largo plazo frente al contexto a corto plazo.

  • Selección del tipo de codificador: sugerimos seleccionar el tipo de codificador según la longitud del contexto de entrada. El codificador de bolsa de palabras funciona bien para contextos de entrada de longitud corta (por ejemplo, <10), los codificadores CNN y RNN brindan más capacidad de resumen para contextos de entrada largos.

  • El uso de funciones subyacentes para representar elementos o actividades del usuario podría mejorar el rendimiento del modelo, acomodar mejor elementos nuevos y posiblemente reducir los espacios de incrustación, por lo tanto, reducir el consumo de memoria y ser más amigable en el dispositivo.