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.
Temas
- Actualizaciones automáticas
- Uso de datos de impresiones
- Propiedades e hiperparámetros
- Entrenamiento con la receta de personalización del usuario (consola)
- Entrenamiento con la receta de personalización de usuarios (SDK de Python)
- Obtener recomendaciones y registrar impresiones (SDK for Python (Boto3))
- Ejemplo de cuaderno de Jupy
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 contrainingMode
Configurar paraFULL
para 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 contrainingMode
Configurar paraUPDATE
para 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 con
trainingMode
Configurar 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:
-
Name –
aws-user-personalization
-
Receta de nombre de recurso de Amazon (ARN)–
arn:aws:personalize:::recipe/aws-user-personalization
-
Algoritmo–
arn: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 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 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 Valor predeterminado: Rango: 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 Por ejemplo, al establecer 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 Por ejemplo, al establecer 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)
-
Abra la consola de Amazon Personalize enhttps://console.aws.amazon.com/personalize/home
e inicia sesión en tu cuenta. -
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.
-
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.
-
En el panel de navegación, elijaSoluciones y recetasy eligeCrea una solución.
-
En elCrea una solución, para laNombre de la solución, escriba el nombre de la nueva solución.
-
ParaTipo de solución, eligeRecomendación de elementopara obtener recomendaciones de artículos para tus usuarios.
-
ParaRecipe, eligeaws-user-personalization. LaConfiguración de la soluciónaparece con varias opciones de configuración.
-
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.
-
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.
-
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:
-
En la página de detalles de la solución o en elCampañas, eligeCrea campaña nueva.
-
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.
-
-
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.
-
-
Elija Create a campaign (Crear una campaña).
-
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, con
trainingMode
Configurar 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
-
Cree una nueva solución mediante la
create_solution
Método.Sustituir
solution name
con el nombre de la solución ydataset group arn
con 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.
-
Para crear un nuevoversión de la solucióncon los datos de entrenamiento actualizados y el conjunto
trainingMode
aFULL
mediante el siguiente fragmento de código. Sustituya elsolution arn
con 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) -
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 nuevo
campaign name
y elsolution version arn
generado en el paso 2. -
Modificar la
explorationWeight
hiperpará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 la
explorationItemAgeCutOff
pará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, con
trainingMode
Configurar 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
-
Llame al método
get_recommendations
. Modificar lacampaign arn
al ARN de tu nueva campaña yuser id
al userId del grupo de usuarios.import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = '
campaign arn
', userId = 'user id
') print(rec_response['recommendationId']) -
Crear un nuevo registro de eventos para enviar PutEvents solicitar. Sustituir
event tracker name
con el nombre de tu rastreador de eventos ydataset group arn
con 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)) -
Utilizar
recommendationId
desde el paso 1 y elevent tracking id
desde el paso 2 para crear un nuevoPutEvents
solicitar. Esta solicitud registra los nuevos datos de impresión de la sesión del usuario. Modificar lauser id
al 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