¿Cómo funciona el motor de recomendaciones?
  • 25 Oct 2022
  • 12 Minutos para leer

¿Cómo funciona el motor de recomendaciones?


Article Summary

El motor de recomendaciones está codificado en Python y está empaquetado dentro del Servicio de aprendizaje automático.

El motor de recomendaciones de Totara recomienda contenido tanto de Totara Engage como de Totara Learn. El contenido incluye recursos, listas de reproducción, espacios de trabajo y cursos. 

Modelos

El motor de recomendaciones de Totara utiliza la base de datos para crear un modelo. El modelo se utiliza para determinar y presentar el contenido recomendado para el usuario actual, todo en tiempo real.

La creación del modelo se realiza en un cronograma regular y se denomina “capacitación”. La capacitación es cuando tus datos se utilizan para crear una instancia de “punto en el tiempo”. Llamamos a esta instancia el modelo. El modelo se basa en los datos disponibles en el momento en que se lleva a cabo la capacitación. Esto es importante para tener en cuenta si estás agregando contenido, ya que la actividad asociada con el contenido no será evidente en el modelo hasta que se realice la capacitación.

Por defecto, la capacitación del modelo se programa una vez cada 24 horas. Un administrador puede cambiar la programación si es necesario. Nuestro consejo es mantener la configuración predeterminada mientras se familiariza con la actividad de su sitio y el proceso de recomendaciones.

¿Cómo se determinan las recomendaciones?

El motor de recomendaciones proporciona dos tipos de recomendaciones de contenido:

  • Recomendaciones del usuario: Contenido recomendado al usuario actual
  • Contenido relacionado: Contenido similar al contenido especificado

Ambos tipos de recomendación se basan en uno de los siguientes:

  •  Las interacciones pasadas del usuario con el contenido. En este caso, el contenido similar a un elemento de contenido determinado se basa solo en cómo se está interactuando con el contenido. 
  • Las interacciones pasadas del usuario con el contenido y los metadatos del contenido y los usuarios.

Las interacciones se refieren a los tipos de acción del usuario con elementos de contenido. Las interacciones son registradas por el sistema cuando un usuario se inscribe en un curso, o visualiza, me gusta o hace comentarios sobre un recurso, lista de reproducción o espacio de trabajo. La fortaleza de la interacción se representa en una escala binaria. Las acciones del usuario establecen el valor de interacción como se muestra:

  • Una sola vista en un recurso, lista de reproducción o espacio de trabajo establece el valor de interacción en 0.
  • Una vista posterior O una vista única con un "me gusta" y/o comentario establece el valor de la interacción en 1. Las actividades posteriores no cambian el valor de la interacción después de que se ha establecido en 1. 
  • Cuando un usuario se inscribe en un curso autoinscrito, el valor de la interacción se establece en 1. Ver un curso no se registra como interacción.

Una interacción de un usuario con contenido que tiene un valor 0 también se denomina interacción sin prisa, mientras que un valor de interacción de 1 se denomina interacción positiva.

El modelo de recomendaciones utiliza uno de los tres algoritmos (o modos) de aprendizaje automático:

  • Factorización de matrices
  • Híbrido parcial
  • Híbrido completo (modo por defecto en Totara 15 y superior)

Las características de los tres modos se describen con más detalle a continuación. El modo por defecto para Totara 15 y superior es híbrido completo, pero el modo se puede cambiar en cualquier momento. El nuevo modo no estará operativo hasta que se complete la capacitación para construir el nuevo modelo.

La lógica fundamental utilizada para todos los modos implica identificar contenido con el que el usuario actual no ha interactuado, pero que probablemente esté interesado. Este contenido se identifica a partir de interacciones de otros usuarios similares con el contenido especificado que no ha sido visto por el usuario actual. 

El método utilizado para identificar usuarios similares es diferente para cada modo. Del mismo modo, los datos que utiliza el motor para proporcionar recomendaciones de contenido dependen del modo. Cada modo se describe con mayor detalle a continuación.

