Tagging dei metadati e bucket degli utenti

Raccomandazioni intelligenti può essere utilizzato per migliorare la personalizzazione pertinente per gli utenti finali, anche quando sono anonimi. I clienti possono integrare un'esperienza di codifica dei metadati personalizzata per il loro negozio. Questa esperienza si ottiene utilizzando la capacità di identificare tag di metadati per i contenuti (come articoli scritti, podcast, video, prodotti al dettaglio, ecc.) e consigliare tag o contenuti simili in base al gusto o alla preferenza di quell'utente. I metadati degli utenti possono essere potenti per consigliare contenuti pertinenti a tutti gli utenti, tra cui:

  • Clienti nuovi o poco frequenti (noti anche come "utenti sporadici").
  • Connettere gli utenti ad altri utenti sulla base di tag di metadati univoci.
  • Connettere gli utenti a contenuti pertinenti e con tempi di consegna brevi.

Quando l'assegnazione di tag ai metadati è abilitata, gli utenti possono creare nuovi scenari di raccomandazioni come:

  • Categorie di metadati che abbiamo scelto per te
  • Altre persone guardano anche queste categorie
  • Eventi recenti basati sulla tua attività recente
  • Prodotti/contenuti simili in base ai tag dei metadati attribuiti
  • Scelti per te in base ai bucket del comportamento degli utenti

Cos'è un tag?

I tag sono un descrittore di qualcosa di interessante all'interno degli elementi e dei contenuti, a cui gli utenti gravitano e devono essere specifici per l'attività dell'utente finale. Ad esempio, nel mondo dei film, il genere, i membri del cast, l'umore, ecc. possono essere tutti considerati tag per un film, nonché qualcosa per cui gli utenti finali hanno una predilezione o un'antipatia speciale. I tag possono anche includere giocatori/utenti famosi, titoli di articoli, genere, categorie di prodotti, eventi, altra terminologia dei contenuti. L'obiettivo è garantire che agli utenti finali vengano consigliati contenuti pertinenti che si adattano ai loro interessi, gusti, preferenze in base ai metadati disponibili.

Panoramica dell'architettura

Per configurare i tag dei metadati come mostrato nel diagramma dell'architettura, i prerequisiti sono i seguenti:

  1. Archiviazione autorevole per contenuti con tag di metadati avanzati – Catalogo.
  2. Comportamento di interazione dell'utente (clic sul contenuto/Utilizzo). Potrebbero essere disponibili anche informazioni sul profilo dell'utente finale.
  3. Un account Raccomandazioni intelligenti diverso e un'istanza di modellazione per comprendere gli interessi degli utenti presentati come tag.
  4. Un componente per classificare i contenuti in base a tag personalizzati con una query API in tempo reale.

Questa immagine mostra lo schema dell'architettura per la configurazione del tag dei metadati in un account di Raccomandazioni intelligenti separato.

Quando abilitato, il servizio produce un modello di "tag" personalizzati per gli utenti, basati su:

  1. Interazioni utente storiche
  2. Contenuti ricchi di metadati con "tag"
    1. Il presupposto qui è che i tag siano puliti (nessun errore di ortografia e i tag sono un set predeterminato e razionalizzato da esperti e non creati o allegati casualmente).

Configurazione del contratto di dati

Per configurare un contratto dati per supportare l'assegnazione dei tag ai metadati, procedi come segue: prendi nota delle modifiche tra ItemId, TagId e InteractionGroupingId.

Nella sezione Applicazioni, vengono visualizzati esempi di come l'introduzione di a TagID o BucketId modifica la configurazione del contratto dati. Ti suggeriamo di avere un account Raccomandazioni intelligenti e un'istanza di modellazione separati durante il test dell'assegnazione di tag dei metadati.

Nome funzionalità IR CATALOGO
Entità dati
CATALOGO
Campi entità di dati
INTERAZIONI
Entità dati
INTERAZIONI
Campi entità di dati
Obbligatorio per tutte le risposte Reco_ItemsAndVariants ItemId come TagId
Title
Capacità di filtraggio
Si applica a tutti gli elenchi
Reco_ItemCategories ItemCategories: ItemId (o TagId), categoria
Le persone hanno visualizzato anche Reco_Interactions InteractionGroupingId come UserId
ItemId come TagId
UserId
InteractionType: Acquisto == visualizzato
Timestamp:
Scelti per te Reco_Interactions Come il precedente

