Empfehlungen filtern

Auf dieser Seite wird beschrieben, wie Sie Ergebnisse für Empfehlungen mithilfe von Produktattribute.

Sie können Vorhersageergebnisse filtern, indem Sie in der Vorhersage einen Filterausdruck angeben -Anfragen. Der Filterausdruck ist ein logischer Ausdruck, der für jedes Produkt ausgewertet wird. Die Liste der Produkte in der Antwort wird auf Produkte eingegrenzt, bei denen der Ausdruck zu „wahr“ führt.

Es gibt zwei Versionen des Filters für Empfehlungen:

  • Empfohlen wird Version 2.
  • Version 1 wird nicht mehr unterstützt, wird aber möglicherweise noch verwendet.

Die Abschnitte in dieser Anleitung beziehen sich nur auf Version 2 des Filters, filtert Empfehlungen mithilfe von Produktattributen.

Empfehlungsfilterung, Version 2

Bei Version 2 werden Produktattribute verwendet. Ausdrücke filtern basieren auf Produktattributen. Das können vordefinierte Systemattribute, wie categories und colors oder benutzerdefinierte Attribute wie attributes.styles Wenn Sie ein Produktattribut als „filterbar“ festlegen, können Empfehlungen diese Attribute dann automatisch als zum Filtern von Empfehlungen verwenden, statt manuell Filter-Tags hinzufügen.

Wenn Sie Attribute zum Filtern von Produkten verwenden, wird die Vorhersageantwort gibt Hauptprodukte zurück, die mindestens ein Hauptprodukt oder eine Produktvariante enthalten mit einem Attributwert, der dem Filter entspricht Ausdruck. Weitere Informationen zu Primärprodukten und Produktvarianten finden Sie unter Produktebenen:

Im folgenden Beispiel für einen Filterausdruck wird auch nach Rot und Blau Produkte mit der Kennzeichnung „Neu eingetroffen“ und nicht als eigenwerbung festgelegt ist:

colors: ANY("red", "blue") AND attributes.status: ANY("New-Arrival") AND NOT attributes.is_promotional: ANY("true")

Gehen Sie folgendermaßen vor, um Version 2 der Filterung für Empfehlungen zu verwenden: Verfahren. Die einzelnen Verfahren werden weiter unten auf dieser Seite beschrieben.

  1. Aktivieren Sie die Empfehlungsfilterung für ein Modell, für das gefilterte Empfehlungen ausgeliefert werden sollen.
  2. Aktivieren Sie die Filterung von Empfehlungen für Produktattribute, nach denen Sie filtern möchten.
  3. Filterbare Produktattribute in Vorhersageanfragen verwenden

Empfehlungsfilter, Version 1 (eingestellt)

Bei Version 1 werden manuell erstellte Filter-Tags verwendet. Filterausdrücke basieren auf auf Filter-Tags, die Sie allen Produkten in Ihrem den Sie filtern möchten.

Im folgenden Beispiel für einen Filterausdruck werden Filter-Tags verwendet, um Produkte anzugeben als "Rot" getaggt oder "Blue" sowie das Tag "New-Arrival" enthalten. mit dem Tag "Werbeaktion":

tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")

Weitere Informationen finden Sie in der API-Referenzdokumentation zum Feld Product.tags[].

Tag-Ausdrücke können die booleschen Operatoren OR oder NOT enthalten. Diese müssen von den Tag-Werten durch ein oder mehrere Leerzeichen getrennt sein. Den Tag-Werten können auch Bindestriche (-) vorangestellt werden. Dies entspricht dem Operator NOT. Tag-Ausdrücke, die boolesche Operatoren verwenden, müssen in Klammern stehen.

Neben Tags können Sie auch nach filterOutOfStockItems filtern. Das Flag filterOutOfStockItems filtert alle Produkte heraus, für die für stockState der Wert OUT_OF_STOCK gilt.

