検索を予測入力する

このページでは、予測入力機能の概要と使用方法について説明します。 検索は、小売業者の検索ボックスへの入力候補を提示する予測入力機能を備えています。

予測入力はユーザーが入力した残りのクエリを予測する機能で、ユーザーの検索エクスペリエンスを向上させ、購入手続きまでのショッピング プロセスを高速化できます。また、検索のレスポンス品質を改善して、整形式のクエリを提供することで収益を向上することもできます。

概要

エンドユーザーがサイトで検索キーワードの入力を開始すると、検索はユーザーが望む可能性のある候補のリストを提供します。たとえば「靴」と「シャツ」は、ユーザーが「sh」を入力したときに提案されます。

データソース

候補予測には、次のいずれかのデータソースを選択できます。

  • アップロードする BigQuery データセット。
  • 機械学習を使用してユーザー イベントとその他のメタデータから生成されるデータセット。

アップロード済みのデータセット

データセットとしてアップロードする BigQuery 候補テーブル。クエリの候補として使用されます。データセットをアップロードする方法については、予測入力データのインポートをご覧ください。

自動学習データセット

ユーザーの検索イベントに基づいて、検索によって生成された機械学習ベースの候補データセット。

自動学習を有効にするには:

コンソール

  1. [Controls] ページに移動

  2. [予測入力コントロール] タブに移動します。

  3. [設定を編集] をクリックします。

  4. [自動学習] をオンにします。

  5. [Save Settings] をクリックします。

    自動学習の更新には 1~2 日かかる場合があります。

cURL

curl -X PATCH -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://retail.googleapis.com/v2beta/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/completionConfig?update_mask.paths=auto_learning"  --data "{auto_learning: true}"

自動学習データセットの前提条件

自動学習では、検索タイプユーザー イベントeventType = "search")から候補が生成されます。この世代では、過去 180 日間のユーザー イベントが使用されます。 ユーザー イベントをインポートするには、十分な品質と数量が必要です。

自動学習ではまれな候補が除外されるため、検索タイプのユーザー イベント数が少なすぎる(20,000 未満)場合、多くの候補が除外される可能性があります。このシナリオでは、まず、より頻繁な検索クエリで予測入力関数をテストします。

自動学習データセット リリース スケジュール

自動学習データセットは毎日生成され、インデックス作成とリリースに push されます。サイクル全体は 2 日ほどかかります。

自動学習機能

検索は、機械学習手法を適用して自動学習データセットに対してのみクエリと候補データをクリーンアップし、フォーマットします。

機能 説明
0 件の検索結果を削除する
  • 検索結果がないクエリを削除する
食料品店の場合、「Gucci バッグ」の検索結果は 0 件であるため、削除されます
入力ミスを訂正する
  • 入力ミスがある単語のスペルを修正する
  • マッチング前にリアルタイムの入力クエリもクリーンアップします
「牛乳」 → 「牛乳」
許可リストクエリを追加する
  • 明示的に許可するクエリが追加されます
以下の [詳細情報] を確認してください。
拒否リストのクエリを削除する
  • 明示的にブロックするクエリが削除されます
以下の [詳細情報] を確認してください。
安全でない用語を削除する
  • Google セーフサーチを活用
  • 不適切なクエリを削除する
ポルノ、露骨、下品、暴力など
あまり使われない用語を削除する
  • AI システムがクエリ統計に応じて締め切りを調整する
  • 非常にまれな用語は削除されます
「74x39x9 インチ 2 層ツイン エアマットレス、120V 手持ちポンプ」
重複排除用語
  • AI を活用したセマンティック理解
  • 近い用語の場合、どちらの用語も一致しますが、より一般的な用語のみが提案されます。
「Shoes for Women」、「Womens Shoes」、「Womans Shoes」は重複排除されているため、1 つのみが提案されます。

予測候補の取得

completeQuery API を使用して候補を取得します。例:

cURL

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog:completeQuery?query=sho&dataset=user-data&deviceType=DESKTOP&maxSuggestions=5"

予測入力のオプションとコントロール

このセクションでは、予測入力で使用できるオプションとコントロールについて説明します。次の表に概要と詳細を示します。

コントロール 詳細 場所
拒否リスト
  • 候補データからクエリを手動で削除する
API リクエスト: CompletionData:import詳細については、予測入力データをインポートするをご覧ください。
許可リスト
  • クエリを候補データに手動で追加する
API リクエスト: CompletionData:import予測入力データをインポートするもご覧ください)
予測入力をトリガーする最小の長さ
  • 予測入力をトリガーする前に文字数をコントロールします
[Cloud Console] > [コントロール]
マッチング順序
  • 一致順序は、ユーザーのクエリと候補の一致方法を決定します。
