Entrenar el recomendador Matchbox

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

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

Categoría: Machine Learning/ Entrenar

Nota:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

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

El algoritmo de recomendación Machine Learning se basa en el modelo Matchbox, desarrollado por Microsoft Research. Para descargar un documento que describa 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. A continuación, puede usar el modelo entrenado para generar recomendaciones, buscar usuarios relacionados o buscar elementos relacionados mediante el módulo Score Matchbox Recommender (Puntuar recomendador de Cuadro de coincidencia).

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 recomendaciones en este tutorial del equipo de desarrollo de .NET. Incluye código de ejemplo y una explicación de cómo llamar a Machine Learning desde una aplicación.

Creación de un motor de recomendaciones para aplicaciones .NET mediante Machine Learning

Más información sobre los modelos de recomendación y el recomendador de 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 de Matchbox combina estos enfoques, mediante el filtrado colaborativo 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 de Matchbox y su algoritmo probabilístico subyacente en el documento de investigación pertinente: Matchbox: Large Scale Bayesian Recomendaciones Recomendaciones. Además, el blog de Machine Learning tiene un artículo titulado Recomendaciones Everywhere que proporciona una introducción de alto nivel a los algoritmos de recomendación.

Configuración de Train Matchbox Recommender

Preparación de 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 prueba, use la opción División del recomendador del módulo Dividir datos.

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

Es muy importante que los datos de entrada usados para el entrenamiento contengan el tipo correcto de datos 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 categóricos.

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

El conjunto de datos Restaurant ratings en Machine Learning Studio (clásico) (haga clic en Conjuntos de datos guardados y, después, en Ejemplos) 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, consulte el conjunto de datos de clientes restaurant en Machine Learning Studio (clásico). Un conjunto típico de características de usuario tiene este aspecto:

Identificador de usuario Ambiente Dress_preference transporte Fumador
U1004 family informal A 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, consulte el conjunto de datos de datos de la característica Restaurant, que se proporciona en Machine Learning Studio (clásico) (haga clic en Conjuntos de datos guardados y, a continuación, en Ejemplos). Un conjunto típico de características de elementos (en este caso, el elemento es un restaurante) podría tener este aspecto:

Identificador de lugar Alcohol Smoking_area price Rambience
135106 Wine-Beer ninguno low family
132667 No_Alcohol_Served Permitido medio Casual

Entrenamiento del modelo

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

  2. Si tiene un conjunto de datos independiente de características de usuario o características de elementos, conéctelas al módulo Train Matchbox Recommender (Entrenar recomendador de 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 Number of training batches (Número de lotes de entrenamiento), escriba el número de lotes para dividir los datos durante el entrenamiento.

    En función de este valor, el conjunto de datos de los triples de clasificación de elementos de usuario se divide en varias partes o lotes durante el entrenamiento.

    Dado que Train Matchbox Recommender 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 datos de los triples de clasificación de elementos de usuario. Las características de usuario o elemento no se dividen porque no es necesario dividir las características.

  4. En Number of traits (Número de rasgos), escriba el número de rasgos latentes que se deben aprender para cada usuario y elemento.

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

  5. En Number of recommendation algorithm iterations (Número de iteraciones de algoritmo de recomendación), indique cuántas veces debe procesar el algoritmo los datos de entrada.

    El recomendador de Matchbox se entrena mediante un algoritmo de paso de mensajes que puede iterar varias veces sobre 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 Train Matchbox Recommender (Entrenar recomendador de Matchbox ) y seleccione Ejecutar seleccionado.

Ejemplos

Para obtener ejemplos de cómo se usan los modelos de recomendación Machine Learning, consulte estos experimentos de ejemplo en el 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 falta una columna de características, el modo de los valores que no faltan se usará como reemplazo de los valores que faltan.

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

Restricciones

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

Estimación del uso de memoria del recomendador

Actualmente, el límite inferior de la superficie de memoria de Matchbox 16 * N\(4\T + 2\R) es bytes, donde N hace referencia al número de triples de clasificación de elementos de usuario en el conjunto de datos 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 datos de entrenamiento).

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

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 datos 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 datos 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 durante el entrenamiento del 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 errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

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

Consulte también

Modelo de validación cruzada
Evaluate Recommender (Evaluar recomendador)
Entrenar
Score Matchbox Recommender (puntuar un recomendador de Matchbox)