Entrenar el recomendador Matchbox

Entrena una aplicación de recomendación bayesiana mediante el algoritmo Matchbox

Categoría: machine learning/entrenar

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo de recomendador de Train Matchbox en Azure machine learning Studio (clásico) para entrenar un modelo de recomendación.

El algoritmo de recomendación de Azure Machine Learning se basa en el modelo Matchbox , desarrollado por Microsoft Research. Para descargar un documento que describe el algoritmo en detalle, haga clic en este vínculo en el sitio de Microsoft Research.

En el módulo Entrenar el recomendador Matchbox se estudia un conjunto de datos de triples usuario-elemento-calificación y, de manera opcional, algunas características de usuario y elemento. Devuelve un recomendador Matchbox entrenado. Después, puede usar el modelo entrenado para generar recomendaciones, buscar usuarios relacionados o buscar elementos relacionados mediante el uso del módulo de recomendación de puntuación Matchbox .

Sugerencia

Obtenga información sobre todo lo que necesita saber sobre la experiencia de un extremo a otro de la creación de un sistema de recomendación en este tutorial desde el equipo de desarrollo de .NET. Incluye código de ejemplo y debate sobre cómo llamar a Azure Machine Learning desde una aplicación.

Compilación del motor de recomendaciones para aplicaciones .NET con Azure Machine Learning

Más información sobre los modelos de recomendación y el recomendador Matchbox

El objetivo principal de un sistema de recomendación es recomendar uno o más elementos a usuarios del sistema. Algunos ejemplos de elementos pueden ser una película, un restaurante, un libro o una canción. Un usuario podría ser una persona, un grupo de personas u otra entidad con preferencias de elementos.

Existen dos enfoques principales para los sistemas de recomendación.

  • La primera es el enfoque basado en el contenido, que hace uso de las características tanto para usuarios como para elementos. Los usuarios pueden describirse en propiedades como la edad y el sexo, y los elementos se pueden describir en propiedades como el autor y el fabricante. Los ejemplos típicos de sistemas de recomendación basados en contenido se pueden encontrar en los sitios de encuentros sociales.
  • El segundo enfoque es de filtrado de colaboración, que solo usa los identificadores de usuarios y elementos, y obtiene información implícita sobre estas entidades a partir de una matriz (dispersa) de clasificaciones dadas a los elementos por los usuarios. Podemos obtener información sobre un usuario a partir de los elementos que han clasificado y de otros usuarios que han calificado los mismos elementos.

El recomendador Matchbox combina estos enfoques mediante el filtrado de colaboración con un enfoque basado en contenido. Por tanto, se considera un recomendador híbrido.

Funcionamiento: cuando se trata de un usuario relativamente nuevo en el sistema, para mejorar las predicciones se usa la información de características sobre el usuario, dando respuesta así al conocido problema del "arranque en frío". Sin embargo, una vez que ha recopilado clasificaciones suficientes de un usuario determinado, es posible crear predicciones completamente personalizadas para el usuario según sus clasificaciones específicas, en lugar de hacerlo solo según sus características. Por lo tanto, se trata de una transición sin problemas desde recomendaciones basadas en contenido a recomendaciones basadas en el filtrado de colaboración. Incluso si las características de elemento o usuario no están disponibles, Matchbox de todos modos funcionaría en modo de filtrado de colaboración.

Puede encontrar más detalles sobre el recomendador Matchbox y su algoritmo probabilística subyacente en el documento de investigación pertinente: Matchbox: recomendaciones de recomendaciones bayesiana de gran escala. Además, el blog de machine learning tiene un artículo titulado recomendaciones en todo el mundo que proporciona una introducción de alto nivel a los algoritmos de recomendaciones.

Cómo configurar el recomendador de Train Matchbox

Preparar los datos

Antes de intentar usar el módulo, es esencial que los datos tengan el formato esperado por el modelo de recomendación. Se requiere un conjunto de datos de entrenamiento de triples usuario-elemento-calificación, pero también puede incluir características de usuario y características de elementos (si están disponibles) en conjuntos de datos independientes.

Para dividir los datos de origen en conjuntos de datos de entrenamiento y de prueba, use la opción de división del recomendador en el módulo Split Data (dividir datos ).

