Receta de personalización del usuario - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Receta de personalización del usuario

La personalización del usuario (aws-user-personalization) está optimizada para todos los escenarios de recomendación personalizados. Predice los elementos con los que un usuario interactuará en función de los conjuntos de datos Interacciones, Elementos y Usuarios. Al recomendar artículos, utiliza la exploración automática de artículos.

Con la exploración automática, Amazon Personalize prueba automáticamente diferentes recomendaciones de artículos, aprende cómo interactúan los usuarios con estos artículos recomendados y aumenta las recomendaciones de artículos que impulsan una mayor participación y conversión. Esto mejora el descubrimiento y la participación de los artículos cuando tiene un catálogo que cambia rápidamente o cuando los nuevos artículos, como artículos de noticias o promociones, son más relevantes para los usuarios cuando están frescos.

Puede equilibrar cuánto explorar (donde los elementos con menos datos de interacciones o relevancia se recomiendan con más frecuencia) con la cantidad que se debe explotar (donde las recomendaciones se basan en lo que sabemos o en la relevancia). Amazon Personalize ajusta automáticamente las recomendaciones future en función de los comentarios implícitos de los usuarios.

Actualizaciones automáticas

Con la personalización del usuario, Amazon Personalize actualiza automáticamente el último modelo (versión de la solución) cada dos horas entre bastidores para incluir datos nuevos. Las actualizaciones automáticas no tienen costo alguno. La versión de la solución debe implementarse con unAmazon Personalize campañapara que se produzcan actualizaciones. La campaña usa automáticamente la versión de la solución actualizada. No se crea una nueva versión de la solución cuando se completa una actualización auto. Si entrena una nueva versión de la solución, Amazon Personalize no actualizará automáticamente las versiones anteriores de la solución, aunque las haya implementado en una campaña. Las actualizaciones tampoco se producen si ha eliminado el conjunto de datos.

Con cada actualización, Amazon Personalize actualiza la versión de la solución con la información más reciente del artículo y ajusta la exploración de acuerdo con los comentarios implícitos de los usuarios. Esto permite que Amazon Personalize evalúe la calidad de los artículos en función de las nuevas interacciones de los artículos ya explorados y actualice continuamente la exploración de artículos. No se trata de un reentrenamiento completo; aun así, debería entrenar una nueva versión de la solución semanalmente contrainingModeConfigurar paraFULLpara que el modelo pueda aprender del comportamiento de los usuarios.

Si cada dos horas no es lo suficientemente frecuente, puede crear manualmente una versión de la solución contrainingModeConfigurar paraUPDATEpara incluir esos nuevos elementos en las recomendaciones. Recuerde que Amazon Personalize actualiza automáticamente solo la última versión de la solución totalmente capacitada, por lo que la versión de la solución actualizada manualmente no se actualizará automáticamente en el future.

Requisitos de actualización automática

Los requisitos de actualización automática incluyen:

  • Debe implementar la versión de la solución con una campaña (para obtener más información, consulteCreación de una campaña.). La campaña utiliza automáticamente la última versión de la solución que se actualiza automáticamente.

  • La versión de la solución debe estar capacitada contrainingModeConfigurar paraFULL(este es el valor predeterminado al crear una versión de la solución).

  • Debe proporcionar datos sobre nuevos artículos o interacciones desde la última actualización automática.

  • Amazon Personalize actualiza automáticamente solo las versiones de la solución que creó el 17 de noviembre de 2020 o después.

Uso de datos de impresiones

A diferencia de otras recetas, que solo utilizan interacciones positivas (hacer clic, ver o comprar), la receta de personalización del usuario también puede usar datos de impresiones. Las impresiones son listas de artículos que estaban visibles para un usuario cuando interactuaba con un artículo determinado (hacía clic, miraba, compraba, etc.).

Con esta información, una solución creada con la receta de personalización del usuario puede calcular la idoneidad de los nuevos elementos en función de la frecuencia con la que se ha ignorado un elemento y cambiar las recomendaciones en consecuencia. Para obtener más información, consulteDatos de impresiones.

Propiedades e hiperparámetros

La receta de personalización de usuario presenta las siguientes propiedades:

  • Nameaws-user-personalization

  • Receta de nombre de recurso de Amazon (ARN)arn:aws:personalize:::recipe/aws-user-personalization

  • Algoritmoarn:aws:personalize:::algorithm/aws-user-personalization

