レコメンデーションを表示する

このページでは、特定のユーザーとユーザー イベントに関する商品のレコメンデーションをリクエストする方法について説明します。

商品をアップロードし、ユーザー イベントを記録すると、記録されたユーザー イベントとそのユーザーの現在のアクティビティに基づいて、特定のユーザーに対する商品のレコメンデーションをリクエストできます。 新しい商品とユーザー イベントがレコメンデーション モデルに反映されるまでに、最長で 48 時間ほどかかることがあります。

Vertex AI Search for Retail は、ランク付けされた商品 ID のリストを返します。画像やテキストを使用して、ウェブサイトに結果をレンダリングするのはお客様の責任です。

パーソナライズされた結果をエンドユーザーからキャッシュに保存したり、パーソナライズされた結果を別のエンドユーザーに戻したりすることはありません。

始める前に

始める前にの手順に従って、Google Cloud プロジェクトを作成し、認証を設定する必要があります。

また、レコメンデーションによる予測をリクエストするには、トレーニングおよび調整されたレコメンデーション(モデル)と 1 つ以上のアクティブなサービス構成が必要です。

レコメンデーションを評価する

ウェブサイトのコードを更新してレコメンデーションをリクエストする前に、プレビューの予測結果を使用して、モデルとサービス提供構成が期待どおりに機能していることを確認できます。

サービス構成について詳しくは、サービス構成についてをご覧ください。

サービス提供構成の結果は、[評価] ページから、または、コンソールでサービス提供構成の [詳細] ページにアクセスし、その [評価] タブをクリックしてプレビューできます。次の手順では、[評価] ページからプレビューする方法を説明します。

サービス構成で返されるレコメンデーションをプレビューするには:

  1. Search for Retail コンソールの [評価する] ページに移動します。

    [評価する] ページに移動

  2. [レコメンデーション] タブをクリックします(まだ選択されていない場合)。

  3. プレビューするサービス構成を選択します。

  4. 省略可: 訪問者 ID を入力して、そのユーザーのレコメンデーションをプレビューします。

  5. [関連付けられたアイテム] セクションが表示されている場合は、[アイテムを追加] をクリックして商品 ID を入力し、そのアイテムに関連するレコメンデーションを取得します。複数の関連アイテムを追加できます。

    アイテムを追加できるのは、選択したサービス構成のモデルタイプで、レコメンデーションの入力として商品が必要な場合のみです。あなたへのおすすめモデルの場合、関連するアイテムを入力する必要はありません。

  6. [予測プレビュー] をクリックして、予測結果を表示します。

プレビューしているサービス提供構成の [詳細] ページを表示するには、[サービス提供構成を選択] フィールドで [サービス提供構成を表示] をクリックします。

レコメンデーションを表示する

料金の詳細については、料金をご覧ください。

curl

レコメンデーションを取得するには、予測predict REST メソッドに対して POST リクエストを行い、以下のように、適切なリクエスト本文を指定します。

  • 使用するサービス アカウントには、「Retail 閲覧者」以上のロールが必要です。

  • SERVING_CONFIG_ID を、予測を使用するサービス構成に置き換えます。詳細

  • BigQuery を使用して Google アナリティクス 360 のユーザー イベントをインポートした場合は、visitorId を Google アナリティクス クライアント ID に設定します。クライアント ID を取得する方法については、Google アナリティクスのドキュメントをご覧ください。

  • 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"
}

この予測の結果として提供する URL に attribution_token 値を関連付ける必要があります。また、その URL をユーザー イベントとともに返す必要があります。詳細

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 Retail でサービス構成を作成するときに料金の再ランキングの設定を選択すると、その構成によって適用されるすべてのレコメンデーションにその設定が適用されるため、それ以上の操作は必要ありません。

特定のレコメンデーションの料金の再ランキングを制御する必要がある場合は、PredictRequest.params フィールドを使用します。これにより、この推奨事項に適用される構成レベルの再ランキング設定がオーバーライドされます。

レコメンデーションの多様性

多様化は、1 つの予測リクエストで、商品カタログの異なるカテゴリから結果が返されるかどうかに影響します。

多様化は、サービス構成レベルで、または予測リクエストごとに設定できます。

Search for Retail でサービス構成を作成するときに多様化設定を選択すると、その構成によって適用されるすべてのレコメンデーションにデフォルトでその設定が適用されるため、それ以上の操作は必要ありません。

特定のレコメンデーションの多様性を管理する必要がある場合は、PredictRequest.params フィールドを使用して管理できます。これにより、この推奨事項に適用される構成レベルの多様化設定がすべてオーバーライドされます。使用できる値については、こちらをご覧ください。

レコメンデーション フィルタを使用する

predict メソッドで filter フィールドを使用すると、レコメンデーションが返す推奨事項をフィルタリングできます。詳細については、推奨事項のフィルタリングをご覧ください。

ページレベル最適化モデルを使用した予測呼び出し

ページレベル最適化を使用してレコメンデーションを提供するには、追加の予測呼び出しステップが必要です。

ページレベル最適化モデルを含むサービス提供構成を使用して、最初の予測呼び出しを行います。予測レスポンスは、各パネルに使用するモデルを表す並べ替えられたサービス提供構成 ID のリストを返します。

次に、ページレベル最適化モデルが推奨するサービス提供構成 ID を使用して、各パネルの予測呼び出しを行います。予測レスポンスには、モデル名(「あなたへのおすすめ」など)と、パネルに表示されるおすすめのアイテムのリストが含まれます。

ページレベルの最適化モデルを使用したサービス提供構成では、料金の再ランキング、レコメンデーションの多様性、レコメンデーションのフィルタを使用できません。

推奨事項のモニタリングとトラブルシューティング

ウェブサイトを設定してレコメンデーションを取得したら、アラートを設定することをおすすめします。予測エラーのアラートを設定するをご覧ください。

エラーのトラブルシューティングについては、モニタリングとトラブルシューティングをご覧ください。