[Cloud Console] > [コントロール]
候補数
  • これは予測入力から返される候補の数です
[Cloud コンソール] > [コントロール] または
API リクエスト: completeQuery.maxSuggestions
デバイスの種類
  • デバイスタイプを指定すると、指定されたデバイスタイプの人気に基づいて候補が生成されます
  • これを指定しないと、すべてのデバイスタイプからの人気の合計に基づいて候補が返されます
API リクエスト: completeQuery.deviceType
候補データソース
  • 自動生成のデータソースとアップロードされたデータソースの両方がある場合は、クエリ時に使用するデータソースを選択できます。
API リクエスト: completeQuery.dataset
言語
  • 候補の表示言語を指定できます
API リクエスト: completeQuery.languageCodes[]

許可リスト(削除対象外リスト)

検索は、スペルの修正などの後処理を予測入力候補データに対して行います。後処理で検索がスキップする用語の許可リストを作成できます。

許可リストに登録された用語が候補から除外されることはありません。許可リストは、アップロードされたデータセット自動学習データセットの両方で機能します。

例: 「fruit」や「foot」の代わりに「froot loops」など、意図的にスペルを間違えたブランド名があります。インポート完了データの詳細なアップロード手順をご覧ください。

データのインポートには、[Cloud コンソール] > [コントロール] > [予測入力コントロール] > [削除対象外リスト]、または CompletionData:import を使用します。

変更は約 2 日で有効になります。

拒否リスト

拒否リストは、自動学習データセットでのみ機能します。拒否リストは、アップロードされたデータセットでは機能しません。

拒否リストの用語は候補に表示されません。

