Auf dieser Seite wird beschrieben, wie Sie Ergebnisse für Empfehlungen mithilfe von Produktattributen filtern.
Sie können Vorhersageergebnisse filtern, indem Sie in Vorhersageanfragen einen Filterausdruck angeben. Der Filterausdruck ist ein logischer Ausdruck, der für jedes Produkt ausgewertet wird. Die Liste der Produkte in der Antwort wird auf Produkte beschränkt, für die der Ausdruck „true“ ergibt.
Es gibt zwei Versionen des Filterns für Empfehlungen:
Die Abschnitte in dieser Anleitung gelten nur für Version 2 des Filterns, bei der Empfehlungen mithilfe von Produktattributen gefiltert werden.
Empfehlungen filtern, Version 2
Version 2 verwendet Produktattribute. Filterausdrücke basieren auf Produktattributen. Dabei kann es sich um vordefinierte Systemattribute wie categories und colors oder um benutzerdefinierte Attribute wie attributes.styles handeln. Wenn Sie ein Produktattribut als filterbar festlegen, können diese Attribute automatisch als Tags für das Filtern von Empfehlungen verwendet werden. Sie müssen dann keine Filter-Tags manuell hinzufügen.
Wenn Sie Produkte mithilfe von Attributen filtern, gibt die Vorhersageantwort primäre Produkte zurück, die mindestens ein primäres Produkt oder eine Produktvariante enthalten, deren Attributwert mit dem Filterausdruck übereinstimmt. Weitere Informationen zu primären Produkten und Artikelvarianten finden Sie unter Produktebenen.
Das folgende Beispiel für einen Filterausdruck filtert auch nach allen roten oder blauen Produkten, die als „New-Arrival“ festgelegt und nicht als Werbeartikel gekennzeichnet sind:
colors: ANY("red", "blue") AND attributes.status: ANY("New-Arrival") AND NOT attributes.is_promotional: ANY("true")
So verwenden Sie Version 2 des Filterns für Empfehlungen: Die einzelnen Schritte werden weiter unten auf dieser Seite beschrieben.
- Aktivieren Sie das Filtern von Empfehlungen für ein Modell, das gefilterte Empfehlungen bereitstellt.
- Aktivieren Sie das Filtern von Empfehlungen für Produktattribute nach denen Sie filtern möchten.
- Verwenden Sie filterbare Produktattribute in Vorhersageanfragen.
Empfehlungen filtern, Version 1 (veraltet)
Version 1 verwendet manuell erstellte Filter-Tags. Filterausdrücke basieren auf Filter-Tags, die Sie manuell zu allen Produkten in Ihrem Katalog hinzufügen müssen, nach denen Sie filtern möchten.
Das folgende Beispiel für einen Filterausdruck verwendet Filter-Tags, um Produkte anzugeben, die mit „Red“ oder „Blue“ sowie mit „New-Arrival“ getaggt sind und nicht mit „promotional“ getaggt sind:
tag=("Red" OR "Blue") tag="New-Arrival" tag=(NOT "promotional")
Weitere Informationen finden Sie in der API-Referenzdokumentation zum Product.tags[] Feld.
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 stockState den Wert OUT_OF_STOCK hat.
Sie können Tag-Filter und Filter für nicht vorrätige Artikel kombinieren. Es werden dann nur Artikel zurückgegeben, 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 enthält, können Vorhersageanfragen mit beiden Versionen des Filterns verarbeitet werden. Es ist jedoch nicht möglich, sowohl Filterausdrücke für Version 1 als auch für Version 2 in derselben Vorhersageanfrage zu verwenden.
Limits für das Filtern von Empfehlungen
Fügen Sie manuell Filterkriterien hinzu, um die Anzahl der Empfehlungen zu begrenzen, die Endnutzern zurückgegeben werden. Mit AI Commerce Search können Sie Geschäftsregeln anwenden, um die Produktangebote für Kunden zu optimieren. Dazu gehören Optionen zum Filtern nach Produktverfügbarkeit, benutzerdefinierten Tags und anderen Kriterien.
Jedes filterbare Attribut belegt in jedem Ihrer Modelle etwas Arbeitsspeicher. Die folgenden Limits helfen, negative Auswirkungen auf die Bereitstellungsleistung zu vermeiden:
- In Ihrem Katalog können bis zu 10 benutzerdefinierte Attribute als filterbar festgelegt werden.
Ihr Katalog kann bis zu 100.000.000 filterbare Attributwerte enthalten.
Die Gesamtzahl der Attributwerte in Ihrem Katalog lässt sich schätzen, indem Sie die Anzahl der Produkte in Ihrem Katalog mit der Anzahl der filterbaren Attribute multiplizieren.
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 Version 1 des Filterns von Empfehlungen zusammen mit Version 2 verwenden, wird die Anzahl der Filter-Tags auf Ihr Kontingent angerechnet. Achten Sie darauf, dass die Anzahl der Filter-Tags, die zur Gesamtzahl der Attributwerte hinzugefügt werden, weniger als 100.000.000 beträgt.
Wenn Sie die Limits überschreiten, können Sie keine weiteren Attribute als filterbar festlegen. Wenn Sie diese Limits überschreiten müssen, beantragen Sie eine Kontingenterhöhung.
Die Gesamtzahl der Tags wird während des Modelltrainings berechnet. Wenn die Gesamtzahl das Limit überschreitet, schlägt das Modelltraining fehl. Wenn während des Modelltrainings mehr als 10 filterbare benutzerdefinierte Attribute gefunden werden, werden nur 10 verwendet.
Syntax für Filterausdrücke für Empfehlungen
Die Syntaxen für Filterausdrücke für die Suche und für Empfehlungen sind ähnlich. Für Empfehlungen gelten jedoch einige Einschränkungen.
Die Syntax für Filterausdrücke 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 Tiefe der Einbettung von
AND- undOR-Operatoren in Klammern ist begrenzt. Die logischen Ausdrücke im Filter müssen in konjunktiver Normalform (CNF) vorliegen. Der komplexeste unterstützte logische Ausdruck kann eine durchAND-verbundene Liste von Klauseln sein, die nurOROperatoren enthalten, z. B.(... OR ... OR ...) AND (... OR ...) AND (... OR ...). - Ausdrücke können mit dem Schlüsselwort
NOToder mit-negiert werden. Das funktioniert nur mitANY()-Ausdrücken mit einem einzigen Argument, die keine inventarbezogenen Attribute enthalten. availability-basierte Einschränkungen müssen auf oberster Ebene erfolgen. Sie können nicht als Teil einerOR-Klausel oder einer Negation (NOT) verwendet werden.- Da das standardmäßige Filtern von Empfehlungen nur Textfelder unterstützt, werden Operationen für „kleiner als“, „größer als“ und Bereichsprüfungen für das standardmäßige Filtern von Empfehlungen nicht unterstützt. Operationen für „kleiner als“ und „größer als“ können nur mit Bedingungen für das Hervorheben oder Ausblenden von Empfehlungen verwendet werden, die einige numerische Felder unterstützen (siehe Unterstützte Felder für das Hervorheben/Ausblenden).
- Die maximale Anzahl von Begriffen in der
AND-Klausel auf oberster Ebene beträgt 20. - Eine
OR-Anweisung kann bis zu 100 Argumente enthalten, die inANY()-Ausdrücken enthalten sind. Wenn eineOR-Anweisung mehrereANY()-Ausdrücke enthält, werden alle Argumente auf dieses Limit angerechnet. Beispiel:colors: ANY("red", "green") OR colors: ANY("blue")hat drei Argumente. Für den Anwendungsfall AI Commerce Search kann ein Argument als Äquivalent zu einem Attributwert betrachtet werden.
Die folgende Tabelle enthält Beispiele für gültige Filterausdrücke sowie ungültige Beispiele und die Gründe, warum sie ungültig sind.
| Ausdruck | Gültig | Hinweise |
|---|---|---|
colors: ANY("red", "green") |
Ja | |
NOT colors: ANY("red") |
Ja | |
NOT colors: ANY("red", green") |
Nein | Negiert ein `ANY()` mit mehr als einem Argument. |
colors: ANY("red", "green") OR |
Ja | |
(colors: ANY("red") OR colors: ANY("green")) AND |
Ja | |
(colors: ANY("red") AND colors: ANY("green")) OR |
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. |
Filtern nach inventarbezogenen Attributen
Das Filtern nach inventarbezogenen Attributen basiert auf dem Echtzeitstatus Ihrer Produkte. Beim Filtern mit availability: ANY("IN_STOCK") werden in der Vorhersageantwort
primäre Produkte zurückgegeben, bei denen das primäre Produkt oder eine Produktvariante den übereinstimmenden Wert IN_STOCK hat. Weitere Informationen zu primären Produkten und Artikelvarianten finden Sie unter
Produktebenen. Das Filtern nach Primary only oder Variant only wird nicht unterstützt.
IN_STOCK ist der einzige availability-Attributwert, der von Version 2 des Filterns von Empfehlungen unterstützt wird.
Inventarbezogene Attribute können in AND-Klauseln, aber nicht in OR-Klauseln verwendet werden.
Unterstützte Felder
Die unterstützten Textfelder werden in der folgenden Tabelle zusammengefasst.
Das Hervorheben oder Ausblenden von Empfehlungen unterstützt zusätzliche Felder, die vom standardmäßigen Filtern von Empfehlungen nicht unterstützt werden. Eine Liste dieser Felder finden Sie unter Unterstützte Felder für das Hervorheben/Ausblenden.
| 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. |
Unterstützte Felder für das Hervorheben/Ausblenden
Das Hervorheben/Ausblenden unterstützt einige zusätzliche Felder, die vom standardmäßigen Filtern von Empfehlungen nicht unterstützt werden, darunter numerische Felder.
Zusätzlich zu den unter Unterstützte Felder aufgeführten Feldern werden beim Hervorheben/Ausblenden von Empfehlungen die folgenden Felder unterstützt:
Textfelder
| Feld | Beschreibung |
|---|---|
| „tags“ |
Product.tags[]. Benutzerdefinierte Tags, die mit dem
Produkt verknüpft sind. |
Numerische Felder
| Feld | Beschreibung |
|---|---|
| „price“ | PriceInfo.price. Der Preis des Produkts. |
| „discount“ |
Der Produktrabatt. Dieses Feld wird anhand des ursprünglichen Preises
und der Werte des Preisfelds aus PriceInfo berechnet.
|
| „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
Sie können das Filtern von Empfehlungen mit AI Commerce Search in der Gemini Enterprise for Customer Experience Console oder der Models API-Ressource aktivieren.
In der Console können Sie ein neues Modell erstellen, für das das Filtern von Empfehlungen aktiviert ist. Sie können diese Option auch für vorhandene Modelle aktualisieren.
Mit der Models API-Ressource können Sie ein neues Modell erstellen, für das das Filtern von Empfehlungen aktiviert ist, oder diese Einstellung für ein vorhandenes Modell mit models.Patch aktualisieren.
Beachten Sie, dass, wenn in der Bereitstellungskonfiguration, die Vorhersagen zurückgibt, die Kategorienübereinstimmung aktiviert ist, das Filtern für das Attribut „categories“ nicht funktioniert. Die Antwort enthält dann nur Produktergebnisse, die eine Kategorie mit dem Kontextprodukt gemeinsam haben.
Filtern für ein Modell mit der Console festlegen
Wählen Sie in der Gemini Enterprise for Customer Experience Console für AI Commerce Search bei der Modellerstellung die Option Tags automatisch generieren aus, um das Filtern von Empfehlungen für dieses Modell zu ermöglichen.
Prüfen Sie die Kompatibilität mit anderen Einstellungen wie diversity-level und category-match-level, da die Gesamteffekte kombiniert werden und das Filtern zuletzt erfolgt.
- Wenn Sie beispielsweise regelbasiertes
diversity-levelundcategory attribute filteringkombinieren, ist die Ausgabe häufig leer.diversity-level=high-diversityzwingt das Modell, die maximale Anzahl der Ergebnisse für dieselben Kategorienstrings zu begrenzen. Das heißt, ein Ergebnis für Kategorie 1, ein Ergebnis für Kategorie 2 usw.- Durch das Filtern von Attributen mit Kategorienmetadaten (
Product.categories = ANY ("category2")) werden Elemente verworfen, die nicht übereinstimmen. - Die endgültige Ausgabe enthält weniger als drei Ergebnisse.
- Für das Modell
similar-itemsist mit der Standardeinstellungcategory-match-level = relaxed-category-matchbereits eine zusätzliche Steigerung der Kategorienrelevanz enthalten. Wechseln Sie zucategory-match-level=no-category-match, um das Verhalten zu deaktivieren und benutzerdefinierte Filterregeln zu verwenden.
Eine Anleitung zum Erstellen eines Empfehlungsmodells mit der Console finden Sie unter Empfehlungsmodelle erstellen.
Diese Einstellung kann in der Console für vorhandene Modelle nicht aktualisiert werden. Verwenden Sie die models.Patch API-Methode, um diese
Einstellung für ein Modell zu aktualisieren.
Filtern für ein Modell mit der API festlegen
Sie können das Filtern von Empfehlungen für ein Modell mit
models.Create aktivieren, wenn Sie ein neues Modell erstellen, oder mit
models.Patch, wenn Sie ein vorhandenes Modell aktualisieren.
Legen Sie das Feld filteringOption für Ihr Modell fest, um das Filtern zu ermöglichen. Zulässige Werte für dieses Feld sind:
RECOMMENDATIONS_FILTERING_DISABLED(Standard): Das Filtern ist für das Modell deaktiviert.RECOMMENDATIONS_FILTERING_ENABLED: Das Filtern ist für primäre Produkte aktiviert.
Im folgenden Beispiel wird mit curl ein neues Modell erstellt, für das das Filtern von Empfehlungen aktiviert ist.
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 Beispiel wird mit curl die Einstellung für die 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
Wenn Sie empfohlene Produkte filtern möchten, aktivieren Sie das Filtern für die Produktattribute, die Sie in Filterausdrücken verwenden. Sie können diese Einstellung mit der Gemini Enterprise for Customer Experience Console für AI Commerce Search oder mit der Attributes API-Ressource aktualisieren.
Legen Sie nicht mehr Attribute als filterbar fest als erforderlich. Die Anzahl der filterbaren Attribute ist begrenzt.
Attribute mit der Console als filterbar festlegen
Sie können ein Attribut auf der Seite „Steuerelemente“ in der Gemini Enterprise for Customer Experience Console für AI Commerce Search als filterbar festlegen.
Rufen Sie in der Gemini Enterprise for Customer Experience Console für AI Commerce Search die Seite Steuerelemente auf.
Zur Seite "Steuerelemente"Rufen Sie den Tab Attributsteuerelemente auf.
Auf diesem Tab wird eine Tabelle mit allen Produktattributen angezeigt, für die Sie websiteweite Steuerungen festlegen können.
Klicken Sie auf editSteuerelemente ändern.
Setzen Sie Filterbar für das Produktattribut auf True.
Klicken Sie auf Steuerelemente speichern.
Sie können das Attribut für das Filtern verwenden, nachdem der nächste Modelltrainingszyklus abgeschlossen ist.
Attribute mit der API als filterbar festlegen
AttributesConfig stellt eine Liste von Attributen für einen Katalog dar.
Legen Sie das Feld AttributesConfig.filteringOption für CatalogAttribute fest. Zulässige Werte für dieses Feld sind:
RECOMMENDATIONS_FILTERING_DISABLED(Standard): Das Filtern ist für das Attribut deaktiviert.RECOMMENDATIONS_FILTERING_ENABLED: Das Filtern ist für das Attribut aktiviert.
Im folgenden Beispiel werden mit curl 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 Beispiel wird mit curl das Produktattribut categories als filterbar festgelegt.
Wenn Sie ein vorhandenes Attribut aktualisieren, behalten Sie die ursprünglichen Werte des Attributs für indexableOption, dynamicFacetableOption und searchableOption bei, wie sie im vorherigen Schritt angezeigt wurden. Wenn das ausgewählte Attribut beim Anzeigen von attributesConfig wie im vorherigen Beispiel nicht angezeigt wurde, verwenden Sie die Standardeinstellungen, 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 für das Filtern verwenden, nachdem der nächste Modelltrainingszyklus 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.
Setzen Sie den Parameterwert filterSyntaxV2 auf „true“, um das Filtern von Empfehlungen mit Version 2 zu aktivieren. Wenn der Parameter nicht festgelegt ist, bleibt das Filtern mit Version 1 aktiv. Wenn ein Modell sowohl manuell erstellte Tags als auch filterbare Produktattribute enthält, können Vorhersageanfragen mit beiden Versionen des Filterns verarbeitet werden.
Es ist jedoch nicht möglich, sowohl Filterausdrücke für Version 1 als auch für Version 2 in derselben Vorhersageanfrage zu verwenden.
Im folgenden teilweisen Beispiel für eine curl-Anfrage ist filterSyntaxV2 auf „true“ gesetzt und ein Filterausdruck verwendet die Produktattribute 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 Beispiel zeigt eine vollständige Vorhersageanfrage mit curl.
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"
Neben Filtern kann sich auch die Einstellung für die Diversifizierung in der Bereitstellungskonfiguration auf die Anzahl der Ergebnisse auswirken, die in der Antwort zurückgegeben werden.