おすすめコンテンツを入手する

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

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

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

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

始める前に

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

レコメンデーションから予測をリクエストするには、次の両方が必要です。

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

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

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

サービス構成の結果をプレビューするには、[評価] ページに移動するか、コンソールでサービス構成の [詳細] ページに移動して [評価] タブをクリックします。

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

  1. Gemini Enterprise for Customer Experience コンソールの AI Commerce Search の [評価] ページに移動します。

    [評価] ページに移動

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

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

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

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

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

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

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

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

Recommendations API には、返されるアイテムの数に上限があります。ただし、返されるアイテム数を増やすための回避策があります。

閲覧リストの価値を最大化する

このセクションでは、AI Commerce Search で閲覧リストを最大限に活用する方法について説明します。効果的なカテゴリ処理により、最高データ階層モデルを確保し、パーソナライズを有効にします。

効果的なカテゴリ処理

  • 一意でわかりやすいページ カテゴリ名を使用して、ユーザー行動の正確な追跡とモデルの学習を確保します。
  • カテゴリを広範なものから具体的なものに構造化することで、ユーザーは閲覧エクスペリエンスを段階的に絞り込むことができます。
  • ユーザー エンゲージメントが限られているニッチなカテゴリは避けてください。

最上位モデルを確保する

[データ品質] ページに移動

次に、最上位モデルを構成します。

  1. ユーザー イベント トラッキングを実装して、検索と閲覧の両方でユーザー インタラクション(クリック、購入、カートに追加)をキャプチャします。

  2. AI Commerce Search の [**データ品質**] ダッシュボードを使用して、データの取り込みとモデルの準備状況をモニタリングします。

検索と閲覧のデータ階層について詳しくは、データ品質をご覧ください。

パーソナライズでパフォーマンスを向上させる

ユーザー行動から学習するランキング モデルとして、閲覧モデルのパフォーマンスの大部分はパーソナライズ機能に由来します。

  • モデルのパフォーマンスを評価するときに、パーソナライズを有効にします。
  • パーソナライズを無効にすると、パフォーマンスに影響し、モデルの潜在的な影響が最小限に抑えられます。
  • 閲覧結果をライブの本番環境トラフィックや A/B テストに公開する前に、パーソナライズを有効にする必要があります。

結果サイズの上限を引き上げる

  • AI Commerce Search の結果の上限は 120 です。

  • Recommendations API は、最大 2,000 個のアイテムの再ランキングをサポートしています。

  • レイテンシは増加しますが、ページサイズを 500 または 1,000 まで増やすことができます。

より多くの推奨結果を得るための回避策

REST API を使用して、パーソナル レコメンデーションを使用してカテゴリページをパーソナライズして再ランキングできます。120 個のアイテムの結果上限を回避するには、指定された最初のページ数に対して複数の同時呼び出しを行います。次に、結果を結合して 1 つの大きなページのようにします。

エンドユーザーに返されるレコメンデーションのセットを手動で制限するには、フィルタ条件PredictRequest.params クエリに追加します。API を使用して選択した属性をフィルタ可能としてマークし、予測リクエストで直接参照します。

PredictRequest は標準のページネーション(offsetpageToken など)をサポートしていないため、特定の結果を結合するページをリクエストすることはできません。代わりに、結果サイズの上限を回避し、レコメンデーションを使用してカテゴリページの結果を手動で制限するには、フィルタを使用して、カテゴリ、価格帯、ブランドなど、カタログを個別のセグメントに分割します。これらのセグメントに対して同時呼び出しを行い、結果をマージします。

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

推奨結果のサイズを増やすには、次の 2 つの回避策があります。

回避策 A: ページサイズを大きくする

予測リクエストの pageSize をデフォルトの 20 より大きい値に構成します。REST API 呼び出しテンプレートをご覧ください。

回避策 B: 属性とカテゴリのページネーションを使用する

カテゴリページの結果上限の回避策は、次の 3 つのステップで構成されます。

  1. 属性を構成するCatalogService API を使用して、属性(カテゴリや価格など)をフィルタ可能としてマークし、レコメンデーション フィルタで使用できるようにします。属性(カテゴリなど)でレコメンデーションをフィルタリングする前に、カタログ構成でその属性の recommendationsFilteringOption有効にする必要があります。
  2. レコメンデーションを生成する 。予測リクエストでフィルタ可能な属性を使用して PredictRequest 作成し、特定の商品サブセットをリクエストします。
  3. フィルタされたレコメンデーションを取得して結合する 。より大きな結果セットまたはカテゴリページをシミュレートするには、フィルタで異なるカテゴリ値を使用してステップ 2 のサンプル予測呼び出しを呼び出し、特定のフィルタで並列リクエストを行います。

REST 呼び出しでフィルタリング オプションを有効にする

curl

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

  • 使用するサービス アカウントには、「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"
}

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;
}

価格による再ランキング

料金の再ランキングでは、同様のおすすめの確率を持つおすすめの商品が料金の高い順に並べられます。関連性はアイテムの注文にも使用されるため、価格の再ランキングを有効にしても、価格順の並べ替えとは同じになりません。

料金の再ランキングは、サービス構成レベルで、または予測リクエストごとに設定できます。

Gemini Enterprise for Customer Experience コンソールの AI Commerce Search でサービス構成を 作成するときに料金の再ランキングの設定を選択すると、その 構成によって適用されるすべてのレコメンデーションにその設定が適用されるため、それ以上の操作は必要ありません。

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

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

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

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

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

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

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

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

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

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

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

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

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