Para obtener más información, consulte Paso 1: Los siguientes pasos son para elegir una receta.

En la siguiente tabla se describen los hiperparámetros de la receta User-Personalization. Un hiperparámetro es un parámetro de algoritmo que se puede ajustar para mejorar el rendimiento del modelo. Los hiperparámetros de algoritmos controlan el rendimiento del modelo. Los hiperparámetros de caracterización controlan cómo se filtran los datos que se van a utilizar en el entrenamiento. El proceso de elección del mejor valor para un hiperparámetro se denomina optimización de hiperparámetros (HPO). Para obtener más información, consulte Hiperparámetros y HPO.

La tabla también proporciona la siguiente información para cada hiperparámetro:

  • Rango: [límite inferior, límite superior]

  • Tipo de valor: Entero, continuo (flotante), categórico (booleano, lista, cadena)

  • HPO ajustable: ¿Puede el parámetro participar en HPO?

Nombre Descripción
Hiperparámetros de algoritmo
hidden_dimension

El número de variables ocultas utilizadas en el modelo. Las variables ocultas recrean el historial de compras de los usuarios y las estadísticas de los elementos para generar puntuaciones de clasificación. Especifique un número mayor de dimensiones ocultas cuando el conjunto de datos de interacciones incluya patrones más complicados. El uso de más dimensiones ocultas requiere un conjunto de datos mayor y más tiempo de procesamiento. Para decidir cuál es el mejor valor, utilice HPO. Para utilizar HPO, establezca en true cuando llame performHPO a las operaciones CreateSolutionVersion y CreateSolution.

Valor predeterminado: 149

Rango: [32, 256]

Tipo de valor: Entero

HPO sintonizable: Sí

bptt

Determina si se debe utilizar la propagación hacia atrás a través de la técnica de tiempo. La propagación hacia atrás a través del tiempo es una técnica que actualiza ponderaciones en algoritmos basados en redes neuronales recurrentes. Utilice bptt para créditos a largo plazo para conectar recompensas retrasadas a eventos tempranos. Por ejemplo, una recompensa retrasada puede ser una compra realizada después de varios clics. Un evento temprano puede ser un clic inicial. Incluso dentro de los mismos tipos de eventos, tales como un clic, es buena idea tener en cuenta los efectos a largo plazo y maximizar las recompensas totales. Para tener en cuenta los efectos a largo plazo, utilice valores mayores de bptt. El uso de un valor de bptt mayor requiere conjuntos de datos más grandes y más tiempo de procesamiento.

Valor predeterminado: 32

Rango: [2, 32]

Tipo de valor: Entero

HPO sintonizable: Sí

recency_mask

Determina si el modelo debe tener en cuenta las últimas tendencias de popularidad en el conjunto de datos de interacciones. Las últimas tendencias de popularidad pueden incluir cambios bruscos en los patrones subyacentes de los eventos de interacción. Para entrenar un modelo que tenga más peso sobre los eventos recientes, establezca recency_mask en true. Para entrenar un modelo que pesa igualmente todas las interacciones anteriores, establezca recency_mask en false. Para obtener buenas recomendaciones con el mismo peso, es posible que necesite un conjunto de datos de entrenamiento mayor.

Valor predeterminado: True

Rango: True o False

Tipo de valor: Booleano

HPO sintonizable: Sí

Hiperparámetros de uso
min_user_history_length_percentile

El percentil mínimo de longitudes de historial de usuario para incluir en el entrenamiento de modelos. La longitud del historial es la cantidad total de datos sobre un usuario. Utilice min_user_history_length_percentile para excluir un porcentaje de usuarios con longitudes de historial cortas. Los usuarios con un historial corto suelen mostrar patrones basados en la popularidad de los elementos en lugar de sus necesidades o deseos personales. Eliminarlos puede entrenar modelos que se centren más en los patrones subyacentes de los datos. Elija un valor adecuado después de revisar las longitudes del historial de usuarios, utilizando un histograma o una herramienta similar. Recomendamos establecer un valor que retenga a la mayoría de los usuarios, pero que elimine los casos de borde.

Por ejemplo, al establecer min_user_history_length_percentile to 0.05 y max_user_history_length_percentile to 0.95 se incluyen todos los usuarios, excepto los que tienen longitudes de historial en el 5 % inferior o superior.

Valor predeterminado: 0.0

Rango: [0.0, 1.0]

Tipo de valor: Float

