Uso del modo de aprendiz para el entrenamiento de Personalizer sin que ello afecte a la aplicación existente
Importante
A partir del 20 de septiembre de 2023, no podrá crear nuevos recursos de Personalizer. El servicio Personalizer se va a retirar el 1 de octubre de 2026.
Al implementar un nuevo recurso de Personalizer, se inicializa con un modelo sin entrenar o en blanco. Es decir, aún no ha aprendido de ningún dato y, por tanto, no funcionará bien en la práctica. Esto se conoce como un problema de "arranque en frío" y se resuelve con el tiempo, entrenando el modelo con datos reales del entorno de producción. El modo de aprendiz es un comportamiento de aprendizaje que ayuda a mitigar el problema de "arranque en frío" y permite obtener confianza en el modelo antes de tomar decisiones en producción, todo ello sin necesidad de realizar ningún cambio en el código.
¿Qué es el modo de aprendiz?
De forma similar a cómo un aprendiz puede aprender un oficio observando a un experto, el modo de aprendiz permite a Personalizer aprender observando las decisiones tomadas por la lógica actual de la aplicación. El modelo de Personalizer se entrena imitando la misma decisión que la aplicación. Con cada llamada a la API Rank, Personalizer puede aprender sin que ello afecte a la lógica y los resultados actuales. Las métricas, disponibles en Azure Portal y la API, le ayudan a comprender el rendimiento a medida que el modelo aprende. En concreto, hasta qué punto Personalizer coincide con la lógica existente (lo que también se conoce como directiva de línea de base).
Una vez que Personalizer puede coincidir razonablemente con la lógica existente entre un 60 y 80 % del tiempo, puede cambiar el comportamiento del modo de aprendiz al modo con conexión. En ese momento, Personalizer devuelve las mejores acciones de Rank API según lo determina el modelo subyacente y puede aprender a tomar mejores decisiones que la directiva de línea de base.
Motivo para usar el modo de aprendiz
El modo de aprendiz sirve para que el modelo imite la lógica de decisión existente antes de tomar decisiones en línea usadas por la aplicación. Esto ayuda a mitigar el problema de inicio en frío mencionado anteriormente y le proporciona más confianza en el servicio Personalizer; además, le permite asegurarse de que los datos enviados a Personalizer son valiosos para entrenar el modelo. Esto se lleva a cabo sin poner en riesgo ni afectar a su tráfico en línea ni a las experiencias de los clientes.
Las dos razones principales para usar el modo de aprendiz son las siguientes:
- Mitigación del arranques en frío: el modo de aprendiz ayuda a mitigar el costo del entrenamiento de un modelo "nuevo" en producción mediante el aprendizaje sin necesidad de tomar decisiones no informadas. El modelo aprende a imitar la lógica de la aplicación existente.
- Validación de las características de acción y contexto: las características de contexto y acción pueden ser inadecuadas, inexactas o no estar diseñadas de forma óptima. Si hay demasiadas características o demasiado pocas, o características incorrectas, ruidosas o con un formato incorrecto, Personalizer tendrá dificultades para entrenar un modelo que proporcione un buen rendimiento. Realizar una evaluación de características durante el modo de aprendiz le permite conocer la eficacia de las características en el entrenamiento de Personalizer e identificar áreas donde se puede mejorar la calidad de las características.
¿Cuándo se debe usar el modo de aprendiz?
Use el modo de aprendiz para entrenar Personalizer para mejorar su eficacia en los siguientes escenarios, a la vez que impide que Personalizer afecte a la experiencia de los usuarios:
- Está implementando Personalizer en un escenario nuevo.
- Ha realizado cambios importantes en las características de contexto o acción.
Sin embrago, el modo de aprendiz no es un modo eficaz de medir el impacto que Personalizer puede tener en la mejora del promedio de recompensa o los KPI empresariales. Solo puede evaluar en qué medida el servicio está aprendiendo la lógica actual según los datos que proporciona en ese momento. Para medir la eficacia de Personalizer al elegir la mejor acción posible para cada llamada Rank, Personalizer debe estar en modo con conexión o puede usar evaluaciones sin conexión durante un período de tiempo en el que Personalizer estaba en modo con conexión.
¿Quién debe usar el modo de aprendiz?
El modo de aprendiz es útil para desarrolladores, científicos de datos y responsables de la toma de decisiones empresariales:
Los desarrolladores pueden usar el modo de aprendiz para asegurarse de que las API Rank y Reward se implementan correctamente en la aplicación y de que las características que se envían a Personalizer están libres de fallos y errores comunes. Obtenga más información sobre cómo crear buenas características de contexto y acción.
Los científicos de datos pueden usar el modo de aprendiz para validar que las características son efectivas en el entrenamiento de modelos de Personalizer. Es decir, las características contienen información útil que permite a Personalizer aprender la lógica de decisión existente.
Los responsables de la toma de decisiones empresariales pueden usar el modo de aprendiz para evaluar el potencial de Personalizer para mejorar los resultados (es decir, las recompensas) en comparación con la lógica de negocios existente. En concreto, si Personalizer puede aprender o no de los datos proporcionados antes de pasar al modo en línea. Esto les permite tomar una decisión informada sobre el efecto en la experiencia del usuario, donde están en juego la satisfacción del usuario y los ingresos reales.
Comparación de comportamientos: modo de aprendiz y modo en línea
Aprendizaje cuando el modo de aprendiz difiere del modo en línea de las siguientes maneras.
Área | Modo de aprendiz | Modo en línea |
---|---|---|
Impacto en la experiencia del usuario | La experiencia de los usuarios y las métricas empresariales no cambiarán. Personalizer se entrena observando las acciones de línea de base o la lógica actual de la aplicación sin influir en ellas. | La experiencia de los usuarios puede cambiar a medida que Personalizer toma una decisión, y no la acción de línea de base. |
Velocidad de aprendizaje | Personalizer aprende más lentamente en el modo de aprendiz que en el modo en línea. El modo de aprendiz solo puede aprender observando las recompensas obtenidas por la acción predeterminada sin exploración, lo que limita la cantidad de aprendizaje de Personalizer. | Aprende más rápido porque puede aprovechar la mejor acción del modelo actual y explorar otras acciones para obtener resultados potencialmente mejores. |
"Tope" de eficacia del aprendizaje | Personalizer solo puede aproximarse, y nunca superar, al rendimiento de la lógica actual de la aplicación (promedio de recompensa total que consigue la acción de línea de base). Es poco probable que Personalizer alcance una coincidencia del 100 % con la lógica actual de la aplicación, y se recomienda que, una vez que consiga una coincidencia del 60-80 %, se cambie al modo con conexión. | Personalizer debe superar el rendimiento de la lógica de la aplicación de línea de base. Si el rendimiento de Personalizer se detiene con el tiempo, puede realizar una evaluación sin conexión y una evaluación de características para lograr otras mejoras. |
Valor devuelto por la API Rank para rewardActionId | rewardActionId será siempre el id. de la acción predeterminada. Es decir, la acción que se envía como la primera acción en el código JSON de la solicitud de la API Rank. En otras palabras, Rank API no hace nada visible para la aplicación durante el modo de aprendiz. | rewardActionId será uno de los id. proporcionados en la llamada a la API Rank según lo determinado por el modelo de Personalizer. |
Evaluaciones | Personalizer mantiene una comparación de los totales de recompensas que la lógica actual de la aplicación obtiene y los totales de recompensas que Personalizer obtendría si estuviera en el modo en línea en ese momento. Esta comparación está disponible para verla en la hoja Supervisar del recurso de Personalizer en Azure Portal. | Evalúe la eficacia de Personalizer mediante evaluaciones sin conexión, que le permiten comparar las recompensas totales que Personalizer ha obtenido con las recompensas potenciales de la línea de base de la aplicación. |
Tenga en cuenta que es poco probable que Personalizer alcance una coincidencia de rendimiento del 100 % con la lógica de línea de base de la aplicación, y nunca lo superará. La coincidencia de rendimiento del 60 %-80 % debe ser suficiente para cambiar Personalizer al modo con conexión, donde Personalizer puede aprender mejores decisiones y superar el rendimiento de la lógica de línea de base de la aplicación.
Limitaciones del modo de aprendiz
El modo de aprendiz entrena el modelo de Personalizer intentando imitar la lógica de línea de base existente de la aplicación, usando las características de contexto y acción que hay en las llamadas a Rank. Los siguientes factores afectarán a la capacidad de aprender del modo de aprendiz.
Escenarios en los que el modo de aprendiz puede que no sea adecuado:
Contenido elegido por la editorial:
En algunos escenarios, como los de noticias o entretenimiento, un equipo editorial podría asignar manualmente el elemento de la línea base. Esto significa que personas humanas usan sus conocimientos más amplios sobre el mundo, y la comprensión de lo que puede ser un contenido atractivo, para elegir artículos o contenidos multimedia específicos de un grupo y marcarlos como artículos "preferidos" o "prominentes". Estos editores no son un algoritmo, y los factores que los editores tienen en cuenta pueden ser subjetivos y no estar relacionados con las características de contexto o acción. En este caso, el modo de aprendiz puede tener dificultades para predecir la acción de línea de base. En estas situaciones, puede hacer lo siguiente:
- Probar Personalizer en modo con conexión: considere la posibilidad de establecer Personalizer en modo con conexión durante el tiempo o en una prueba A/B si tiene la infraestructura y, a continuación, ejecute una evaluación sin conexión para evaluar la diferencia entre la lógica de línea de base de la aplicación y Personalizer.
- Agregar consideraciones editoriales y recomendaciones como características: pregunte a los editores qué factores influyen en sus elecciones y determine si puede agregarlos como características en su contexto y acciones. Por ejemplo, los editores de una empresa de contenido multimedia pueden destacar contenido cuando una celebridad determinada suele aparecer en las noticias: este conocimiento se podría agregar como una característica de contexto.
Factores que mejorarán y acelerarán el modo de aprendiz
Si el modo de aprendiz está aprendiendo y logrando un rendimiento comparado por encima de cero, pero el rendimiento mejora lentamente (sin llegar a recompensas del 60 % al 80 % en dos semanas), es posible que se estén enviando muy pocos datos a Personalizer. Los pasos siguientes pueden facilitar un aprendizaje más rápido:
- Agregar características diferenciadoras: puede realizar una inspección visual de las acciones en una llamada de Rank y sus características. ¿La acción de la línea de base tiene características que se diferencian de otras acciones? Si son prácticamente iguales, agregue más características que aumentarán la diversidad de los valores de las características.
- Reducir las acciones por evento: Personalizer usará la opción "% de llamadas de rango que se usará para la exploración" para detectar preferencias y tendencias. Cuando una llamada a la API Rank tiene más acciones, la posibilidad de que se elija una acción concreta para la exploración es menor. Reducir el número de acciones enviadas en cada llamada a Rank (a un número inferior a 10) puede ser un ajuste temporal que puede indicar si el modo de aprendiz tiene datos suficientes para aprender.
Uso del modo de aprendiz para el entrenamiento con datos históricos
Si tiene una cantidad importante de datos históricos que desea usar para el entrenamiento de Personalizer, puede utilizar el modo de aprendiz para reproducir los datos en Personalizer.
Configure Personalizer en el modo de aprendiz y cree un script que llame a Rank con las características de acciones y de contexto de los datos históricos. Llame a Reward API en función de los cálculos de los registros de estos datos. Es posible que necesite aproximadamente 50 000 eventos históricos para ver que Personalizer alcanza una coincidencia del 60 al 80 % con la lógica de línea de base de la aplicación. Es posible que pueda lograr resultados satisfactorios con menos o más eventos.
Al realizar el entrenamiento a partir de datos históricos, se recomienda que los datos enviados (características de contexto y acciones, su diseño en el archivo JSON usado para las solicitudes de Rank y el cálculo de la recompensa en este conjunto de datos de aprendizaje) coincidan con los datos (características y cálculo de recompensas) disponibles de la aplicación existente.
Los datos sin conexión e históricos suelen ser más incompletos y ruidosos y su formato puede diferir respecto al escenario de producción o con conexión. Aunque el entrenamiento a partir de datos históricos es posible, los resultados de hacerlo pueden ser no concluyentes y no necesariamente predecir de forma correcta el grado de aprendizaje de Personalizer en modo con conexión, sobre todo si las características varían entre los datos históricos y el escenario actual.
Uso del modo de aprendiz frente a las pruebas A/B
Solo es útil realizar pruebas A/B de tratamientos de Personalizer una vez que se ha validado y está aprendiendo en modo con conexión, ya que en modo de aprendiz, solo se usa la acción de línea de base y se aprende la lógica existente. Esto significa que Personalizer devuelve la acción de la rama de "control" de la prueba A/B, por lo que una prueba A/B en modo de aprendiz no tiene ningún valor.
Cuando tiene un caso de uso que utiliza Personalizer y aprende con conexión, los experimentos A/B pueden permitirle crear cohortes controladas y realizar comparaciones de los resultados que pueden ser más complejas que las señales usadas para las recompensas. Una pregunta de ejemplo que podría responder una prueba A/B es: "En un sitio web minorista, Personalizer optimiza un diseño y consigue que los usuarios lo visiten antes, ¿pero esto reduce los ingresos totales por transacción?"
Pasos siguientes
- Obtener información sobre eventos activos e inactivos