Migliorare e nascondere i consigli sui contenuti multimediali

Questa pagina spiega come modificare la posizione nel ranking dei contenuti multimediali consigliati restituiti dal modello utilizzando i controlli di pubblicazione del boost (chiamati anche controlli).

Un controllo del boost modifica l'ordine dei consigli dopo che questi sono stati restituiti dal modello. Applichi un'espressione di filtro ai risultati per identificare i consigli che vuoi promuovere o nascondere e poi applichi un valore di incremento compreso tra -1 e +1. Un valore di incremento pari a +1 fornisce il maggiore incremento a un consiglio, posizionandolo in cima ai consigli restituiti. Un valore di -1 seppellisce il suggerimento verso la parte inferiore dell'elenco dei suggerimenti restituiti.

Il boost è un controllo del tempo di pubblicazione. Innanzitutto, il modello di suggerimenti restituisce un elenco di suggerimenti. Utilizzando una configurazione di gestione, il controllo del boost viene applicato a questo elenco per modificare il ranking dei consigli. Il controllo del boost non aggiunge né elimina i consigli, ma controlla l'ordine in cui vengono presentati all'utente.

Consigli su come aumentare o filtrare

Boost è un filtro soft. Il filtro normale per i consigli, descritto in Filtrare i consigli, è un filtro rigido.

Se applichi un filtro rigido ai consigli, non vedrai mai i documenti filtrati. Tuttavia, con un filtro soft, non rimuovi i documenti dall'elenco dei consigli. Il filtro viene invece utilizzato per determinare quali documenti devono essere visualizzati in alto o in basso nell'elenco dei risultati restituiti.

Evita di sovraccaricare il modello di consigli

Quando applichi un filtro di boost o di eliminazione, sono consigliati valori piccoli vicini allo zero. I valori vicini a +1 o -1 probabilmente sovraccaricano il modello di consigli, in modo che la classificazione dei consigli applicata dal modello non si rifletta nell'ordine in cui l'utente visualizza i consigli.

Ad esempio, se aumenti i film d'animazione con +1, gli utenti vedranno solo i film d'animazione nella parte superiore dell'elenco dei consigli. Questi spingeranno i film non animati che erano altamente consigliati dal modello in fondo all'elenco, dove l'utente potrebbe non vederli.

Retrocessione e seppellimento

La retrocessione e l'eliminazione spostano i consigli per le mosse in posizioni inferiori nell'elenco dei consigli restituiti rispetto a dove apparirebbero altrimenti.

Tuttavia, la retrocessione si basa sull'età dei contenuti o sul fatto che l'utente abbia già guardato parte dei contenuti. Per saperne di più sulla retrocessione, vedi Retrocedere i suggerimenti per i contenuti multimediali.

L'occultamento si applica ai contenuti identificati da un filtro. Il filtro può essere qualsiasi campo di dati contrassegnato come filtrabile nello schema. Per informazioni generali sui filtri per i consigli, incluso come contrassegnare un campo come filtrabile, consulta Filtrare i consigli.

Informazioni sui controlli di boost e sulle configurazioni di pubblicazione

Ogni controllo della pubblicazione del boost è costituito da un filtro e da un valore di boost. Ad esempio, un controllo di boost aumenta i film con la parola "Natale" nel titolo con un valore di 0.1, mentre un altro seppellisce i film horror con un valore di -0.2.

Dopo aver creato uno o più controlli di boost, li colleghi a una configurazione di pubblicazione. Quando viene creata un'app Vertex AI Search, viene creata automaticamente anche una configurazione di pubblicazione predefinita. La configurazione di pubblicazione viene utilizzata al momento della pubblicazione per determinare i risultati generati dall'app. Oltre ai controlli di boost, la configurazione di pubblicazione può contenere altri tipi di controlli, come i controlli diversify e demote.

La configurazione di pubblicazione può essere applicata quando chiami il metodo recommend. Tutti i controlli nella configurazione di pubblicazione vengono quindi applicati ai consigli restituiti dalla chiamata al metodo.