Applicazioni ed esempi

Le sezioni seguenti esaminano due casi d'uso comuni che traggono vantaggio dalla codifica dei metadati e forniscono alcuni esempi con dati dimostrativi per ciascuno.

  1. Per ottenere "gli articoli più popolari per te" per gli utenti sporadici. Per vedere un esempio, vedi la sezione intitolata "Ottieni gli articoli più popolari per te e per gli utenti sporadici".
  2. Per creare una mappa appresa dalla macchina dei valori dei metadati degli utenti. Per vedere un esempio, consulta la sezione intitolata "Crea una mappa ML dei valori dei metadati degli utenti".

Un problema comune nel mondo dell'IA-ML è come fornire consigli pertinenti agli utenti che sono clienti nuovi o poco frequenti (noti anche come "utenti sporadici"). Come accennato in precedenza, l'obiettivo qui è creare alcuni bucket distinti basati su categorie significative e informazioni demografiche disponibili (ovvero età e sesso). Quindi utilizza tutte le interazioni per connettere tutti gli utenti ai corrispondenti bucket demografici, che a loro volta consentono di collegare i bucket agli elementi durante la fase di addestramento del modello. Durante la fase di esecuzione, è possibile assegnare un bucket demografico di Cold User e quindi utilizzarlo per consigliare articoli, ad esempio "articoli più popolari per bucket utente".

Attieniti alla procedura seguente:

  1. Preparare un bucket di utenti con le relative informazioni sui metadati.
  2. Crea le connessioni per il modello nel file di archiviazione dati "Reco_Interactions.csv".
  3. Interroga il modello per ottenere l'API "articoli più popolari per bucket utente".

Passaggio 1: preparare un bucket di utenti con le relative informazioni sui metadati

Alcune procedure consigliate per la creazione dei bucket sono le seguenti:

  • I metadati utente possono essere rappresentati come bucket a intervalli. Prendi in considerazione l'utilizzo dei metadati che hanno senso per il tuo dominio aziendale e caso d'uso. Ad esempio, se desideri creare un bucket per i dati sull'età, puoi utilizzare questi valori: Age5To11, Age30To40 e così via.
  • Alcuni metadati utente possono anche essere combinati insieme in bucket. Prendi in considerazione l'utilizzo dei metadati e delle combinazioni che hanno senso per il tuo dominio aziendale e caso d'uso. Ad esempio, puoi combinare i dati relativi all'età e al sesso per creare bucket come questo: Age20To30Male, Age20To30Female, Age30To40Male, Age30To40Female e così via.
  • Una volta creati i bucket, è necessario assegnare a ciascun bucket un BucketId univoco.

Passaggio 2: Creare le connessioni per il modello nel file di archiviazione dati "Reco_Interactions.csv"

A seconda del numero di bucket superiore o inferiore a 1.000, il modo in cui i dati vengono configurati nel contratto dati potrebbe cambiare.

Se ci sono MENO di 1.000 bucket

Per ogni riga di interazione, imposti ChannelId su BucketId, che corrisponde (o si adatta meglio) all'utente. La riga CSV di interazione viene modificata in: InteractionGroupingID, ItemId, UserId e BucketId come ChannelId. Un esempio di Interactions.CSV è mostrato di seguito:

CSV di esempio per MENO di 1.000 bucket

Le intestazioni CSV interazioni vengono visualizzate solo per comodità e non dovrebbero far parte dei dati effettivi.

InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
InteractionGroupingID ItemId UserId BucketId
Se ci sono PIÙ di 1.000 bucket

Se sono presenti più di 1000 bucket di dati, puoi creare più righe di interazione utilizzando BucketId. Trasforma ogni riga di interazione originale tra un utente e un elemento in due nuove righe distinte con un unico InteractionGroupingId che è unico solo per queste due righe. L'esempio mostra:

  1. La riga dell'interazione originale utilizzando UserId,ItemId e l'InteractionGroupingId come UNIQUE_ID.
  2. La riga di interazione aggiuntiva con l'BucketId come ItemId.
CSV di esempio per MENO di 1.000 bucket:

Le intestazioni CSV interazioni vengono visualizzate solo per comodità e non dovrebbero far parte dei dati effettivi.

InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
UNIQUE_ID ItemId UserId
UNIQUE_ID BucketId UserId

Prendi in considerazione lo schema di costruzione del modello discusso in precedenza. Dopo che un Cold User e il suo segmento demografico sono stati determinati, interroga l'endpoint in esecuzione utilizzando il tipo di elenco "Prossima azione migliore" (precedentemente CART) con il BucketId basato sui dati demografici per consigliare gli elementi più popolari per tale bucket.

Se ci sono MENO di 1.000 bucket

Un collegamento di query API di esempio in cui il parametro per ChannelId viene sostituito con il valore BucketId, che sarebbe simile al seguente:

<serving-endpoint>/Reco/V1.0/Popular?channelID=<BucketId>
Esempio 1: meno di 1.000 bucket

Supponiamo che un utente con UserId = 100, con una personalizzazione assegnata BucketId=Age30To40, che abbia recentemente acquistato un articolo con ItemId=98005. Questo esempio crea una riga nel file "Reco_Interactions.csv", che utilizza un BucketId (nel campo ChannelId dello schema IR) che meglio corrisponde all'utente (rappresentato da UserId nello schema IR):

  • Le informazioni sull'interazione originale sono: InteractionGroupingId=1, UserId=100, ItemId=98.005
  • Nota nell'esempio CSV che viene aggiunto il relativo ChannelId, che meglio corrisponde a UserId. Nell'esempio, lo UserId è stato abbinato al BucketId = Age30To40, quindi la riga Interazione modificata è:
InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
1 98005 100 Age30To40
  • La query e la risposta dell'API restituiscono un elenco di ItemId, incluso ItemId=43218 nella terza posizione, che è un elemento popolare per gli utenti di questa categoria.
Query 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"
}
Se ci sono PIÙ di 1.000 bucket

Un collegamento di query API di esempio in cui ItemId viene sostituito con il valore BucketId per un utente sporadico sarebbe simile al seguente:

<serving-endpoint>/Reco/V1.0/Cart/<BucketId>?
Esempio 2: più di 1.000 bucket

Supponiamo che un utente con UserId = 100, con una personalizzazione assegnata BucketId=Age30To40Female, che abbia recentemente acquistato un articolo con ItemId=98005. Ora puoi utilizzare i dati di interazione originali e costruire righe nel file "Reco_Interactions.csv":

  • Le informazioni sull'interazione originale sono: InteractionGroupingId= NEW_UNIQUE_ID, UserId=100, ItemId=98005
  • Le due righe di informazioni sull'interazione costruite che dovrebbero trovarsi nel file "Reco_Interactions.csv" letto dal servizio Raccomandazioni intelligenti:
InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
UNIQUE_ID 98005 100
UNIQUE_ID Age30To40Female 100
  • La query e la risposta dell'API restituiscono un elenco di ItemId, incluso ItemId=43218 nella terza posizione, che è un prodotto popolare per gli utenti di questa categoria.
Query 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"
}

Applicazione 2: creazione di una mappa ML dei valori dei metadati degli utenti

La modellazione dei metadati degli utenti "Tag" al posto delle interazioni dirette dell'utente può essere una modifica potente quando l'obiettivo è produrre un risultato, che mostri quanto gli utenti sono connessi con quei tag e quali tag sono veramente simili per comportamento. Assegna ciascun tag disponibile e appropriato (ad esempio demografico, età e genere, o altro metadato) un identificativo univoco, a cui il servizio fa riferimento come TagId. Durante la fase di addestramento del modello, tutti i dati delle interazioni vengono utilizzati per creare una connessione tra UserId e TagId.

Durante la fase di pubblicazione, il sistema può fornire un elenco personalizzato di tag chiamando "Scelti per te" con UserId e tag simili chiamando "Alle persone piace anche" con TagId.

Come utilizzare TagIds per le raccomandazioni:

  1. Prepara un elenco di valori dei metadati utente (tag) e assegna a ciascuno di essi un TagId univoco.
  2. Crea le connessioni per il modello nel file di archiviazione dati Reco_Interactions.CSV.
  3. Interroga il modello per ottenere l'API "tag personalizzati per utente" o "tag simili".

Passaggio 1: Prepara un elenco di valori dei metadati utente (tag) e assegna a ciascuno di essi un TagId univoco

Quando si costruiscono valori per i dati Età, il raggruppamento in categorie è ancora un buon approccio: Age5To11, Age12To18, ecc.

