Partilhar via


Identificação de metadados e criação de registo de utilizadores

O Intelligent Recommendations pode ser utilizado para melhorar a personalização relevante para utilizadores finais, mesmo quando são anónimos. Os clientes podem integrar uma experiência de identificação de metadados personalizados para as respetivas montras. Esta experiência é alcançada através da utilização da capacidade de identificar etiquetas de metadados para conteúdo (como artigos escritos, podcasts, vídeos, produtos de retalho, etc.) e etiquetas ou conteúdo semelhantes recomendados com base na gosto/preferência desse utilizador. Os metadados de utilizador podem ser poderosos para recomendar conteúdo relevante para todos os utilizadores, incluindo:

  • Clientes novos ou pouco frequentes (também conhecidos como "utilizadores inativos").
  • Ligar utilizadores a outros utilizadores com base em identificação de metadados exclusiva.
  • Ligar utilizadores a conteúdo relevante e de prazo de curta duração.

Quando a identificação de Metadados está ativada, os utilizadores podem criar novos cenários de recomendações, tais como:

  • Categorias de Metadados escolhidas para si
  • Outras Pessoas também veem estas categorias
  • Eventos Recentes baseados na sua atividade recente
  • Produtos/conteúdos semelhantes com base nas respetivas etiquetas de metadados atribuídas
  • Seleções para si baseadas em registos de comportamentos de utilizador

O que é uma etiqueta?

Etiquetas são um descritor para algo de interesse nos itens/conteúdo, para os quais os utilizadores gravitam e têm de ser específicas da atividade do utilizador final. Por ex., no mundo do filmes, o género, os membros do elenco, tom, etc., podem ser considerados etiquetas para um filme, bem como algo pelo quais os utilizadores finais tenham uma afeição/aversão especial. As etiquetas podem até incluir jogadores famosos/utilizadores, títulos de Artigos, género, Categorias de Produto, eventos, outra terminologia de conteúdo. O objetivo é assegurar que os utilizadores finais são conteúdo relevante recomendado que se adequa aos respetivos interesses/gosto/preferência com base em metadados disponíveis.

Descrição geral da arquitetura

Para configurar a identificação de metadados conforme mostrado no diagrama da arquitetura, seguem-se os pré-requisitos:

  1. Armazenamento autoritário para conteúdo com etiquetas de metadados formatados — Catálogo.
  2. Comportamento de interação do utilizador (clica em conteúdo/Utilização). Também poderão estar disponíveis informações de perfil do utilizador final para utilização.
  3. Uma Conta do Intelligent Recommendations e da instância de modelagem separadas para compreender os interesses de utilizador apresentadas como etiquetas.
  4. Um componente para classificar conteúdo com base em etiquetas personalizadas com uma consulta à API em tempo real.

Esta imagem mostra o contorno da arquitetura para configurar a identificação de metadados numa conta do Intelligent Recommendations separada.

Quando ativado, o serviço produz um modelo de "etiquetas" personalizadas para os utilizadores, com base em:

  1. Interações Históricas do Utilizador
  2. Conteúdo rico em metadados com "etiquetas"
    1. Aqui assume-se que as etiquetas estão limpas (sem erros ortográficos e as etiquetas são um conjunto pré-determinado e racionalizado de especialista e não criados ou anexados aleatoriamente).

Configuração do Contrato de Dados

Para configurar um contrato de Dados para suportar a identificação de metadados, faça o seguinte: tome nota das alterações entre o ItemId, o TagId e o InteractionGroupingId.

Na secção Aplicações, pode ver exemplos de como a introdução de uma TagID ou BucketId altera a configuração do Contrato de Dados. Sugerimos que tenha uma conta do Intelligent Recommendations e instância de modelação separadas quando testar a identificação de metadados.

