获取推荐内容

本页面介绍如何为特定用户和用户事件请求商品推荐。

上传商品并记录用户事件后,您可以根据特定用户的已记录用户事件及其当前活动,为该用户请求商品推荐。 新商品和用户事件最长可能需要 48 小时才会反映在推荐模型中。

Vertex AI Search for commerce 会返回经过排名的商品标识符列表。您需要负责使用图片和文字在您网站上呈现结果。

绝不缓存最终用户的个性化结果,也绝不向其他最终用户返回个性化结果。

准备工作

您必须先按照准备工作中的步骤创建 Google Cloud项目并设置身份验证。

您需要同时满足以下两个条件,然后才能根据建议请求预测:

评估建议

在更新网站代码以请求推荐之前,您可以使用预览预测结果来确认模型和投放配置是否按预期工作。

如需详细了解服务配置,请参阅服务配置简介

您可以从评估页面预览投放配置结果,也可以在控制台中前往投放配置的详细信息页面,然后点击其评估标签页。

如需预览投放配置返回的建议,请执行以下操作:

  1. 前往 Search for Commerce 控制台中的评估页面。

    前往“评估”页面

  2. 点击建议标签页(如果尚未选择)。

  3. 选择要预览的投放配置。

  4. 可选:输入访问者 ID 以预览针对该用户的建议。

  5. 如果显示关联的商品部分,请点击添加商品,然后输入商品 ID,以获取与该商品关联的推荐。您可以添加多个关联商品。

    只有当所选服务配置的模型类型需要将商品作为建议的输入时,才能添加商品。“为您推荐”模型不需要输入关联商品。

  6. 点击预测预览查看预测结果。

如需查看您正在预览的投放配置的详细信息页面,请点击选择投放配置字段下的查看投放配置

获取推荐内容

Recommendations API 对返回的商品数量有限制。不过,您可以采取一些变通方法来增加返回的商品数量。

最大限度地提高浏览型商品详情的价值

本部分概述了如何通过有效的类别处理、确保最高数据层模型和解锁个性化功能,充分利用 Vertex AI Search for commerce 中的浏览商品详情。

有效的类别处理

  • 使用唯一且描述性强的网页类别名称,确保准确跟踪用户行为和模型学习情况。
  • 将类别从宽泛到具体进行结构化,让用户能够逐步优化浏览体验。
  • 避免使用用户互动度有限的过于小众的类别。

确保最高层级模型

前往“数据质量”页面

然后,配置最高层级的模型:

  1. 实现用户事件跟踪,以捕获搜索和浏览的用户互动(点击、购买、添加到购物车)。

  2. 使用 Vertex AI Search for commerce 的数据质量信息中心监控数据注入和模型就绪情况。

如需详细了解搜索和浏览的数据层级,请参阅数据质量

利用个性化功能提升效果

作为一种从用户行为中学习的排名模型,浏览模型的大部分性能都来自其个性化功能。

  • 在评估模型性能时启用个性化设置。
  • 停用个性化功能会影响性能,并最大限度地减少模型的潜在影响。
  • 在向实时生产流量或 A/B 测试公开浏览结果之前,个性化功能应处于有效状态。

提高限额

  • Vertex AI Search for commerce 结果的上限为 120。

  • Recommendations API 支持对最多 2,000 个商品进行重新排名。

  • 虽然延迟时间会增加,但网页大小可以增加到 500 或 1,000。

解决方法

对于类别页面,您可以使用个性化推荐对其进行个性化设置和重新排名。为了规避 120 个结果的限制,请同时多次调用以获取前几个指定数量的页面,然后将结果拼接在一起,使其看起来像一个大页面。

如需手动限制返回给最终用户的推荐内容集,您可以在 PredictRequest.params 查询中添加过滤条件

使用 API 将所选属性标记为可过滤,然后在预测请求中直接引用这些属性。

如需了解预测费用详情,请参阅价格

curl

