サービス構成を作成する

このページでは、サービス構成の作成方法について説明します。サービス提供構成とは、検索結果またはレコメンデーション結果の生成に使用されるモデルまたは一連のコントロールを設定に関連付けるサービス提供エンティティです。

始める前に

レコメンデーションと検索のサービス構成では、要件とオプションが異なります。

  • レコメンデーションのサービス構成にはモデルが必要です。既存のモデルを新しいサービス構成に接続する場合は、使用するモデルの ID を取得します(ServingConfig.create メソッドを使用するときに必要です)。

    コンソールを使用してサービス構成を作成する場合、既存のモデルを接続する代わりに、作成プロセス中に新しいモデルを作成できます。

    同じモデルタイプであれば、後でモデルを切り替えることができます。

  • 検索ではサービス提供コントロールを使用できますが、必須ではありません。既存のコントロールを新しいサービス構成に接続する場合は、使用するコントロールの ID を取得します。

    コンソールを使用してサービス構成を作成する場合は、作成プロセス中に新しいコントロールを作成することもできます。

    サービス提供コントロールは、サービス構成を作成した後に切り替えたり、追加したりできます。

サービス構成を作成する

サービス構成を作成するには、次を使用します。

カタログごとに最大 100 個のサービス構成を使用できます。

既存のプレースメントがある場合や新しいプレースメントを作成する場合、各プレースメントに関連付けられたサービス構成が自動的に作成されます。サービス構成を作成しても、対応するプレースメントは作成されません。サービス構成を削除すると、対応するプレースメントが削除されます。プレースメントを削除すると、対応するサービス構成が削除されます。

コンソールでサービス構成を作成する

Search for Retail コンソールの [Serving Configs] ページに新しいサービス構成を追加します。

新しいサービス構成を作成するには:

  1. Search for Retail コンソールの[サービス構成]ページに移動します。

    [サービス構成] ページに移動

  2. [Create serving config] をクリックします。

    推奨事項

    1. サービス構成が使用されるプロダクトとして [Recommendation] を選択します。

    2. サービス構成の名前を指定します。

      名前は 1,024 文字以下で、英数字、アンダースコア、ハイフン、スペースのみを含めることができます。

    3. 省略可: 必要に応じて、ID を更新します。

      ID は指定した名前から生成され、プロジェクト全体で一意である必要があります。50 文字以下で設定し、スペースを含めることはできません。

    4. このサービス構成でレコメンデーションを行うモデルを選択または作成します。

      新しいモデルの作成の詳細をご覧ください。

    5. 選択したモデルに利用可能な場合は、料金の再ランキングがレコメンデーションの結果にどの程度影響するかを選択します。

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

    6. ルールベースの多様化とデータドリブンの多様化のどちらを使用するかを選択します。

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

      • データドリブン: データドリブンの多様化では、ML を使用して予測結果のカテゴリの多様性と関連性のバランスを取ります。

      詳細については、多様化をご覧ください。

    7. レコメンデーションの結果をどの程度多様化するかを選択します。

    8. このサービス構成で類似アイテムモデルを選択した場合は、カテゴリ マッチングを有効にするかどうかを選択します。

      カテゴリ マッチングが有効になっている場合、少なくとも 1 つのカテゴリをコンテキスト商品と共有する商品結果のみが返されます。カテゴリ マッチングは、価格、在庫状況、フィルタタグなどの他のフィルタリング オプションと組み合わせて使用できます。

    1. [サービス提供構成の作成] ページで、サービス提供構成を使用するプロダクトとして [検索] を選択します。
    2. サービス提供構成の名前を指定します。

      名前は 1,024 文字以下にしてください。使用できるのは、英数字、アンダースコア、ハイフン、スペースのみです。
    3. 省略可: 必要に応じて ID を更新します。

      ID は指定した名前から生成され、プロジェクト全体で一意である必要があります。50 文字以下である必要があり、スペースを含めることはできません。
    4. [次へ] をクリックします。
    5. このサービス提供構成で動的ファセットを有効にするかどうかを選択します。
    6. 検索を最適化するサービス提供コントロールを選択または作成します。

      コントロールの詳細については、コントロールの作成と管理をご覧ください。
  3. [Create] をクリックして、新しい構成を作成します。

    新しい構成が [Serving Configs] ページに表示されます。

    その構成が検索リクエストで使用できるようになるまでに数分かかる場合があります。すぐにレコメンデーションに表示されます。

  4. 省略可: [サービス構成] ページで、サービス構成名をクリックし、[評価] タブに移動して、この構成に返されるプロダクトをプレビューします。

    評価プレビューは、構成が期待どおりに機能しているかどうかの確認に役立ちます。

ServingConfig.create でサービス構成を作成する

ServingConfig.create API メソッドでサービス構成を作成できます。このメソッドの API リファレンス ドキュメントについては、ServingConfig.create をご覧ください。

使用するフィールドは、レコメンデーションまたは検索のどちらに対してサービス構成を作成するかに応じて異なります。

ServingConfig フィールドについて詳しくは、ServingConfigs API リファレンスをご覧ください。

推奨事項

