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:
- Archiviazione autorevole per contenuti con tag di metadati avanzati – Catalogo.
- Comportamento di interazione dell'utente (clic sul contenuto/Utilizzo). Potrebbero essere disponibili anche informazioni sul profilo dell'utente finale.
- Un account Raccomandazioni intelligenti diverso e un'istanza di modellazione per comprendere gli interessi degli utenti presentati come tag.
- Un componente per classificare i contenuti in base a tag personalizzati con una query API in tempo reale.
Quando abilitato, il servizio produce un modello di "tag" personalizzati per gli utenti, basati su:
- Interazioni utente storiche
- Contenuti ricchi di metadati con "tag"
- 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.
- 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".
- 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".
Applicazione 1: Ottieni "Raccomandazioni intelligenti" per gli utenti sporadici
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:
- Preparare un bucket di utenti con le relative informazioni sui metadati.
- Crea le connessioni per il modello nel file di archiviazione dati "Reco_Interactions.csv".
- 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:
- La riga dell'interazione originale utilizzando
UserId
,ItemId
e l'InteractionGroupingId
comeUNIQUE_ID
. - La riga di interazione aggiuntiva con l'
BucketId
comeItemId
.
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 |
Passaggio 3: interrogare il modello per ottenere l'API "articoli più popolari per bucket utente"
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 aUserId
. Nell'esempio, loUserId
è stato abbinato alBucketId
= 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:
- Prepara un elenco di valori dei metadati utente (tag) e assegna a ciascuno di essi un
TagId
univoco. - Crea le connessioni per il modello nel file di archiviazione dati Reco_Interactions.CSV.
- 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:
- Solo i dati appena costruiti verranno utilizzati nell'entità di dati Interazioni per il modello.
- 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.
- Per
InteractionGroupingId
potrebbe avere senso riutilizzare l'interazione originale, se disponibile. Altrimenti, prova a raggruppare perUserId
. 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.
- Riga Interazione originale: con
UserId
,ItemId
,InteractionGroupingId
. A differenza dell'esempio precedente conBucketId
, NON INCLUDERE questa riga nell'input set di dati.- NUOVA riga interazione: con
UserId
,TagId
comeItemId
,UserId
comeInteractionGroupingId
.
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 impostatoInteractionGroupingId
uguale aUserId
. Si noti inoltre cheItemId
rappresentaTagId
.
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