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.
- Aktivieren Sie die Empfehlungsfilterung für ein Modell, für das gefilterte Empfehlungen ausgeliefert werden sollen.
- Aktivieren Sie die Filterung von Empfehlungen für Produktattribute, nach denen Sie filtern möchten.
- 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
- undOR
-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 eineAND
-verbundene Liste von Klauseln sein, die nurOR
-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 mitANY()
-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 einerOR
-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 inANY()
-Ausdrücken enthalten sind. Wenn eineOR
-Klausel mehrereANY()
-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 |
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. |
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
undcategory 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 Standardwertcategory-match-level = relaxed-category-match
. Wechseln Sie zucategory-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.
Rufen Sie in der Search for Retail-Konsole die Seite Steuerelemente auf.
Zur Seite „Einstellungen“Wechseln Sie zum Tab Attributsteuerungen.
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 Filterable (Filterbar) für das Produktattribut auf True.
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.