パーソナライズされたブラウジング結果を取得する

ブラウジングは、クエリのないナビゲーション検索です。ブラウジングでは、ナビゲーション方法を使用して、エンドユーザーが選択したカテゴリまたはフィルタに一致する検索結果を表示します。ユーザー エンゲージメントと組み合わせて使用すると、ユーザーにパーソナライズされたブラウジングを提供できます。パーソナライズされたブラウジングでは、ユーザーの操作履歴とコンテンツの機能に基づいて、ユーザー固有のフィードがリアルタイムで提供されます。この戦略では、戦略的コントロールを遵守しながら、定義された KPI の検索結果を最適化することを目指します。たとえば、不動産ウェブサイトでは、英国のロンドンとオーストラリアのシドニーのユーザーに異なるホームページを表示できます。ショッピング ウェブサイトでは、ユーザー プロファイルに応じてカスタマイズされた結果を表示できます。

このページでは、カスタム検索データストアのブラウジング結果を取得する方法と、検索アプリを設定する際のベスト プラクティスについて説明します。

パーソナライズされたブラウジングについて

Vertex AI Search のパーソナライズされたブラウジングでは、ニューラル ネットワークを使用して、予測されたユーザー エンゲージメントとコンバージョンに基づいてドキュメントをランク付けします。たとえば、パーソナライズされたブラウジングでは、ホテル カタログのランク付けされたエントリやウェブサイトの記事を配信し、クリックや問い合わせの予測される可能性に基づいてユーザーに返すことができます。

パーソナライズされたブラウジングは、ユーザーのナビゲーション パターン、ドキュメントのコンテンツと機能、ユーザーのコンバージョン イベントの複雑な関係を学習する高度なモデルです。重要な機能は次のとおりです。

  • ランキング: モデルは、定義された目標に対する予測パフォーマンスに基づいてアイテムをランク付けします。このランク付けは、フィルタ、カスタム ランキング、サービング コントロール(ブースト、プロモーション、同義語など)などの構成された検索パラメータの影響を受けます。

  • トレーニングと改善: 初期トレーニングの後、モデルはライブのユーザー イベント ストリームを使用して継続的に改善されます。モデルは時間の経過とともに適応し、改善されます。

  • 多様性: モデルは、無視されたリンク、ページでの滞在時間、ジャンプ率など、非インタラクションからのネガティブ シグナルを記録するため、多様性について暗黙的に学習します。

次の表に、検索とブラウジングの違いを示します。

機能 検索 参照
目的 特定の情報を探す コンテンツを探す
Google 検索で「バンクーバーの最高の韓国料理レストラン」を検索 「レストラン > 韓国料理 > バンクーバー > 4 つ星以上」などのカテゴリに基づいてレストランを検索する
ユーザーの意図 通常は目標指向 探求
出発点 通常は検索バーに入力されるクエリまたはキーワード 通常、メニュー、パンくずリスト、リンク、またはファセットなどの他のナビゲーション方法を使用する特定のウェブサイトまたはプラットフォーム
メソッド キーワードやフレーズを入力して、検索と配信の設定を適用する 空のクエリで検索し、検索とサービス構成を適用する
結果 関連性の高い検索結果のリスト フィルタに一致するデータストア内のすべてのドキュメント

ワークフローとベスト プラクティス

パーソナライズされたブラウジングは Google が管理するサービスであり、基盤となるディープ ラーニング モデルとデータ パイプラインは Google が処理します。このサービスを最大限に活用するために、検索アプリを開発する際の主な技術的責任は次のとおりです。

  • データ プロビジョニング: ドキュメントとユーザー イベントの包括的なデータストアを収集して提供します。
  • 目標の定義: 提供されたユーザー イベントを使用して、クリック率(CTR)、価値の高いアクション、セッションあたりの収益などの最適化の KPI を指定します。収集するユーザー イベントのタイプが目標をサポートしていることを確認します。
  • 検索パラメータ: 検索リクエストで検索パラメータとサービング コントロールを定義して構成します。たとえば、許可されたリスティングや記事をフィルタリングする期間や、ブログを評価順に並べ替えるブースト コントロールなどです。

AI Applications 検索アプリでブラウジングとは、クエリなしまたは空のクエリで検索することです。閲覧結果を取得するには、カスタム検索データストアで、クエリを空のまま search メソッドを呼び出します。

