Artfinder is the art marketplace. Users can buy original paintings, sculptures, limited edition prints and photography from independent artists.
David Dyball, DevOps Engineer, joins us for this week's online meetup to talk through how they're using Neo4j to make recommendations to user about which pieces of art they might like to buy. There'll be lots of Cypher queries!
Meetup link: https://www.meetup.com/Neo4j-Online-Meetup/events/238681208/
3. Optimisations
● It didn’t take much for one user to traverse ~1M nodes & 14M relationships in one query
● Identification/limiting of supernodes
(an individual node with more than 200K relationships)
● Limiting scope to only use the most recent ~400 [:LIKES] per user
● Pre-calculation of weighted User-to-User relationships
● Differentiating between actions/relationships in the graph ([:BOUGHT] vs. [:LIKES])
6. End result is a weight that identified the top {limit} users that are likely to influence
the given user. These are then stored back in the graph under
[:SIMILAR_TO_USER] relationships
9. Tips / Things Learnt
Artist
User
Product
BO
U
G
H
T_FR
O
M
FO
LLO
W
S
LIKES
BO
U
G
H
T
SIM
ILAR
_TO
_U
SER
Be prepared to iterate on your model
● Make sure iteration is part of your
development process
Ask for Help from the Community!
● Slack is your friend!
https://neo4j-users.slack.com
● The Neo4J team are ALWAYS
answering questions on
StackOverflow