Graph Databases are naturally well-suited for building recommendation engines. In this talk, Michal will share his experience building a number of high-performance production-ready recommendation engines using Neo4j and introduce the open-source GraphAware Recommendation Engine Library, which enables Java developers to rapidly build their own recommender systems.
This presentation starts by a brief explanation of why graphs are a suitable data model for building recommender systems. A summary of typical recommendation engine requirements follows, including the business and technical challenges these requirements introduce. Afterwards, the talk dives into possible solutions of these challenges, both from business and architectural/design perspectives, and introduces the GraphAware Recommendation Engine Library.
What follows is a demonstration of how this open-source recommendation engine skeleton solves many of the issues and how it handles the "plumbing", so that developers can focus on expressing the business logic specific to their domain.
The talk concludes by presenting complexities yet to be solved, and a brief survey of alternative approaches.
A majority of examples in this talk are drawn from real-world use cases and the speaker's personal experience building recommendation engines. Attendees should have a very basic understanding of graph theory. Prior experience with Neo4j and the Cypher query language is a plus, but not necessary. Ability to read Java is recommended.
Attendees will learn: * what is a recommendation engine and what it is good for * why graphs are a good fit for building one * what business and technical challenges one faces building a recommender * what possible solutions there are for these challenges * how to build a high-performance graph-based recommendation engine in minutes * real-world case studies
3. GraphAware
TM
News you should read
Books you should buy
People you may know
People you should date
People you should market a product to
…
Recommendation Engines
13. GraphAware
TM
Common contacts
Facebook friends in common
Email / mobile contacts in common
Each others email / mobile contact
Worked for the same company
Studied at the same school
Share the same interest
Live in the same city
…
People you may know
15. GraphAware
TM
More contacts in common = better chance of knowing each other?
Same city / school / company = does size matter? location?
What about emails / numbers that don’t represent a person?
What about people already connected?
And pending…
And rejected…
And repeatedly ignored…
People you may know
16. GraphAware
TM
Finding things to recommend
Serving the most relevant recommendations
Measuring the quality of recommendations
Time to market / cost of development
Business Challenges
18. GraphAware
TM
So we came up with an open-source recommendation
engine skeleton that will help you solve all the
challenges.
We’ve done it a few times
19. GraphAware
TM
plugin to Neo4j (uses GraphAware Framework)
you have to use a JVM-language
opinionated architecture
very fast
very flexible
handles all the plumbing
GraphAware Recommendation Engine
20. GraphAware
TM
One “engine” per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled into higher-level engines
Design Decisions
22. GraphAware
TM
One “engine” per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled to higher-level engines
Items discovered multiple times are more relevant
Relevance depends on how the item was discovered
Design Decisions
24. GraphAware
TM
One “engine” per recommendation “reason” (core logic)
Engine executes a graph traversal to find items
Engines are assembled to higher-level engines
Items discovered multiple times are more relevant
Relevance depends on how the item was discovered
Items that should not be recommended is a “cross-cutting” concern
Design Decisions
38. GraphAware
TM
Finding things to recommend
Serving the most relevant recommendations
Measuring the quality of recommendations
Time to market / cost of development
Business Challenges
41. GraphAware
TM
Built-in capability to pre-compute recommendations
Other built-in base-classes
But we need your help!
https://github.com/graphaware/neo4j-reco
There’s more!
45. GraphAware
TM
Try it
Give us feedback
Contribute
Build your own modules
Get in touch for support / consultancy
GraphAware Framework
46. GraphAware
TM
GraphAware Events
19
Jan
Recommendation
Engines in Berlin
(Meetup)
19
Jan
BEER TONIGHT!
31
Jan
Recommendation
Engines in Brussels
(FOSDEM)
31
Jan
GraphGen in Brussels
(FOSDEM)
5
Feb
Recommendation
Engines Webinar
5
Feb
Meetup at GraphAware
(build your own
Recommendation Engine)
10
Feb
Neo4j Fundamentals in
Manchester
17
Feb
Neo4j Fundamentals in
Edinburgh
47.
48. GraphAware
TM
GraphConnect Europe 2015
When:
Where:
Tickets:
Call for Papers:
Sponsors:
Thursday, 7th May, 2015 - main Conference Day
Wednesday, 6th May 2015 - Training Day
Etc venues, 155 Bishopsgate, London
(next to Liverpool Street Station)
now available on www.graphconnect.com
199$ early bird plus 100$ for training
499$ full price plus 100$ for training
open now till 29th January
all Neo4j community members, customers or
general graph enthusiasts are invited to submit their talk
open now till 29th January, email:
gceurope@neotechnology.com