リクエスト本文にサービス提供構成 ID と ServingConfig のインスタンスを指定した ServingConfig.create リクエストを作成します。

  • servingConfigId: 必須。ServingConfig の ID を作成します。この値は 4~63 文字にする必要があります。有効な文字は /[a-z][0-9]-_/ です。
  • displayName: 必須。人が判読できる形式で Search for Retail コンソールに表示される ServingConfig 名。
  • modelID: 必須。サービス提供時に使用するモデルの ID。
  • priceRerankingLevel: 省略可。料金の再ランキングがレコメンデーションの結果にどの程度影響するかを選択します。使用できる値は no-price-reranking(設定されていない場合のデフォルト値)、low-price-rarankingmedium-price-rerankinghigh-price-reranking です。
  • diversityLevel: 省略可。レコメンデーションの結果をどの程度多様化するかを設定します。使用できる値は no-diversity(デフォルト)、low-diversitymedium-diversityhigh-diversityauto-diversity です。diversityLevel が設定されていない場合、多様性は無効になります。
  • diversityType: 省略可。RULE_BASED_DIVERSITY に設定すると、商品カテゴリに基づいてレコメンデーションが多様化されます。DATA_DRIVEN_DIVERSITY に設定すると、商品メタデータから学習した内容に基づいてレコメンデーションが多様化され、関連性とカテゴリの多様性のバランスが取れます。diversityLevel が設定されているが diversityType が設定されていない場合、diversityType はデフォルトでルールベースになります。詳細については、多様化をご覧ください。
  • enableCategoryFilterLevel: 省略可。類似アイテムモデルにカテゴリ フィルタを追加するかどうかを設定します。使用できる値は relaxed-category-match(設定されていない場合のデフォルト値)と no-category-match です。
  • solutionTypes: 必須。レコメンデーションのサービス構成では、SOLUTION_TYPE_RECOMMENDATION に設定します。
curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
              "displayName": "DISPLAY_NAME",
              "modelId": "MODEL_ID",
              "priceRerankingLevel": "PRICE_RERANKING_LEVEL",
              "diversityType": "DIVERSITY_TYPE",
              "diversityLevel": "DIVERSITY_LEVEL",
              "enableCategoryFilterLevel": "CATEGORY_FILTER_LEVEL",
              "solutionTypes": [ "SOLUTION_TYPE_RECOMMENDATION" ]
            }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/servingConfigs?servingConfigId=SERVING_CONFIG_ID"
  

search

リクエスト本文にサービス提供構成 ID と ServingConfig のインスタンスを指定した ServingConfig.create リクエストを作成します。

  • servingConfigId: 必須。ServingConfig の ID を作成します。この値は 4~63 文字にする必要があります。有効な文字は /[a-z][0-9]-_/ です。
  • displayName: 必須。人が判読できる形式で Search for Retail コンソールに表示される ServingConfig 名。
  • facetControlIds: 省略可。FacetSpec のみが設定されているコントロールの ID。
  • dynamicFacetSpec.mode: 省略可。DynamicFacet 機能のモード。指定できる値は DISABLED(設定されていない場合はデフォルト)と ENABLED です。
  • boostControlIds: 省略可。ブースト サービス提供コントロールの ID。
  • filterControlIds: 省略可。フィルタ サービス提供コントロールの ID。
  • redirectControlIds: 省略可。リダイレクト サービス提供コントロールの ID。
  • twowaySynonymsControlIds: 省略可。双方向の類義語サービス提供コントロールの ID。
  • onewaySynonymsControlIds: 省略可。一方向の類義語サービス提供コントロールの ID。
  • doNotAssociateControlIds: 省略可。関連付けないサービス提供コントロールの ID。
  • replacementControlIds: 省略可。代替サービス提供コントロールの ID。
  • ignoreControlIds: 省略可。無視するサービス提供コントロールの ID。
  • solutionTypes: 必須。検索のサービス構成では、SOLUTION_TYPE_SEARCH に設定します。
curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
              "displayName": DISPLAY_NAME,
              "facetControlIds": [
                "FACET_CONTROL_ID_1",
                "FACET_CONTROL_ID_2"
              ],
              "dynamicFacetSpec": {
                "mode": "DYNAMIC_FACET_MODE"
              },
              "boostControlIds": [
                "BOOST_CONTROL_ID_1",
                "BOOST_CONTROL_ID_2"
              ],
              "filterControlIds": [
                "FILTER_CONTROL_ID_1",
                "FILTER_CONTROL_ID_2"
              ],
              "redirectControlIds": [
                "REDIRECT_CONTROL_ID_1",
                "REDIRECT_CONTROL_ID_2"
              ],
              "twowaySynonymsControlIds": [
                "TWO_WAY_SYNONYM_CONTROL_ID_1",
                "TWO_WAY_SYNONYM_CONTROL_ID_2"
              ],
              "onewaySynonymsControlIds": [
                "ONE_WAY_SYNONYM_CONTROL_ID_1",
                "ONE_WAY_SYNONYM_CONTROL_ID_2"
              ],
              "doNotAssociateControlIds": [
                "DO_NOT_ASSOCIATE_CONTROL_ID_1",
                "DO_NOT_ASSOCIATE_CONTROL_ID_2"
              ],
              "replacementControlIds": [
                "REPLACEMENT_CONTROL_ID_1",
                "REPLACEMENT_CONTROL_ID_2"
              ],
              "ignoreControlIds": [
                "IGNORE_CONTROL_ID_1",
                "IGNORE_CONTROL_ID_2"
              ],
              "solutionTypes": [ "SOLUTION_TYPE_SEARCH" ]
    }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/servingConfigs?servingConfigId=SERVING_CONFIG_ID"
  

次のステップ