パーソナライズされたブラウジングで最適な結果を得るための手順は、次のとおりです。

  1. 正確で一貫性のあるデータがある:

  2. ドキュメントを準備して取り込む:

  3. ユーザー イベントを準備して取り込む:

    • 初期モデルのトレーニング用に、少なくとも 30 日分のユーザー イベントを準備します。過去のユーザー イベントリアルタイムのユーザー イベントのいずれかまたは両方を使用できます。リアルタイム イベントを使用すると、パーソナライズの結果が向上します。
    • search イベント(閲覧データのキャプチャに使用)、view-item イベント、conversion イベントを記録して共有します。
    • すべてのユーザー イベントには、次のものを含める必要があります。
      • eventType(検索とブラウジングの searchview-itemconversion など)。
      • userPseudoId。一貫性のある仮名化されたユーザー ID。
      • eventTime。イベントが記録された時刻の ISO 8601 タイムスタンプ(UTC)。
      • documents.id は、ドキュメント ID と一致するユーザーに表示される順序で表示されます。
      • searchInfo.searchQuery: ユーザーの検索クエリを登録します。
      • pageInfo.pageCategory。コンテキスト(「HomepageCarousel」、「Properties > VIC > Richmond」など)を追加します。
      • インプレッション リストの生成に使用されるフィルタ ロジックを記述する filter。これは多くの場合、pageCategory フィールドまたはシステム理解を通じて取得されます。

    詳細については、userEvents をご覧ください。

  4. モデルのトレーニングとモデル パイプラインを有効にする:

    データを準備してユーザー イベントを収集したら、Google カスタマー エンジニア(CE)にお問い合わせください。CE はデータを審査し、アプリのパーソナライズ モデルを有効にできます。

  5. パーソナライズされたブラウジング結果を取得する

    フィルタやランキング調整(ブーストやカスタム ランキングなど)などのフィールドを検索リクエストに追加します。

  6. データを維持し、最新の状態に保つ:

    データストア内のドキュメントを最新の状態に保ち、新しいユーザー イベントを継続的にアップロードします。これにより、モデルは最新のドキュメントとユーザー インタラクションにアクセスして、パーソナライズされた結果を取得できます。

ウェブサイト データを含むアプリのブラウジング結果を取得する

API を使用して、ウェブサイト データを含むアプリのブラウジング結果を取得する手順は次のとおりです。

  1. アプリ ID を確認します。アプリ ID がすでにある場合は、次のステップに進みます。

    1. Google Cloud コンソールで、[AI アプリケーション] ページに移動します。

      [アプリ] に移動

    2. [アプリ] ページで、アプリの名前を見つけ、[ID] 列からアプリの ID を取得します。

  2. 次のように、空のクエリまたはクエリなしで engines.servingConfigs.search メソッドを呼び出します。

    REST

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
    "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
    "orderBy": "ORDER_BY",
    "params": {
         "searchType": "0"
     },
    "filter": "FILTER",
    "boostSpec": "BOOST_SPEC",
    }'
    

    次のように置き換えます。

    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • APP_ID: クエリする Vertex AI Search アプリの ID。
    • ORDER_BY: 省略可。結果が並べ替えられる順序。並べ替えの基準となる属性は、数値として解釈できる必要があります(例: date)。詳しくは、ウェブ検索結果を並べ替えるをご覧ください。
    • FILTER: 省略可能ですが、指定することをおすすめします。フィルタ式を使用して検索結果をフィルタリングするためのテキスト フィールド。デフォルト値は空文字列です。 filter フィールドの使用方法については、構造化データまたは非構造化データの一般的な検索をフィルタするおよびウェブサイト検索をフィルタするをご覧ください。
    • BOOST_SPEC: 省略可。ドキュメントをブーストまたは埋め込むための仕様。値:
      • BOOST: [-1,1] の範囲の浮動小数点数。値が負の場合、結果は降格されます(結果の下位に表示されます)。値が正の場合、結果は昇格されます(結果の上位に表示されます)。
      • CONDITION: ブーストを適用するドキュメントを選択するためのテキスト フィルタ式。フィルタはブール値に評価される必要があります。 構造化検索のブーストについては、検索結果をブーストするをご覧ください。

    次のような JSON レスポンスが返されます。レスポンスには、検索リクエストで設定されたフィールドによって決定された順序で並べられた項目別の検索結果が含まれます。