我们将每个正面电影评分(评分 >= 4)视为商品页面浏览事件。我们将训练一个“您可能喜欢的其他”类型的推荐模型。 都会根据频道中的任何用户或种子电影 数据集。
预计时间:
- 训练该模型的初始步骤:大约 1.5 小时。
- 等待模型训练:大约 2 天。
- 评估模型预测和清理:大约 30 分钟。
目标
- 了解如何从以下位置导入产品和用户事件数据: 将 BigQuery 导入 Vertex AI Search for Retail。
- 训练和评估推荐模型。
费用
本教程使用 Google Cloud 的以下收费组件:- Cloud Storage
- BigQuery
- 针对零售的 Vertex AI Search
如需详细了解 Cloud Storage 费用,请参阅 Cloud Storage 价格页面。
如需详细了解 BigQuery 费用,请参阅 BigQuery 价格页面。
如需详细了解 Vertex AI Search for Retail 的费用,请参阅 Vertex AI Search for Retail 价格页面。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
准备数据集
打开 Google Cloud 控制台,选择您的 Google Cloud 项目。记下信息中心页面上的项目信息卡片中的项目 ID。您需要项目 ID 才能执行以下步骤。接下来,点击控制台顶部的激活 Cloud Shell 按钮。
Cloud Shell 会话随即会在 Google Cloud 控制台底部的新框内打开 并显示命令行提示符。
导入数据集
使用 Cloud Shell,下载并解压缩源数据集:
wget https://files.grouplens.org/datasets/movielens/ml-latest.zip unzip ml-latest.zip
创建一个 Cloud Storage 存储桶并将数据上传到该存储桶中:
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
创建 BigQuery 数据集:
bq mk movielens
将
movies.csv
加载到新的电影 BigQuery 表中:bq load --skip_leading_rows=1 movielens.movies \ gs://PROJECT_ID-movielens-data/movies.csv \ movieId:integer,title,genres
将
ratings.csv
加载到新的评分 BigQuery 表中:bq load --skip_leading_rows=1 movielens.ratings \ gs://PROJECT_ID-movielens-data/ratings.csv \ userId:integer,movieId:integer,rating:float,time:timestamp
创建 BigQuery 视图
创建一个将电影表格转换为零售商品清单架构的视图:
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
现在,新视图具有 Vertex AI Search for Retail 所需的架构。 然后,从左侧边栏中选择
BIG DATA -> BigQuery
。然后,从 资源管理器栏中,展开您的项目名称,然后选择movielens -> products
以打开此视图的查询页面。现在,我们将电影评分转换为用户事件。我们将:
- 忽略负面电影评分 (<4)
- 将每个正面评分视为商品网页浏览事件 (
detail-page-view
) - 将 Movielens 时间轴重新调整为过去 90 天。这样做的原因有两个:
- Vertex AI Search for Retail 要求用户事件不早于 2015。Movielens 评分回到 1995 年。
- 零售业 Vertex AI Search 在提供预测时使用过去 90 天的用户事件 用户请求当我们为任何用户提供预测时,所有用户都将看到最近的事件。
创建 BigQuery 视图。以下命令使用符合上述转换要求的 SQL 查询。
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
导入商品清单和用户事件
现在,我们可以将商品清单和用户事件数据导入 Vertex AI Search for Retail。
为您的 Google Cloud 项目启用 Vertex AI Search 零售解决方案 API。
点击开始使用。
在 Search for Retail 控制台中,前往 Data(数据)> 页面。
转到“数据”页面点击导入。
导入商品目录
填写表单,从您之前创建的 BigQuery 视图中导入商品:
- 选择导入类型:商品清单。
- 选择默认分支名称。
- 选择数据源:BigQuery。
- 选择数据架构:零售商品架构。
输入您创建的 BigQuery 视图产品的名称 (
PROJECT_ID.movielens.products
)。
点击导入。
等待导入所有产品,这可能需要 5-10 分钟。
您可以查看导入活动以获取导入操作的状态。导入完成后,导入操作状态会更改为成功。
导入用户事件
导入 user_events BigQuery 视图:
- 选择导入类型:用户事件。
- 选择数据源:BigQuery。
- 选择数据架构:零售用户事件架构。
- 输入您之前创建的
user_events
BigQuery 视图的名称。
点击导入。
等待导入至少一百万个事件后再继续下一步,以便满足训练新模型的数据要求。
您可以查看导入活动以获取操作状态。该过程大约需要一个小时才能完成。
训练和评估推荐模型
创建推荐模型
前往 Search for Retail 控制台中的型号页面。
前往“模型”页面点击创建模型。
- 为模型命名。
- 选择您可能喜欢的其他商品作为模型类型。
- 选择点击率 (CTR) 作为业务目标。
点击创建。
新模型开始训练。
创建服务配置
前往 Search for Retail 控制台中的投放配置页面。
转到“服务配置”页面点击创建投放配置:
- 选择建议。
- 为服务配置命名。
- 选择您已创建的模型。
点击创建。
等待模型变为“可供查询”
训练模型并使其可供查询大约需要两天时间。
如需查看状态,请点击“投放配置”页面上的创建投放配置。
该过程完成后,模型准备就绪,可供查询 (Model ready to query) 字段会显示是。
预览推荐
准备好查询模型后:
-
前往 Search for Retail 控制台中的投放配置页面。
前往“投放配置”页面 - 点击服务配置名称以转至其详情页面。
- 点击 *“评估”标签页。
输入种子电影 ID,例如
4993
代表“The Lord of the Rings: The Fellowship of the Ring (2001)”。点击预测预览版,即可在页面右侧查看推荐商品列表。
清除数据
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
删除各个资源
前往投放配置页面,然后删除您创建的投放配置。
转到模型页面并删除模型。
删除 Cloud Shell 中的 BigQuery 数据集:
bq rm --recursive --dataset movielens
删除 Cloud Storage 存储桶及其内容:
gcloud storage rm gs://PROJECT_ID-movielens-data --recursive