Nome da Capacidade de IR CATÁLOGO
Entidade de Dados
CATÁLOGO
Campos de Entidades de Dados
INTERAÇÕES
Entidade de Dados
INTERAÇÕES
Campos de Entidades de Dados
(Obrigatório para todas as respostas) Reco_ItemsAndVariants ItemId como o TagId
Title
Capacidade de filtragem
(Aplica-se a todas as listas)
Reco_ItemCategories ItemCategories: ItemId (ou TagId), Categoria
As pessoas também veem Reco_Interactions InteractionGroupingId como o UserId
ItemId como o TagId
UserId
InteractionType: Compra == visto
Carimbo de Data/Hora
Seleções para si Reco_Interactions (O mesmo que o anterior)

Aplicações e exemplos

As secções seguintes guiam-no por dois casos de utilização comum que beneficiam da identificação de metadados e fornecem alguns exemplos com dados de demonstração para cada um.

  1. Para obter "itens mais populares para si" para utilizadores inativos. Para ver um exemplo, consulte a secção chamada "Obter os Itens Mais Populares para si para Utilizadores Frios".
  2. Para criar um mapa aprendido por um computador dos valores de metadados dos Utilizadores. Para ver um exemplo, consulte a secção com o título "Criar um mapa ML dos valores de metadados dos utilizadores".

Um problema comum no mundo do IA-ML É como fornecer recomendações relevantes a utilizadores que são clientes novos ou pouco frequentes (também conhecidos como "Utilizadores inativos"). Como mencionado anteriormente, o objetivo aqui é criar alguns registos distintos com base em categorias significativas e informações demográficas disponíveis (ou seja, Idade e Género). Em seguida, utilize todas as Interações para ligar todos os utilizadores aos registos demográficos correspondentes, o que permite que os registos sejam ligados a itens durante a fase de preparação do modelo. Durante a fase de servir, é possível atribuir o registo demográfico de Utilizador Inativo e, em seguida, utilizar para recomendar itens, por exemplo, "itens mais populares por registo de utilizador".

Os passos são os seguintes:

  1. Prepare um registo de Utilizadores com as respetivas informações de metadados.
  2. Crie as ligações para o modelo no ficheiro de armazenamento de dados "Reco_Interactions.csv".
  3. Consulte o modelo para obter a API "itens mais populares por registo de utilizadores".

Passo 1: Prepare um registo dos Utilizadores com as respetivas informações de metadados

Seguem-se algumas melhores práticas para a criação de registos:

  • Os Metadados de Utilizador podem ser representados como registos de intervalo. Considere utilizar os metadados que fazem sentido para o domínio da empresa e utilize um caso. Por exemplo, se pretender criar um registo para dados de idade, poderá utilizar estes valores: Age5To11, Age30To40, etc.
  • Alguns metadados de Utilizador podem até ser combinados em registos em conjunto. Considere utilizar os metadados e as combinações que fazem sentido para o domínio da empresa e utilize um caso. Por exemplo, pode combinar dados de Idade e de Género para registos como este: Age20To30Male, Age20To30Female, Age30To40Male, Age30To40Female, etc.
  • Após a criação de registos, é necessário atribuir a cada registo um BucketId exclusivo.

Passo 2: Crie as ligações para o modelo no ficheiro de armazenamento de dados "Reco_Interactions.csv"

Dependendo do número de registos que estão acima ou abaixo de 1000, a forma como os dados são configurados no Contrato de Dados pode divergir.

Se houver MENOS de 1000 registos

Por cada Linha de Interação, define ChannelId para o BucketId, o que corresponde a (ou melhor se adequa) ao utilizador. A linha CSV de Interação é alterada para: InteractionGroupingID, ItemId, UserId e BucketId como o ChannelId. Segue-se um exemplo do CSV Interações:

CSV de Amostra para MENOS de 1000 registos

Os Cabeçalhos do CSV de Interações aparecem apenas para comodidade e não devem fazer parte dos dados reais.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Ponto Forte IsPositive
InteractionGroupingID ItemId UserId BucketId
Se houver MAIS de 1000 registos