HPO sintonizable: No

max_user_history_length_percentile

El percentil máximo de longitudes de historial de usuario para incluir en el entrenamiento de modelos. La longitud del historial es la cantidad total de datos sobre un usuario. Utilice max_user_history_length_percentile para excluir un porcentaje de usuarios con longitudes de historial largas, ya que los datos de estos usuarios tienden a contener ruido. Por ejemplo, un robot podría tener una larga lista de interacciones automatizadas. La eliminación de estos usuarios limita el ruido en el entrenamiento. Elija un valor adecuado después de revisar las longitudes del historial de usuarios mediante un histograma o una herramienta similar. Recomendamos establecer un valor que retenga la mayoría de los usuarios, pero que elimine los casos de borde.

Por ejemplo, al establecer min_user_history_length_percentile to 0.05 y max_user_history_length_percentile to 0.95 se incluyen todos los usuarios, excepto los que tienen longitudes de historial en el 5 % inferior o superior.

Valor predeterminado: 0.99

Rango: [0.0, 1.0]

Tipo de valor: Float

HPO sintonizable: No

Hiperparámetros de configuración de la campaña de exploración
exploration_weight

Determina la frecuencia con la que las recomendaciones incluyen elementos con menos datos de interacciones o relevancia. Cuanto más cerca esté el valor de 1.0, mayor será la exploración. En cero, no se realiza ninguna exploración y las recomendaciones se basan en los datos actuales (relevancia). Para obtener más información, consulteCampaignConfig.

Valor predeterminado: 0.3

Rango: [0.0, 1.0]

Tipo de valor: Float

HPO sintonizable: No

exploration_item_age_cut_off

Determina los elementos que se explorarán en función del período transcurrido desde la última interacción. Proporcione la antigüedad máxima del artículo, en días desde la última interacción, para definir el alcance de la exploración del artículo. Cuanto mayor sea el valor, más elementos se tendrán en cuenta durante la exploración. Para obtener más información, consulteCampaignConfig.

Valor predeterminado: 30.0

Rango: Flotadores positivos

Tipo de valor: Float

HPO sintonizable: No

Entrenamiento con la receta de personalización del usuario (consola)

Para usar la receta de personalización del usuario para generar recomendaciones en la consola, primero entrene una nueva versión de la solución con la receta. A continuación, implemente una campaña con la versión de la solución y utilice la campaña para obtener recomendaciones.

Entrenamiento de una nueva versión de la solución con la receta de personalización del usuario (consola)
  1. Abra la consola de Amazon Personalize enhttps://console.aws.amazon.com/personalize/homee inicia sesión en tu cuenta.

  2. Crea un grupo de conjuntos de datos personalizados con un nuevo esquema y carga tu conjunto de datos con datos de impresiones. Incluir opcionalmenteCREATION_TIMESTAMPyMetadatos de texto no estructuradodatos en el conjunto de datos de artículos para que Amazon Personalize pueda calcular con mayor precisión la antigüedad de un artículo e identificar los artículos inactivos.

    Para obtener más información sobre la importación de datos, consultePreparación e importación de datos de.

  3. En elGrupos de datos, elija el nuevo grupo de conjuntos de datos que contenga el conjunto de datos o los conjuntos de datos con datos de impresiones.

  4. En el panel de navegación, elijaSoluciones y recetasy eligeCrea una solución.

  5. En elCrea una solución, para laNombre de la solución, escriba el nombre de la nueva solución.

  6. ParaTipo de solución, eligeRecomendación de elementopara obtener recomendaciones de artículos para tus usuarios.

  7. ParaRecipe, eligeaws-user-personalization. LaConfiguración de la soluciónaparece con varias opciones de configuración.

  8. EnConfiguración de la solución, si el conjunto de datos Interacciones tiene EVENT_TYPE o ambas columnas EVENT_TYPE y EVENT_VALUE, puede usar opcionalmente laTipo de eventoyValor de eventoscampos para elegir los datos de interacciones que Amazon Personalize utiliza al entrenar el modelo.

    Para obtener más información, consulteSelección de los datos de interacciones utilizados para la formación.

  9. Si lo desea, configure hiperparámetros para su solución. Para obtener una lista de propiedades e hiperparámetros de recetas de personalización del usuario, consultePropiedades e hiperparámetros.

  10. ElegirCree y entrene una soluciónpara empezar a entrenar. LaSalpicaderose muestra la página.

    Puede navegar a la página de detalles de la solución para realizar un seguimiento del progreso de la capacitación en laVersiones de soluciónsección. Una vez que finaliza el entrenamiento, el estado pasa a serActivo.