Se requiere un conjunto de datos del usuario-elemento-clasificaciones

Es muy importante que los datos de entrada utilizados para el entrenamiento contengan el tipo de datos correcto en el formato correcto:

  • La primera columna debe contener identificadores de usuario.
  • La segunda columna debe contener identificadores de elemento.
  • La tercera columna contiene la clasificación del par usuario-elemento. Los valores de clasificación deben ser numéricos o de categorías.

Durante el entrenamiento, los valores de clasificación no pueden ser iguales. Además, si es numérico, la diferencia entre los valores de clasificación mínimo y máximo debe ser inferior a 100 y, idealmente, no mayor que 20.

El conjunto de los índices de restaurante en Azure machine learning Studio (clásico) (haga clic en conjuntos de valores guardados y luego en muestras) muestra el formato esperado:

Identificador de usuario Identificador de lugar rating
U1077 135085 2
U1077 135038 2

En este ejemplo, se puede ver que solo un usuario ha clasificado dos restaurantes distintos.

Conjunto de datos de características del usuario (opcional)

El conjunto de datos de características del usuario debe contener identificadores para los usuarios y utilizar los mismos identificadores que se proporcionaron en la primera columna del conjunto de datos de usuario-elemento-calificación. Las demás columnas pueden contener cualquiera de las características que describen a los usuarios.

Para obtener un ejemplo, vea el conjunto de información de cliente de restaurante en Azure machine learning Studio (clásico). Un conjunto típico de características de usuario tiene el siguiente aspecto:

Identificador de usuario ambiente Dress_preference transporte smoker
U1004 family informal En pie false
U1005 friends Ninguna preferencia Propietario del automóvil TRUE

Conjunto de datos de características del elemento (opcional)

El conjunto de datos de características del elemento debe contener identificadores de elemento en la primera columna. Las demás columnas pueden contener cualquiera de las características descriptivas de los elementos.

Para obtener un ejemplo, vea el conjunto de datos de la característica de restaurante, proporcionado en Azure Machine Learning Studio (clásico) (haga clic en conjuntos de datos guardados y luego en ejemplos). Un conjunto típico de características de elementos (en este caso, el elemento es un restaurante) podría ser similar al siguiente:

Identificador de lugar bebidas Smoking_area price Rambience
135106 Wine-Beer ninguno low family
132667 No_Alcohol_Served esté medio Casual

Entrenar el modelo

  1. Agregue el módulo de recomendación de Train Matchbox al experimento en Studio (clásico) y conéctelo a los datos de entrenamiento.

  2. Si tiene un conjunto de valores independiente de características de usuario y/o características de elementos, conéctelos al módulo de recomendación de Train Matchbox .

    • Conjunto de datos de características del usuario: conecte el conjunto de datos que describe a los usuarios en la segunda entrada.

    • Conjunto de datos de características del elemento: conecte el conjunto de datos que describe a los elementos en la tercera entrada.

  3. En número de lotes de entrenamiento, escriba el número de lotes para dividir los datos durante el entrenamiento.

    Según este valor, el conjunto de elementos de los triples de usuario-elemento-calificación se divide en varias partes o lotes durante el entrenamiento.

    Dado que el recomendador de entrenar Matchbox ejecuta lotes en paralelo, se recomienda establecer el número de lotes de entrenamiento en el número de núcleos disponibles, si todos los datos de entrenamiento caben en la memoria. De lo contrario, el número de lotes de entrenamiento debe establecerse en el múltiplo más bajo del número de núcleos disponibles para los que los datos de entrenamiento caben en la memoria.

    De forma predeterminada, los datos de entrenamiento se dividen en cuatro (4) lotes. Solo se divide el conjunto de filas de los triples de usuario-elemento-calificación. Las características de usuario o elemento no se dividen porque no es necesario dividir las características.

  4. En número de rasgos, escriba el número de rasgos latentes que deben aprenderse para cada usuario y elemento.

    Cuanto mayor sea el número de rasgos, más precisos serán las predicciones normalmente; sin embargo, el entrenamiento será más lento. El número de rasgos normalmente se encuentra en el intervalo de 2 a 20.

  5. Para el número de iteraciones del algoritmo de recomendación, indique cuántas veces debe procesar los datos de entrada el algoritmo.

    El recomendador Matchbox se entrena con un algoritmo de paso de mensajes que puede iterar varias veces por los datos de entrada. Cuanto más alto sea este número, más precisas serán las predicciones; sin embargo, el entrenamiento será más lento. Normalmente, el número de iteraciones se encuentra en el intervalo 1 a 10.

  6. Ejecute el experimento o seleccione solo el módulo de recomendación entrenar Matchbox y seleccione Ejecutar seleccionado.

