Realce e ignore recomendações de conteúdo multimédia

Esta página explica como alterar a posição de classificação das recomendações de multimédia devolvidas pelo modelo através dos controlos de publicação de aumentos (também denominados controlos).

Um controlo de aumento altera a ordem das recomendações depois de o modelo as ter devolvido. Aplica uma expressão de filtro aos resultados para identificar as recomendações que quer aumentar ou ocultar e, em seguida, aplica um valor de aumento entre -1 e +1. Um valor de aumento de +1 dá o maior aumento a uma recomendação, colocando-a na parte superior das recomendações devolvidas. Um valor de -1 oculta a recomendação na parte inferior da lista de recomendações devolvidas.

O aumento é um controlo de tempo de publicação. Primeiro, o modelo de recomendações devolve uma lista de recomendações. Usando uma configuração de publicação, o controlo de aumento é aplicado a essa lista para ajustar a classificação das recomendações. O controlo de aumento não adiciona nem elimina recomendações, mas controla a ordem pela qual as recomendações são apresentadas ao utilizador.

Recomendações de aumento versus filtragem

O efeito Aumentar é um filtro suave. Por outro lado, o filtro normal para recomendações, descrito em Filtrar recomendações, é um filtro rígido.

Se aplicar um filtro rígido às recomendações, nunca verá os documentos que foram filtrados. No entanto, com um filtro flexível, não remove documentos da lista de recomendações. Em alternativa, o filtro é usado para determinar que documentos devem estar mais acima ou mais abaixo na lista de recomendações devolvidas.

Evite sobrecarregar o modelo de recomendações

Ao aplicar um filtro de aumento ou ocultação, recomendamos valores pequenos próximos de zero. Os valores próximos de +1 ou -1 têm probabilidade de sobrecarregar o modelo de recomendações, pelo que a classificação das recomendações aplicada pelo modelo não se reflete na ordem em que o utilizador vê as recomendações.

Por exemplo, se aumentar a visibilidade de filmes de animação com +1, os utilizadores só veriam filmes de animação na parte superior da lista de recomendações. Isto faria com que os filmes que não são de animação, mas que foram altamente recomendados pelo modelo, fossem apresentados na parte inferior da lista, onde o utilizador pode não os ver.

Despromoção versus ocultação

A diminuição da classificação e a ocultação movem as recomendações para posições inferiores na lista de recomendações devolvidas, em comparação com a posição que teriam de outra forma.

No entanto, a rebaixamento baseia-se na idade do conteúdo ou no facto de o utilizador já ter visto parte do conteúdo. Para mais informações sobre a despromoção, consulte o artigo Despromova recomendações de conteúdo multimédia.

A ação de ocultar aplica-se a conteúdo identificado por um filtro. O filtro pode ser qualquer campo de dados marcado como filtrável no esquema. Para informações gerais sobre os filtros de recomendações, incluindo como marcar um campo como filtrável, consulte o artigo Filtre recomendações.

Acerca dos controlos de aumento e das configurações de publicação

Cada controlo de publicação de aumento é composto por um filtro e um valor de aumento. Por exemplo, um controlo de aumento aumenta os filmes com "Natal" no título com um valor de 0.1 e outro oculta os filmes de terror com um valor de -0.2.

Depois de criar um ou mais controlos de aumento, associa os controlos a uma configuração de publicação. Quando é criada uma app do Vertex AI Search, também é criada automaticamente uma configuração de publicação predefinida. A configuração de publicação é referenciada no momento da publicação para determinar os resultados que a app gera. Além dos controlos de aumento, a configuração de publicação pode conter outros tipos de controlos, como os controlos diversify e demote.

A configuração de publicação pode ser aplicada quando chama o método recommend. Em seguida, todos os controlos na configuração de publicação são aplicados às recomendações devolvidas pela chamada do método.

Além disso, pode ter várias configurações de publicação associadas à sua app. Isto permite-lhe aplicar diferentes conjuntos de controlos em diferentes circunstâncias. Por exemplo, se o pedido de recomendação for proveniente da conta de uma criança, realce os filmes em categorias adequadas para crianças e oculte os filmes inadequados. Da mesma forma, se o pedido for feito a partir de uma conta marcada como adulta, realce títulos ou categorias populares entre adultos. Em alternativa, pode optar por ter configurações de publicação diferentes para diferentes localizações geográficas e aumentar o conteúdo de acordo com o que é popular a nível regional. Para mais informações sobre as configurações de publicação, consulte o artigo Crie e faça a gestão de configurações de publicação de conteúdo multimédia.