拒否リストをインポートするには、[Cloud コンソール] > [コントロール] > [予測入力コントロール > [拒否リスト]、または API CompletionData:import を使用します。拒否リストをインポートする方法の詳細については、完了データをインポートするをご覧ください。

変更は約 2 日で有効になります。

トリガーする最小の長さ

予測入力クエリで結果が返される前に、必要な文字数を設定できます。この設定は、[Cloud コントロール] > [コントロール] > [予測入力コントロール] > [トリガーの最小時間] で確認できます。

変更はすぐに有効になります。

マッチング順序

これにより、候補とユーザーの入力用語を照合する方法が決まります。

「Suggestion starts with the term」に設定されている場合、予測入力は、ユーザー入力用語を候補と完全に一致する接頭辞と照合します。たとえば、ユーザー入力「Sh」は候補の「Shoes」と「Shirts」に一致しますが、候補の「Red Shoes」には一致しません。

「Suggestion can start from anywhere in the term」に設定すると、予測入力は、ユーザーの入力用語を単語にトークン化し、単語の順序にかかわらず候補の単語と照合します。たとえば、ユーザー入力用語「red sh」は候補の「shirts red」、「red shoes」、「kid red shoes」と一致します。ただし、入力用語の「hoes」はこれらの候補と一致しません。候補に含まれる単語が「hoes」で始まっていないためです。

この設定は、[Cloud コンソール] > [コントロール] > [予測入力コントロール] > [一致順序] で確認できます。

変更はすぐに有効になります。

候補数

これは、予測入力クエリから返される候補の数で、20 以下にしてください。この設定は、[Cloud コンソール] > [コントロール] > [予測入力コントロール] > [候補数] にあります。または completeQuery で設定できます。

変更はすぐに有効になります。

デバイスの種類

検索の予測入力は、MOBILEDESKTOP などのさまざまなデバイスの種類をサポートしています。デバイスの種類に基づいて、アップロードやさまざまな候補の取得を行うことができます。deviceTypecompleteQuery で指定されていない場合、候補はすべてのデバイスの種類にわたって表示されます。

検索ユーザー イベントに基づく自動学習データセットの場合、さまざまなユーザータイプをサポートするように UserEvent.user_infouser_agent を設定します。Wiki のユーザー エージェントをご覧ください。

高度な機能

このセクションでは、検索で利用できる高度な予測入力機能について説明します。たとえば、クエリ予測入力の候補を、ブランド、カテゴリなどの他の候補で補完できます。

これらの高度な機能は、自動学習データセットでのみ使用できます。

候補 FeatureSet

クエリの候補キーワードごとに追加の FeatureSet を提供し、お客様がウェブサイトに高度な機能を表示できるようにします。

FeatureSet は、レスポンスに Key-Value マップとして表示されます。現在、小売業向け Vertex AI Search は、completeQuery.completionResults.attributes API レスポンス内の各クエリ候補に関連する最大 5 つの一般的なカテゴリとブランドを返します。FeatureSet の候補は、エンドユーザーが入力したクエリ文字列と一致する必要はありません。

レスポンスの FeatureSet を使用して、検索候補を拡充できます。次に例を示します。

  • 「人気のブランド」セクションと「人気のカテゴリ」セクションを集計して作成し、検索候補リストの下に表示します。
  • 検索候補の横に、最も人気のあるブランドまたはカテゴリを表示します。

商品のカテゴリの変更など、カタログを変更した後は、FeatureSet の候補が商品カタログの変更に反映されるまで 2 週間から 30 日かかることを想定します。この待ち時間は、過去 30 日間の検索イベントデータに対して自動学習が行われるためです。

属性の候補

検索では、ユーザー入力文字列と一致する属性の候補が提供されます。サポートされている属性候補のタイプは、ブランドとカテゴリです。

属性候補は候補 FeatureSet とは異なります。属性候補は、商品属性(ブランドやカテゴリなど)の候補リストです。検索候補が検索語句の候補リストであるのと同じです。属性候補は、クエリの候補とは独立して使用できます。候補 FeatureSet はクエリ候補のメタデータであるため、クエリ候補に依存します。

属性候補は、エンドユーザーが検索候補リストの下の別のセクションで入力しているブランドやカテゴリを予測入力するために使用できます。

商品数を使用した候補ファセット(試験運用版)

この機能は、限定されたお客様向けの試験運用版です。使用するには、サポートチームにお問い合わせください。

商品カウント機能を使用と候補ファセットを有効にすると、返される completeQuery.completionResults は、予測入力の候補を通常どおり返しますが、各候補の商品数と合計数およびファセット(「色」、「カテゴリ」など)別の商品数も返します。

たとえば、検索クエリが「靴」の場合、返される予測入力の候補は次のようになります。

  • 婦人靴
  • 紳士靴

さらに、目的のファセットキーが「色」の場合、予測入力の候補により、商品の数と色別の商品数も返されます。

  • 婦人靴(32)
    • 黒(10)
    • トープ(16)
    • 白(10)
  • 紳士靴(43)
    • 黒(10)
    • 茶(5)
    • 緑(17)

小売業者は、買い物客に商品数を表示する必要はありませんが、completeQuery.completionResults で返された注文ではなく、商品数に基づいて候補のリストを決定できます。たとえば、最も人気のある商品が男性用の緑色の靴ではなくても、その商品を検索結果の上部に表示することで、買い物客にその靴を検討してもらいたい場合があります。

例:

{
  "completion_results": [{ 
    "suggestion": "womens shoes"
    "facets": [ 
      {
        "key": "color"
        "values": [ 
          {
            "value": "black"
            "count": 10
          }
          {
            "value": "taupe"
            "count": 16
          }
          {
            "value": "white"
            "count": 10
          }
        ]
      }
    ]
    "total_product_count": 32
  },
  (...)
  ],
}

ファセット数の情報が、候補の検索クエリごとに completeQuery.completionResults.facetsFacets のリストとして表示されます。各ファセットには、ファセット値あたりの商品数を含む FacetValues リストがあります。各候補の検索クエリの合計商品数は completeQuery.completionResults.totalProductCount で返されます。

商品数で候補ファセットを有効にして使用するには、次の手順を行います。

  1. サポートチームに連絡し、「商品数を含む候補ファセット」機能を有効にするよう依頼します。商品数を取得する FacetKeys を指定します。使用できるのは textual_fields ファセットのみです。

  2. 少なくとも 7 日間、search API を使用するときは、search.searchRequest.facetSpecs のファセットキーを FacetSpecs に含めてください。

    ファセット情報は過去 1 週間の検索履歴データを使用して計算されるため、この待ち時間が生じます。

  3. この機能が有効になると、completeQuery API から返される候補にファセットと候補別の商品数が含まれるようになります。

エンティティでフィルタされた候補

エンティティを使用すると、検索の予測入力候補をフィルタできます。別のブランドや地域のウェブサイトなどがエンティティに該当します。特定のブランドや地域のウェブサイトで買い物をするユーザーの行動を、予測入力で最大限に反映する必要があります。エンティティの詳細については、エンティティをご覧ください。

エンティティを予測入力の候補に含めるには:

  1. 検索ユーザー イベント(eventType = "search")に entity フィールドを含めます。詳しくは、検索ユーザー イベントの完全なオブジェクトの例をご覧ください。

  2. CompleteQuery API リクエストの entity フィールドを設定して、そのエンティティのみの候補を取得します。

    ユーザー イベントと API リクエストのエンティティ文字列は完全一致する必要があります。指定されていない場合、予測入力は空の候補を返します。

通常、エンティティ機能が最適な予測入力の候補を返すには、30~90 日間のユーザー イベントデータが必要です。