Inoltre, puoi avere più configurazioni di pubblicazione associate alla tua app. In questo modo puoi applicare diversi set di controlli in circostanze diverse. Ad esempio, se la richiesta di consigli proviene dall'account di un bambino, vengono messi in evidenza i film nelle categorie adatte ai bambini e vengono nascosti i film non adatti. Allo stesso modo, se la richiesta proviene da un account contrassegnato come per adulti, vengono promossi titoli o categorie popolari tra gli adulti. In alternativa, puoi scegliere di avere configurazioni di pubblicazione diverse per località geografiche diverse e promuovere i contenuti in base alla loro popolarità regionale. Per ulteriori informazioni sulle configurazioni di pubblicazione, consulta Creare e gestire le configurazioni di pubblicazione di contenuti multimediali.

I valori boost sono cumulativi

Se hai collegato più controlli di pubblicazione a una configurazione di pubblicazione, i boost e i seppellimenti diventano additivi.

Ad esempio, se aumenti i film d'animazione per bambini di 0,3 e i film d'avventura animati di 0,4, un film classificato come film d'avventura animato per bambini viene aumentato di 0,7.

Allo stesso modo, se un film horror è stato aumentato di 0,2 da un controllo e ridotto di -0,3 da un altro controllo nella stessa configurazione di pubblicazione, il risultato netto sarebbe quello di ridurre il film di -0,1.

La somma dei boost può superare +1. Ad esempio, se i controlli hanno aumentato i film di animazione per bambini di 0,6 e i film di avventura di animazione di 0,5, un film di avventura di animazione per bambini aumenterebbe di 1,1.

Esempi di filtri

Di seguito sono riportati alcuni esempi di filtri per i consigli sui contenuti multimediali.

Filtri sulle proprietà chiave comuni

Esempi di filtri sulle proprietà comuni delle stringhe chiave (category, image_name, image_uri, language, title e uri).

  • Animazioni per bambini:
    "filter": "categories: ANY(\"animation\") AND categories: ANY(\"children\")"

  • Contenuti spaventosi:
    "filter": "categories: ANY(\"horror\", \"thriller\", \"crime\")

  • Contenuti multimediali con titolo "Natale":
    "filter": "title: ANY(\"Christmas\")"

  • Contenuti multimediali in cui il primo elemento dell'array images ha il valore name "beach ball":
    "filter": "images[0].name: ANY(\"beach ball\")"

Filtri sulle proprietà delle chiavi dei contenuti multimediali

Esempi di filtri sulle proprietà chiave dei contenuti multimediali. Le proprietà dei tasti multimediali iniziano con media_ e, nella sintassi del filtro, il nome del campo è preceduto da media_key_properties.. Per un elenco delle proprietà dei tasti multimediali, vedi Schema predefinito di Google e schema personalizzato.

  • Media in cui il tipo è audio:
    "filter": "media_key_properties.media_type: ANY(\"audio\")"

  • Elementi multimediali in cui l'array hash_tags contiene una stringa #winter:
    "filter": "media_key_properties.hash_tags: ANY(\"#winter\")"

  • Media in cui il primo elemento dell'array hash_tags è la stringa #winter:
    "filter": "media_key_properties.hash_tags[0]: ANY(\"#winter\")"

Campi personalizzati

Esempi di filtri sui campi personalizzati. Per gli attributi personalizzati, anteponi attributes. al nome del campo.

  • Nello schema hai un campo stringa personalizzato, festival, per rappresentare il festival cinematografico in cui è stato presentato in anteprima un film. Per filtrare solo i film presentati in anteprima a Cannes:
    "filter": "attributes.festival: ANY(\"Cannes\")

  • Hai un campo booleano personalizzato, audio_desc, che è vero quando i contenuti multimediali includono una descrizione audio per gli spettatori con disabilità visive. Per filtrare i contenuti multimediali con una descrizione audio:
    "filter": "attributes.audio_desc: ANY(true)"

Limitazioni dei campi filtrabili

Ai controlli di pubblicazione del boost si applicano le seguenti limitazioni:

  • Nei filtri per l'incremento possono essere utilizzati solo i campi delle proprietà di tipo stringa e booleano.

  • Non puoi filtrare in base a campi nidificati a più di un livello. Ad esempio, puoi filtrare in base a persons.name, ma non puoi filtrare in base a un campo persons.name.stage (anche se un campo di questo tipo esistesse).

  • I filtri devono corrispondere esattamente. Ciò significa che negli esempi, un film chiamato "Christmas Story" o "CHRISTMAS" non verrebbe potenziato.

Prima di iniziare

Boost o bury dei suggerimenti

Questa procedura descrive come creare controlli di boost e collegarli a una configurazione di pubblicazione.