Os valores de aumento são cumulativos

Se tiver anexado vários controlos de publicação a uma configuração de publicação, os aumentos e as ocultações tornam-se aditivos.

Por exemplo, se aumentar os filmes de animação para crianças em 0,3 e os filmes de aventura de animação em 0,4, um filme categorizado como um filme de aventura de animação para crianças é aumentado em 0,7.

Da mesma forma, se um filme de terror fosse aumentado em 0,2 por um controlo e diminuído em -0,3 por outro controlo na mesma configuração de publicação, o resultado líquido seria diminuir o filme em -0,1.

A soma dos aumentos pode exceder +1. Por exemplo, se os controlos aumentassem os filmes de animação para crianças em 0,6 e os filmes de aventura de animação em 0,5, um filme de aventura de animação para crianças seria aumentado em +1,1.

Exemplos de filtros

Seguem-se alguns exemplos de filtros para recomendações de conteúdo multimédia.

Filtros em propriedades de chaves comuns

Exemplos de filtros em propriedades de strings de chaves comuns (category, image_name, image_uri, language, title e uri).

  • Animações para crianças:
    "filter": "categories: ANY(\"animation\") AND categories: ANY(\"children\")"

  • Conteúdo multimédia assustador:
    "filter": "categories: ANY(\"horror\", \"thriller\", \"crime\")

  • Conteúdo multimédia cujo título é "Natal":
    "filter": "title: ANY(\"Christmas\")"

  • Conteúdo multimédia em que o primeiro item na matriz images tem o valor name "beach ball":
    "filter": "images[0].name: ANY(\"beach ball\")"

Filtros nas propriedades das teclas multimédia

Exemplos de filtros em propriedades de chaves multimédia. As propriedades das chaves multimédia começam com media_ e, na sintaxe do filtro, o nome do campo é precedido por media_key_properties.. Para ver uma lista de propriedades de teclas multimédia, consulte o artigo Esquema predefinido da Google versus esquema personalizado.

  • Conteúdo multimédia em que o tipo é audio:
    "filter": "media_key_properties.media_type: ANY(\"audio\")"

  • Conteúdo multimédia em que a matriz hash_tags contém uma string #winter:
    "filter": "media_key_properties.hash_tags: ANY(\"#winter\")"

  • Ficheiros multimédia em que o primeiro elemento da matriz hash_tags é a string #winter:
    "filter": "media_key_properties.hash_tags[0]: ANY(\"#winter\")"

Campos personalizados

Exemplos de filtros em campos personalizados. Para atributos personalizados, preceda o nome do campo com attributes..

  • Tem um campo de string personalizado, festival, no seu esquema para representar em que festival de cinema um filme foi apresentado pela primeira vez. Para filtrar apenas os filmes que estrearam em Cannes:
    "filter": "attributes.festival: ANY(\"Cannes\")

  • Tem um campo booleano personalizado, audio_desc, que é verdadeiro quando o conteúdo multimédia inclui uma descrição áudio para visitantes com deficiência visual. Para filtrar conteúdo multimédia com uma descrição de áudio:
    "filter": "attributes.audio_desc: ANY(true)"

Limitações nos campos filtráveis

As seguintes limitações aplicam-se aos controlos de publicação de aumentos:

  • Só é possível usar campos de propriedades dos tipos string e booleano em expressões de filtro para o aumento.

  • Não é possível filtrar campos aninhados com mais de um nível. Por exemplo, pode filtrar por persons.name, mas não pode filtrar por um campo persons.name.stage (mesmo que esse campo existisse).

  • Os filtros têm de ser correspondências exatas. Isto significa que, nos exemplos, não seria feito um aumento de um filme chamado "Christmas Story" ou "CHRISTMAS".

Antes de começar

  • Certifique-se de que criou uma app de recomendações de multimédia e um arquivo de dados. Para mais informações, consulte o artigo Crie uma app de recomendações de multimédia e uma loja de dados.

  • Opcional: se não quiser usar a configuração de publicação predefinida, crie uma nova configuração de publicação seguindo os passos 1 a 5 e 7 em Crie uma configuração de publicação. Se a sua app estiver em produção, a Google recomenda que crie uma configuração de publicação separada para testar os controlos de aumento antes de aplicar os controlos à configuração de publicação de produção.

  • Certifique-se de que todos os campos que quer usar no controlo do aumento estão marcados como Filtráveis no esquema. Para mais informações, consulte o artigo Configure as definições dos campos. Consulte também os limites de filtragem.

