このページでは、ファセット機能の一部とその使用方法について説明します。
ファセットに関連する定義
このセクションでは、ファセットに関連するいくつかの用語の基本的な定義と説明を示します。
ファセット: ファセット検索を実行するファセットの仕様。結果をフィルタリングすることで、ユーザーが必要な情報を見つけやすくなります。たとえば、ユーザーが
shoes
を検索した場合、返されるファセットにはprice
、attributes.department
、attributes.colors
、attributes.size
などがあります。システム属性: 事前定義されたシステム属性は、商品に関する詳細情報を提供する既存の商品フィールドです。これには、
brand
、availability
、color
、size
などの事前定義された商品属性が含まれます。カスタム属性: カスタム属性は、Product.attributes フィールドを使用して定義する追加の属性です。たとえば、
style
、color
、department
などです。ファセットキー: これはファセットの名前です。たとえば、
attributes.department
やsizes
などです。ファセットキーは属性名に対応しています。たとえば、(商品)システム属性名sizes
はファセットキーsizes
に対応します。同様に、(商品)カスタム属性名department
はファセットキーattributes.department
に対応します(カスタム属性の場合、ファセットキーを取得するために、接頭辞attributes.
がカスタム属性名に追加されます)。属性名、ファセットキー、ファセット名は同じ意味になります。ファセット値: テキストキーの場合、これはファセットのテキスト値の 1 つです。たとえば、テキスト ファセットキー
brands
にはAsics
やNike
のようなテキスト値を含めることができます。数値キーの場合、ファセット値はインターバルです。たとえば、数値ファセット鍵の料金には [20, 30) という形式のインターバルがある可能性があります。属性またはファセットのタイプ: テキストまたは数値のいずれかです。
固定されたファセット: これはオプション enableDynamicPosition
=false
を指定してFacetSpec
を使用し、リクエストで渡すファセットです。ファセットは、レスポンスのすべての動的ファセットの前に、元の順序で表示する必要があります。動的ファセット: これらは Retail Search がランク付けするファセットです。これらは、オプション
enableDynamicPosition
=true
を指定してリクエストで渡すか、Retail Search モデルに従ってフェッチされます。その後、最も関連性の高い同じトレーニング済みモデルによって上位にランキングします。ファセット可能、動的ファセット、タイル構成可能: 動的ファセットに対して属性が有効になっている場合、Retail Search は、過去のユーザーの行動(ファセットのクリックや表示など)に基づいて、この属性を動的ファセットとして自動的に使用できます。属性の動的ファセットを有効にするには、その属性のインデックス登録も有効にする必要があります。
フィルタ: フィルタ構文は、フィルタ対象となる商品の 1 つ以上のフィールドから述語を生成するための式言語で構成されます。たとえば、ユーザーがファセットキー
attributes.brands
のファセット値Asics
を操作した場合、フィルタの一部は(attributes.brands:ANY(\"Asics",\"Nike\"))
になります。フィルタ式では大文字と小文字が区別されます。このフィルタの詳細については、ユーザーガイドをご覧ください。
動的ファセットとタイルについて
サービス構成で動的ファセットが有効な場合、検索では、ファセットのクリックや表示などの過去のユーザーの行動に基づいて、この構成の検索結果の動的ファセットとして属性を自動的に使用できます。動的ファセットは、オプション enableDynamicPosition
=true
を指定してリクエストで渡すか、Retail Search モデルに従ってフェッチされます。その後、最も関連性の高い同じモデルによって上位にランキングします。
デフォルトでは、ほとんどのファセットキーはファセット可能です。API の動的ファセット設定は、小売向け検索コンソールのサイト全体の属性コントロールで、選択した特定のファセットキーに対して上書きできます。つまり、一部のファセットキーをファセット不可にするには、[Attribute
controls
] タブでこれらのキーごとに動的ファセットを無効にする必要があります。詳細については、サイト全体の属性コントロールを管理するをご覧ください。
動的ファセットとタイルは、正確な商品カタログデータに基づいてのみ作成できます。ただし、この機能がサイトで最適に機能するように、ファセット モデルはサイトのアクティビティから学習する必要があります。このために、検索イベント アップロードのクエリ、カテゴリ、フィルタのフィールドを正確に設定する必要があります。
サービス構成で動的ファセットとタイルが有効になっておらず、動的ファセットとタイルを有効にしたばかりの場合は、動的ファセットとタイルが機能するまで 3~4 日お待ちください。
ファセット コントロール
このセクションでは、さまざまなタイプのファセット コントロールを作成する手順について説明します。これらのコントロールの多くは、タイルの動作も制御します。
- ファセットとタイルの値を無視するコントロール
- ファセットとタイルの値を置換するコントロール
- ファセットを統合するコントロール
- 数値間隔を設定するコントロール
- ファセットとタイルを削除するコントロール
- ファセットを強制的に返すコントロール
- 動的ファセットを再ランク付けするコントロール
特に明記されていない限り、小売業向け Vertex AI Search ではこれらのすべてのファセット コントロールで大文字と小文字が区別されます。
特定のファセット値とタイル動作を制御するには、小売向け検索コンソールの [ファセット コントロール] タブに移動します。
[コントロールの作成] をクリックして、検索から返されるファセットを変更します。[コントロールの作成] ペインが開きます。[コントロール タイプ] フィールドをクリックしてプルダウン メニューを開き、コントロールのタイプを選択します。それぞれにつき、ファセットを制御するためのオプションを含むダイアログが開きます。すべてのファセットのコントロール タイプには、少なくとも属性情報が必要ですが、フォームによって必要な情報は若干異なります。
ファセット値とタイル値を無視するコントロールを作成する
特定のファセットキーとタイルキーの不要なファセット値とタイルの値を削除する場合は、ファセット値とタイル値を無視するコントロールを作成します。
このコントロールは、不要なファセット値やタイル値(NA
や Not_applicable
など)を消去する場合に役立ちます。ただし、10 月であれば、Easter
のような季節的な傾向を消去するためにも使用できます。
ファセット値とタイル値を無視するコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[ファセットとタイルの値を無視する] を選択します。
属性名を指定します。
たとえば、システム属性の場合は
brands
です。 カスタム属性の場合、名前はattributes.
で始まります(例:attributes.department
、attributes.colors
)。省略可: [開始時間] または [終了時間] を指定します。
1 つ以上の属性値を [値を無視] として指定します。
たとえば、
NA
、Not_applicable
、Easter
です。[送信] をクリックします。
ファセット値とタイル値を置換するコントロールを作成する
複数の類似ファセット値とタイル値を 1 つに統合する場合は、ファセット値とタイル値を置換するコントロールを作成します。
ファセット値とタイル値の置換は、ファセット値とタイル値の結合とも呼ばれます。
競合や無駄なマッピングを回避するため、属性値 facet_value_1
が別の属性値 facet_value_2
に置き換えられた場合、後者は別の属性値に置き換えられません。たとえば、ruby
を dark red
に置き換えた場合、後で dark red
を red
に置き換えることはできません。
各属性名について、[値を置き換える] フィールドに属性値を複数回指定することはできません。
ファセット値とタイル値を置換するコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[ファセットとタイルの値を置換する] を選択します。
属性名を指定します。
この機能は、
attributes
で始まるカスタム属性(attributes.department
、attributes.colors
など)でのみ機能します。1 つ以上の属性値を [値を置換] として指定します(例:
RED
、Red
、dark red
、bright red
、ruby
、crimson
)。属性値は [値を置換] フィールドに 1 回だけ指定できます。
単一の属性値を [代替語句] として指定します(例:
red
)。[送信] をクリックします。
置き換えられた値はすぐに消える可能性がありますが、代替語句の表示には最大 4 日かかる場合があります。
ファセット値を置き換えるコントロールが有効になったときに、レスポンスでファセットキー(この例では attributes.colors
)が返されると、置換されたファセット値(dark red
や crimson
など)はファセット値として存在しなくなります。これらは代替語句(red
など)に置き換えられます。
ファセットを結合するコントロールを作成する
製品が Retail Search のデータベースに取り込まれる前に、製品のカスタム属性の名前と値を正しく設定することをおすすめします。ただし、カスタム属性名を変更できない場合は、ファセットを結合するコントロールを作成できます。ファセットを別のファセットと統合(置換)する場合は、ファセットを結合するコントロールを作成します。たとえば、attributes.colors_jeans
、attributes.colors_clothes
、attributes.colors_hue
などの色のカスタム ファセットキーが複数あり、attributes.colors
という既存のカスタム ファセットキーに置き換えるとします。
結合されたキーは、次のようにする必要があります。
- 永続的で、タイプが変更されないカスタム属性名。
- 取り込まれた多くの商品の属性名。
結合されたキーを削除すると、動的ファセットモデルのトレーニングに使用されるエンゲージメント データが失われます。
各商品のインデックス登録中に、キーと結合されたキーの両方が属性名として含まれます。ただし、商品ごとに許可される属性の最大数を超えた場合は、キーと結合されたキーの両方が属性名として含まれます。属性の最大数が商品ごとに許可される割り当てを超えると、属性名になる結合されたキーが任意に切り捨てられます。
たとえば、特定の商品のカスタム属性名の最大数がすでに設定されており、そのカスタム属性名の 1 つが colors_jeans
であるとします。ファセット統合コントロールを使用して attributes.colors_jeans
を attributes.colors
に結合するとします。この場合、属性名 colors
には製品あたりのカスタムキーの最大数がすでに含まれているため、この特定の商品には追加されません。結合されたキーは商品の(カスタム)属性名から削除されませんが、動的ファセットキーとして返されません。同様に、同じキーを持つ複数のキーを結合し、結合されたキーの属性値の数が許可された属性値の制限を超えた場合、Retail Search によって属性値が任意に切り捨てられます。
ファセットを別のファセットに結合するコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[ファセットを統合] を選択します。
別のファセットに結合する有効なカスタム ファセットキーを指定します。
この機能は、
attributes
で始まるカスタム属性(attributes.colors_clothes
、attributes.colors_jeans
など)でのみ機能します。有効なカスタム ファセットキーを結合キーとして指定します。
[送信] をクリックします。
このコントロールが有効になるまで、通常、2 ~ 4 日かかります。
数値間隔を設定するコントロールを作成する
数値間隔を設定するコントロールを使用すると、計算された間隔を受け入れる代わりに、数値ファセットの間隔を決定できます。
たとえば、Retail Search はカスタムの数値ファセットキー attributes.monitor_size
に対して、間隔 [10,15)、[15,20) [20,25)、[25,30)、[30,40)、[40,50)、[50,infinity] で計算する可能性があります。しかし、間隔 [0,14)、[14,17)、[17,21)、[21,24)、[24,27)、[27,32)、[32,infinity] が好ましい場合があります。
算出間隔と設定間隔について
すべての数値カスタム属性と数値システム属性 price
、rating
、ratingCount
について、Retail Search では、すべての(数値)属性値の分布に基づいて、端数を丸めた境界があるいくつかの間隔が計算されます。リクエストで間隔を指定することもできます。最後のオプションとして、次の数値間隔を設定するコントロールを使用して、各数値ファセットキーに独自の間隔を設定できます。
使用する間隔を決定する優先順位は次のとおりです。
まず、数値ファセットキーのリクエストで一部の間隔が指定された場合、これらの間隔は保持されます。
数値ファセットキーのリクエストで間隔が指定されず、数値ファセットキーが動的か、間隔なしでリクエストに渡された場合、数値間隔を設定するコントロールを使用して含めた間隔は、これらの間隔が空でなければその数値ファセットキーに追加されます。
上記以外の場合は、前述の端数を丸めた境界がある計算された間隔が追加されます。
コントロールを作成する
数値ファセットキーとタイルキーに、小売業向け Vertex AI Search が計算した数値ではなく、独自の間隔を指定する場合は、数値間隔を設定するコントロールを作成します。
間隔を追加するコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[数値ファセットとタイルのインターバルを設定する] を選択します。
数値属性の名前を指定します。
たとえば、システム属性の場合は
price
です。 カスタム属性の場合、名前はattributes.
で始まります(例:attributes.number_of_pieces
)。[最小] または [最大] の少なくとも 1 つを指定します。両方を指定する場合、最小値は最大値より大きな値にできません。各境界は、[Inclusive] または [Exclusive] に設定できます。
インターバルを追加するには、[add_box+ インターバルを追加] をクリックします。インターバルの最大数は 40 です。
[送信] をクリックします。
ファセットとタイルを削除するコントロールを作成する
ファセットを削除するコントロールを使用すると、動的ファセットから特定のファセットキーとタイルキーを削除できます。ファセットキーとタイルキーは、特定のクエリ語句またはページカテゴリに基づいて削除されます。
このファセット コントロール タイプは、属性自体を制御します。このファセット コントロール タイプが適用されている場合、このファセットにメンバーとして関連付けられているファセットやタイルは検索結果に返されません。
このコントロールは、一部のクエリ語句または参照に対するファセットキーとタイルキーを削除する場合に役立ちます。たとえば、このコントロールを使用して、クエリ「靴」のファセットキー attributes.shoe_size
を削除できます。
ファセットまたはタイルを削除するコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。[コントロールの作成] ペインが開きます。
[ファセットとタイルを削除する] を選択します。
各コントロールは検索またはブラウジング用ですが、両方に適用することはできません。次のいずれかを行います。
検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句と条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード
shirts
、polo
、jackets
、t-shirt
、fall coats
を指定できます。小文字のクエリがこれらのクエリ語句のいずれかである場合や、これらのクエリ語句のいずれかを単グラムとして含む場合、次に指定するファセットキーは動的ファセットとして表示されません。ブラウジングの場合は、[カテゴリを表示] をクリックして、ページのカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。フォーマットは、ユーザー イベントのページのカテゴリと同じにする必要があります。たとえば、
page_categories
:Sales > 2023 Black Friday Deals
になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは動的ファセットとして表示されません。
[無視する属性] で、有効なファセットキーを 1 つ以上指定します。
[送信] をクリックします。
ファセットを強制的に返すコントロールを作成する
ファセットを強制的に返すコントロールは、特定のクエリや参照イベントに対する動的ファセットキーのリストの位置に影響を与えることがあります。
このコントロールは、一部のクエリ キーワードまたは参照に対する動的ファセットの中で、特定のファセットキーを強制的に表示する場合に役立ちます。たとえば、このコントロールを使用して、クエリ handbags
に対してファセットキー brands
を 10 以下の位置に表示できます。ファセット brands
がこのクエリの動的ファセットに対してすでに上位 10 位に入っている場合は、あまり動きません。上位 10 位に入っていない場合や、動的ファセットのリスト内にない場合は、おおよそ 10 位の位置に移動します。
ファセットを強制的に返すコントロールを作成するには:
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[Force return facets] を選択します。
各コントロールは検索またはブラウジング用ですが、両方に適用することはできません。次のいずれかを行います。
検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句と条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード
shirts
、polo
、jackets
、t-shirt
、fall coats
を指定できます。小文字のクエリがこれらのクエリ キーワードのいずれかである場合や、クエリ キーワードのいずれかが単グラムとして含まれている場合は、次に指定するファセットキーが動的ファセットのそれぞれの位置の周辺か上に表示されます。ブラウジングの場合は、[カテゴリを表示] をクリックして、ページのカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。フォーマットは、ユーザー イベントのページのカテゴリと同じにする必要があります。たとえば、
page_categories
:Sales > 2023 Black Friday Deals
になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは、動的ファセットの中でそれぞれの位置の周辺か上に表示されます。
有効なファセットキーと 1~100 の整数位置を指定します。
複数のファセットキーを指定する場合は、[add_box調整を追加] をクリックして再度前の手順で操作します。
[送信] をクリックします。
動的ファセットを再ランク付けするコントロールを作成する
動的ファセットのランク付けは、クエリ(検索)またはページのカテゴリ(ブラウジング)によって異なります。動的ファセットの再ランク付けコントロールを使用すると、ユーザーが操作した一部のファセット値に応じてランク付けを変更することもできます。
たとえば、このコントロールを使用して、ユーザーが検索または参照後にファセットキー attributes.department
のファセット値 watches
を操作した場合、ランキングもファセット値 watches
によって異なります。再ランク付けするファセット値をファセットキーで指定することも、ファセットキーのみを指定して、そのファセット値すべてで再ランク付けすることもできます。
動的ファセットを再ランク付けするコントロールを作成する
小売向け検索コンソールの [コントロール] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[動的ファセットを再ランク付けする] を選択します。
有効なカスタムテキスト ファセットキーを指定します(すべてのカスタムキーには接頭辞
attributes.
が付いています)。特定のファセット値を指定することも、すべてに適用することもできます。
すべてのファセット値を再ランク付けする場合は、add_box [すべての値の変更] をクリックします。
特定のファセット値を再ランキングする場合は、add_box [選択した値の変更] をクリックします。次に、再ランク付けするファセット値をすべて挿入します(大文字と小文字が区別されます)。たとえば、
watches
、luggages
、bed
になります。
[送信] をクリックします。
ユーザーが操作したすべてのファセットキーをリクエストで渡す必要があります。理由は次のとおりです。
- ユーザーがセールをブラウジングして、表示された最初のファセットキーのリストを取得したとします。
- 次に、ユーザーがファセットキー
attributes.age_group
を操作します。 - 次に、ファセット値
watches
を使用してファセットキーattributes.department
を操作します。このファセット値に対して、再ランクのためのコントロールを設定します。
この時点で、検索はキーのランク付けを再調整します。
そのため、以前にエンゲージされたファセットキー attributes.age_group
がレスポンスで返されない可能性があります。このキーをリクエストで渡す(enableDynamicPosition
を true
に設定した Facetspec
を使用して)と、レスポンスで自動的に返されます。
ただし、検索でそのキーが 27 番目の位置で返された場合、最初の 20 個のキーのみがユーザーに表示される可能性があります。そのため、以前にユーザーが操作したこれらのキーがユーザーに表示されることを確認してください。ユーザーにキーを提供しすぎないようにする場合は、エンゲージメントされていない中間キーをいくつか除外しなければならない場合もあります。