如需获取推荐,请向 predict REST 方法发出 POST 请求,并提供相应的请求正文:

  • 您使用的服务账号需要具有“Retail Viewer”角色或更高权限的角色。

  • SERVING_CONFIG_ID 替换为要在其中使用预测的投放配置。了解详情

  • 如果您使用 BigQuery 导入 Google Analytics 360 用户事件,请将 visitorId 设置为 Google Analytics 客户端 ID。请参阅 Google Analytics 文档,了解如何获取客户端 ID。

  • 如果您要运行 A/B 实验,请将 experimentIds 设置为此实验组的 ID。了解详情

  • 为发起推荐请求的用户操作提供用户事件对象。

    请注意,系统不会记录此用户事件;它仅用于为相关推荐请求提供背景信息。而您应该像记录其他用户事件一样来记录此用户事件。

  • (可选)提供过滤条件来缩小可能返回的商品范围。了解详情

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data '{
              "filter": "FILTER_STRING",
              "validateOnly": false,
              "userEvent": {
                  "eventType": "detail-page-view",
                  "visitorId": "VISITOR_ID",
                  "userInfo": {
                      "userId": "USER_ID",
                      "ipAddress": "IP_ADDRESS",
                      "userAgent": "USER_AGENT"
                  },
                  "experimentIds": "EXPERIMENT_GROUP",
                  "productDetails": [{
                      "product": {
                        "id": "PRODUCT_ID"
                     }
                  }]
              }
            }' \
https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/servingConfigs/SERVING_CONFIG_ID:predict

您应该会看到如下所示的结果:

{
  "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}],
  "attribution_token": "sample-atr-token"
}

Java

public static PredictResponse predictWithNextPageToken(UserEvent userEvent, int pageSize,
    String nextPageToken)
    throws IOException, InterruptedException {
  PredictionServiceClient predictionClient = getPredictionServiceClient();

  PredictRequest request = PredictRequest.newBuilder()
      .setPlacement(HOME_PAGE_PLACEMENT_NAME)
      .setUserEvent(userEvent)
      .setPageSize(pageSize)
      .setPageToken(nextPageToken)
      .setValidateOnly(true)
      .build();

  PredictResponse response = predictionClient.predict(request);

  predictionClient.shutdownNow();
  predictionClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

价格重排序

启用这项功能后,推荐概率相近的推荐产品会按价格进行排序,价格最高的商品列在第一位。相关性仍会用于订购商品,因此启用价格重排序与按价格排序不同。

可以在服务配置级层或根据预测请求设置价格重排序。

如果您在 Search for Commerce 控制台中创建服务配置时选择价格重排序设置,则该设置将应用于该配置提供的所有建议,您无需执行进一步操作。

如果您需要控制特定建议的价格重排序,可以使用 PredictRequest.params 字段进行控制。这将替换或会以其他方式应用于此建议的任何配置级层重排序设置。

建议多样性

推荐多样性会影响单个预测请求返回的结果是否来自产品目录的不同类别。

可以在服务配置级层或根据预测请求设置推荐多样性。

如果您在 Search for Commerce 控制台中创建服务配置时选择推荐多样化设置,则该设置将默认应用于该配置提供的所有预测,您无需执行进一步操作。

如果您需要控制特定建议的多样性,可以使用 PredictRequest.params 字段进行控制。这将替换或会以其他方式应用于此建议的任何配置级层多样化设置。查看可接受的值。

使用建议过滤条件

您可以使用 predict 方法中的 filter 字段过滤推荐服务返回的推荐。如需了解相关信息,请参阅过滤建议

使用页面级优化模型的预测调用

使用页面级优化功能提供建议需要额外的预测调用步骤。

使用包含页面级优化模型的服务配置进行初始预测调用。预测响应会返回一个已排序的投放配置 ID 列表,其中包含每个面板要使用的模型。

然后,使用页面级优化模型为每个面板推荐的投放配置 ID,为每个面板发出预测调用。预测响应包含模型名称(例如“为您推荐”)以及要在相应面板中显示的推荐商品列表。

使用页面级优化模型的服务配置不支持价格重排序、建议多样性和建议过滤条件。