Ejemplos

Para ver ejemplos de cómo se usan los modelos de recomendación en Azure Machine Learning, consulte estos experimentos de ejemplo en la Azure AI Gallery:

Notas técnicas

Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.

Consejos de uso

  • Si una columna de características tiene valores que faltan, el modo de los valores que no faltan se usará como reemplazo para los valores que faltan.

  • Todas las características de usuario y elemento se vuelven a escalar para que tengan una longitud de unidad, de modo que su valor absoluto máximo sea 1. No se aplica ninguna traslación a los valores de características, de manera de mantener su dispersión.

Restricciones

Actualmente no se admite la actualización en línea (o el entrenamiento continuo) de un modelo de recomendación en Azure Machine Learning. Si desea capturar las respuestas de los usuarios a las recomendaciones y utilizarlas para mejorar el modelo, se recomienda volver a entrenar el modelo completo periódicamente. No es posible el entrenamiento incremental, pero puede aplicar una ventana deslizante a los datos de entrenamiento para asegurarse de que el volumen de datos se minimice mientras usa los datos más recientes.

Calcular el uso de memoria del recomendador

Actualmente, el límite inferior de la superficie de memoria de Matchbox es 16 * N\(4\T + 2\R) bytes, donde N hace referencia al número de triples de usuario-elemento-calificación en el conjunto de conocimientos de entrenamiento, T al número de rasgos latentes y R a la diferencia entre la clasificación mínima y máxima (en el conjunto de elementos de entrenamiento).

El tamaño de un modelo de recomendación de Matchbox serializado es de aproximadamente 16 * T\(U\R + I + X + Y) bytes, donde U hace referencia al número de usuarios, el número de elementos, X al número de características de usuario y y al número de características de elementos.

Entradas esperadas

Nombre Tipo Descripción
Conjunto de datos de entrenamiento de triplas usuario-elemento-clasificación Tabla de datos Clasificaciones de elementos por usuarios, expresados como una tripla (usuario, elemento y clasificación)
Conjunto de datos de entrenamiento de las características de usuario Tabla de datos Conjunto de elementos que contiene características que describen a los usuarios (opcional)
Conjunto de datos de entrenamiento de las características de elemento Tabla de datos Conjunto de objetos que contiene características que describen elementos (opcional)

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Número de rasgos >=0 Entero 10 Especificar el número de rasgos que se usarán con el recomendador (opcional)
Número de iteraciones del algoritmo de recomendación >=1 Entero 5 Especificar el número máximo de iteraciones que se deben realizar al entrenar el modelo de recomendación (opcional)
Número de lotes de entrenamiento >=1 Entero 4 Especificar el número de lotes de entrenamiento que se usarán con el recomendador (opcional)

Salidas

Nombre Tipo Descripción
Recomendador Matchbox entrenado Interfaz ILearner Recomendador Matchbox entrenado

Excepciones

Excepción Descripción
Error 0022 Se produce una excepción si el número de columnas seleccionadas en el conjunto de datos de entrada no es igual al número esperado.
Error 0036 Se produce una excepción si se proporcionaron varios vectores de características para un usuario o elemento determinado.
Error 0018 Se produce una excepción si el conjunto de datos de entrada no es válido.
Error 0035 Se produce una excepción si no se proporcionaron características para un usuario o elemento determinado.
Error 0034 Se produce una excepción si existe más de una clasificación para un par usuario-elemento determinado.
Error 0053 Se produce una excepción si no hay características de usuario o elementos para recomendaciones de Matchbox.
Error 0003 Se produce una excepción si una o varias de las entradas son NULL o están vacías.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Vea también

Modelo de validación cruzada
Evaluar el recomendador
Circulación
Score Matchbox Recommender (puntuar un recomendador de Matchbox)