Factorización de matrices

En este modo, el motor de recomendaciones no utiliza contenido ni metadatos de usuario. El motor de recomendaciones se basa únicamente en los datos de interacción de los usuarios con contenido. La lógica de las recomendaciones del usuario se puede resumir en dos pasos:

  1. Identifica usuarios similares que, en general, comparten los mismos patrones de interacción de contenido que el usuario actual.
  2. Asignar una puntuación de recomendación para cada usuario identificado a cada elemento de contenido disponible en función de cuánto interactuaron con ellos los usuarios similares identificados.

Después de ordenar los elementos de contenido por sus puntajes de recomendación, se recomienda al usuario actual los elementos de contenido N principales (N es configurable por el administrador del sitio de Totara). No se recomiendan los elementos con los que el usuario ya ha interactuado.

El contenido relacionado se proporciona usando puntajes de similitud. Las puntuaciones de similitud se calculan para cada elemento de contenido con cada elemento de contenido de por medio basado en el patrón de interacción del usuario. Un ejemplo ayudará a ilustrar esto. En este ejemplo, los elementos de contenido x e y son interactuados por el mismo conjunto de usuarios. Un conjunto diferente de usuarios interactúa con el elemento de contenido z. Por lo tanto, x tendrá un puntaje de similitud alto con y, pero x tendrá un puntaje de similitud bajo con z.

Todos los elementos de contenido se ordenan por su puntaje de similitud con el elemento de contenido actual. Los N elementos superiores se recomiendan al usuario como elementos similares.

Una de las desventajas de este modo es que no puede recomendar ningún contenido a usuarios desconocidos, es decir, usuarios que aún no han interactuado con ningún contenido.

Híbrido parcial

En el modo híbrido parcial, el motor de aprendizaje automático utiliza los metadatos de los usuarios y del contenido. La tabla muestra los campos de metadatos utilizados para cada uno (si están completados).

Campos de metadatos del usuarioCampos de metadatos de contenido
IdiomaTipo (es decir, curso, espacio de trabajo, recurso, lista de reproducción)
PaísTema (para listas de reproducción, recursos)
InteresesEtiquetas (cursos)
Organización(es)
Posición(es)
Posición aspirante
Escala de competencias actuales
Insignias

El modo híbrido parcial proporciona recomendaciones a usuarios conocidos (es decir, usuarios que han interactuado con el contenido) de la misma manera que el modo de factorización de la matriz. El modo híbrido parcial supera la desventaja de tratar con usuarios desconocidos (es decir, usuarios que no han interactuado con ningún contenido). Las recomendaciones para usuarios desconocidos se proporcionan sobre la base de la similitud de metadatos con usuarios conocidos. El contenido con el que interactúan los usuarios conocidos con metadatos similares a los de un usuario desconocido se utiliza para presentar recomendaciones para usuarios desconocidos.

El contenido relacionado se identifica usando una puntuación de similitud. Esta es una puntuación que indica qué tan similares son dos piezas de contenido basadas en: 

  • Las interacciones de los usuarios
  • La similitud de los metadatos de contenido

Híbrido completo

Este es el valor por defecto para Totara 15 y superior. El híbrido completo funciona mejor para una nueva instalación del servicio de aprendizaje automático. 

El modo híbrido completo es similar al modo híbrido parcial. Sin embargo, en el modo híbrido completo se utilizan campos de texto libre del perfil del usuario (ciudad y descripción del perfil) y del perfil del contenido (descripción del curso, descripción del espacio de trabajo, descripción de la lista de reproducción y contenido del recurso). Para lograr esto, el texto libre se convierte en una matriz numérica. Los datos adicionales utilizados en el modo híbrido completo proporcionan un mejor método para determinar la similitud entre el contenido y los usuarios.

Ventajas y desventajas de cada modo