Dopo aver collegato i controlli alla configurazione di pubblicazione, puoi specificare la configurazione di pubblicazione quando chiami il metodo servingConfigs.recommend e il controllo dell'incremento verrà utilizzato per influenzare l'ordine dei consigli restituiti.

REST

Per creare controlli di pubblicazione boost e collegarli a una configurazione di pubblicazione, segui questi passaggi:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Trova l'ID datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.

    1. Nella console Google Cloud , vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del datastore, recupera l'ID datastore.

  3. Crea un controllo boost:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: PROJECT_NUMBER" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
          "displayName": "CONTROL_DISPLAY_NAME",
              "solutionType": "SOLUTION_TYPE_RECOMMENDATION",
              "boostAction": {
                   "dataStore": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/dataStores/DATA_STORE_ID",
                   "boost" :  BOOST_VALUE,
                   "filter": "FILTER"
              }
        }'
    

    Sostituisci quanto segue:

    • PROJECT_NUMBER: il numero del tuo progetto Google Cloud .

    • CONTROL_DISPLAY_NAME: un nome leggibile per identificare il controllo. Deve essere una stringa UTF-8 con una lunghezza massima di 128 caratteri.

    • CONTROL_ID: un identificatore univoco (all'interno di un datastore) per il controllo. L'ID può contenere lettere minuscole, cifre, trattini e trattini bassi.

    • APP_ID: l'ID dell'app Vertex AI Search.

    • DATA_STORE_ID: l'ID del datastore Vertex AI Search.

    • BOOST_VALUE: un numero in virgola mobile nell'intervallo [-1,1]. Quando il valore è negativo, i consigli vengono visualizzati più in basso nei risultati. Quando il valore è positivo, i consigli vengono promossi (vengono visualizzati più in alto nei risultati).

    • FILTER: l'espressione di filtro che descrive i documenti che verranno promossi o nascosti. Per informazioni dettagliate su come formulare l'espressione di filtro, vedi Espressioni di filtro.

  4. Ripeti il passaggio 3 per ogni controllo di incremento che vuoi applicare ai tuoi consigli. Ad esempio, potresti volere un controllo di boost che aumenti i film per bambini, boost-kids e un secondo controllo che nasconda i film horror, bury-horror.

  5. Trova l'ID della configurazione di pubblicazione. Se hai già l'ID configurazione di pubblicazione, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, fai clic sul nome dell'app.

    3. Vai alla pagina Configurazioni e fai clic sulla scheda Pubblicazione.

    4. Recupera l'ID configurazione di pubblicazione dalla colonna ID.

  6. Collega il nuovo controllo di gestione del boost alla configurazione di gestione con una richiesta di aggiornamento utilizzando il metodo engines.servingConfigs.patch.

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID?update_mask=boost_control_ids" \
    -d '{
      "boostControlIds": ["CONTROL_ID"]
    }'
    

    Sostituisci quanto segue:

    • CONFIG_ID: l'ID della configurazione di pubblicazione a cui vuoi collegare i controlli di boost, ad esempio my_app-1234567_id. Vedi il passaggio precedente.

    • CONTROL_ID: contiene gli ID di uno o più controlli di pubblicazione del boost che vuoi collegare alla configurazione di pubblicazione, ad esempio "boost-kids", "bury-horror". Si tratta di un array di stringhe. Se hai più di un ID, non dimenticare di utilizzare virgolette e virgole di separazione.

  7. Attendi qualche minuto affinché i risultati diventino effettivi.

  8. Visualizza l'anteprima degli effetti del controllo del boost. Consulta Ricevere consigli sui contenuti multimediali.

Aggiornare il controllo del boost

Questa procedura descrive come aggiornare un controllo boost esistente per modificare il valore del boost o del filtro.

Dopo aver testato il controllo dell'incremento, potresti scoprire di volerlo rendere più forte o più debole. In alternativa, potresti modificare la stringa di filtro.

Quando aggiorni un valore di boost o un filtro, chiami il metodo engines.controls.patch.

Il metodo patch sostituisce i valori di boost e filter con i nuovi valori che fornisci. Questa procedura mostra come modificare separatamente il valore boost (passaggio 3) e il valore filter (passaggio 4). Tuttavia, se vuoi modificare entrambi, puoi farlo con un unico comando curl.

REST