Per altri valori di metadati, crea un TagId separato per ognuno. Ad esempio, se volessimo una categoria per Stato di famiglia: Singolo, Coppia, CoupleWithKids, ecc.

Passaggio 2: Creare le connessioni per il modello nel file di archiviazione dati Reco_Interactions.CSV

Utilizzare ciascuna interazione originale tra un utente e un elemento per costruire una riga di dati di interazione con TagId. [!Nota:]

Alcuni promemoria importanti con questo approccio:

  1. Solo i dati appena costruiti verranno utilizzati nell'entità di dati Interazioni per il modello.
  2. La creazione di una riga di interazione che collega gli utenti ai TagId non deve necessariamente essere basata su un'interazione. Questo è un esempio per illustrare come si può creare un'interazione per connettere gli utenti ai tag nel modello.
  3. Per InteractionGroupingId potrebbe avere senso riutilizzare l'interazione originale, se disponibile. Altrimenti, prova a raggruppare per UserId. Durante la fase di addestramento del modello, tutti i dati delle interazioni vengono utilizzati per creare una connessione tra i diversi TagIds e tra UserID e TagId. Provare con diversi modi di raggruppare e poi vedere quale produce i migliori risultati pertinenti è il nostro suggerimento in quanto diversi scenari e modelli di utilizzo possono differire.
    1. Riga Interazione originale: con UserId, ItemId, InteractionGroupingId. A differenza dell'esempio precedente con BucketId, NON INCLUDERE questa riga nell'input set di dati.
    2. NUOVA riga interazione: con UserId, TagId come ItemId, UserId come InteractionGroupingId.

Un contratto dati di esempio sarebbe simile al seguente:

InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
UserId TagId UserId

Passaggio 3: Interroga il modello per ottenere l'API tag personalizzati per utente o tag simili

Con un'attenta costruzione del modello, l'interrogazione dell'endpoint in esecuzione utilizzando i tipi di elenco "Scelte per te" e "Piace anche alle persone" produce i risultati desiderati.

Una query API "Scelti per te", che restituisce i TagId consigliati per un determinato UserId avrebbe il seguente aspetto:

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

Una query API "Alle persone piace anche" in cui il parametro seed-item è sostituito dal corrispondente TagId:

<serving-endpoint>/Reco/V1.0/Similar/<TagID-value>?
Output di risposta di esempio
{
    "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"
}

Esempio 3: query per tagId con dati dimostrativi

Supponiamo che un utente con UserId=100 abbia indicato di essere allineato con i seguenti tag: 123 (che rappresenta "Tifoso di calcio"), Age30To40Female e FamilyWithKids.

È possibile utilizzare la riga di interazione originale per costruire le seguenti righe nel file "Reco_Interactions.csv": o 3 nuove righe di informazioni sull'interazione, una per ogni tag per quell'utente, che dovrebbero trovarsi nel file "Reco_Interactions.csv" che è letto dal servizio Raccomandazioni intelligenti:

![Nota]

In questo esempio, abbiamo scelto di raggruppare per UserId e abbiamo impostato InteractionGroupingId uguale a UserId. Si noti inoltre che ItemId rappresenta TagId.

InteractionGroupingId ItemId ItemVariantId ID utente InteractionType Timestamp: Attributo futuro Attributo futuro Canale Catalogo Punti di forza IsPositive
100 123 100
100 Age30To40Female 100
100 FamilyWithKids 100
Domande e risposte per le selezioni

Ecco come viene visualizzata la richiesta "Scelti per te" costruita:

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

La risposta Prelievi restituisce un elenco di 200 ItemId (per i tag) tra cui, TagID=FamilyWithKids in prima posizione.

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

Domanda e risposta per elementi simili

Ecco come appare la richiesta "Alle persone piace anche" costruita utilizzando l'API simile:

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

La risposta "Alla gente piace anche" restituisce un elenco di 200 ItemId (per i tag) che include, Age30To40Female in prima posizione e FamilyWithKids in seconda posizione.


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

Per saperne di più sul nostro servizio e sui modelli che supportiamo, consulta la nostra Guida alla modellazione.

Vedere anche

Guida di avvio rapido: creare un account IR
Domande frequenti sui modelli
Guida ai contratti di dati
Richieste API di esempio