Crear una campaña y recibir recomendaciones (consola)

Cuando el estado de versión de la solución esActivoestá listo para crear su campaña y recibir recomendaciones de la siguiente manera:

  1. En la página de detalles de la solución o en elCampañas, eligeCrea campaña nueva.

  2. En elCrea campaña nuevapágina, paraDetalles de campaña, escriba la siguiente información:

    • Nombre de campaña: Escriba el nombre de la campaña. El texto que introduzca aquí aparece en el panel de control y en la página de detalles de la campaña.

    • Solución: Elija la solución que acaba de crear.

    • ID de versión de la solución: Elija el ID de la versión de la solución que acaba de crear.

    • Mínimo de transacciones aprovisionadas por segundo: Establezca las transacciones aprovisionadas mínimas por segundo que admite Amazon Personalize. Para obtener más información, consulte la operación CreateCampaign.

  3. ParaConfiguración de campaña, escriba la siguiente información:

    • Peso de exploración: Configure cuánto explorar, donde las recomendaciones incluyen elementos con menos datos de interacciones o relevancia, con mayor frecuencia cuanto más exploración especifique. Cuanto más cerca esté el valor de 1, más exploración. En cero, no se realiza ninguna exploración y las recomendaciones se basan en los datos actuales (relevancia).

    • Antigüedad del objeto de exploración cortada: Introduzca la antigüedad máxima del artículo, en días desde la última interacción, para definir el alcance de la exploración del artículo. Para aumentar el número de artículos que Amazon Personalize tiene en cuenta durante la exploración, introduzca un valor mayor.

      Por ejemplo, si introduce 10, durante la exploración solo se tendrán en cuenta los elementos con datos de interacciones de los 10 días transcurridos desde la última interacción en el conjunto de datos.

      nota

      Las recomendaciones pueden incluir elementos sin datos de interacciones de fuera de este marco temporal. Esto se debe a que estos elementos son relevantes para los intereses del usuario y no era necesario explorarlos para identificarlos.

  4. Elija Create a campaign (Crear una campaña).

  5. En la página de detalles de la campaña, cuando el estado de la campaña esActivo, puede usar la campaña para obtener recomendaciones y registrar impresiones. Para obtener más información, consultePaso 5: Obtener recomendacionesen «Cómo empezar».

    Amazon Personalize actualiza automáticamente la última versión de la solución cada dos horas para incluir datos nuevos. La campaña usa automáticamente la versión de la solución actualizada. Para obtener más información, consulteActualizaciones automáticas.

    Para actualizar manualmente la campaña, primero debe crear y entrenar una nueva versión de la solución mediante la consola o elCreateSolutionVersionoperación, contrainingModeConfigurar paraupdate. A continuación, actualizas manualmente la campaña en laCampañade la consola de.UpdateCampaignoperación.

    nota

    Amazon Personalize no actualiza automáticamente las versiones de la solución que creó antes del 17 de noviembre de 2020.

Entrenamiento con la receta de personalización de usuarios (SDK de Python)

Cuando haya creado un grupo de conjuntos de datos y cargado sus conjuntos de datos con datos de impresiones, puede entrenar una solución con la receta de personalización de usuarios. Incluir opcionalmenteCREATION_TIMESTAMPyMetadatos de texto no estructuradodatos en el conjunto de datos de artículos para que Amazon Personalize pueda calcular con mayor precisión la antigüedad de un artículo e identificar los artículos inactivos. Para obtener más información sobre cómo crear grupos de conjunto de datos y cargar datos de entrenamiento, consulteConjuntos de datos y esquemas.