Realce ou ignore recomendações

Este procedimento descreve como criar controlos de aumento e anexar os controlos a uma configuração de publicação.

Depois de os controlos serem anexados à configuração de publicação, pode especificar a configuração de publicação quando chamar o método servingConfigs.recommend, e o controlo de aumento será usado para influenciar a ordem das recomendações devolvidas.

REST

Para criar controlos de publicação de aumentos e anexá-los a uma configuração de publicação, siga estes passos:

  1. Encontre o ID da app. Se já tiver o ID da app, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA.

      Aceda a Apps

    2. Na página Apps, encontre o nome da sua app e obtenha o ID da app na coluna ID.

  2. Encontre o ID da loja de dados. Se já tiver o ID do armazenamento de dados, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA e, no menu de navegação, clique em Armazenamentos de dados.

      Aceda à página Armazenamentos de dados

    2. Clique no nome do seu arquivo de dados.

    3. Na página Dados da sua loja de dados, obtenha o ID da loja de dados.

  3. Crie um grupo de controlo de aumento:

    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"
              }
        }'
    

    Substitua o seguinte:

    • PROJECT_NUMBER: o número do seu projeto Google Cloud .

    • CONTROL_DISPLAY_NAME: um nome legível para identificar o controlo. Tem de ser uma string UTF-8 com um comprimento máximo de 128 carateres.

    • CONTROL_ID: um identificador exclusivo (num arquivo de dados) para o controlo. O ID pode conter letras minúsculas, dígitos, hífenes e sublinhados.

    • APP_ID: o ID da app Vertex AI Search.

    • DATA_STORE_ID: o ID do arquivo de dados do Vertex AI Search.

    • BOOST_VALUE: um número de vírgula flutuante no intervalo [-1,1]. Quando o valor é negativo, as recomendações aparecem mais abaixo nos resultados. Quando o valor é positivo, as recomendações são promovidas (aparecem mais acima nos resultados).

    • FILTER: a expressão de filtro que descreve que documentos vão ser realçados ou ocultados. Para informações detalhadas sobre como formular a expressão de filtro, consulte o artigo Expressões de filtro.

  4. Repita o passo 3 para cada controlo de aumento que quer aplicar às suas recomendações. Por exemplo, pode querer um controlo de otimização que otimize filmes para crianças boost-kids e um segundo controlo que oculte filmes de terror bury-horror.

  5. Encontre o ID da configuração de publicação. Se já tiver o ID da configuração de publicação, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA.

      Aceda a Apps

    2. Na página Apps, clique no nome da sua app.

    3. Aceda à página Configurações e clique no separador Publicação.

    4. Obtenha o ID da configuração de publicação na coluna ID.

  6. Anexe o novo controlo de publicação de aumentos à configuração de publicação com um pedido de atualização através do método 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"]
    }'
    

    Substitua o seguinte:

    • CONFIG_ID: o ID da configuração de publicação à qual quer anexar os controlos de aumento, por exemplo, my_app-1234567_id. Consulte o passo anterior.

    • CONTROL_ID: contém os IDs de um ou mais dos controlo de publicação de aumentos que quer anexar à configuração de publicação. Por exemplo, "boost-kids", "bury-horror". Esta é uma matriz de strings. Se tiver mais do que um ID, não se esqueça de usar aspas e vírgulas para separar.

  7. Aguarde alguns minutos para que os resultados sejam aplicados.

  8. Pré-visualize os efeitos do controlo de aumento. Consulte o artigo Receba recomendações de multimédia.

Atualize o controlo de aumento

Este procedimento descreve como atualizar um controlo de aumento existente para alterar o valor do aumento ou o filtro.

Depois de testar o controlo de aumento, pode descobrir que quer tornar o aumento mais forte ou mais fraco. Em alternativa, pode alterar a string do filtro.

Quando atualiza um valor de aumento ou um filtro, chama o método engines.controls.patch.

O método patch substitui os valores de boost e filter pelos novos valores que fornecer. Este procedimento mostra como editar o valor boost (passo 3) e o valor filter (passo 4) separadamente. No entanto, se quiser editar ambos, pode fazê-lo num único comando curl.

REST

