Aanbevelingsengines bouwen
Begrijp hoe Neo4j geavanceerde aanbevelingssystemen aandrijft door verbindingen tussen gebruikers en items te benutten.
Aanbevelingsengines bouwen is een gratis De basis van Neo4j-grafiekdatabases-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Neo4j-grafiekdatabases. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Neo4j-grafiekdatabases bevat in totaal 4 lessen.
Wat zijn aanbevelingen?
Is het je weleens opgevallen hoe streamingdiensten je volgende serie voorstellen of webwinkels producten aanbevelen die je misschien leuk vindt? Deze magie komt van aanbevelingssystemen.
Deze systemen analyseren gebruikersgedrag en kenmerken van items om te voorspellen waarin een gebruiker geïnteresseerd zal zijn. Hun doel is de gebruikerservaring te verbeteren en betrokkenheid te stimuleren.
Grafen en aanbevelingen
Graafdatabases zoals Neo4j zijn bij uitstek geschikt voor het bouwen van aanbevelingssystemen, omdat ze uitblinken in het modelleren en opvragen van verbindingen.
Aanbevelingen draaien volledig om relaties: gebruikers vinden items leuk, gebruikers lijken op andere gebruikers en items houden verband met andere items. Een graaf geeft deze verbindingen op natuurlijke wijze weer.
Gegevens van gebruikers en items modelleren
In Neo4j modelleren we gebruikers en items als knooppunten en hun interacties als relaties.
- Gebruikersknooppunten: Geven personen weer, bijvoorbeeld
(:User {name: 'Alice'}). - Itemknooppunten: Geven producten, films en artikelen weer, bijvoorbeeld
(:Movie {title: 'The Matrix'}). - Interactierelaties: Verbinden gebruikers en items, bijvoorbeeld
-[:LIKES]->,-[:BOUGHT]->en-[:RATED {score: 5}]->.
Eerste aanbevelingsgegevens
Laten we een kleine graaf maken om dit te demonstreren. We gebruiken gebruikers, films en LIKES-relaties.
Met dit eenvoudige model kunnen we verbindingen gemakkelijk doorlopen om aanbevelingen te vinden.
CREATE (:User {name: 'Alice'})-[:LIKES]->(:Movie {title: 'Inception'})
CREATE (:User {name: 'Alice'})-[:LIKES]->(:Movie {title: 'The Matrix'})
CREATE (:User {name: 'Bob'})-[:LIKES]->(:Movie {title: 'The Matrix'})
CREATE (:User {name: 'Bob'})-[:LIKES]->(:Movie {title: 'Interstellar'})
CREATE (:User {name: 'Charlie'})-[:LIKES]->(:Movie {title: 'Inception'})
CREATE (:User {name: 'Charlie'})-[:LIKES]->(:Movie {title: 'Interstellar'})Itemgebaseerde aanbevelingen
Een itemgebaseerde aanbeveling stelt items voor die vergelijkbaar zijn met wat een gebruiker al leuk vindt. Het idee is: 'gebruikers die dit item leuk vonden, vonden dat item ook leuk.'
We zoeken items die vaak door dezelfde gebruikers samen leuk zijn gevonden. Dit is handig voor het voorstellen van verwante producten of inhoud.
Cypher: itemgebaseerde aanbevelingen
Laten we films vinden die vergelijkbaar zijn met 'The Matrix', op basis van wat andere gebruikers leuk vinden.
We zoeken gebruikers die 'The Matrix' leuk vonden en bekijken vervolgens welke andere films diezelfde gebruikers leuk vonden.
MATCH (m1:Movie {title: 'The Matrix'})<-[:LIKES]-(u:User)-[:LIKES]->(m2:Movie)
WHERE m1 <> m2
RETURN m2.title AS RecommendedMovie, count(DISTINCT u) AS LikedBySameUsers
ORDER BY LikedBySameUsers DESC
LIMIT 3Gebruikersgebaseerde aanbevelingen
Een gebruikersgebaseerde aanbeveling stelt items voor die vergelijkbare gebruikers leuk vonden. Het basisidee is: 'mensen zoals jij vonden deze items leuk.'
Eerst identificeren we gebruikers met vergelijkbare smaak. Vervolgens bevelen we items aan die deze vergelijkbare gebruikers leuk vonden, maar die de huidige gebruiker nog niet heeft gezien.
Cypher: gebruikersgebaseerde aanbevelingen
Laten we films vinden die 'Alice' misschien leuk vindt, op basis van gebruikers die op haar lijken.
We zoeken gebruikers die films leuk vonden die Alice ook leuk vond. Daarna bevelen we films aan die zij leuk vonden, maar die Alice nog niet heeft gezien.
MATCH (alice:User {name: 'Alice'})-[:LIKES]->(m:Movie)<-[:LIKES]-(otherUser:User)
WHERE alice <> otherUser
WITH otherUser, collect(m) AS commonMovies
MATCH (otherUser)-[:LIKES]->(recommendedMovie:Movie)
WHERE NOT (alice)-[:LIKES]->(recommendedMovie)
RETURN recommendedMovie.title AS RecommendedMovie, count(DISTINCT otherUser) AS LikedBySimilarUsers
ORDER BY LikedBySimilarUsers DESC
LIMIT 3Aanbevelingen verbeteren
Aanbevelingssystemen kunnen geavanceerder worden gemaakt door meer gegevens te gebruiken:
- Waarderingen: Gebruik
-[:RATED {score: 4}]->om de mate van voorkeur vast te leggen. - Inhoudskenmerken: Koppel films met
-[:HAS_GENRE]->of producten met-[:IS_CATEGORY]->. - Tijdstempels: Houd rekening met recente interacties voor actuele aanbevelingen.
Hierdoor wordt de graaf verrijkt en kunnen relevantere suggesties worden gedaan.
Controle van aanbevelingsquery's
Stel dat een graaf relaties (:User)-[:WATCHED]->(:Movie) bevat. Welke van de volgende Cypher-patronen kan deel uitmaken van een query om films te vinden die zijn bekeken door gebruikers die vergelijkbaar zijn met 'Bob', maar nog niet door 'Bob' zijn bekeken?
Samenvatting: aanbevelingssystemen
In deze les heb je geleerd waarom Neo4j ideaal is voor het bouwen van aanbevelingssystemen: relaties staan centraal.
- We hebben gebruikers, items en hun interacties gemodelleerd als knooppunten en relaties.
- Je hebt zowel itemgebaseerde als gebruikersgebaseerde aanbevelingsstrategieën verkend met praktische Cypher-query's.
- Je hebt ook gezien hoe je je graafmodel kunt verrijken voor geavanceerdere aanbevelingen.
Graafdatabases vereenvoudigen complexe aanbevelingslogica en maken deze intuïtief en efficiënt!
Leer De basis van Neo4j-grafiekdatabases met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Aanbevelingsengines bouwen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Neo4j-grafiekdatabases, waaronder “Aanbevelingsengines bouwen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Neo4j-grafiekdatabases bevat in totaal 4 lessen.
Wat leer ik in “Aanbevelingsengines bouwen”?
Begrijp hoe Neo4j geavanceerde aanbevelingssystemen aandrijft door verbindingen tussen gebruikers en items te benutten. Je oefent met De basis van Neo4j-grafiekdatabases door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met De basis van Neo4j-grafiekdatabases te beginnen?
Ervaring vooraf is niet nodig. De basis van Neo4j-grafiekdatabases op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Aanbevelingsengines bouwen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over De basis van Neo4j-grafiekdatabases?
Ja. Elke les over De basis van Neo4j-grafiekdatabases bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Aanbevelingsengines bouwen
- Fraudedetectie en -onderzoek
- Kennislijsten en masterdata
- Netwerk- en IT-operatiegraphs