Para entrenar una solución con la receta de personalización del usuario mediante elAWSSDK
  1. Cree una nueva solución mediante lacreate_solutionMétodo.

    Sustituirsolution namecon el nombre de la solución ydataset group arncon el nombre de recurso de Amazon (ARN) de su grupo de conjunto de datos.

    import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution(name = 'solution name', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', datasetGroupArn = 'dataset group arn', ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)

    Para obtener una lista de aws-user-personalization propiedades e hiperparámetros de recetas, consultePropiedades e hiperparámetros.

  2. Para crear un nuevoversión de la solucióncon los datos de entrenamiento actualizados y el conjuntotrainingModeaFULLmediante el siguiente fragmento de código. Sustituya elsolution arncon el ARN de su solución.

    import boto3 personalize = boto3.client('personalize') create_solution_version_response = personalize.create_solution_version(solutionArn = 'solution arn', trainingMode='FULL') new_solution_version_arn = create_solution_version_response['solutionVersionArn'] print('solution_version_arn:', new_solution_version_arn)
  3. Cuando Amazon Personalize haya terminado de crear la versión de la solución, cree la campaña con los siguientes parámetros:

    • Proporcionar un nuevocampaign namey elsolution version arngenerado en el paso 2.

    • Modificar laexplorationWeighthiperparámetro de configuración de exploración de elementos para configurar cuánto explorar. Los elementos con menos datos de interacciones o relevancia se recomiendan con más frecuencia cuanto más cerca esté el valor de 1.0. El valor predeterminado es 0.3.

    • Modificar laexplorationItemAgeCutOffparámetro de hiperparámetro de configuración de exploración de elementos para proporcionar la duración máxima, en días en relación con la última interacción, para la que se deben explorar los elementos. Cuanto mayor sea el valor, más elementos se tendrán en cuenta durante la exploración.

    Usa el siguiente fragmento de Python para crear una nueva campaña con énfasis en la exploración con un límite de exploración a los 30 días. Crear una campaña suele hacerse en unos minutos, pero puede tardar más de una hora.

    import boto3 personalize = boto3.client('personalize') create_campaign_response = personalize.create_campaign( name = 'campaign name', solutionVersionArn = 'solution version arn', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}} ) campaign_arn = create_campaign_response['campaignArn'] print('campaign_arn:', campaign_arn)

    Con la personalización de usuarios, Amazon Personalize actualiza automáticamente la versión de la solución cada dos horas para incluir datos nuevos. La campaña usa automáticamente la versión de la solución actualizada. Para obtener más información, consulteActualizaciones automáticas.

    Para actualizar manualmente la campaña, primero debe crear y entrenar una nueva versión de la solución mediante la consola o elCreateSolutionVersionoperación, contrainingModeConfigurar paraupdate. A continuación, actualizas manualmente la campaña en laCampañade la consola de.UpdateCampaignoperación.

    nota

    Amazon Personalize no actualiza automáticamente las versiones de la solución que creó antes del 17 de noviembre de 2020.

Obtener recomendaciones y registrar impresiones (SDK for Python (Boto3))

Cuando se crea tu campaña, puedes usarla para obtener recomendaciones para un usuario y registrar las impresiones. Para obtener información sobre cómo obtener recomendaciones de lotes mediante elAWSSDK consulteCreación de un trabajo de inferencia por lotes (AWSSDK).

Para obtener recomendaciones y registrar impresiones
  1. Llame al método get_recommendations. Modificar lacampaign arnal ARN de tu nueva campaña yuser idal userId del grupo de usuarios.

    import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = 'campaign arn', userId = 'user id') print(rec_response['recommendationId'])
  2. Crear un nuevo registro de eventos para enviar PutEvents solicitar. Sustituirevent tracker namecon el nombre de tu rastreador de eventos ydataset group arncon el ARN de su grupo de conjuntos de datos.

    import boto3 personalize = boto3.client('personalize') event_tracker_response = personalize.create_event_tracker( name = 'event tracker name', datasetGroupArn = 'dataset group arn' ) event_tracker_arn = event_tracker_response['eventTrackerArn'] event_tracking_id = event_tracker_response['trackingId'] print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id))
  3. UtilizarrecommendationIddesde el paso 1 y elevent tracking iddesde el paso 2 para crear un nuevoPutEventssolicitar. Esta solicitud registra los nuevos datos de impresión de la sesión del usuario. Modificar lauser idal ID del grupo de usuarios.

    import boto3 personalize_events.put_events( trackingId = 'event tracking id', userId= 'user id', sessionId = '1', eventList = [{ 'sentAt': datetime.now().timestamp(), 'eventType' : 'click', 'itemId' : rec_response['itemList'][0]['itemId'], 'recommendationId': rec_response['recommendationId'], 'impression': [item['itemId'] for item in rec_response['itemList']], }] )

Ejemplo de cuaderno de Jupy

Para ver un cuaderno de Jupyter de muestra que muestra cómo usar la receta de personalización del usuario, consultePersonalización del usuario con exploración.