Del via


Mærkning af metadata og brugerinddeling

Intelligent Recommendations kan bruges til at forbedre relevant tilpasning for slutbrugere, også selvom de er anonyme. Kunder kan integrere en tilpasset metadatamærkningsoplevelse for deres butiksfacade. Denne oplevelse opnås ved hjælp af muligheden for at identificere metadatatags for indhold (f.eks. skrevne artikler, podcasts, videoer, detailprodukter osv.) og anbefale lignende tags eller indhold baseret på den pågældende brugers smag/præferencer. Brugermetadata kan være effektive i forhold til at anbefale relevant indhold til alle brugere, herunder:

  • Nye eller sjældne kunder (også kaldet "kolde brugere").
  • Oprettelse af forbindelse mellem brugere baseret på entydig mærkning af metadata.
  • Oprettelse af forbindelse mellem brugere og både relevant indhold og indhold med kort gennemløbstid.

Når mærkning af metadata er aktiveret, kan brugere oprette nye anbefalingsscenarier som:

  • Metadatakategorier, vi har udvalgt til dig
  • Andre personer kigger også på disse kategorier
  • Seneste hændelser baseret på din seneste aktivitet
  • Lignende produkter/indhold på baggrund af deres tilskrevne metadatatags
  • Udvalgt for dig baseret på brugerfunktionsmåder

Hvad er et tag?

Tags er en beskrivelse af noget af interesse inden for varerne/indholdet, som brugerne bliver tiltrukket af, og som skal være specifikt for slutbrugerens aktivitet. Inden for filmverdenen kan genren, skuespillerne, stemningen osv. f.eks. alle sammen betragtes som tags for en film – samt ting, som slutbrugerne synes særligt godt om eller ikke bryder sig om. Tags kan endda inkludere kendisspillere/-brugere, artikeltitler, genre, produktkategorier, hændelser og anden indholdsteminologi. Målet er at sikre, at slutbrugerne får anbefalet relevant indhold, der passer til deres interesser/smag/præferencer, baseret på tilgængelige metadata.

Oversigt over arkitektur

Hvis du vil konfigurere metadatatagging som vist i arkitekturdiagrammet, er forudsætningerne følgende:

  1. Autoritativt lager til indhold med avancerede metadatatags – katalog.
  2. Brugerinteraktioner (klik på indhold/forbrug). Oplysninger om slutbrugerprofilen kan også være tilgængelige til brug.
  3. En separat forekomst af kontoen til Intelligent Recommendations og modelleringsforekomsten for at forstå brugernes interesser, der præsenteres som tags.
  4. En komponent, der rangordner indhold baseret på tilpassede tags med en API-anmodning i realtid.

Dette billede viser den arkitektur, der er skitseret for konfiguration af metadatatagging på en separat Intelligent Recommendations-konto.

Når tjenesten er aktiveret, oprettes der en model med tilpassede "tags" for brugere baseret på:

  1. Historiske brugerinteraktioner
  2. Metadatabaseret indhold med "tags"
    1. Det antages her, at taggene er renset (ingen stavefejl, og taggene er et forudbestemt, rationaliseret sæt fra eksperter og ikke tilfældigt oprettet eller tilknyttet).

Konfiguration af datakontrakt

Hvis du vil konfigurere en datakontrakt til understøttelse af mærkning af metadata, skal du gøre følgende: Notér ændringerne mellem ItemId, TagId og InteractionGroupingId.

I sektionen Programmer kan du se eksempler på, hvordan introduktionen af et TagID eller BucketId ændrer konfigurationen af datakontrakten. Vi anbefaler, at der oprettes en separat konto til Intelligent Recommendations og en modelleringsforekomst, når mærkning af metadata testes.

Navn på IR-funktion KATALOG
Dataobjekt
KATALOG
Dataenhedsfelter
INTERAKTIONER
Dataobjekt
INTERAKTIONER
Dataenhedsfelter
(Kræves for alle svar) Reco_ItemsAndVariants ItemId som TagId
Title
Filtreringsmulighed
(Gælder for alle lister)
Reco_ItemCategories ItemCategories: ItemId (eller TagId), kategori
Andre kigger også på Reco_Interactions InteractionGroupingId som UserId
ItemId som TagId
UserId
InteractionType: Køb == vist
Tidsstempel
Udvalgt til dig Reco_Interactions (Samme som foregående)