Se houver mais de 1000 registos de dados, pode criar mais linhas de interação utilizando o BucketId. Transforme cada linha de interação original entre um Utilizador e um Item em duas linhas novas e distintas com um InteractionGroupingId exclusivo, que é exclusivo apenas destas duas linhas. O exemplo mostra:

  1. A linha de interação original que utiliza UserId, o ItemId e o InteractionGroupingId como UNIQUE_ID.
  2. A linha de interação adicional com o BucketId como ItemId.
CSV de Amostra para MAIS de 1000 registos:

Os Cabeçalhos do CSV de Interações aparecem apenas para comodidade e não devem fazer parte dos dados reais.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Ponto Forte IsPositive
UNIQUE_ID ItemId UserId
UNIQUE_ID BucketId UserId

Considere o contorno de construção do modelo mencionado anteriormente. Depois de um Utilizador Inativo e o respetivo registo demográfico ter sido determinado, consulte o Ponto Final de Servir utilizando o tipo de lista "Melhor Ação Seguinte" (anteriormente, CART) com o BucketId focado em demografia para recomendar os Itens mais populares para esse registo.

Quando houver MENOS de 1000 registos

Uma ligação de Consulta de API de amostra onde o parâmetro para ChannelId é substituído pelo valor BucketId, que tem este aspeto:

<serving-endpoint>/Reco/V1.0/Popular?channelID=<BucketId>
Exemplo 1: Menos de 1000 registos

Suponha que um Utilizador com UserId=100, com um BucketId=Age30To40 personalizado atribuído, comprou recentemente um item com ItemId=98005. Este exemplo cria uma linha no ficheiro “Reco_Interactions.csv”, que utiliza um BucketId (no campo ChannelId do esquema IR) que melhor corresponde ao Utilizador (representado pelo UserId no esquema IR):

  • As informações da Interação Original são: InteractionGroupingId=1, UserId=100, ItemId=98005
  • Repare no exemplo de CSV, que o ChannelId relevante, que melhor corresponde ao UserId está anexado. No exemplo, o UserId foi correspondido ao BucketId= Age30To40, pelo que a linha Interação modificada é:
InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Ponto Forte IsPositive
5 98005 100 Age30To40
  • A Consulta e Resposta da API devolvem uma lista de ItemIds, incluindo ItemId=43218 na terceira posição, que é um item popular para os utilizadores desta categoria.
