このページでは、ファセット機能の一部とその使用方法について説明します。
ファセットに関連する定義
このセクションでは、ファセットに関連するいくつかの用語の基本的な定義と説明について説明します。
ファセット: ファセット検索を実行するファセット仕様。結果をフィルタリングすることで、ユーザーが必要な情報を見つけやすくなります。たとえば、ユーザーが
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\"))
になることがあります。フィルタ式では大文字と小文字が区別されます。フィルタの詳細については、こちらのユーザーガイドをご覧ください。
動的ファセットについて
サービス構成で動的ファセットが有効な場合、Retail Search では、ファセットのクリックや表示などの過去のユーザーの行動に基づいて、この構成の検索結果の動的ファセットとして属性を自動的に使用できます。
動的ファセットが有効になっていない場合、サービス構成に対して動的ファセットが有効になりません。動的ファセットは、オプション enableDynamicPosition
=true
を指定してリクエストで渡すか、Retail Search モデルに従ってフェッチされます。その後、最も関連性の高い同じモデルによって上位にランキングします。
デフォルトでは、ほとんどのファセットキーはファセット可能です。API の動的ファセット設定は、Search for Retail コンソールのサイト全体の属性コントロールによって、選択した特定のファセットキーについて上書きできます。つまり、一部のファセットキーをファセット不可にするには、[Attribute
controls
] タブでこれらのキーごとに動的ファセットを無効にする必要があります。詳しくは、サイト全体の属性コントロールの管理をご覧ください。動的ファセットは、正確な商品カタログデータに基づいてのみ作成できます。ただし、この機能がサイトで最適に機能するように、ファセット モデルはサイトのアクティビティから学習する必要があります。このために、検索イベント アップロードのクエリ、カテゴリ、フィルタのフィールドを正確に設定する必要があります。
サービス構成で動的ファセットが有効になっておらず、動的ファセットを有効にしたばかりの場合は、動的ファセットが機能するまで 3~4 日お待ちください。
ファセット コントロール
このセクションでは、さまざまなタイプのファセット コントロールを作成する手順について説明します。
- ファセット値を無視するコントロール
- ファセット値を置換するコントロール
- ファセットを結合するコントロール
- 数値間隔を設定するコントロール
- ファセットを削除するコントロール
- ファセットを強制的に返すコントロール
- 動的ファセットのコントロールを再ランク付け
特に明記されていない限り、Vertex AI Search for Retail はこれらのすべてのファセット コントロールに対して大文字と小文字を区別するマッチングを実行します。
ファセット値を無視するコントロールを作成する
特定のファセットキーの不要なファセット値を削除する場合は、ファセット値を無視するコントロールを作成します。
このコントロールは、不要なファセット値(NA
や Not_applicable
など)の消去に役立ちます。ただし、10 月であれば、Easter
のような季節的な傾向を消去するためにも使用できます。
ファセット値を無視するコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[Ignore facet values] を選択します。
属性名を指定します。
たとえば、システム属性の場合は
brands
です。カスタム属性の場合、名前はattributes.
で始まります(例:attributes.department
、attributes.colors
)。省略可: [開始時間] と [終了時間] のいずれか、または両方を指定します。
1 つ以上の属性値を [値を無視] として指定します。
たとえば、
NA
、Not_applicable
、Easter
です。[送信] をクリックします。
ファセット値を置換するコントロールを作成する
複数の類似ファセット値を 1 つの用語に統合する場合は、ファセット値を置換するコントロールを作成します。
ファセット値の置換は、ファセット値の結合とも呼ばれます。
競合と不要なマッピングを避けるため、属性値 facet_value_1
を別の属性値 facet_value_2
に置き換えると、後者を別の属性値に置き換えることはできません。たとえば、ruby
を dark red
に置き換えると、dark red
を red
に置き換えることはできません。
各属性名について、[値を置き換える] フィールドに属性値を複数回指定することはできません。
ファセット値を置換するコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[Replace facet values] を選択します。
属性名を指定します。
この機能は、先頭が
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
という既存のカスタム ファセットキーに置き換えるとします。
ファセットを別のファセットに結合するコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、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 for Retail が計算する間隔ではなく、独自の間隔を指定する場合は、数値間隔を設定するコントロールを作成します。
間隔を追加するコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[数値間隔を設定する] を選択します。
数値属性の名前を指定します。
たとえば、システム属性の場合は
price
です。 カスタム属性の場合、名前はattributes.
で始まります(例:attributes.number_of_pieces
)。[最小] または [最大] の少なくとも 1 つを指定します。両方を指定する場合、最小値は最大値より大きな値にできません。各境界は、[Inclusive] または [Exclusive] に設定できます。
間隔を追加するには、[+ Add intervals] をクリックします。間隔の最大数は 40 です。
[送信] をクリックします。
ファセットを削除するコントロールを作成する
ファセットを削除するコントロールを使用すると、動的ファセットから特定のファセットキーを削除できます。ファセットキーは、特定のクエリ語句またはページカテゴリに基づいて削除されます。
このコントロールは、一部のクエリ語句または参照に対するファセットキーを削除する場合に役立ちます。たとえば、このコントロールを使用して、クエリ「靴」のファセットキー attributes.shoe_size
を削除できます。
ファセットを削除するコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[ファセットを削除] を選択します。
各コントロールは検索用または参照用ですが、両方に適用することはできません。次のいずれかを行います。
検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句と条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード
shirts
、polo
、jackets
、t-shirt
、fall coats
を指定できます。小文字のクエリがこれらのクエリ語句のいずれかである場合や、これらのクエリ語句のいずれかを単グラムとして含む場合、次に指定するファセットキーは動的ファセットとして表示されません。閲覧するには、[カテゴリを閲覧] をクリックし、ページカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。形式は、ユーザー イベントのページカテゴリと同じにする必要があります。たとえば、
page_categories
:Sales > 2023 Black Friday Deals
になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは動的ファセットとして表示されません。
[無視する属性] で少なくとも 1 つの有効なファセットキーを指定します。
[送信] をクリックします。
ファセットを強制的に返すコントロールを作成する
ファセットを強制的に返すコントロールは、特定のクエリや参照イベントに対する動的ファセットキーのリストの位置に影響を与えることがあります。
このコントロールは、一部のクエリ キーワードまたは参照に対する動的ファセットの中で、特定のファセットキーを強制的に表示する場合に役立ちます。たとえば、このコントロールを使用すると、ファセットキー brands
がクエリ handbags
の位置 10 以下になるように強制できます。ファセット brands
がこのクエリの動的ファセットに対してすでに上位 10 位に入っている場合は、あまり動きません。上位 10 位に入っていない場合や、動的ファセットのリスト内にない場合は、おおよそ 10 位の位置に移動します。
ファセットを強制的に返すコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[Force return facets] を選択します。
各コントロールは検索用または参照用ですが、両方に適用することはできません。次のいずれかを行います。
検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句と条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード
shirts
、polo
、jackets
、t-shirt
、fall coats
を指定できます。小文字のクエリがこれらのクエリ キーワードのいずれかである場合や、クエリ キーワードのいずれかが単グラムとして含まれている場合は、次に指定するファセットキーが動的ファセットのそれぞれの位置の周辺か上に表示されます。閲覧するには、[カテゴリを閲覧] をクリックし、ページカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。形式は、ユーザー イベントのページカテゴリと同じにする必要があります。たとえば、
page_categories
:Sales > 2023 Black Friday Deals
になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは、動的ファセットの中でそれぞれの位置の周辺か上に表示されます。
有効なファセットキーと 1~100 の整数位置を指定します。
複数のファセットキーを指定する場合は、[+ 調整を追加] をクリックして前の手順を再度行います。
[送信] をクリックします。
再ランク付けされた動的ファセット コントロールを作成する
動的ファセット ランキングは、クエリ(検索)またはページカテゴリ(参照)によって異なります。再ランキングの動的ファセット制御では、ユーザーが関与した一部のファセット値にランキングを行うこともできます。
たとえば、このコントロールを使用して、ユーザーが検索または参照後にファセットキー attributes.department
のファセット値 watches
を操作した場合、ランキングもファセット値 watches
によって異なります。ファセットキーで再ランキングするファセット値を指定できます。または、ファセットキーのみを指定してすべてのファセット値を再ランク付けすることもできます。
動的ファセットの再ランキングのコントロールを作成するには:
Search for Retail コンソールの [Controls] ページに移動します。
[ファセット コントロール] タブで、add_box [コントロールを作成] をクリックします。
[コントロールを作成する] ペインが開きます。
[動的ファセットを再ランク付け] を選択します。
有効なカスタム テキスト ファセットキーを指定します(すべてのカスタムキーには
attributes.
という接頭辞が付いています)。特定のファセット値を指定するか、すべてに適用できます。
すべてのファセット値を再ランク付けする場合は、[add_box任意の値の変更] をクリックします。
特定のファセット値を再ランキングする場合は、add_box [選択した値の変更] をクリックします。次に、再ランク付けするすべてのファセット値を挿入します(大文字と小文字は区別されます)。たとえば、
watches
、luggages
、bed
になります。
[送信] をクリックします。
次の理由により、ユーザーが関与したすべてのファセットキーをリクエストで渡す必要があります。ユーザーが売上を参照するとします。ユーザーには、提示されたファセットキーの最初のリストが表示されます。次に、ユーザーはファセット キー attributes.age_group
を最初に操作します。次に、ファセットキー attributes.department
をファセット値 watches
で処理し、再ランク付けするコントロールを設定します。その時点で、検索によりキーが再ランク付けされます。したがって、以前に対応したファセットキー attributes.age_group
がレスポンスで返されない場合があります。この鍵をリクエストで(enableDynamicPosition
を true
に設定した Facetspec を使用)渡すと、自動的に返されます。ただし、検索ではそのキーの位置 27 が返されるので、最初の 20 個のキーだけがユーザーに表示されるようになります。そのため、クライアント側で以前にやり取りしたこれらのキーがユーザーに表示されることを確認する必要があります(エンゲージメントされていない中間キーをいくつか除外しなければならない場合もあります)。ユーザーにキーを提供しすぎないようにする場合が該当します。