Para modificar o valor do aumento para o filtro de um controlo existente, siga estes passos:

  1. Encontre o ID da app. Se já tiver o ID da app, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA.

      Aceda a Apps

    2. Na página Apps, encontre o nome da sua app e obtenha o ID da app na coluna ID.

  2. Encontre o ID do controlo de aumento que quer atualizar através do método engines.servingConfigs.get. Se já tiver o ID, avance para o passo seguinte.

    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"
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

  3. Edite o valor do aumento para o controlo:

    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
        }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

    • CONTROL_ID: o identificador exclusivo do controlo de aumento que quer editar, a parte final do campo name gerado pelo comando GET no passo 2. Por exemplo, boost-kids.

    • BOOST_VALUE: um número de vírgula flutuante no intervalo [-1,1]. Quando o valor é negativo, as recomendações aparecem mais abaixo nos resultados. Quando o valor é positivo, as recomendações são promovidas (aparecem mais acima nos resultados).

  4. Edite o filtro para o controlo de aumento:

    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"
        }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

    • CONTROL_ID: o identificador exclusivo do controlo de aumento que quer editar, a parte final do campo name gerado pelo comando GET no passo 2.

    • FILTER: a expressão de filtro que descreve que documentos vão ser realçados ou ocultados. Para informações detalhadas sobre como formular a expressão de filtro, consulte o artigo Expressões de filtro.

Elimine um controlo de aumento

Este procedimento descreve como eliminar um controlo de aumento. Se não estiver a usar um controlo de aumento, a prática recomendada é eliminá-lo para não atingir nem exceder a quota do número de controlos permitidos.

Quando elimina um controlo de aumento, chama o método engines.controls.delete.

Não é possível eliminar os controlos de aumento associados a uma configuração de publicação. Se tentar eliminar um controlo de aumento, recebe uma mensagem de erro com o nome da configuração de publicação. Em seguida, tem de eliminar essa configuração de publicação ou desassociar esse controlo da configuração de publicação.

REST

Para eliminar um controlo de aumento, siga estes passos:

  1. Encontre o ID da app. Se já tiver o ID da app, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA.

      Aceda a Apps

    2. Na página Apps, encontre o nome da sua app e obtenha o ID da app na coluna ID.

  2. Encontre o ID do controlo de aumento que quer eliminar através do método engines.servingConfigs.get. Se já tiver o ID, avance para o passo seguinte.

    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"
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

  3. Reveja o resultado. Se o controlo de aumento estiver anexado a uma configuração de publicação, atualize a configuração de publicação para remover o controlo que quer eliminar. Consulte o artigo Atualize uma configuração de publicação para remover um controlo de aumento.

  4. Execute o seguinte comando curl para eliminar um controlo de aumento:

    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"
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

    • CONTROL_ID: o identificador exclusivo do controlo de aumento que quer eliminar, a parte final do campo name gerado pelo comando GET no passo 2.

    Se receber uma mensagem de erro a indicar que o controlo é ativamente referenciado por, pelo menos, uma configuração de publicação, consulte o artigo Atualize uma configuração de publicação para remover um controlo de aumento.

Atualize uma configuração de publicação para remover um controlo de aumento

Antes de poder eliminar um controlo de aumento, tem de o desassociar de todos os controlos de publicação. Para tal, corrija os controlos de publicação para remover o ID do controlo de aumento.

Para desanexar os controlos de aumento de uma configuração de publicação, siga estes passos:

  1. Descubra que controlos de aumento estão anexados à configuração de publicação fazendo um pedido engines.servingConfigs.get e consultando o campo boostControlIds na resposta.

    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"
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • APP_ID: o ID da app Vertex AI Search.

    • CONFIG_ID: o ID da configuração de publicação sobre a qual quer saber mais.

  2. Para atualizar a configuração de publicação de anúncios de modo a remover um controlo de aumento, use o método 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"]
    }'
    

    Substitua o seguinte:

    • CONFIG_ID: o ID da configuração de publicação à qual quer anexar os controlos de aumento, por exemplo, my_app-1234567_id. Consulte o passo anterior.

    • CONTROL_ID: contém os IDs de um ou mais dos controlos de aumento que quer que a configuração de publicação tenha. Certifique-se de que omite todos os controlos de aumento que quer eliminar. Esta é uma matriz de strings. Se tiver mais do que um ID, não se esqueça de usar aspas e vírgulas para os separar. Por exemplo, boost-1", "boost-2.