Consulta API
GET <serving-endpoint>/reco/v1.0/Popular?ChannelId=Age30To40
Response
{
    "id": "Lists",
    "name": "Lists",
    "version": "v1.0",
    "interactionsVersion": "20220104115104",
    "items": [
        {
            "id": "65106",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62604",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "43218",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "63503",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62452",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Popular",
    "longTitle": "Popular",
    "titleId": 5,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}
Quando houver MAIS de 1000 registos

Uma ligação de Consulta de API de amostra onde o ItemId é substituído pelo BucketId para um utilizador inativo teria este aspeto:

<serving-endpoint>/Reco/V1.0/Cart/<BucketId>?
Exemplo 2: Mais de 1000 registos

Suponha que um Utilizador com UserId=100, com um BucketId=Age30To40Female personalizado atribuído, comprou recentemente um item com ItemId=98005. Agora, já é possível utilizar os dados da interação original e criar linhas no ficheiro “Reco_Interactions.csv”:

  • As informações da Interação Original são: InteractionGroupingId= NEW_UNIQUE_ID, UserId=100, ItemId=98005
  • As duas linhas de informações de Interação construídas que devem estar no ficheiro “Reco_Interactions.csv” que é lido pelo serviço Intelligent Recommendations:
InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Força IsPositive
UNIQUE_ID 98005 100
UNIQUE_ID Age30To40Female 100
  • A Consulta e Resposta da API devolvem uma lista de ItemIds, incluindo ItemId=43218 na terceira posição, que é um produto popular para os utilizadores nesta categoria.
Consulta API
GET <serving-endpoint>/reco/v1.0/Cart/Age30To40Female? 
Response
{
    "id": "Lists",
    "name": "Lists",
    "version": "v1.0",
    "interactionsVersion": "20220104115104",
    "items": [
        {
            "id": "65106",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62604",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "43218",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "63503",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62452",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Cart",
    "longTitle": "FrequentlyBoughtTogether",
    "titleId": 5,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}

Aplicação 2: Criar um Mapa ML dos valores de metadados dos utilizadores

A modelação de metadados de utilizadores "Etiqueta" em vez de interações diretas com os utilizadores pode ser uma modificação poderosa quando o objetivo é produzir um resultado, o que mostra o modo como os utilizadores estão ligados a essas etiquetas e que etiquetas são verdadeiramente semelhantes por comportamento. Atribua a cada etiqueta significativa e disponível (por ex.: dados demográficos, tal como Idade e Género ou outros metadados) um identificador exclusivo, a que o serviço se refere como o TagId. Durante a fase de preparação do Modelo, todos os dados de interações são utilizados para criar uma ligação entre UserIds e TagIds.

Durante a fase de entrega, o sistema pode fornecer uma lista personalizada de Etiquetas ao chamar "Seleções para si" com UserId e etiquetas semelhantes ao chamar "As pessoas também gostam" com TagId.

Como utilizar TagIds para recomendações:

  1. Prepare uma lista de valores de metadados de utilizador (etiquetas) e atribua a cada um deles um TagId exclusivo.
  2. Crie as ligações para o modelo no ficheiro de armazenamento de dados Reco_Interactions.CSV.
  3. Consulte o modelo para obter a API "etiquetas personalizadas por utilizador" ou "etiquetas semelhantes".

Passo 1: Prepare uma lista de valores de metadados de utilizador (etiquetas) e atribua a cada um deles um TagId exclusivo

Ao construir valores para dados de Idade, os registos continuam a ser uma boa abordagem: Age5To11, Age12To18, etc.

Para outros valores de metadados, crie um TagId separado para cada. Por exemplo, se pretendêssemos uma categoria para o Estado Familiar: Single, Couple, CoupleWithKids, etc.

Passo 2: Crie as ligações para o modelo no ficheiro de armazenamento de dados Reco_Interactions.CSV

Utilize cada Interação original entre um Utilizador e Item, para construir uma linha de dados da Interação com o TagId. [!Nota:]

Alguns lembretes importantes com esta abordagem:

  1. Apenas os dados recém-construídos serão utilizados na entidade de dados de Interações para o modelo.
  2. A criação de uma linha de Interação que liga Utilizadores a TagIds não tem necessariamente de ser baseada numa interação. Este é um exemplo para ilustrar como pode criar uma Interação para ligar Utilizadores a Etiquetas no modelo.
  3. Para o InteractionGroupingId poderá fazer sentido reutilizar a Interação original, se estiver disponível. Caso contrário, tente agrupar por UserId. Durante a fase de preparação do Modelo, todos os dados de interações são utilizados para criar uma ligação entre os diferentes TagIds e entres UserIDs e TagIds. A tentativa de agrupar diferentes formas de agrupar e, em seguida, de ver quais os resultados mais relevantes é a nossa sugestão, pois diferentes cenários e padrões de utilização podem ser diferentes.
    1. Linha de Interação original: com UserId, ItemId, InteractionGroupingId. Ao contrário do exemplo acima com BucketId, NÃO INCLUA esta linha no conjunto de dados.
    2. NOVA linha de Interação: com UserId, TagId como o ItemId, UserId como o InteractionGroupingId.

Um Contrato de Dados de exemplo teria este aspeto:

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Ponto Forte IsPositive
UserId TagId UserId

Passo 3: Consulte o modelo para obter etiquetas personalizadas por utilizador ou etiquetas semelhantes

Com a construção de modelos cuidadosa, consultar o Ponto final de Servir utilizando os tipos de lista "Escolhidos para si" e "Pessoas também gostam" apresentam os resultados pretendidos.

Uma Consulta à API "Seleções para si", que devolve as TagIds recomendadas para um determinado UserId teria este aspeto:

<serving-endpoint>Reco/v1.0/picks?userId=<UserId>

Uma Consulta à API "As pessoas também gostam" onde o parâmetro de item de propagação é substituído pelo TagId correspondente:

<serving-endpoint>/Reco/V1.0/Similar/<TagID-value>?
Saída de resposta de amostra
{
    "id": "Picks",
    "name": "Picks",
    "version": "v1.0",
    "items": [
        {
            "id": "68100",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "62500",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "61504",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "65103",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "61401",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Picks for you",
    "longTitle": "Picks for you",
    "titleId": 6,
    "personalizationConfidence": 1.0,
    "pagingInfo": {
        "totalItems": 139
    },
    "status": "Success"
}

Exemplo 3: Consulta para tagIds com dados de demonstração

Assuma que um Utilizador com UserId=100 indicou que está alinhado com as seguintes etiquetas: 123 (o que representa "Adepto de futebol"), Age30To40Female e FamilyWithKids.

Pode utilizar a linha de interação original para construir as seguintes linhas no ficheiro “Reco_Interactions.csv”: o Novas 3 linhas de informações de Interação, uma para cada Etiqueta para esse Utilizador, que deverá estar no ficheiro “Reco_Interactions.csv” que é lido pelo serviço Intelligent Recommendations:

![Nota]

Neste exemplo, optámos por agrupar por UserId e definimos o InteractionGroupingId igual ao UserId. Note também que o ItemId está a representar o TagId.

InteractionGroupingId ItemId ItemVariantId UserId InteractionType Carimbo de Data/Hora Atributo Futuro Atributo Futuro Canal Catálogo Ponto Forte IsPositive
100 123 100
100 Age30To40Female 100
100 FamilyWithKids 100
Consulta e respostas para seleções

Eis o aspeto do pedido "Seleções para si" construído:

GET <serving-endpoint>/reco/v1.0/picks?UserId=100

A Resposta de Seleções devolve uma Lista de 200 ItemIds (para etiquetas), incluindo TagID=FamilyWithKids na primeira posição.

{
    "id": "Picks",
    "name": "Picks",
    "version": "v1.0",
    "items": [
        {
            "id": "FamilyWithKids",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "625",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "Sports",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "651",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "611",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "Picks for you",
    "longTitle": "Picks for you",
    "titleId": 6,
    "personalizationConfidence": 1.0,
    "pagingInfo": {
        "totalItems": 139
    },
    "status": "Success"
}

Consulta e resposta para semelhantes

Eis o aspeto do pedido "As pessoas também" construído utilizando a API Semelhantes:

GET <serving-endpoint>/Reco/V1.0/Similar/FamilyWithKids?

A Resposta "Pessoas também gostam" devolve uma Lista de 200 ItemIds (para etiquetas), incluindo Age30To40Female na primeira posição e FamilyWithKids na segunda posição.


{
    "id": "Similar",
    "name": "Similar",
    "version": "v1.0",
    "items": [
        {
            "id": "Age30To40Female",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "FamilyWithKids",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "SportsParent",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "651",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        },
        {
            "id": "123",
            "trackingId": "00000000-0000-0000-0000-000000000003"
        }
    ],
    "title": "People also like",
    "longTitle": "People also like",
    "titleId": 6,
    "pagingInfo": {
        "totalItems": 200
    },
    "status": "Success"
}

Para obter mais informações sobre o nosso serviço e os modelos que suportamos, consulte o nosso Guia de Modelação.

Consulte também

Guia de Início Rápido: Criar uma Conta de IR
Perguntas e Respostas sobre Modelação
Guia do Contrato de Dados
Pedidos de API de Amostra