Sie können Tag-Filter und Filter für nicht auf Lager befindliche Artikel kombinieren, sodass nur Artikel zurückgegeben werden, die allen angegebenen Filterausdrücken entsprechen.

Beispiele für Filterstrings:

"filter": "tag=\"spring-sale\""
"filter": "filterOutOfStockItems"
"filter": "tag=\"spring-sale\" tag=\"exclusive\" filterOutOfStockItems"

Im folgenden Beispiel werden nur Artikel zurückgegeben, die auf Lager sind und entweder das Tag spring-sale oder das Tag exclusive (oder beides) und nicht das Tag items-to-exclude enthalten.

"filter": "tag=(\"spring-sale\" OR \"exclusive\") tag=(-\"items-to-exclude\") filterOutOfStockItems"

Kompatibilität von Attributfiltern und Tag-Filtern

Wenn ein Modell sowohl manuell erstellte Tags als auch filterbare Produktattribute hat, Vorhersageanfragen mit beiden Filterversionen bereitstellen. Es ist jedoch nicht können Sie die V1- und V2-Filterausdrücke in Vorhersageanfrage.

Einschränkungen bei der Filterung von Empfehlungen

Jedes filterbare Attribut beansprucht in jedem Ihrer Modelle etwas Arbeitsspeicher. Die Mit folgenden Limits lassen sich negative Auswirkungen auf die Auslieferungsleistung vermeiden:

  • Bis zu 10 benutzerdefinierte Attribute können in Ihrem Katalog als filterbar festgelegt werden.
  • Ihr Katalog enthält bis zu 100.000.000 filterbare Attributwerte.

    Die Gesamtzahl der Attributwerte in Ihrem Katalog kann folgendermaßen geschätzt werden: die Anzahl der Produkte in Ihrem Katalog mit der Anzahl der filterbaren Attribute.

    Wenn Sie beispielsweise einen Katalog mit 1.000 Produkten und 3 Attributen haben, die als filterbar festgelegt sind, kann die Gesamtzahl der Attributwerte auf 3 × 1.000 = 3.000 geschätzt werden.

    Wenn Sie die Empfehlungen der Version 1 zusammen mit der Version 2 verwenden, wird die Anzahl der Filter-Tags auf Ihr Kontingent angerechnet. Die Anzahl der Filter-Tags darf zusammen mit der Gesamtzahl der Attributwerte nicht mehr als 100.000.000 betragen.

Wenn Sie die Limits überschreiten, können Sie keine weiteren Attribute als filterbar festlegen. Wenn Sie diese Grenzwerte überschreiten müssen, Fordern Sie eine Kontingenterhöhung an.

Die Gesamtzahl der Tags wird während des Modelltrainings berechnet. Wenn die Gesamtzahl überschreitet das Limit, schlägt das Modelltraining fehl. Wenn mehr als 10 filterbare benutzerdefinierte werden während des Modelltrainings gefunden, nur 10 werden verwendet.

Syntax für Empfehlungsfilterausdruck

Die Syntaxen der Filterausdrücke für Such- und Empfehlungen ähnlich sind. Empfehlungen haben jedoch einige Einschränkungen.

