Cómo utilizar AWS Personalize

Volver
Cómo utilizar AWS Personalize
Cómo utilizar AWS Personalize

Por Gustavo Henrique, Creado el 20/07/2020

Amazon Personalize es un servicio de machine learning con el cual los desarrolladores pueden proporcionar recomendaciones individualizadas a los clientes que usan sus aplicaciones con base en el comportamiento del usuario en tiempo real. Un ejemplo práctico es la recomendación de ítems similares en un catálogo como: Usuarios que vieron la película ‘X’ también vieron ‘Y’

¿Cómo Funciona?

"Para que las recomendações sejam feitas, o Amazon Personalize usa um modelo de machine learning que é treinado com os dados que forem disponibilizados(podem ser um através de um arquivo csv ou em real time a partir de eventos gerados pelos usuários). Um modelo treinado é conhecido como uma versão da solução, que vai ser posteriormente usado em uma campanha dentro do Personalize onde os usuários receberão as recomendações. [Saiba Mais.](https://docs.aws.amazon.com/pt_br/personalize/latest/dg/how-it-works.html#how-it-works-workflow)"

Ejemplo: Una campaña puede mostrar las recomendaciones de películas en un sitio o aplicación en el que el título mostrado se basa en hábitos de visualización que forman parte del conjunto de datos.

Nota: Se espera que tengas una cuenta creada y acceso a la consola de AWS.

Pasos Iniciales

Crea una función del servicio IAM para permitir que Personalize acceda a tus recursos. A. Inicia sesión en el Consola de AWS y accede al IAM. B. Selecciona Roles. C. Haz clic en Create Role. D. En Select type of trusted entity, selecciona AWS Service. E. Encuentra el Servicio Personalize y selecciónalo. F. Haz clic en Next. G. En Attach permissions policies, elige AmazonPersonalizeFullAccess y CloudWatchFullAccess. H. Elige Next. (No es necesario agregar Tags. Selecciona Next: Review.). I. En la sección Review, en Role Name, ingresa un nombre para la función (ejemplo: PersonalizeRole) y haz clic en Create Role. J. Abre la página de resumen de la función y Copia el ARN (Será necesario posteriormente).

Copiando ARN en IAM.

