このページでは、カタログ情報の作成とカタログ データの入力に関するベスト プラクティスについて説明します。
概要
小売業向け Vertex AI Search にインポートするカタログデータは、結果として得られるモデルの品質に直接影響するため、検索とレコメンデーション結果の品質に影響します。一般に、提供できる正確で特定のカタログ情報が多いほど、モデルの品質が高くなります。
カタログを最新の状態に保つ必要があります。カタログの変更は必要に応じて何度でもアップロードできます。変更頻度が高いカタログの場合は、毎日アップロードするのが理想的です。既存の商品アイテムをアップロード(パッチ適用)できます。この場合、変更されたフィールドのみが更新されます。カタログ情報のアップロードは無料です。詳細については、カタログを最新の状態に保つをご覧ください。
カタログのブランチ
検索を使用する場合、カタログ ブランチを使用して、サイトでライブにする前にオフラインでアップロードした新しいデータをテストできます。
最大 3 つのブランチ(0
、1
、2
)を使用できます。ライブサイトのカタログデータは default_branch
を参照しています。setDefaultBranch
または Search for Retail コンソールの [データ] タブを使用して、公開中の default_branch
のブランチを指定します(デフォルトではブランチ 0
に設定されます)。次に、default_branch
が指すブランチによって提供されるカタログデータを使用します。
たとえば、default_branch
がブランチ ID 0
に設定されていると、サイトではそのブランチにアップロードしたカタログデータを使用します。新しいカタログデータをブランチ 1
にアップロードしてプレビューできます。カタログが正しくアップロードされていることを確認したら、ブランチ 1
をライブ default_branch
として切り替えることができます。
カタログ キャッシュは、ブランチの切り替え後、更新されるまでに最大 30 分を要する場合があります。
レコメンデーションを使用する場合は、ブランチ切り替え時の更新の遅延のために、デフォルトのブランチのみを使用することをおすすめします。ブランチ間のデータの差異が大きい場合、更新の遅延が予測結果に悪影響を及ぼす可能性があります。
サービス
カタログは、商品オブジェクトのコレクションです。
必須の商品情報
次のフィールドは必須です。カタログに商品アイテムを作成するときに、値を指定する必要があります。また、内部商品データベースで使用されている値に対応している必要があります。これらの値はモデルのトレーニングで使用されるため、表される商品を正確に反映する必要があります。
他のフィールドも必要になることがあります。Product
リファレンス ページで、すべての商品フィールドの完全なリストをご覧ください。
提供するすべての商品情報は、最適化案と検索結果の品質向上に使用できます。できるだけ多くの項目を入力してください。
項目 | 注 |
---|---|
name
|
商品の完全で一意のリソース名。import を除くすべての Product メソッドに必須です。インポート時に、名前は自動的に生成されます。手動で指定する必要はありません。
|
id
|
商品データベースで使用される商品 ID。ID フィールドはカタログ全体で一意である必要があります。ユーザー イベントを記録する場合に同じ値が使用されます。また、predict メソッドと search メソッドによって同じ値が返されます。 |
title
|
商品データベースの商品タイトル。UTF-8 でエンコードされた文字列。1250 文字以内で指定します。 |
categories
|
商品カテゴリすべての商品に少なくとも 1 つのカテゴリを割り当てる必要があります。
商品が複数のカテゴリに属している場合は、カテゴリごとにフィールドを繰り返します。値は、長さが 5,000 文字以内の空でない UTF-8 エンコード文字列にする必要があります。完全なカテゴリパスを常に指定します(例: ["Sports & Fitness > Athletic Clothing > Shoes"] )。 |
プロダクト属性
Product
の事前定義されたシステム属性(ブランド、色、サイズなど)に値を指定することを強くおすすめします。Product.attributes
で定義したカスタム属性を含めることもできます。
取得可能なフィールド
検索を使用している場合、Product.retrievableFields
で属性を取得可能としてマークすると、検索レスポンスの商品に属性が含まれます。これらは、フィルタリングやファセットなどの他の検索機能に使用できます。
完全一致検索オプション
特定の文字列クエリの値を、完全一致検索オプション(カタログ属性フィールド)に指定できます。クエリがカタログ内の商品と一致し、そのフィールドの値がクエリで指定された文字列である場合、検索クエリでその商品が正確に返されます。このオプションは、お客様がターゲット検索を期待しているシリアル番号に適しています。
正確な値(ModelId
や ManufacturerId
など)を持つ商品属性に便利なフィールドです。ExactSearchableOption
フィールドは通常、カスタム属性に使用します。product_id などの属性はメインのインデックス フィールドであり、デフォルトでは完全一致検索が可能です。完全一致の場合、item_id
フィールドは常にオンになり、無効にすることはできません。
- 検索で関連性のないアイテムが返されないように、検索可能オプションを
battery
などの汎用値に設定しないでください。 - 検索クエリの配信不足を回避するには、
tag
などの特殊なフィールド(文字列値の 1 つとして「iphone」が含まれる可能性があるフィールド)を完全一致検索可能に設定しないでください。これにより、商品カタログ内のすべての iPhone の結果が制限される可能性があります。
詳しくは、商品属性についてをご覧ください。
商品レベル
商品の SKU の指定によって、カタログの階層が決まります。
商品の指定の種類
商品の指定には次の 3 種類があります。
プライマリ アイテムは、レコメンデーションまたは検索結果で返されます。プライマリには、個別(SKU レベル)のアイテムと類似アイテムのグループ(SKU グループ)を指定できます。
バリアント アイテムは、SKU グループのプライマリ商品のバージョンです。バリアントは個々(SKU レベル)のアイテムのみになります。たとえば、プライマリ商品が「V ネックシャツ」の場合、バリアントは「ブラウンの V ネックシャツ、サイズ XL」と「ホワイトの V ネックシャツ、サイズ S」になることがあります。プライマリとバリアントは、親アイテムと子アイテムとして説明されることがあります。
コレクション アイテムは、ネックレス、イヤリング、リングを含むジュエリー セットなど、プライマリ商品またはバリアント商品のバンドルです。商品やバリエーションに似た階層構造で、コレクションは関連するメイン商品をグループ化します。ユーザーは直接購入できず、広く使用されておらず、検索でのみ利用できます。
商品の例
たとえば、これらの商品の指定タイプに従い、食品アイテムはプライマリ商品としてカタログに登録することをおすすめします。各商品は 1 つの SKU 商品("bananas, fresh"
など)で構成されます。
一方、T シャツは、プライマリと対応するバリアントのセットとして階層的に構造化することをおすすめします。各バリアントは個々の SKU(サイズごとに 1 つ)を表し、各プライマリ アイテムは SKU のグループを表します。各 SKU は、1 つの包括的な T シャツ スタイルの異なるサイズです。SKU 構造によるこの編成により、検索結果とおすすめのパネルにさまざまな T シャツのスタイルを表示できます。購入者は、特定のプライマリ(スタイル)をドリルダウンして、購入するバリエーション(サイズ)を選択できます。
コレクションは、ユーザーが購入する可能性のある関連商品をグループ化します。Vertex AI Search for Retail には、再ランク付けモデルでそれらを正確に表すためのロジックがあり、購入のクレジットを付与します。たとえば、買い物客がベッドシーツセットの商品をクリックし、そのコレクションのメイン商品をカートに追加または購入した場合です。コレクションはその購入の貢献度を獲得し、モデルはコレクションの人気と価値を正確に表します。
また、バリアントのみのカタログタイプも存在しますが、非推奨化されました。このカタログタイプはレコメンデーションでのみ使用できます。バリアントのみのカタログの場合、インポート時に ingestionProductType
が variant
に設定されます。プライマリは、各バリエーションに指定されたプライマリ プロダクト ID に基づいて、各バリエーションについて推論されます。
商品カタログを設定する
商品カタログを計画する際は、プライマリのみ、プライマリとバリアント、またはその両方の組み合わせとして指定する商品を決定する必要があります。商品の SKU 構造について考えてみましょう。商品はプライマリ アイテムにすることができます。プライマリ アイテムにはバリエーションがある場合とない場合があります。
商品 SKU の指定方法に基づいて、商品カタログの設定方法を検討してください。
- SKU を個別の検索結果またはおすすめとして表示する: SKU=primary
- SKU は類似 SKU のグループに属している必要があります: SKU=バリアント、SKU のグループ=プライマリ
両方の組み合わせの組み合わせ: SKU=プライマリ、SKU=バリアント、SKU のグループ=プライマリ
商品の詳細ページにオプション/サイズ/色の選択ツールが表示されている場合、通常、これらのオプションはバリエーションとして商品カタログにアップロードされます。サイズや色などの属性が異なる同じ商品の種類を、1 つの検索結果として表示するか、別々の検索結果として表示するかを検討します。たとえば、書籍の場合、同じ書籍のハードカバー SKU とソフトカバー SKU を個別の検索結果として表示するか(SKU = プライマリ)、1 つとして表示するか(SKU = バリアント、SKU のグループ = プライマリ)を決定します。
商品カタログを設定する際は、レコメンデーションと検索結果ではプライマリ アイテムのみが返されることに注意してください。
最小限のプライマリ プロダクト
カタログにプライマリとバリアント(SKU グループと SKU)の両方が必要であるものの、現時点で SKU しかない場合は、SKU グループ用のプライマリを作成する必要があります。これらのプライマリは「仮想プライマリ」または「偽のプライマリ」と呼ばれることもあります。
これらのプライマリには、最小限の情報(id
、title
、categories
)のみを含める必要があります。
type
が指定されていない場合、プロダクト タイプはデフォルトでプライマリになります。インポートする場合は、name
を指定する必要はありません。詳細については、前のセクションの必要な商品情報をご覧ください。
タイプは不変です
商品のタイプ(バリエーションからメイン、メインからバリエーションなど)を変更することはできません。
商品のタイプを変更する必要がある場合は、商品を削除して、別のタイプで商品を再作成します。メインの商品を削除する前に、関連するバリエーションを削除する必要があります。
カタログのインポート
Merchant Center にカタログがある場合は、Merchant Center アカウントをリンクして、カタログをインポートすることをおすすめします。
カタログが Merchant Center ではなく、Cloud Storage、BigQuery、またはその他のストレージにある場合は、一括データ インポートを行います。
将来的に Merchant Center からカタログデータをインポートする場合は、Merchant Center のインポートの説明に従ってデータを確認し、カタログに関する正しい選択を行ってください。これは、既存のカタログの構成を変更するには、カタログを削除してもう一度アップロードする必要があるため重要です(商品レベルの構成を変更するをご覧ください)。
カタログをアップロードする方法について詳しくは、カタログ情報をインポートするをご覧ください。
商品在庫
商品在庫には以下が含まれます。
価格(現在の価格と元の価格の両方)
在庫状況(在庫あり、在庫なし、入荷待ち、予約済みなど)
在庫数
フルフィルメント情報(店舗受け取り、店舗宛て出荷、翌日配送など)
在庫には、商品レベルとローカル レベルの 2 つのレベルがあります。
商品レベルの在庫
オンラインでのみ販売する小売業者の場合、在庫は商品レベルで指定されます。 価格、在庫状況、その他の在庫データは、カタログ内の各商品に設定されます。
在庫データの保守方法など、商品レベルの在庫の詳細については、小売業向け Vertex AI Search の在庫を更新するをご覧ください。
ローカル在庫
実店舗とオンライン ショップの両方を運営する小売業者は、店舗ごとに在庫情報を保持する必要があります。ローカル在庫を使用します。
ローカル在庫の保存に使用できる商品フィールドは 2 つあります。どちらのフィールドにも、関連する在庫情報を含むロケーション(場所 ID)のリストが含まれます。
Product.fulfillmentInfo。店舗の場所ごとの受け取りと配送方法
Product.localInventories。 店舗の場所ごとの価格情報、商品属性、受け取り方法、配送方法
店舗レベルの情報には、これらのいずれかまたは両方のフィールドを使用します。
ローカル在庫の詳細については、小売業向け Vertex AI Search のローカル在庫を更新するをご覧ください。
カタログのデータ品質指標
Search for Retail コンソールの [データ品質] ページでは、検索結果の品質を向上させ、検索パフォーマンス層のロックを解除するために、カタログデータを更新する必要があるかどうかを評価します。
次の表は、小売業向け Vertex AI Search が商品データの評価に使用するための品質指標を示しています。Search for Retail コンソールでデータ品質指標と検索パフォーマンス階層を表示する方法については、検索パフォーマンス階層をロック解除するをご覧ください。
カタログの品質指標 | 品質ルール | 注 |
---|---|---|
URI が存在し、アクセス可能である | 商品に有効な Product.uri がある。URI はアクセス可能で、ドメインと一致している必要があります。 |
検索では、この URI を使用してクロールされたウェブシグナルを使用して、検索品質を向上させています。 |
時間の適合性を満たしている | Product.availableTime は現在の時刻より前であり、Product.expireTime は現在の時刻より後です。 |
検索できるのは、時間の適合性を満たす商品のみです。 |
検索可能な属性が存在する | 商品で少なくとも 1 つの attribute が検索可能に設定されています。 |
検索可能とマークされたカスタム属性は、テキストクエリで検索できます。 |
説明がある | 商品の Product.description が空ではありません。 |
包括的な説明は検索品質の向上に役立ちます。 |
タイトルは 2 単語以上で構成されている | Product.title が 2 単語以上で構成されています。 |
包括的なタイトルは検索品質の向上に役立ちます。 |
画像のあるバリアントがある | variant 商品には少なくとも 1 つの Product.image があります。すべての商品が primary レベルであれば、この指標は無視してかまいません。 |
この指標は参考情報であり、検索品質には影響しません。 |
価格情報ありのバリアントがある | variant 商品で Product.priceInfo が設定されています。すべての商品が primary レベルであれば、この指標は無視してかまいません。 |
この指標は参考情報であり、検索品質には影響しません。 |
小売業向け Vertex AI Search の商品スキーマ
BigQuery からカタログをインポートするときは、以下の小売業向け Vertex AI Search 商品スキーマを使用して、正しい形式の BigQuery テーブルを作成し、カタログデータとともに読み込みます。それから、カタログをインポートします。