Sådan laver du
produktanbefalinger
med neo4j
29. august 2017
Når du som udvikler arbejder med større e-commerce sites, vil du uden tvivl støde på det problem, at du skal præsentere produktanbefalinger til kunderne. Det kan faktisk gøres ganske let ved hjælp af en grafdatabase.
Neo4j er den mest populære grafdatabase, og jeg vil i denne blog vise, hvordan features i neo4j kan bruges til at generere produktanbefalinger.
På store e-commerce sites er der mange brugere, der klikker sig gennem kategorier, produktsider og måske lægger deres varer i kurven. Den aktivitet overvåger vi, og vi gemmer den data i vores grafdatabase neo4j, så vi enkelt kan se, hvad brugerne har til fælles.
Vi kan gemme brugere og produkter som ’nodes’, der er sammenknyttet af ’edges’, og vi kan score sammenhængen med forskellige pointvægte, alt efter om kunden klikker ind på produktsiden eller lægger produktet i kurven. Et eksempel på en graf model ser sådan ud:
På nedenstående billede er de blå ’person nodes’ brugerne på vores site og de gule
At lave disse ’nodes’ er ganske simpelt. Vi skriver ’CREATE’ for at lave en ’person node’ for brugeren Keanu Reeves.
For at lave relationen mellem personen og produktet matcher vi først de to, og så skaber vi relationen med ’CREATE’.
Vi tilføjer forskellig vægtning alt efter, om brugeren klikker ind på produktsiden eller også køber produktet ved at tilføje ’score’.
Sådan overvåger vi brugerens aktiviteter, og nu skal vi så bruge information til at generere gode produktanbefalinger. Hvis vi nu gerne vil præsentere brugeren for relaterede produkter, som andre også har kigget på, så gør vi sådan her:
Dette var en guide til, hvordan du simpelt kan lave produktanbefalinger vel at bruge grafdatabasen neo4j.