El modo de factorización de la matriz requiere la menor cantidad de gastos generales computacionales y, por lo tanto, es más rápido para capacitar y proporcionar recomendaciones. Sin embargo, no es posible proporcionar recomendaciones inteligibles a usuarios desconocidos (usuarios que aún no han interactuado con ningún contenido).

El modo híbrido completo requiere mayores recursos computacionales y, como resultado, es relativamente más lento para capacitar y proporcionar recomendaciones. Dado que los metadatos de los usuarios y el contenido (incluido el texto libre) se utilizan en modo híbrido completo, proporciona buenas recomendaciones a usuarios desconocidos. Estas recomendaciones se basan únicamente en sus metadatos, que luego se utilizan para encontrar usuarios conocidos similares.

El modo híbrido parcial se encuentra en el medio de los otros dos modos en términos de utilización de recursos computacionales. Utiliza todos los metadatos de los usuarios y el contenido, excepto los metadatos de texto libre. Como resultado, este modo puede proporcionar recomendaciones a usuarios desconocidos mientras sigue siendo computacionalmente eficiente.

Se recomienda configurar un sitio Totara nuevo o pequeño para que se ejecute con el modo híbrido completo. Solo cuando el algoritmo híbrido completo está tardando demasiado en entrenar, el modo híbrido parcial debe estar habilitado en su lugar. El modo de factorización de matriz solo debe utilizarse con sitios muy grandes de Totara donde un alto volumen de usuarios, contenido y actividad resulte en un tiempo de capacitación extendido (más de una hora) para el modo híbrido parcial.

Proceso del motor de recomendaciones

El proceso utilizado por el motor de recomendaciones se describe en el siguiente diagrama de flujo.

Un diagrama de flujo que describe cómo funciona el motor de recomendaciones.Cada bloque de este diagrama de flujo se describe en detalle a continuación.

Buscador de datos

El bloque de captura de datos recupera datos de Totara. Los datos obtenidos incluyen interacciones de usuario a contenido, metadatos de usuario y metadatos de contenido de cada inquilino.

Los archivos de datos de usuario y contenido incluyen metadatos de los usuarios y el contenido, respectivamente, mientras que los datos de interacciones son un registro de si un usuario ha interactuado positivamente con el contenido o ha interactuado de forma tranquila con el contenido, y la hora en que ocurrió la interacción.

Los metadatos del usuario consisten en:

  • ID en la base de datos
  • Idioma
  • Ciudad/pueblo (texto libre)
  • País
  • Intereses
  • Posición aspirante
  • Posiciones
  • Organizaciones
  • Escala de competencias actuales
  • Insignias
  • Descripción del perfil (texto libre)

Los metadatos de contenido consisten en:

  • Tipo de contenido (uno por curso, espacio de trabajo, artículo, artículo de microaprendizaje y lista de reproducción)
  • Temas
  • Descripción del texto (texto libre)

Los datos de interacciones consisten en:

  • ID de usuario
  • ID de contenido
  • Valor de interacción (0 o 1)
  • Hora de la interacción

Lector de datos

Este bloque lee los archivos de datos obtenidos de Totara en una estructura de datos de Python para cada inquilino a la vez y los canaliza para su procesamiento posterior.

Modo

Este es un bloque de decisión que se establece cuando el servicio se inicia inicialmente. Puedes leer más al respecto en el archivo README.md del Servicio de Aprendizaje Automático. El usuario puede elegir un modo entre los siguientes:

  • Factorización de matrices
  • Híbrido parcial
  • Híbrido completo

Datos del proceso

Dependiendo del modo de recomendación seleccionado, uno de los procesadores de datos transforma los datos en el formulario compatible que puede ser consumido por el proceso siguiente. La salida de cada uno de los procesadores de datos está en forma de matrices dispersas, de modo que la memoria se utiliza de manera eficiente.

Procesador colaborativo de datos

Este bloque ignora los datos de usuario y contenido y transforma los datos de interacciones en un formato que los módulos posteriores pueden consumir.