Die Syntax des Filterausdrucks für Empfehlungen kann mit dem folgenden EBNF zusammengefasst werden:

  # A single expression or multiple expressions that are joined by "AND" or "OR".
  filter = expression, { " AND " | "OR", expression };

  # An expression can be prefixed with "-" or "NOT" to express a negation.
  expression = [ "-" | "NOT " ],
                    # A parenthesized expression
                    | "(", expression, ")"
                    # A simple expression applying to a textual field.
                    # Function "ANY" returns true if the field contains any of the literals.
                    ( textual_field, ":", "ANY", "(", literal, { ",", literal }, ")"

  # A literal is any double-quoted case sensitive string. You must escape backslash (\) and
  # quote (") characters. We do not support textual values containing `/` characters, or partial string matches.

  # The literal must be an exact match for products in the catalog. The Predict
  # API returns empty results when no possible matches exist.

  literal = double-quoted string;

  textual_field = see the tables below;

Einschränkungen der Filtersyntax

Folgende Einschränkungen gelten:

  • Die Einbettung von AND- und OR-Operatoren in Klammern ist auf eine bestimmte Tiefe begrenzt. Die logischen Ausdrücke im Filter müssen in konjunktiver Normalform (CNF) sein. Der komplexeste unterstützte logische Ausdruck kann eine AND-verbundene Liste von Klauseln sein, die nur OR-Operatoren enthalten, z. B.: (... OR ... OR ...) AND (... OR ...) AND (... OR ...)
  • Ausdrücke können mit dem Schlüsselwort NOT oder mit - negiert werden. Das funktioniert nur mit ANY()-Ausdrücken mit einem einzelnen Argument, die keine inventarbezogenen Attribute enthalten.
  • availability-basierte Einschränkungen müssen sich auf der obersten Ebene befinden. Sie können nicht als Teil einer OR-Klausel oder einer Negation (NOT) verwendet werden.
  • Da beim Standardfilter für Empfehlungen nur Textfelder unterstützt werden, Kleiner-als-, Größer-als- und Bereichsüberprüfungsvorgänge werden für Filterung standardmäßiger Empfehlungen. Vergleichsoperatoren können nur mit Bedingungen für die Funktion „Empfehlungen hervorheben/begraben“ verwendet werden, die einige numerische Felder unterstützen (siehe Unterstützte Felder für die Funktion „Empfehlungen hervorheben/begraben“).
  • Die maximale Anzahl von Begriffen in der AND-Klausel der obersten Ebene beträgt 20.
  • Eine OR-Klausel kann bis zu 100 Argumente enthalten, die in ANY()-Ausdrücken enthalten sind. Wenn eine OR-Klausel mehrere ANY()-Ausdrücke hat, werden ihre Alle Argumente werden auf dieses Limit angerechnet. colors: ANY("red", "green") OR colors: ANY("blue") hat beispielsweise drei Argumente.

Die folgende Tabelle enthält Beispiele für gültige Filterausdrücke sowie ungültige Beispiele und die Gründe für ihre Ungültigkeit.

Ausdruck Gültig Hinweise
colors: ANY("red", "green") Ja
NOT colors: ANY("red") Ja
NOT colors: ANY("red", green") Nein Negiert „ANY()“ mit mehr als einem Argument.
colors: ANY("red", "green") OR
categories: ANY(\"Phone > Android > Pixel\")
Ja
(colors: ANY("red") OR colors: ANY("green")) AND
categories: ANY(\"Phone > Android > Pixel\")
Ja
(colors: ANY("red") AND colors: ANY("green")) OR
categories: ANY(\"Phone > Android > Pixel\")
Nein Nicht in konjunktiver Normalform.
(colors: ANY("red")) AND (availability: ANY("IN_STOCK") Ja
(colors: ANY("red")) OR (availability: ANY("IN_STOCK")) Nein Kombiniert availability in einem OR-Ausdruck mit anderen Bedingungen.

Filterung nach Inventarattributen

Die Filterung nach Inventarattributen basiert auf dem Echtzeitstatus Ihrer Produkte. Beim Filtern mit availability: ANY("IN_STOCK") wird die Vorhersageantwort gibt Hauptprodukte zurück, bei denen das Hauptprodukt oder eine Produktvariante den übereinstimmenden Wert IN_STOCK hat. Weitere Informationen zu Primärprodukten und Produktvarianten finden Sie unter Produktebenen: Die Filterung nach Primary only oder Variant only wird nicht unterstützt.

IN_STOCK ist der einzige availability-Attributwert, der von Version 2 von unterstützt wird. Empfehlungen filtern.

Inventarbezogene Attribute können in AND-Klauseln verwendet werden, aber nicht in OR-Klauseln verwenden.

Unterstützte Felder

Die unterstützten Textfelder sind in der folgenden Tabelle zusammengefasst.

Das Hoch-/Herunterstufen von Empfehlungen unterstützt zusätzliche Felder, die werden beim Filtern nach Empfehlungen nicht unterstützt. Eine Liste mit zusätzliche Felder, die vom Hoch-/Herunterskalieren für finden Sie unter Unterstützte Felder zum Hoch-/Herunterskalieren.

Feld Beschreibung
„productId“ Die Produkt-ID (das letzte Segment von Product.name).
"brands" Die Product.brands.
„categories“ Die Product.categories.
„genders“ Die Audience.genders.
„ageGroups“ Die Audience.age_groups.
"colorFamilies" Die ColorInfo.color_families.
„colors“ Die ColorInfo.colors.
„sizes“ Die Product.sizes.
„materials“ Die Product.materials.
„patterns“ Die Product.patterns.
„conditions“ Die Product.conditions.
"attributes.key" Das benutzerdefinierte Textattribut im Produktobjekt. Ein Schlüssel kann ein beliebiger Schlüssel in der Zuordnung Product.attributes sein, wenn die Attributwerte in Textform vorliegen.

Hoch-/Herabstufungs unterstützte Felder

Für die Funktion „Bewerben“/„Begraben“ werden einige zusätzliche Felder unterstützt, die vom standardmäßigen Filtern von Empfehlungen nicht unterstützt werden, z. B. numerische Felder.

Zusätzlich zu den unter Unterstützte Felder aufgeführten Feldern werden für Empfehlungen mit „Boost“/„Bury“ die folgenden Felder unterstützt:

Textfelder

Feld description
„tags“ Product.tags[]. Benutzerdefinierte Tags, die mit dem Produkt.

Numerische Felder

Feld Beschreibung
„price“ PriceInfo.price. Der Preis des Produkts.
„discount“ Der Produktrabatt. Dieses Feld wird anhand des ursprünglichen Preises berechnet und Preisfeldwerte aus PriceInfo.
„rating“ Product.rating. Die Gesamtzahl der Bewertungen für das Produkt.
„ratingCount“ rating.ratingCount. Die Gesamtzahl der Bewertungen für das Produkt.

Filtern von Empfehlungen für ein Modell festlegen

Aktivieren Sie das Filtern von Empfehlungen mithilfe der Suchen Sie nach der Retail-Konsole oder der API-Ressource Models.

Über die Console können Sie ein neues Modell mit Filterung nach Empfehlungen erstellen aktiviert. Sie können diese Option auch für vorhandene Modelle aktualisieren.

Mit der API-Ressource Models können Sie ein neues Modell mit Empfehlungen erstellen Filter aktiviert oder aktualisieren Sie diese Einstellung für ein vorhandenes Modell mithilfe von models.Patch.

Wenn die Bereitstellungskonfiguration, die Vorhersagen zurückgibt, Kategorieabgleich aktiviert, Filter funktioniert nicht „Kategorien“ , da die Antwort nur Produktergebnisse zurückgibt die eine Kategorie mit dem Kontextprodukt teilen.

Filter für ein Modell über die Console festlegen

Wählen Sie in der Search for Retail Console beim Erstellen des Modells die Option Tags automatisch generieren aus, um die Empfehlungsfilterung für dieses Modell zu aktivieren.

Prüfe die Kompatibilität mit anderen Einstellungen wie diversity-level und category-match-level, da sich die Gesamteffekte kombinieren und die Filterung zuletzt erfolgt.

  • Wenn Sie beispielsweise regelbasierte diversity-level und category attribute filtering kombinieren, führt dies häufig zu einer leeren Ausgabe.
    • diversity-level=high-diversity zwingt das Modell, die maximalen Ergebnisse für dieselben Kategoriestrings zu begrenzen. Beispielsweise 1 Ergebnis für Kategorie 1, 1 Ergebnis für Kategorie 2 usw.
    • Beim Attributfilterung mithilfe von Kategoriemetadaten (Product.categories = ANY ("category2")) verwirft das Modell nicht übereinstimmende Elemente.
    • Die Endausgabe hat weniger als drei Ergebnisse.
  • Für das Modell similar-items enthält es bereits eine zusätzliche Kategorierelevanzerhöhung mit dem Standardwert category-match-level = relaxed-category-match. Wechseln Sie zu category-match-level=no-category-match, um das Verhalten zu deaktivieren und benutzerdefinierte Filterregeln zu verwenden.

Eine Anleitung zum Erstellen eines Empfehlungsmodell über die Console.

Diese Einstellung kann in der Console für vorhandene Modelle nicht aktualisiert werden. Verwenden Sie die API-Methode models.Patch, um diese Einstellung für ein Modell zu aktualisieren.

Filter für ein Modell mithilfe der API festlegen

Sie können das Filtern von Empfehlungen für ein Modell mit models.Create beim Erstellen eines neuen Modells oder models.Patch beim Aktualisieren eines vorhandenen Modells.

Wenn Sie das Filtern zulassen möchten, müssen Sie das Feld filteringOption für Ihr Modell festlegen. Dieses Feld ist Zulässige Werte sind:

  • RECOMMENDATIONS_FILTERING_DISABLED (Standard): Die Filterung ist für das Modell deaktiviert.
  • RECOMMENDATIONS_FILTERING_ENABLED: Filter ist für primäre Kampagnen aktiviert Produkte.

Mit dem folgenden curl-Beispiel wird ein neues Modell mit Empfehlungen erstellt Filter aktiviert.

curl -X PATCH \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_NUMBER" \
     --data "{
       'name': 'MODEL_NAME',
       'displayName': 'MODEL_DISPLAY_NAME',
       'type': 'home-page',
       'filteringOption': 'RECOMMENDATIONS_FILTERING_ENABLED',
     }" \
     "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/models"

Im folgenden Curl-Beispiel wird die Einstellung der Filteroption für ein vorhandenes Modell aktualisiert.

curl -X PATCH \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_NUMBER" \
     --data "{
       'filteringOption': 'RECOMMENDATIONS_FILTERING_ENABLED',
     }" \
     "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/models/MODEL_ID?updateMask=filteringOption"

Attribute als filterbar festlegen

Aktivieren Sie die Filterung nach Produktattributen, um empfohlene Produkte zu filtern die Sie in Filterausdrücken verwenden. Sie können diese Einstellung über die Suchen Sie nach der Retail-Konsole oder verwenden Sie die Attributes API-Ressource.

Machen Sie nicht mehr Attribute filterbar als nötig. Die Anzahl der filterbaren Attribute ist begrenzt.

Attribute über die Console als filterbar festlegen

Sie können ein Attribut in der Retail-Konsole auf der Seite „Steuerelemente“ als filterbar festlegen.

  1. Rufen Sie in der Search for Retail-Konsole die Seite Steuerelemente auf.

    Zur Seite „Einstellungen“

  2. Wechseln Sie zum Tab Attributsteuerungen.

    Auf diesem Tab wird eine Tabelle mit allen Produktattributen angezeigt, für die Sie websiteweite Steuerungen festlegen können.

  3. Klicken Sie auf Steuerelemente ändern.

  4. Setzen Sie Filterable (Filterbar) für das Produktattribut auf True.

  5. Klicken Sie auf Steuerelemente speichern.

Sie können das Attribut nach dem nächsten Modelltraining zum Filtern verwenden abgeschlossen ist.

Attribute mithilfe der API als filterbar festlegen

AttributesConfig ist eine Liste von Attributen für einen Katalog.

Legen Sie das Feld AttributesConfig.filteringOption für CatalogAttribute fest. Zulässige Werte für dieses Feld:

  • RECOMMENDATIONS_FILTERING_DISABLED (Standard): Filter ist deaktiviert für das Attribut.
  • RECOMMENDATIONS_FILTERING_ENABLED: Die Filterung ist für das Attribut aktiviert.

Im folgenden curl-Beispiel werden Ihre vorhandenen Produktattribute abgefragt.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_NUMBER" \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/attributesConfig"

Im folgenden curl-Beispiel wird das Produktattribut categories als filterbar festgelegt.

Wenn Sie ein vorhandenes Attribut aktualisieren, belassen Sie die ursprünglichen Werte des Attributs für indexableOption, dynamicFacetableOption und searchableOption so, wie sie im vorherigen Schritt angezeigt werden. Wenn das ausgewählte Attribut beim Rufen Sie attributesConfig wie im vorherigen Beispiel auf und verwenden Sie dann die Standardeinstellung wie im folgenden Beispiel gezeigt.

curl -X PATCH \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_NUMBER" \
     --data "{
        'name': 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/attributesConfig',
        'catalogAttributes': {
          'categories': {
            'key': 'categories',
            'indexableOption': 'INDEXABLE_ENABLED',
            'dynamicFacetableOption': 'DYNAMIC_FACETABLE_DISABLED',
            'searchableOption': 'SEARCHABLE_DISABLED',
            'recommendationsFilteringOption': 'RECOMMENDATIONS_FILTERING_ENABLED'
          }
        },
        'attributeConfigLevel': 'CATALOG_LEVEL_ATTRIBUTE_CONFIG'
     }" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/attributesConfig"

Sie können das Attribut nach dem nächsten Modelltraining zum Filtern verwenden abgeschlossen ist. Das dauert in der Regel mindestens acht Stunden.

Filterbare Attribute in einer Vorhersageanfrage verwenden

Nachdem Ihr Modell neu trainiert wurde, können Sie filterbare Produktattribute in Ihren Vorhersageanfragen verwenden.

Legen Sie den Wert des Anfrageparameters filterSyntaxV2 auf „wahr“ fest, um die Filterung von Empfehlungen für Version 2 zu aktivieren. Wenn der Parameter nicht festgelegt ist, wird nach Version 1 gefiltert. bleibt aktiv. Wenn ein Modell sowohl manuell erstellte Tags als auch filterbare Produktattribute hat, können Vorhersageanfragen mit beiden Filterversionen verarbeitet werden. Es ist jedoch nicht möglich, in derselben Vorhersageanfrage sowohl V1- als auch V2-Filterausdrücke anzugeben.

Im folgenden Beispiel für einen partiellen curl-Befehl wird filterSyntaxV2 auf „true“ gesetzt und ein Filterausdruck mit den Produktattributen colors und categories. In diesem Beispiel wird davon ausgegangen, dass colors und categories als filterbar festgelegt sind.

"params": {
  "filterSyntaxV2": true
},
"filter": "(categories: ANY(\"Phone > Android > Pixel\") OR colors: ANY(\"red\", \"green\")) AND (availability: ANY(\"IN_STOCK\"))"

Das folgende curl-Beispiel zeigt eine vollständige Vorhersageanfrage.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_NUMBER" \
     --data "{
        'userEvent': {
          'eventType': 'detail-page-view',
          'visitorId': 'VISITOR_ID',
          'productDetails': {
            'product': {
              'id': 'PRODUCT_ID'
            }
          }
        },
        'params': {
          'returnProduct': true,
          'filterSyntaxV2': true,
          'strictFiltering': true,
        },
        'filter': 'categories: ANY(\"xyz\")'
     }" \
     "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/placements/SERVING_CONFIG:predict"

Zusätzlich zu den Filtern kann die Bereitstellungskonfiguration Einstellung für die Diversifizierung kann sich auch auf die Anzahl der der von der Antwort zurückgegebenen Ergebnisse.