Organisaties investeren voortdurend tijd en moeite in het ontwikkelen van intelligente aanbevelingsoplossingen om op maat gemaakte en relevante inhoud aan hun gebruikers aan te bieden. De doelen kunnen talrijk zijn: de gebruikerservaring transformeren, zinvolle interactie genereren en contentconsumptie stimuleren. Sommige van deze oplossingen maken gebruik van gemeenschappelijke machine learning (ML)-modellen die zijn gebaseerd op historische interactiepatronen, demografische kenmerken van gebruikers, productovereenkomsten en groepsgedrag. Naast deze attributen kan context (zoals weer, locatie, enzovoort) op het moment van interactie de beslissingen van gebruikers beïnvloeden tijdens het navigeren door inhoud.
In dit bericht laten we zien hoe u het huidige apparaattype van de gebruiker kunt gebruiken als context om de effectiviteit van uw Amazon personaliseren-gebaseerde aanbevelingen. Daarnaast laten we zien hoe u een dergelijke context kunt gebruiken om aanbevelingen dynamisch te filteren. Hoewel dit bericht laat zien hoe Amazon Personalize kan worden gebruikt voor een video-on-demand (VOD) use case, is het vermeldenswaard dat Amazon Personalize in meerdere industrieën kan worden gebruikt.
Wat is Amazon Personaliseren?
Amazon Personalize stelt ontwikkelaars in staat applicaties te bouwen die worden aangedreven door hetzelfde type ML-technologie dat wordt gebruikt door Amazon.com voor realtime gepersonaliseerde aanbevelingen. Amazon Personalize kan een breed scala aan personalisatie-ervaringen bieden, waaronder specifieke productaanbevelingen, gepersonaliseerde herschikking van producten en op maat gemaakte direct marketing. Bovendien versnelt Amazon Personalize, als een volledig beheerde AI-service, digitale transformaties van klanten met ML, waardoor het gemakkelijker wordt om gepersonaliseerde aanbevelingen te integreren in bestaande websites, applicaties, e-mailmarketingsystemen en meer.
Waarom is context belangrijk?
Het gebruik van de contextuele metadata van een gebruiker, zoals locatie, tijdstip, apparaattype en weer, biedt gepersonaliseerde ervaringen voor bestaande gebruikers en helpt de koude startfase voor nieuwe of niet-geïdentificeerde gebruikers te verbeteren. De koude start fase verwijst naar de periode waarin uw aanbevelingsengine niet-gepersonaliseerde aanbevelingen geeft vanwege het ontbreken van historische informatie over die gebruiker. In situaties waarin er andere vereisten zijn om items te filteren en te promoten (bijvoorbeeld in nieuws en weer), helpt het toevoegen van de huidige context van een gebruiker (seizoen of tijd van de dag) de nauwkeurigheid te verbeteren door aanbevelingen op te nemen en uit te sluiten.
Laten we het voorbeeld nemen van een VOD-platform dat shows, documentaires en films aan de gebruiker aanbeveelt. Op basis van gedragsanalyse weten we dat VOD-gebruikers de neiging hebben om kortere inhoud zoals sitcoms op mobiele apparaten en langere inhoud zoals films op hun tv of desktop te consumeren.
Overzicht oplossingen
Voortbouwend op het voorbeeld van het overwegen van het apparaattype van een gebruiker, laten we zien hoe deze informatie als context kan worden verstrekt, zodat Amazon Personalize automatisch kan leren welke invloed het apparaat van een gebruiker heeft op hun favoriete soorten inhoud.
We volgen het architectuurpatroon dat wordt weergegeven in het volgende diagram om te illustreren hoe context automatisch kan worden doorgegeven aan Amazon Personalize. Het automatisch afleiden van context wordt bereikt door Amazon CloudFront headers die zijn opgenomen in verzoeken zoals een REST API in Amazon API-gateway dat roept een AWS Lambda functie om aanbevelingen op te halen. Raadpleeg het volledige codevoorbeeld dat beschikbaar is op onze GitHub-repository. Wij bieden een AWS CloudFormatie sjabloon om de benodigde resources te maken.
In de volgende secties laten we zien hoe u elke stap van het voorbeeldarchitectuurpatroon instelt.
Kies een recept
Recepten zijn Amazon Personalize-algoritmen die zijn voorbereid voor specifieke gebruikssituaties. Amazon Personalize biedt recepten op basis van veelgebruikte use-cases voor trainingsmodellen. Voor onze use case hebben we een eenvoudige Amazon Personalize custom recommender gebouwd met behulp van het User-Personalization-recept. Het voorspelt de items waarmee een gebruiker interactie zal hebben op basis van de interactiedataset. Bovendien gebruikt dit recept ook items en gebruikersdatasets om aanbevelingen te beïnvloeden, indien verstrekt. Voor meer informatie over hoe dit recept werkt, zie Recept voor gebruikerspersonalisatie.
Maak en importeer een dataset
Voordeel halen uit context vereist het specificeren van contextwaarden met interacties, zodat adviseurs context kunnen gebruiken als functies bij het trainen van modellen. We moeten ook de huidige context van de gebruiker geven op het moment van inferentie. Het interactieschema (zie de volgende code) definieert de structuur van historische en real-time gebruikers-naar-items interactiegegevens. De USER_ID
, ITEM_ID
en TIMESTAMP
velden zijn vereist door Amazon Personalize voor deze dataset. DEVICE_TYPE
is een aangepast categorisch veld dat we voor dit voorbeeld toevoegen om de huidige context van de gebruiker vast te leggen en op te nemen in modeltraining. Amazon Personalize gebruikt deze interactiedataset om modellen te trainen en aanbevelingscampagnes te maken.
Evenzo definieert het itemschema (zie de volgende code) de structuur van product- en videocatalogusgegevens. De ITEM_ID
is vereist door Amazon Personalize voor deze dataset. CREATION_TIMESTAMP
is een gereserveerde kolomnaam, maar is niet vereist. GENRE
en ALLOWED_COUNTRIES
zijn aangepaste velden die we voor dit voorbeeld toevoegen om het genre van de video vast te leggen en de landen waar de video's mogen worden afgespeeld. Amazon Personalize gebruikt deze items-dataset om modellen te trainen en aanbevelingscampagnes te maken.
In onze context, historische gegevens verwijst naar de interactiegeschiedenis van eindgebruikers met video's en items op het VOD-platform. Deze gegevens worden meestal verzameld en opgeslagen in de database van de applicatie.
Voor demodoeleinden gebruiken we de Faker-bibliotheek van Python om enkele testgegevens te genereren die de interactiedataset met verschillende items, gebruikers en apparaattypen bespotten gedurende een periode van 3 maanden. Nadat het schema en de locatie van het invoerinteractiebestand zijn gedefinieerd, zijn de volgende stappen het maken van een datasetgroep, het opnemen van de interactiedataset in de datasetgroep en ten slotte het importeren van de trainingsgegevens in de dataset, zoals geïllustreerd in de volgende codefragmenten:
Verzamel historische gegevens en train het model
In deze stap definiëren we het gekozen recept en maken we een oplossing en oplossingsversie die verwijst naar de eerder gedefinieerde datasetgroep. Wanneer u een aangepaste oplossing maakt, geeft u een recept op en configureert u trainingsparameters. Wanneer je een oplossingsversie voor de oplossing maakt, traint Amazon Personalize het model dat de oplossingsversie ondersteunt op basis van het recept en de trainingsconfiguratie. Zie de volgende code:
Maak een campagne-eindpunt
Nadat u uw model hebt getraind, implementeert u het in een campagne. Een campagne maakt en beheert een automatisch schaalend eindpunt voor uw getrainde model dat u kunt gebruiken om gepersonaliseerde aanbevelingen te krijgen met behulp van de GetRecommendations
API. In een latere stap gebruiken we dit campagne-eindpunt om automatisch het apparaattype als context als parameter door te geven en gepersonaliseerde aanbevelingen te ontvangen. Zie de volgende code:
Maak een dynamisch filter
Wanneer u aanbevelingen krijgt van de gemaakte campagne, kunt u resultaten filteren op basis van aangepaste criteria. Voor ons voorbeeld maken we een filter om te voldoen aan de eis om video's aan te bevelen die alleen mogen worden afgespeeld vanuit het huidige land van de gebruiker. De landinformatie wordt dynamisch doorgegeven vanuit de CloudFront HTTP-header.
Maak een Lambda-functie
De volgende stap in onze architectuur is het creëren van een Lambda-functie om API-verzoeken te verwerken die afkomstig zijn van de CloudFront-distributie en te reageren door het Amazon Personalize-campagne-eindpunt aan te roepen. In deze Lambda-functie definiëren we logica om de volgende HTTP-headers en queryreeksparameters van het CloudFront-verzoek te analyseren om respectievelijk het apparaattype en de gebruikers-ID van de gebruiker te bepalen:
CloudFront-Is-Desktop-Viewer
CloudFront-Is-Mobile-Viewer
CloudFront-Is-SmartTV-Viewer
CloudFront-Is-Tablet-Viewer
CloudFront-Viewer-Country
De code om deze functie te maken wordt geïmplementeerd via de CloudFormation-sjabloon.
Maak een REST-API
Om de Lambda-functie en het Amazon Personalize-campagne-eindpunt toegankelijk te maken voor de CloudFront-distributie, maken we een REST API-eindpunt dat is ingesteld als een Lambda-proxy. API Gateway biedt tools voor het maken en documenteren van API's die HTTP-verzoeken naar Lambda-functies routeren. Met de Lambda-proxy-integratiefunctie kan CloudFront een enkele Lambda-functie aanroepen die verzoeken naar het Amazon Personalize-campagne-eindpunt abstraheert. De code om deze functie te maken wordt geïmplementeerd via de CloudFormation-sjabloon.
Maak een CloudFront-distributie
Bij het maken van een CloudFront-distributie, omdat dit een demo-instelling is, schakelen we caching uit met behulp van een aangepast cachingbeleid, zodat het verzoek elke keer naar de oorsprong gaat. Daarnaast gebruiken we een oorsprongsverzoekbeleid waarin de vereiste HTTP-headers en queryreeksparameters worden gespecificeerd die zijn opgenomen in een oorsprongsverzoek. De code om deze functie te maken wordt geïmplementeerd via de CloudFormation-sjabloon.
Aanbevelingen testen
Wanneer de URL van de CloudFront-distributie wordt geopend vanaf verschillende apparaten (desktop, tablet, telefoon, enzovoort), kunnen we gepersonaliseerde video-aanbevelingen zien die het meest relevant zijn voor hun apparaat. Als een koude gebruiker wordt gepresenteerd, worden ook de aanbevelingen op maat van het apparaat van de gebruiker gepresenteerd. In de volgende voorbeelduitvoer worden namen van video's alleen gebruikt voor weergave van hun genre en looptijd om het herkenbaar te maken.
In de volgende code krijgt een bekende gebruiker die van komedie houdt op basis van eerdere interacties en toegang heeft vanaf een telefoonapparaat kortere sitcoms:
De volgende bekende gebruiker krijgt speelfilms te zien bij toegang vanaf een smart-tv-apparaat op basis van eerdere interacties:
Een koude (onbekende) gebruiker die toegang heeft vanaf een telefoon, krijgt kortere maar populaire shows te zien:
Recommendations for user: 666 ITEM_ID GENRE ALLOWED_COUNTRIES 940 Satire US|FI|CN|ES|HK|AE 760 Satire US|FI|CN|ES|HK|AE 160 Sitcom US|FI|CN|ES|HK|AE 880 Comedy US|FI|CN|ES|HK|AE 360 Satire US|PK|NI|JM|IN|DK 840 Satire US|PK|NI|JM|IN|DK 420 Satire US|PK|NI|JM|IN|DK
Een koude (onbekende) gebruiker die toegang heeft vanaf een desktop, krijgt top sciencefictionfilms en -documentaires te zien:
De volgende bekende gebruiker die toegang heeft vanaf een telefoon, retourneert gefilterde aanbevelingen op basis van locatie (VS):
Conclusie
In dit bericht hebben we beschreven hoe u het apparaattype van de gebruiker kunt gebruiken als contextuele gegevens om uw aanbevelingen relevanter te maken. Door contextuele metadata te gebruiken om Amazon Personalize-modellen te trainen, kun je producten aanbevelen die relevant zijn voor zowel nieuwe als bestaande gebruikers, niet alleen uit de profielgegevens maar ook uit een browserplatform. Niet alleen dat, context zoals locatie (land, stad, regio, postcode) en tijd (dag van de week, weekend, weekdag, seizoen) opent de mogelijkheid om aanbevelingen te doen die herkenbaar zijn voor de gebruiker. U kunt het volledige codevoorbeeld uitvoeren met behulp van de CloudFormation-sjabloon in ons GitHub-repository en de notebooks erin klonen Amazon SageMaker Studio.
Over de auteurs
Gilles Kuessan Satchivi is een AWS Enterprise Solutions Architect met een achtergrond in netwerken, infrastructuur, beveiliging en IT-activiteiten. Hij is gepassioneerd om klanten te helpen bij het bouwen van goed ontworpen systemen op AWS. Voordat hij bij AWS kwam, werkte hij 17 jaar in de e-commerce. Buiten zijn werk brengt hij graag tijd door met zijn gezin en moedigt hij het voetbalteam van zijn kinderen aan.
Aditya Pendyala is een Senior Solutions Architect bij AWS in NYC. Hij heeft uitgebreide ervaring met het ontwerpen van cloudgebaseerde applicaties. Hij werkt momenteel samen met grote ondernemingen om hen te helpen bij het ontwerpen van zeer schaalbare, flexibele en veerkrachtige cloud-architecturen, en begeleidt hen bij alles wat met de cloud te maken heeft. Hij heeft een Master of Science in Computer Science van Shippensburg University en gelooft in het citaat "Als je stopt met leren, stop je met groeien."
Prabhakar Chandrasekaran is een Senior Technical Account Manager bij AWS Enterprise Support. Prabhakar helpt klanten graag bij het bouwen van geavanceerde AI/ML-oplossingen in de cloud. Hij werkt ook met zakelijke klanten door proactieve begeleiding en operationele assistentie te bieden en hen te helpen de waarde van hun oplossingen te verbeteren bij het gebruik van AWS. Prabhakar heeft zes AWS- en zes andere professionele certificeringen. Met meer dan 20 jaar professionele ervaring was Prabhakar een data-engineer en programmaleider in de financiële dienstverlening voordat hij bij AWS kwam.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/recommend-and-dynamically-filter-items-based-on-user-context-in-amazon-personalize/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 10
- 100
- 11
- 12
- 160
- 17
- 20
- 20 jaar
- 22
- 220
- 23
- 24
- 420
- 7
- 9
- a
- Over
- versnelt
- geraadpleegde
- beschikbaar
- toegang
- Account
- nauwkeurigheid
- bereikt
- over
- Actie
- toe te voegen
- toevoeging
- Daarnaast
- Voordeel
- Na
- AI
- AI / ML
- algoritmen
- Alles
- toestaat
- ook
- Hoewel
- Amazone
- Amazon personaliseren
- Amazon Web Services
- Amazon.com
- an
- analyse
- analyseren
- en
- api
- APIs
- toepassingen
- architectuur
- ZIJN
- reeks
- AS
- Hulp
- At
- attributen
- webmaster.
- Beschikbaar
- AWS
- achtergrond
- steun
- gebaseerde
- BE
- omdat
- vaardigheden
- gelooft
- behalve
- zowel
- Bladeren
- bouw
- bebouwd
- maar
- by
- Bellen
- oproepen
- Campagne
- Campagnes
- CAN
- in staat
- vangen
- geval
- gevallen
- catalogus
- certificeringen
- uitgekozen
- Plaats
- Cloud
- code
- koud
- Kolom
- COM
- Komedie
- komst
- Gemeen
- computer
- Computer Science
- Configuratie
- aangezien
- consumeren
- consumptie
- content
- verband
- contextual
- doorlopend
- landen
- Land
- ambachtelijke
- en je merk te creëren
- aangemaakt
- creëert
- Wij creëren
- criteria
- Actueel
- Op dit moment
- gewoonte
- klant
- Klanten
- aangepaste
- op het randje
- gegevens
- Database
- datasets
- dag
- beslissingen
- gedefinieerd
- definieert
- Mate
- het leveren van
- Vraag
- demonstratie
- demografisch
- implementeren
- ingezet
- beschreven
- desktop
- Bepalen
- ontwikkelaars
- het ontwikkelen van
- apparaat
- systemen
- anders
- digitaal
- directe
- distributie
- documentaires
- documentaire
- rit
- twee
- dynamisch
- dynamisch
- elk
- gemakkelijker
- ecommerce
- effectiviteit
- inspanning
- E-mailmarketing
- maakt
- Endpoint
- Motor
- ingenieur
- verhogen
- zorgen
- Enterprise
- bedrijven
- Alle
- voorbeeld
- Exclusief
- bestaand
- ervaring
- Ervaringen
- uitgebreid
- Uitgebreide ervaring
- familie
- Kenmerk
- Voordelen
- Fictie
- veld-
- Velden
- Dien in
- films
- filter
- Tot slot
- financieel
- financiële diensten
- flexibel
- volgen
- volgend
- Voor
- oppompen van
- vol
- geheel
- functie
- functies
- poort
- verzameld
- voortbrengen
- krijgen
- het krijgen van
- Doelen
- Goes
- Groep
- Groeien
- leiding
- Guides
- Hebben
- he
- headers
- hulp
- het helpen van
- helpt
- zeer
- zijn
- historisch
- geschiedenis
- houdt
- verschrikking
- Hoe
- How To
- HTML
- http
- HTTPS
- ID
- if
- importeren
- belangrijk
- verbeteren
- in
- omvatten
- inclusief
- Inclusief
- industrieën
- beïnvloeden
- informatie
- Infrastructuur
- invoer
- integreren
- integratie
- Intelligent
- interactie
- wisselwerking
- interacties
- in
- investeren
- IT
- artikelen
- aansluiting
- jpg
- voor slechts
- blijven
- bekend
- Gebrek
- Groot
- Grote ondernemingen
- later
- leider
- LEARN
- leren
- Bibliotheek
- als
- sympathieën
- plaats
- logica
- lang
- houdt
- machine
- machine learning
- maken
- maken
- beheerd
- manager
- beheert
- veel
- Marketing
- meester
- zinvolle
- Metadata
- ML
- Mobile
- mobiele toestellen
- model
- modellen
- meer
- meest
- Films
- meervoudig
- Mysterie
- naam
- namen
- navigeren
- noodzakelijk
- netwerken
- New
- nieuws
- volgende
- opmerkend
- NYC
- of
- on
- Slechts
- opent
- operationele
- Operations
- kansen
- or
- herkomst
- Overige
- onze
- uit
- buiten
- over
- parameter
- parameters
- passeren
- voorbij
- hartstochtelijk
- verleden
- Patronen
- patronen
- periode
- Personalisatie
- Verpersoonlijken
- Gepersonaliseerde
- fase
- phone
- platform
- Plato
- Plato gegevensintelligentie
- PlatoData
- gespeeld
- beleidsmaatregelen
- Populair
- Post
- via de post
- aangedreven
- voorspelt
- bij voorkeur
- bereid
- gepresenteerd
- die eerder
- Voorafgaand
- Proactieve
- Product
- Producten
- professioneel
- Profiel
- Programma
- promoten
- zorgen voor
- mits
- biedt
- het verstrekken van
- volmacht
- doeleinden
- citeren
- real-time
- ontvangen
- recept
- adviseren
- Aanbeveling
- aanbevelingen
- bevelen
- record
- verwijst
- met betrekking tot
- regio
- relevante
- vertegenwoordiging
- te vragen
- verzoeken
- nodig
- vereiste
- Voorwaarden
- vereist
- gereserveerd
- veerkrachtig
- Resources
- respectievelijk
- Reageren
- REST
- Resultaten
- terugkerende
- weg
- lopen
- sagemaker
- dezelfde
- ervaren
- schaalbare
- Wetenschap
- Science Fiction
- Seizoen
- secties
- veiligheid
- zien
- senior
- dienen
- service
- Diensten
- reeks
- setup
- tonen
- getoond
- Shows
- overeenkomsten
- Eenvoudig
- single
- situaties
- ZES
- slim
- Smart TV
- So
- Voetbal
- oplossing
- Oplossingen
- sommige
- Tussenruimte
- specifiek
- besteden
- Stap voor
- Stappen
- opgeslagen
- Draad
- structuur
- dergelijk
- ondersteuning
- Systems
- Tablet
- op maat gemaakt
- Nemen
- team
- Technisch
- Technologie
- sjabloon
- proef
- dat
- De
- hun
- Ze
- Er.
- Deze
- spullen
- dit
- Door
- niet de tijd of
- tijdstempel
- naar
- tools
- top
- Trainen
- getraind
- Trainingen
- treinen
- Transformeren
- transformaties
- waar
- tv
- type dan:
- types
- universiteit-
- onbekend
- URL
- us
- .
- use case
- gebruikt
- Gebruiker
- Gebruikerservaring
- gebruikers
- toepassingen
- gebruik
- doorgaans
- waarde
- Values
- versie
- Video
- video op aanvraag
- Video's
- was
- we
- Weer
- web
- webservices
- websites
- week
- weekend
- wanneer
- en
- WIE
- breed
- wil
- Met
- binnen
- Mijn werk
- werkte
- werkzaam
- Bedrijven
- waard
- jaar
- You
- Your
- zephyrnet