Per modificare il valore di boost per il filtro di un controllo esistente:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Trova l'ID del controllo del boost che vuoi aggiornare utilizzando il metodo engines.servingConfigs.get. Se hai già l'ID, vai al passaggio successivo.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

  3. Modifica il valore di incremento per il controllo:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID?update_mask=boost_action.boost" \
    -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID",
        "boostAction": {
          "boost": BOOST_VALUE
        }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

    • CONTROL_ID: l'identificatore univoco per il controllo boost che vuoi modificare, l'ultima parte dell'output del campo name del comando GET nel passaggio 2. Ad esempio, boost-kids.

    • BOOST_VALUE: un numero in virgola mobile nell'intervallo [-1,1]. Quando il valore è negativo, i consigli vengono visualizzati più in basso nei risultati. Quando il valore è positivo, i consigli vengono promossi (vengono visualizzati più in alto nei risultati).

  4. Modifica il filtro per il controllo del boost:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID?update_mask=boost_action.filter" \
    -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID",
        "boostAction": {
          "filter": "FILTER"
        }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

    • CONTROL_ID: l'identificatore univoco per il controllo boost che vuoi modificare, l'ultima parte dell'output del campo name del comando GET nel passaggio 2.

    • FILTER: l'espressione di filtro che descrive i documenti che verranno promossi o nascosti. Per informazioni dettagliate su come formulare l'espressione di filtro, vedi Espressioni di filtro.

Eliminare un controllo boost

Questa procedura descrive come eliminare un controllo boost. Se non utilizzi un controllo boost, la best practice è eliminarlo per non raggiungere o superare la quota per il numero di controlli consentiti.

Quando elimini un controllo del boost, chiami il metodo engines.controls.delete.

I controlli di boost collegati a una configurazione di pubblicazione non possono essere eliminati. Se provi a eliminare un controllo del boost, un messaggio di errore ti indica il nome della configurazione di pubblicazione. A questo punto, devi eliminare la configurazione di pubblicazione o scollegare il controllo dalla configurazione di pubblicazione.

REST

Per eliminare un controllo del boost:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Trova l'ID del controllo del boost che vuoi eliminare utilizzando il metodo engines.servingConfigs.get. Se hai già l'ID, vai al passaggio successivo.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

  3. Rivedi l'output. Se il controllo di boost è collegato a una configurazione di pubblicazione, aggiorna la configurazione di pubblicazione per rimuovere il controllo che vuoi eliminare. Consulta Aggiornare una configurazione di pubblicazione per rimuovere un controllo boost.

  4. Esegui questo comando curl per eliminare un controllo boost:

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

    • CONTROL_ID: l'identificatore univoco del controllo boost che vuoi eliminare, l'ultima parte dell'output del campo name del comando GET nel passaggio 2.

    Se ricevi un messaggio di errore che indica che il controllo è attivamente referenziato da almeno una configurazione di pubblicazione, consulta Aggiornare una configurazione di pubblicazione per rimuovere un controllo boost.

Aggiorna una configurazione di pubblicazione per rimuovere un controllo boost

Prima di poter eliminare un controllo del boost, devi scollegarlo da tutti i controlli di pubblicazione. A questo scopo, applica una patch ai controlli di pubblicazione per rimuovere l'ID del controllo di boost.

Per separare i controlli di boost da una configurazione di pubblicazione:

  1. Scopri quali controlli di boost sono collegati alla configurazione di gestione effettuando una richiesta engines.servingConfigs.get e esaminando il campo boostControlIds nella risposta.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.

    • APP_ID: l'ID dell'app Vertex AI Search.

    • CONFIG_ID: l'ID della configurazione di pubblicazione su cui vuoi saperne di più.

  2. Per aggiornare la configurazione di pubblicazione in modo da rimuovere un controllo del boost, utilizza il metodo engines.servingConfigs.patch.

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/CONFIG_ID?update_mask=boost_control_ids" \
    -d '{
      "boostControlIds": ["CONTROL_ID"]
    }'
    

    Sostituisci quanto segue:

    • CONFIG_ID: l'ID della configurazione di pubblicazione a cui vuoi collegare i controlli di boost, ad esempio my_app-1234567_id. Vedi il passaggio precedente.

    • CONTROL_ID: contiene gli ID di uno o più controlli di boost che vuoi che la configurazione di pubblicazione abbia. Assicurati di omettere i controlli di potenziamento che vuoi eliminare. Si tratta di un array di stringhe. Se hai più di un ID, non dimenticare di utilizzare virgolette e virgole di separazione, ad esempio boost-1", "boost-2.