Anvendelsesformål og eksempler

Følgende afsnit gennemgår to almindelige brugsscenarier, der drager fordel af mærkning af metadata, og de indeholder eksempler med demodata for hver af dem.

  1. Sådan opretter du "de mest populære varer til dig" til kolde brugere. Hvis du vil se et eksempel, skal du se afsnittet med titlen "Hent de mest populære varer til dig til kolde brugere".
  2. Sådan opretter du et maskinoplært kort over brugernes metadataværdier. Hvis du vil se et eksempel, skal du se afsnittet med titlen "Opret et ML-kort over brugernes metadataværdier".

Et almindeligt problem inden for AIML er, hvordan du kan komme med relevante anbefalinger til brugere, som er nye eller sjældne kunder (også kaldet "kolde brugere"). Som tidligere nævnt er formålet her at skabe nogle særlige buckets, der er baseret på meningsfulde kategorier og tilgængelige demografiske oplysninger (dvs. alder og køn). Brug derefter alle interaktioner til at knytte alle brugere til deres tilsvarende demografiske visninger, hvilket igen gør det muligt for visningerne at blive knyttet til varer i modeloplæringsfasen. I serviceringsfasen kan en Kold brugers demografiske bucket tildeles og derefter bruges til at anbefale varer, f.eks. "mest populære varer efter brugerbucket".

Trinnene er som følger:

  1. Forbered en visning af brugere med deres metadataoplysninger.
  2. Opret forbindelser til modellen i datalagerfilen "Reco_Interactions.csv".
  3. Forespørg på modellen for at få API'en "de mest populære varer efter brugervisning".

Trin 1: Forbered en visning af brugerne med deres metadataoplysninger

Der er et par bedste fremgangsmåder, når du opretter dine visninger:

  • Brugermetadata kan repræsenteres som intervalopdelte visninger. Overvej at bruge de metadata, der giver mening for dit forretningsdomæne og din use case. Hvis du f.eks. vil oprette en visning for aldersdata, kan du bruge følgende værdier: Age5To11, Age30To40 osv.
  • Nogle brugermetadata kan endda kombineres i visninger sammen. Overvej at bruge de metadata og kombinationer, der giver mening for dit forretningsdomæne og din use case. Du kan f.eks. kombinere data for både alder og køn for at oprette visninger som denne: Age20To30Male, Age20To30Female, Age30To40Male, Age30To40Female osv.
  • Når buckets er oprettet, skal du tildele hver enkelt bucket et entydigt BucketId.

Trin 2: Opret forbindelser til modellen i datalagerfilen "Reco_Interactions.csv"

Afhængigt af, om antallet af visninger er over eller under 1.000, kan den måde, data konfigureres på i datakontrakten, ændre sig.

Hvis der er UNDER 1.000 visninger

For hver interaktionsrække skal du angive ChannelId til det BucketId, der svarer til (eller bedst passer til) brugeren. Interaktions-CSV-rækken ændres til: InteractionGroupingID, ItemId UserId og BucketId som ChannelId. Et eksempel på CSV-filen med interaktioner vises nedenfor:

Eksempel på CSV til UNDER 1000 visninger

Overskrifter i CSV-filen for interaktioner vises kun for nemheds skyld og bør ikke være en del af de faktiske data.

InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
InteractionGroupingID ItemId UserId BucketId
Hvis der er OVER 1.000 visninger

Hvis der er mere end 1000 databuckets, kan du oprette flere interaktionsrækker ved hjælp af BucketId. De enkelte oprindelige interaktionsrækker mellem en bruger og en vare skal omdannes til to nye separate rækker med en entydig InteractionGroupingId, der kun er entydig for disse to rækker. Eksemplet viser:

  1. Den oprindelige interaktionsrække, der bruger UserId,ItemId og InteractionGroupingId som UNIQUE_ID.
  2. Den ekstra interaktionsrække med BucketId som ItemId.
Eksempel på CSV til OVER 1000 visninger:

Overskrifter i CSV-filen for interaktioner vises kun for nemheds skyld og bør ikke være en del af de faktiske data.

InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
UNIQUE_ID ItemId UserId
UNIQUE_ID BucketId UserId

Tag højde for den modelopbygningsstruktur, der blev beskrevet tidligere. Når en kold bruger og brugerens demografiske bucket er blevet fastsat, kan du forespørge på leveringsslutpunktet ved hjælp af listetypen "Næste bedste handling" (tidligere INDKØBSVOGN) med det demografisk fokuserede BucketId for at anbefale de mest populære varer til den pågældende bucket.

