Trataremos cada valoración positiva de una película (valoración >= 4) como un evento de vista de página de producto. Entrenaremos un modelo de recomendación del tipo Otros que te pueden gustar que hará recomendaciones de películas basadas en cualquier usuario o película inicial de nuestro conjunto de datos.
Tiempo estimado:
- Pasos iniciales para empezar a entrenar el modelo: 1,5 horas aproximadamente.
- Esperar a que se entrene el modelo: unos 2 días.
- Evaluar las predicciones del modelo y limpiar: unos 30 minutos.
Preparar el conjunto de datos
Abre la consolaGoogle Cloud y selecciona tu proyecto Google Cloud . Anota el ID del proyecto en la tarjeta Información del proyecto de la página del panel de control. Necesitará el ID del proyecto para los siguientes pasos. A continuación, haga clic en el botón Activar Cloud Shell situado en la parte superior de la consola.
Se abrirá una sesión de Cloud Shell dentro de un nuevo marco en la parte inferior de la consola de Google Cloud y se mostrará en ella un mensaje de la línea de comandos.
Importar el conjunto de datos
Con Cloud Shell, descarga y descomprime el conjunto de datos de origen:
wget https://files.grouplens.org/datasets/movielens/ml-latest.zip unzip ml-latest.zip
Crea un segmento de Cloud Storage y sube los datos a él:
gcloud storage buckets create gs://PROJECT_ID-movielens-data gcloud storage cp ml-latest/movies.csv ml-latest/ratings.csv \ gs://PROJECT_ID-movielens-data
Crea un conjunto de datos de BigQuery:
bq mk movielens
Carga
movies.csv
en una nueva tabla de películas de BigQuery:bq load --skip_leading_rows=1 movielens.movies \ gs://PROJECT_ID-movielens-data/movies.csv \ movieId:integer,title,genres
Carga
ratings.csv
en una nueva tabla de valoraciones de BigQuery:bq load --skip_leading_rows=1 movielens.ratings \ gs://PROJECT_ID-movielens-data/ratings.csv \ userId:integer,movieId:integer,rating:float,time:timestamp
Crear vistas de BigQuery
Crea una vista que convierta la tabla de películas en el esquema de catálogo de productos de Retail:
bq mk --project_id=PROJECT_ID \ --use_legacy_sql=false \ --view ' SELECT CAST(movieId AS string) AS id, SUBSTR(title, 0, 128) AS title, SPLIT(genres, "|") AS categories FROM `PROJECT_ID.movielens.movies`' \ movielens.products
Ahora, la nueva vista tiene el esquema que espera Vertex AI Search para el sector del comercio. A continuación, en la barra lateral de la izquierda, elige
BIG DATA -> BigQuery
. A continuación, en la barra del explorador de la izquierda, despliega el nombre de tu proyecto y seleccionamovielens -> products
para abrir la página de consulta de esta vista.Ahora, convierte las valoraciones de películas en eventos de usuario. Haremos lo siguiente:
- Ignorar las valoraciones negativas de películas (<4)
- Tratar cada valoración positiva como un evento de vista de página de producto
(
detail-page-view
) - Reajusta la escala de la cronología de Movielens a los últimos 90 días. Lo hacemos por dos motivos:
- Vertex AI Search para el sector del comercio requiere que los eventos de usuario no sean anteriores al 2015. Las valoraciones de MovieLens se remontan a 1995.
- Vertex AI Search para el comercio usa los eventos de usuario de los últimos 90 días al publicar solicitudes de predicción para un usuario. Todos los usuarios parecerán tener eventos recientes cuando hagamos predicciones para cualquier usuario más adelante.
Crea una vista de BigQuery. El siguiente comando usa una consulta de SQL que cumple los requisitos de conversión indicados anteriormente.
bq mk --project_id=PROJECT_ID \ --use_legacy_sql=false \ --view ' WITH t AS ( SELECT MIN(UNIX_SECONDS(time)) AS old_start, MAX(UNIX_SECONDS(time)) AS old_end, UNIX_SECONDS(TIMESTAMP_SUB( CURRENT_TIMESTAMP(), INTERVAL 90 DAY)) AS new_start, UNIX_SECONDS(CURRENT_TIMESTAMP()) AS new_end FROM `PROJECT_ID.movielens.ratings`) SELECT CAST(userId AS STRING) AS visitorId, "detail-page-view" AS eventType, FORMAT_TIMESTAMP( "%Y-%m-%dT%X%Ez", TIMESTAMP_SECONDS(CAST( (t.new_start + (UNIX_SECONDS(time) - t.old_start) * (t.new_end - t.new_start) / (t.old_end - t.old_start)) AS int64))) AS eventTime, [STRUCT(STRUCT(movieId AS id) AS product)] AS productDetails, FROM `PROJECT_ID.movielens.ratings`, t WHERE rating >= 4' \ movielens.user_events
Importar el catálogo de productos y los eventos de usuario
Ahora podemos importar el catálogo de productos y los datos de eventos de usuario a Vertex AI Search for commerce.
Habilita la API Vertex AI Search para el sector del comercio en tu Google Cloud proyecto.
Haz clic en Empezar.
Ve a la página Datos de la consola de búsqueda de comercio.
Ir a la página DatosHaz clic en Importar.
Importar catálogo de productos
Rellene el formulario para importar productos de la vista de BigQuery que ha creado anteriormente:
- Seleccione el tipo de importación Catálogo de productos.
- Selecciona el nombre de la rama predeterminada.
- Selecciona la fuente de datos: BigQuery.
- Seleccione el esquema de datos Esquema de producto minorista.
Introduce el nombre de la vista de BigQuery de los productos que has creado anteriormente (
PROJECT_ID.movielens.products
).
Haz clic en Importar.
Espera a que se importen todos los productos (debería tardar entre 5 y 10 minutos).
Puedes consultar la actividad de importación para ver el estado de la operación de importación. Cuando la importación se haya completado, el estado de la operación cambiará a Completada.
Importar eventos de usuario
Importe la vista de BigQuery user_events:
- Seleccione el tipo de importación Eventos de usuario.
- Selecciona la fuente de datos: BigQuery.
- Seleccione el esquema de datos Esquema de eventos de usuario de Retail.
- Introduce el nombre de la vista de BigQuery
user_events
que has creado anteriormente.
Haz clic en Importar.
Espere a que se hayan importado al menos un millón de eventos antes de continuar con el siguiente paso para cumplir los requisitos de datos para entrenar un nuevo modelo.
Puedes consultar la actividad de importación para ver el estado de la operación. El proceso tarda aproximadamente una hora en completarse.
Entrenar y evaluar modelos de recomendación
Sigue estas instrucciones para entrenar y evaluar modelos de recomendación.
Crear un modelo de recomendación
Ve a la página Modelos de la consola de Search for Commerce.
Ir a la página ModelosHaga clic en Crear modelo:
- Asigna un nombre al modelo.
- Selecciona Otros que te podrían interesar como tipo de modelo.
- Elige Porcentaje de clics (CTR) como objetivo de negocio.
Haz clic en Crear.
Tu nuevo modelo empieza a entrenarse.
Crear una configuración de publicación
Ve a la página Serving Configs (Configuraciones de servicio) de la consola de Search for Commerce.
Ve a la página Configuraciones de servicio.Haz clic en Crear configuración de publicación:
- Selecciona Recomendación.
- Asigna un nombre a la configuración de servicio.
- Seleccione el modelo que ha creado.
Haz clic en Crear.
Espera a que el modelo esté listo para recibir consultas
El modelo tarda unos dos días en entrenarse y estar listo para recibir consultas.
Para ver el estado, haga clic en la configuración de publicación creada en la página Configuraciones de publicación.
El campo Modelo listo para consultar indica Sí cuando se completa el proceso.
Previsualizar recomendaciones
Cuando el modelo esté listo para recibir consultas, sigue estos pasos:
-
Ve a la página Serving Configs (Configuraciones de servicio) de la consola de Search for Commerce.
Ve a la página Configuraciones de servicio. - Haga clic en el nombre de la configuración de servicio para ir a su página de detalles.
- Haz clic en la pestaña *Evaluar.
Introduce un ID de película de origen, como
4993
para "El Señor de los Anillos: la comunidad del anillo (2001)".Haga clic en Vista previa de la predicción para ver la lista de elementos recomendados en la parte derecha de la página.