The document discusses using a NoSQL and Kafka solution for recommendation problems. It involves using a document-oriented database, Kafka connectors to ingest and process data, and building a graph to model products and user reviews. Recommendations are generated for users based on their reviews, other users' reviews of similar products, and the products' attributes and categories. The results are ranked and sorted before being returned to users.
14. The Graph - Multidimensional Approach
Wine Omar
:REVIEWS
Beer
:REVIEWS
Jim
:REVIEWS
Which User?
Which
Product?
15. The Graph - Hard Relationships
"weight": {
"value": 7.5,
"unit": "lbs"
}
Product Weight
:HAS_WEIGHT
16. The Graph - Soft Relationships
MATCH (a:Weight),(b:Weight)
WHERE id(a)<id(b)
WITH a,b,
apoc.algo.euclideanDistance([a.value],[b.value])
AS dist
WHERE dist <= 0.25
MERGE (a)-[:SIMILAR {value: dist}]->(b)
Weight
7.6
:SIMILAR
Weight
7.5
{value: 0.09999999999999964}
24. Recommendations per User
The current User did some
good reviews to Products.
The Product was reviewed
by another User.
25. Recommendations per User
The current User did some
good reviews to Products.
The Product was reviewed
by another User.
This one reviewed other
Products.
26. Recommendations per User
The current User did some
good reviews to Products.
The Product was reviewed
by another User.
This one reviewed other
Products.
This Product is similar to
other ones.
27. Recommendations per User
The current User did some
good reviews to Products.
The Product was reviewed
by another User.
This one reviewed other
Products.
This Product is similar to
other ones.
And can have some
categories in common with
the previous ones.