Subir los datos a un S3 18. Descarga el Archivo csv que contiene datos de interacciones de los usuarios. 19. Crea un Bucket S3 y sube el archivo descargado. 20. Concede permiso a Amazon Personalize para leer los datos en el bucket. (Selecciona un bucket, en la pestaña de Permisos, haz clic en Bucket Policy. 21. Pega el código de abajo y haz clic en Save.

Agregando Permiso al Bucket.

Pega el siguiente JSON y sustituye en el Resource el bucket-name por el nombre de tu bucket.

{
  "Version": "2012-10-17",
  "Id": "PersonalizeS3BucketAccessPolicy",
  "Statement": [
    {
      "Sid": "PersonalizeS3BucketAccessPolicy",
      "Effect": "Allow",
      "Principal": { "Service": "personalize.amazonaws.com" },
      "Action": ["s3:GetObject", "s3:ListBucket"],
      "Resource": ["arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*"]
    }
  ]
}

Conceptos básicos utilizando la Consola.

Paso 1 - Importar datos de entrenamiento.

  1. Accede a la Consola de Amazon Personalize e inicia sesión en caso de no estar conectado.
  2. Elige Create dataset group (En caso de que sea la primera vez que accedes a este servicio, haz clic en Get Started).
  3. En Dataset Group Details especifica un nombre para el grupo de datos y haz clic en Next.
  4. En Dataset Details especifica un nombre para el grupo de conjuntos de datos (Dataset name). Ejemplo: ratings-dsgroup.
  5. En Schema Details, para Schema Selection, selecciona Create New Schema.
  6. En New Schema name, especifica un nombre para el nuevo esquema. Ejemplo: ratings-schema Tu pantalla debe ser similar a la siguiente.
Detalle del Dataset.

Importar datos de interacción entre usuarios.

En Dataset import job name, especifica un nombre para tu trabajo de Importación. Ejemplo: ratings-dsimport-job. En IAM service role, selecciona la opción Enter a Custom IAM role ARN. En Custom IAM role ARN, pega el ARN copiado en el paso 1 - J (Pasos Iniciales). En Data Location, especifica la ruta a los datos en tu bucket S3. s3://<bucket-name>/<nome-do-arquivo.csv> Haz clic en Finish. Tu pantalla debe ser similar a la siguiente:

Datos de interacción entre usuarios e ítems.

DASHBOARD OVERVIEW

Tras la conclusión del paso anterior, serás redirigido al Dashboard de Personalize. En Upload Datasets, el User-item interaction data debe estar con el estado Create Pending, y el botón Solution training debe estar deshabilitado. Cuando el trabajo de importación de los datos sea concluido, el estado del User-item interaction data cambiará a Active.

Dashboard de Personalize.

Tras el término del trabajo de importación, haz clic en el botón Start en Create Solutions.

La importación puede llevar algún tiempo hasta ser concluida.

Paso 2 - Crear una solución. En este paso, vamos a usar el conjunto de datos creado anteriormente para entrenar un modelo. Un modelo entrenado se llamará versión de la solución.

Cómo crear una solución

  1. En la página de Create Solution (Crear Solución), en Solution Detail, especifica un nombre para la solución en Solution Name. (Ej: ratings-solution).
  2. En Recipe, selecciona la opción AWS-HRNN.
  3. En la Sección Solution Configuration, marca la opción true en Perform HPO.
  4. Haz clic en Next.

Perform HTO permite que Amazon Personalize encuentre los hiperparámetros ideales para la receta.

Los Hiperparámetros son variables que controlan el propio proceso de entrenamiento. Por ejemplo, forma parte de la configuración de una red neuronal decidir cuántas capas ocultas de nodos deben usarse entre la capa de entrada y la capa de salida, así como cuántos nodos debe usar cada capa. Estas variables no están directamente relacionadas con los datos de entrenamiento. Son variables de configuración. Los parámetros cambian durante un job de entrenamiento, mientras que los hiperparámetros generalmente permanecen constantes durante un job. Saiba mais.

Tu pantalla debe parecerse a esto:

solution-sample

Tras el término del entrenamiento, haz clic en Create new campaign.

El entrenamiento puede llevar algún tiempo hasta ser concluido.

Paso 3 - Crear una campaña

En este paso, vamos a crear una campaña implementando una versión de la solución en la etapa anterior.

Creación de la Campaña

  1. Haz clic en Create new campaign.
  2. En Campaign details, dale un nombre a tu campaña en el campo Campaign Name. (Ej: ratings-campaign).
  3. En Solution, selecciona la versión de la solución creada en el paso anterior.
  4. En Minimum provisioned transactions per second, mantén el estándar de 1.

La creación de la campaña puede llevar algún tiempo hasta ser concluida.

Tu pantalla debe parecerse a lo siguiente:

Detalles de creación de la campaña.

Paso 4 - Obtener recomendaciones

En el cuarto y último paso, vamos a usar la campaña que creamos anteriormente para obtener recomendaciones a través del id.

Cómo obtener recomendaciones

En Test campaign results, en User Id, especifica un valor del conjunto de datos ratings. (ejemplo: 83) Haz clic en Get Recommendations. La lista muestra el id del ítem recomendado para el usuario con el id 83 seguido del Score. Tu pantalla debe parecerse a la siguiente:

Resultado de la Campaña.

Resumen

En este artículo, aprendimos a configurar y entrenar un modelo de machine learning usando AWS Personalize con el objetivo de obtener recomendaciones exactas de qué ítems recomendar para cada usuario de un determinado sistema. Todos los ejemplos de este artículo fueron hechos siguiendo las mejores prácticas y documentaciones de Amazon. En caso de que tengas interés en saber más sobre el servicio, accede a AWS Personalize.

Tags

#AI/ML #aws #console #Machine #Learning #Artificial #intelligence #Inteligencia #Artificial #aws #Personalize

Sobre el autor

Gustavo Henrique

Soy desarrollador Front-end y Web Crawler, graduado en Análisis y Desarrollo de Sistemas. Mi mayor interés está en Data Science y ML. Actualmente trabajo con Angular y Python.

Comentarios

WhatsApp