我们将每个正面电影评分(评分 >= 4)视为商品页面浏览事件。我们将训练一个“其他您可能喜欢的电影”类型推荐模型,该模型会根据数据集中的任何用户或种子电影进行电影推荐。
预计时间:
- 训练该模型的初始步骤:大约 1.5 小时。
- 等待模型训练:大约 2 天。
- 评估模型预测和清理:大约 30 分钟。
准备数据集
打开 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 商务解决方案所需的架构。 然后,从左侧边栏中选择
BIG DATA -> BigQuery
。然后,从左侧的浏览器栏中展开项目名称,选择movielens -> products
以打开此视图的查询页面。现在,我们将电影评分转换为用户事件。我们将:
- 忽略负面电影评分 (<4)
- 将每个正面评分视为商品网页浏览事件 (
detail-page-view
) - 将 Movielens 时间轴重新调整为过去 90 天。这样做的原因有两个:
- Vertex AI Search for Commerce 要求用户事件不早于 2015。Movielens 评分回到 1995 年。
- Vertex AI Search for Commerce 使用过去 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 商务解决方案。
为您的 Google Cloud 项目启用 Vertex AI Search for Commerce API。
点击开始使用。
前往 Search for Commerce 控制台中的数据页面。
前往“数据”页面点击导入。
导入商品目录
填写表单,从您之前创建的 BigQuery 视图中导入商品:
- 选择导入类型:商品清单。
- 选择默认分支名称。
- 选择数据源:BigQuery。
- 选择数据架构:零售商品架构。
输入您之前创建的商品 BigQuery 视图的名称 (
PROJECT_ID.movielens.products
)。
点击导入。
等待导入所有产品,这可能需要 5-10 分钟。
您可以查看导入活动以获取导入操作的状态。导入完成后,导入操作状态会更改为成功。
导入用户事件
导入 user_events BigQuery 视图:
- 选择导入类型:用户事件。
- 选择数据源:BigQuery。
- 选择数据架构:零售用户事件架构。
- 输入您之前创建的
user_events
BigQuery 视图的名称。
点击导入。
等待导入至少一百万个事件后再继续下一步,以便满足训练新模型的数据要求。
您可以查看导入活动以获取操作状态。该过程大约需要一个小时才能完成。
训练和评估推荐模型
请按照以下说明训练和评估推荐模型。
创建推荐模型
前往 Search for commerce 控制台中的模型页面。
前往“模型”页面点击创建模型。
- 为模型命名。
- 选择您可能喜欢的其他商品作为模型类型。
- 选择点击率 (CTR) 作为业务目标。
点击创建。
新模型开始训练。
创建服务配置
前往 Search for Commerce 控制台中的投放配置页面。
前往“投放配置”页面点击创建投放配置:
- 选择建议。
- 为投放配置命名。
- 选择您已创建的模型。
点击创建。
等待模型变为“可供查询”
训练模型并使其可供查询大约需要两天时间。
如需查看状态,请点击“投放配置”页面上的创建投放配置。
该过程完成后,模型准备就绪,可供查询 (Model ready to query) 字段会显示是。
预览推荐
准备好查询模型后:
-
前往 Search for Commerce 控制台中的投放配置页面。
前往“投放配置”页面 - 点击投放配置名称以转至其详情页面。
- 点击 *“评估”标签页。
输入种子电影 ID,例如
4993
代表“The Lord of the Rings: The Fellowship of the Ring (2001)”。点击预测预览版,即可在页面右侧查看推荐商品列表。