Når der er UNDER 1.000 visninger

Et link til en API-forespørgsel, hvor parameteren for ChannelId erstattes af BucketId-værdien, ser således ud:

<serving-endpoint>/Reco/V1.0/Popular?channelID=<BucketId>
Eksempel 1: Under 1000 visninger

Forestil dig en bruger med UserId=100 og en brugerdefineret tildelt BucketId=Age30To40, der for nylig har købt en vare med ItemId=98005. I dette eksempel oprettes der en række i filen "Reco_Interactions.csv", som bruger et BucketId (i feltet ChannelId i IR-skemaet), som passer bedst til brugeren (repræsenteret ved UserId i IR-skemaet):

  • De oprindelige interaktionsoplysninger er: InteractionGroupingId=1, UserId=100, ItemId=98005
  • Bemærk i CSV-eksemplet, at det relevante ChannelId, der svarer bedst til UserId, er vedhæftet. I eksemplet blevUserId matchet med BucketId= Age30To40, så den ændrede interaktionsrække er:
InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
0 98005 100 Age30To40
  • API-forespørgslen og -svaret returnerer en liste over ItemIds, herunder ItemId=43218 på tredje placering, som er en populær vare for brugere i denne kategori.
API-forespørgsel
GET <serving-endpoint>/reco/v1.0/Popular?ChannelId=Age30To40
Respons
{
    "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"
}
Når der er OVER 1.000 visninger

Et link til en API-forespørgsel, hvor parameteren for ItemId erstattes af BucketId for en kold bruger, ser således ud:

<serving-endpoint>/Reco/V1.0/Cart/<BucketId>?
Eksempel 2: Over 1.000 visninger

Forestil dig en bruger med UserId=100 og en brugerdefineret tildelt BucketId=Age30To40Female, der for nylig har købt en vare med ItemId=98005. Nu kan du bruge de oprindelige interaktionsdata og oprette rækker i filen "Reco_Interactions.csv":

  • De oprindelige interaktionsoplysninger er: InteractionGroupingId= NEW_UNIQUE_ID, UserId=100, ItemId=98005
  • De to rækker med oprettede interaktionsoplysninger, der skal være i filen "Reco_Interactions.csv", som læses af tjenesten Intelligent Recommendations:
InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
UNIQUE_ID 98005 100
UNIQUE_ID Age30To40Female 100
  • API-forespørgslen og -svaret returnerer en liste over ItemIds, herunder ItemId=43218 på tredje placering, som er et populært produkt for brugere i denne kategori.
API-forespørgsel
GET <serving-endpoint>/reco/v1.0/Cart/Age30To40Female? 
Respons
{
    "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"
}

Anveldesesformål 2: Opret et ML-kort over brugernes metadataværdier

Modellering af "tags" til brugermetadata i stedet for direkte brugerinteraktioner kan give en markant ændring, når målet er at skabe et resultat, som viser, hvor forbundne brugerne er med disse tags, og hvilke tags der i virkeligheden ligner hinanden målt på adfærd. Giv hvert enkelt meningsfuldt og tilgængeligt tag (f.eks. demografi som alder og køn eller andre metadata) et entydigt id, som tjenesten henviser til som TagId. I modeloplæringsfasen bruges alle interaktionsdata til at oprette forbindelse mellem UserId'er og TagId'er.

I leveringsfasen kan systemet vise en tilpasset liste over tags ved at kalde "Udvalgt til dig" med UserId og lignende tags ved at kalde "Andre synes også godt om" med TagId.

Sådan bruger du TagId'er til anbefalinger:

  1. Udarbejd en liste over brugermetadataværdier (tags), og tildel hver enkelt af dem et entydigt TagId.
  2. Opret forbindelser til modellen i datalagerfilen Reco_Interactions.CSV.
  3. Forespørg på modellen for at få API for "tilpassede tags efter bruger" eller "lignende tags".

Trin 1: Udarbejd en liste over brugermetadataværdier (tags), og tildel hver enkelt af dem et entydigt TagId

Når der oprettes værdier for aldersdata, er visning stadig en god fremgangsmåde: Age5To11, Age12To18 osv.