Procesador de datos parcial

Este bloque utiliza los metadatos de usuario y contenido, así como los datos de interacciones, y los transforma para su consumo en el proceso posterior. Este bloque ignora solo los campos de texto libre de los datos del usuario (ciudad/ciudad y descripción del perfil) y del contenido (descripción del texto).

Procesador de datos completo

Esto utiliza todos los campos de datos en los datos de usuario, contenido e interacciones, incluidos los campos de texto libre del usuario y los datos de contenido. Los campos de texto libre se pasan a través del canal de procesamiento de lenguaje natural donde el texto se limpia y luego se convierte en una matriz de características TF-IDF. Los conjuntos de datos luego se transforman en un formulario compatible para que se puedan consumir para su posterior procesamiento.

Optimizar los hiperparámetros

Dependiendo del modo de recomendación, los hiperparámetros se optimizan para un mejor rendimiento en un conjunto de datos aleatorios no vistos aparte de la capacitación. Los hiperparámetros que se ajustan son la dimensión lateral y el número de Épocas.

Optimizador de hiperparámetros colaborativos

Estos se ajustan utilizando los datos de interacciones anteriores de los usuarios con el contenido si el modo seleccionado es Factorización de matriz.

Optimizador de hiperparámetros basados en contenido

Si el servicio de aprendizaje automático se inicia en híbrida parcial o híbrida completa, los hiperparámetros se ajustan utilizando las interacciones pasadas de los usuarios con el contenido y los metadatos proporcionados de los usuarios y el contenido.

Modelo final de capacitación

Según el modo de recomendación seleccionado, la factorización de matriz (que es una subclase del enfoque de filtrado colaborativo) o el enfoque de filtrado basado en contenido se utiliza para crear el modelo de aprendizaje automático para las recomendaciones. La clase del algoritmo de modelado utilizado se implementa a través de la biblioteca LightFM y se describe en Maciej Kula, 2015.

Modelo de filtrado colaborativo

Si el servicio se está ejecutando en el modo de factorización de matriz, el modelo final capacitado será un modelo de filtrado colaborativo utilizando los hiperparámetros ajustados y reenviado a la siguiente etapa.

Modelo de filtrado basado en contenido

Si el servicio se está ejecutando en losmodos híbrido   parcial o híbrido completo, el algoritmo de filtrado basado en contenido se utiliza para construir el modelo. La entrada de datos para este algoritmo incluye metadatos de usuarios y elementos. El modelo final se construye utilizando el conjunto ajustado de estos hiperparámetros de la etapa anterior. Ten en cuenta que este algoritmo acepta datos de cualquiera de los bloques del procesador de datos parciales y del procesador de datos completos, lo que significa que también puede aceptar y usar los datos procesados del lenguaje natural procesado. 

Modelo final de caché en la memoria

El modelo final capacitado se pasa a este bloque para que se almacene en caché en la memoria, de modo que esté fácilmente disponible para consultas de Totara. Además de almacenar en caché el modelo en la memoria, también se guarda en el sistema de archivos para que se cargue rápidamente en caso de que el servicio se reinicie por cualquier motivo.

Comunicador Totara

Este bloque reenvía las solicitudes de Totara al modelo para recomendar contenido a un usuario o encontrar contenido similar a un elemento de contenido determinado.

El contenido similar devuelto se ordena en orden descendente por el puntaje de similitud de coseno de cada elemento de contenido con el contenido dado.

El contenido recomendado para cada usuario se ordena en orden descendente por el puntaje de predicción. Los puntajes de predicción (o clasificaciones) en sí no son interpretables; son simplemente un medio de clasificar los elementos. Sin embargo, el orden de las puntuaciones de predicción es importante: el contenido con puntuaciones de predicción más altas es más probable que sea de interés para el usuario que el contenido con puntuaciones de predicción más bajas.

© Copyright 2024 Totara Learning Solutions. All rights reserved.


¿Te ha sido útil este artículo?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.