I forbindelse med andre metadataværdier skal du oprette et separat TagId for hver af dem. Hvis vi f.eks. vil have en kategori for familiestatus: : Single, Couple, CoupleWithKids osv.

Trin 2: Opret forbindelser til modellen i datalagerfilen Reco_Interactions.CSV

Brug hver enkelt original interaktion mellem en bruger og en vare til at oprette en række interaktionsdata med TagId. [Bemærk:]

Nogle vigtige påmindelser med denne fremgangsmåde:

  1. Det er kun de nyoprettede data, der bruges i interaktionsdataobjektet for modellen.
  2. Oprettelsen af en interaktionsrække, der opretter forbindelse mellem brugere og TagId'er, behøver ikke nødvendigvis at være baseret på en interaktion. Dette er et eksempel, der illustrerer, hvordan du kan oprette en interaktion for at knytte brugere til tags i modellen.
  3. For InteractionGroupingId kan det være en god ide at genbruge den oprindelige interaktion, hvis den er tilgængelig. Ellers kan du prøve at gruppere efter UserId. I modeloplæringsfasen bruges alle interaktionsdata til at oprette forbindelse mellem de forskellige TagId'er og mellem UserId'er og TagId'er. Vores forslag er at forsøge med forskellige fremgangsmåder til at gruppere og derefter se, hvilke der giver de bedste relevante resultater, da forskellige scenarier og forbrugsmønstre kan være forskellige.
    1. Oprindelig interaktionsrække: Med UserId, ItemId, InteractionGroupingId. I modsætning til eksemplet ovenfor med BucketId skal du IKKE INKLUDERE denne række i inputdatasættet.
    2. NY interaktionsrække: Med UserId, TagId som ItemId, UserId som InteractionGroupingId.

Et eksempel på en datakontrakt ser således ud:

InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
UserId TagId UserId

Trin 3: Forespørg på modellen for at tilpassede tags efter bruger eller lignende tags

Hvis du er omhyggelig med opbygning af modellen, får du det ønskede resultat ved at forespørge leveringsslutpunktet ved hjælp af listetyperne "Udvalgt til dig" og "Andre synes også godt om".

En "Udvalgt til dig"-API-forespørgsel, som returnerer de anbefalede TagId'er for et givet UserId ser sådan ud:

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

En "Andre synes også godt om"-API-forespørgsel, hvor basisenhedsparameteren erstattes af det tilsvarende TagId:

<serving-endpoint>/Reco/V1.0/Similar/<TagID-value>?
Eksempel på svaroutput
{
    "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"
}

Eksempel 3: Forespørgsel på tagId'er med demodata

Forestil dig, at en bruger med UserId=100 har angivet, at vedkommende er passer til følgende koder: 123 (som repræsenterer "fodboldfan), Age30To40Female og FamilyWithKids.

Du kan bruge den oprindelige interaktionsrække til at oprette følgende rækker i filen "Reco_Interactions.csv": Tre nye rækker interaktionsoplysninger, én for hvert tag for den pågældende bruger, som skal være i filen "Reco_Interactions.csv", der læses af tjenesten Intelligent Recommendations:

![Bemærk]

I dette eksempel har vi valgt at gruppere efter UserId og har angivet InteractionGroupingId, så det er lig med UserId. Bemærk også, at ItemId repræsenterer TagId.

InteractionGroupingId ItemId ItemVariantId Bruger-id InteractionType Tidsstempel Fremtidig attribut Fremtidig attribut Kanal Katalog Styrke IsPositive
100 123 100
100 Age30To40Female 100
100 FamilyWithKids 100
Forespørgsel og svar for udvalgte

Sådan ser den konstruerede "Udvalgt til dig"-anmodning ud:

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

Pluksvar returnerer en liste over 200 ItemIds (for tags), herunder TagID=FamilyWithKids på første placering.

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

Forespørgsel og svar for lignende

Sådan ser den konstruerede "Andre har også"-anmodning ud ved hjælp af API'en for lignende:

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

Svaret "Andre synes også godt om" returnerer en liste over 200 ItemIds (for tags), herunder Age30To40Female på første placering og FamilyWithKids på anden placering.


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

Hvis du vil vide mere om vores service og de modeller, vi understøtter, kan du se vores modelleringsvejledning.

Se også

Vejledning til hurtig start: Opret en IR-konto
Spørgsmål og svar for modellering
Vejledning til datakontrakter
Eksempler på API-forespørgsler