SlideShare a Scribd company logo
1 of 37
Download to read offline
Graph Gurus Episode 2
Building the Next Generation
Recommendation Engine
with a Graph Database, using TigerGraph’s GraphStudio visual SDK
© 2018 TigerGraph. All Rights Reserved
Welcome
● Attendees are muted but you can talk to us via Chat in Zoom
● We will have 10 min for Q&A at the end
● Send questions at any time using the Q&A tab in the Zoom menu
● The webinar will be recorded
● A link to the presentation and reproducible steps will be emailed
2
Developer Edition Download https://www.tigergraph.com/developer/
© 2018 TigerGraph. All Rights Reserved
Today’s Moderator
● BS in Electrical Engineering and Computer
Science from UC Berkeley
● MS in Electrical Engineering from Stanford
University
● PhD in Computer Science from Kent State
University focused on graph data mining
● 15+ years in tech industry
3
Victor Lee, Director of Product Management
© 2018 TigerGraph. All Rights Reserved
Today’s Guru
● BS in Computer Science from Fudan
University, China
● Master in Computer Science from Cornell
University
● With TigerGraph for over 3 years
● Co-author of GSQL query language
● Leading the design and development of
GraphStudio
4
Renchu Song, Engineering Manager
© 2018 TigerGraph. All Rights Reserved 5
Developer Edition Download https://www.tigergraph.com/developer/
Building a movie recommendation engine
1. Example data set
2. Defining movie recommendation graph schema
3. Defining data mapping
4. Loading data
5. Implementing movie recommendation algorithm
6. Executing query through RESTFul endpoint
© 2018 TigerGraph. All Rights Reserved 6
Developer Edition Download https://www.tigergraph.com/developer/
1. Example Data Set - MovieLens 20M
• Size: 841M (after decompression)
• 20 million ratings applied to 27,000 movies by 138,000 real users.
• Download: https://grouplens.org/datasets/movielens/20m/
© 2018 TigerGraph. All Rights Reserved 7
Data Format - CSV
movieId,title,genres
1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
2,Jumanji (1995),Adventure|Children|Fantasy
3,Grumpier Old Men (1995),Comedy|Romance
4,Waiting to Exhale (1995),Comedy|Drama|Romance
5,Father of the Bride Part II (1995),Comedy
6,Heat (1995),Action|Crime|Thriller
7,Sabrina (1995),Comedy|Romance
8,Tom and Huck (1995),Adventure|Children
9,Sudden Death (1995),Action
10,GoldenEye (1995),Action|Adventure|Thriller
11,"American President, The (1995)",Comedy|Drama|Romance
...
userId,movieId,rating,timestamp
1,2,3.5,1112486027
1,29,3.5,1112484676
1,32,3.5,1112484819
1,47,3.5,1112484727
1,50,3.5,1112484580
1,112,3.5,1094785740
1,151,4.0,1094785734
1,223,4.0,1112485573
1,253,4.0,1112484940
1,260,4.0,1112484826
1,293,4.0,1112484703
...
ratings.csv (20000264 rows)movies.csv (27278 rows)
© 2018 TigerGraph. All Rights Reserved 8
2. Defining Movie Recommendation Graph Schema
2 vertex types: person, movie 1 edge type: rate
© 2018 TigerGraph. All Rights Reserved 9
3. Defining Data Mapping
movies.csvratings.csv
person(id) movie(id, title, genres)
rate(rating, rated_at)
© 2018 TigerGraph. All Rights Reserved 10
4. Loading Data
• Loading speed
depends on machine
configuration
• Here it takes about 2
minutes.
© 2018 TigerGraph. All Rights Reserved 11
5. Implementing Movie Recommendation Algorithm
Collaborative Filtering
“People who liked items which you like also like THESE OTHER ITEMS.”
I liked Wonder Woman
And Lady Bird
Group A also liked
Wonder Woman and
Lady Bird … and
The Shape of Water.
© 2018 TigerGraph. All Rights Reserved 12
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 13
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
p
…...
rate
rate
rate
PRatedMovies
PSet
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 14
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
p
…...
rate
rate
rate
PRatedMovies
PSet
…...
PeopleRatedSameMovies
rate
rate
rate
rate
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 15
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
p
…...
rate
rate
rate
PRatedMovies
PSet
…...
PeopleRatedSameMovies
rate
rate
rate
rate
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 16
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
p
…...
rate
rate
rate
PRatedMovies
PSet
…...
PeopleRatedSameMovies
rate
rate
rate
rate
…...
rate
rate
rate
rate
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 17
Input:
A person p, two integer parameters k1
and k2
Algorithm steps:
1. Find all movies p has rated;
2. Find all persons rated same movies as p;
3. Based on the movie ratings, find the k1
persons that have most similar tastes with p;
4. Find all movies these k1
persons rated that p hasn’t rated yet;
5. Recommend the top k2
movies with highest average rating by the k1
persons;
Output:
At most k2
movies to be recommended to person p.
p
…...
rate
rate
rate
PRatedMovies
PSet
…...
PeopleRatedSameMovies
rate
rate
rate
rate
…...
rate
rate
rate
rate
RecommendedMovies
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 18
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
@avgRating = 0
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
© 2018 TigerGraph. All Rights Reserved 19
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
@avgRating = 0
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
© 2018 TigerGraph. All Rights Reserved 20
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
@avgRating = 0
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
© 2018 TigerGraph. All Rights Reserved 21
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
@avgRating = 0
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
r3 { rating = 0.5 }
© 2018 TigerGraph. All Rights Reserved 22
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
@avgRating = 2.5
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = avg(4.5 + 5.0) = 4.75
@avgRating = 4.5
@avgRating = 4.0
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
© 2018 TigerGraph. All Rights Reserved 23
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
@avgRating = 2.5 + 1 = 3.5
@avgRating = 4.75 + 1 = 5.75
@avgRating = 4.5 + 1 = 5.5
@avgRating = 4.0 + 1 = 5.0
© 2018 TigerGraph. All Rights Reserved 24
GSQL Edge Block And Accumulator
Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs
Person:s movie:mrate:r
r1{ rating = 2.5 }
r2 { rating = 4.5 }
r3 { rating = 0.5 }
r4 { rating = 5.0 }
r6 { rating = 5.0 }
r7 { rating = 4.0 }
AvgAccum<double> @avgRating;
...
// People = { Tom, Emily, Dan }
...
AvgMovieRating =
SELECT m
FROM People:s -(rate:r)-> movie:m
WHERE r.rating >= 1.0
ACCUM m.@avgRating += r.rating
POST-ACCUM m.@avgRating += 1
ORDER BY m.@avgRating DESC
LIMIT 2;
Tom
Emily
Dan
@avgRating = 0
@avgRating = 0
@avgRating = 0
Dunkirk
The Matrix
Zootopia
Star War
r5 { rating = 4.0 }
@avgRating = 3.5
@avgRating = 5.75
@avgRating = 5.5
@avgRating = 5.0
© 2018 TigerGraph. All Rights Reserved 25
Step 1. Find all movies p has rated;
p
…...
rate
{ rating = 3.5 }
rate
{ rating = 5.0 }
rate
{ rating = 3.0 }
PRatedMovies
PSet
{ @rated = true, @ratingByP = 3.5 }
{ @rated = true, @ratingByP = 5.0 }
{ @rated = true, @ratingByP = 3.0 }
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 26
Step 2. Find all persons rated same movies as p
…... …...
PRatedMovies PeopleRatedSameMovies
@ratingByP = 3.5
@ratingByP = 5.0
@ratingByP = 3.0
rate
rate
rate
rate
rate
rate
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 27
Step 3. Find the k1
persons that have most similar tastes with p.
A = [3.5, 3.0]
B = [0.5, 5.0]
@lengthASqr = 3.5 * 3.5 + 3.0 * 3.0 = 21.25
@lengthBSqr = 0.5 * 0.5 + 5.0 * 5.0 = 25.25
@dotProductAB = 3.5 * 0.5 + 3.0 * 5.0 = 16.75
@cosineSimilarity = 16.75 / sqrt(21.25) / sqrt(25.25) = 0.72311
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 28
Step 3. Find the k1
persons that have most similar tastes with p.
…...
PRatedMovies PeopleRatedSameMovies
@ratingByP = 3.5
@ratingByP = 5.0
@ratingByP = 3.0
@cosineSimilarity = 1
@lengthASqr = 3.5 * 3.5 + 3.0 * 3.0 = 21.25
@lengthBSqr = 0.5 * 0.5 + 5.0 * 5.0 = 25.25
@dotProductAB = 3.5 * 0.5 + 3.0 * 5.0 = 16.75
@cosineSimilarity = 16.75 / sqrt(21.25) / sqrt(25.25) = 0.72311
@cosineSimilarity = 0.99753
…...
rating = 3.5
rating = 5.0
rating = 0.5
rating = 5.0
rating = 5.0
rating = 3.5
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 29
Step 3. Find the k1
persons that have most similar tastes with p.
…...
PRatedMovies PeopleRatedSameMovies
@cosineSimilarity = 1
@cosineSimilarity = 0.99753
…...
@cosineSimilarity = 0.72311
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 30
Step 4. Find all movies these k1
persons rated that p hasn’t rated yet.
PeopleRatedSameMovies
…... …...
rate
RecommendedMovies
rate
rate
rate
rate
@rated = false
@rated = false
@rated = false
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 31
PeopleRatedSameMovies
…... …...
rating = 2.5
RecommendedMovies
rating = 5.0
rating = 4.5
rating = 4.5
rating = 1.0
@recommendScore = 1.75
@recommendScore = 4.75
@recommendScore = 4.5
Step 5. Recommend the top k2
movies with highest average rating by k1
persons.
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 32
Step 5. Recommend the top k2
movies with highest average rating by k1
persons.
PeopleRatedSameMovies
…... …...
rating = 2.5
RecommendedMovies
rating = 5.0
rating = 4.5
rating = 4.5
rating = 1.0
@recommendScore = 1.75
@recommendScore = 4.75
@recommendScore = 4.5
5. Implementing Movie Recommendation Algorithm
© 2018 TigerGraph. All Rights Reserved 33
curl -X GET 'http://<MACHINE-IP>:9000/query/MyGraph/RecommendMovies?p=238&k1=50&k2=20' |
python -m json.tool
6. Executing query through RESTFul endpoint
© 2018 TigerGraph. All Rights Reserved 34
Other Recommendation Algorithms
Another example:
https://doc.tigergraph.com/GSQL-Demo-Examples.html
● Content-based
○ Considers the genres of the movies
Other approaches and formulas
● Profile the users and focus on similar users
● Other scoring systems
Production systems using TigerGraph - Wish.com
delivering real-time cross-sell and up-sell recommendations to over
300 million users and driving billions in annual revenue
Person Movie Genre
Q&A
Please send your questions via the Q&A menu in Zoom
35
© 2018 TigerGraph. All Rights Reserved
Episode 3: Sept 12
Detecting Fraud and Money Laundering in Real-Time with a Graph DB
https://info.tigergraph.com/graph-gurus-3
36
REGISTER FOR MORE
WEBINARS AT
https://www.tigergraph.com/
webinars-and-events/
© 2018 TigerGraph. All Rights Reserved
Additional Resources
37
Compare the Developer Edition and Enterprise Free Trial
https://www.tigergraph.com/download/
Guru Scripts
https://github.com/tigergraph/ecosys/tree/master/guru_scripts
Join our Developer Forum
https://groups.google.com/a/opengsql.org/forum/#!forum/gsql-users
Take the Developer Survey
https://www.tigergraph.com/developer-edition-feedback-survey/
@TigerGraphDB youtube.com/tigergraph facebook.com/TigerGraphDB linkedin.com/company/TigerGraph

More Related Content

What's hot

Graph Gurus Episode 11: Accumulators for Complex Graph Analytics
Graph Gurus Episode 11: Accumulators for Complex Graph AnalyticsGraph Gurus Episode 11: Accumulators for Complex Graph Analytics
Graph Gurus Episode 11: Accumulators for Complex Graph AnalyticsTigerGraph
 
ETL Made Easy with Azure Data Factory and Azure Databricks
ETL Made Easy with Azure Data Factory and Azure DatabricksETL Made Easy with Azure Data Factory and Azure Databricks
ETL Made Easy with Azure Data Factory and Azure DatabricksDatabricks
 
Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Amazon Web Services
 
Graph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph DatabaseGraph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph DatabaseTigerGraph
 
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...Neo4j
 
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...Flink Forward
 
How Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and BeyondHow Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and BeyondNeo4j
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphNeo4j
 
Neanex - Semantic Construction with Graphs
Neanex - Semantic Construction with GraphsNeanex - Semantic Construction with Graphs
Neanex - Semantic Construction with GraphsNeo4j
 
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4jTransforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4jDatabricks
 
Graph based real-time inventory and topology for network automation - webinar...
Graph based real-time inventory and topology for network automation - webinar...Graph based real-time inventory and topology for network automation - webinar...
Graph based real-time inventory and topology for network automation - webinar...Neo4j
 
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...TigerGraph
 
Predicting Influence and Communities Using Graph Algorithms
Predicting Influence and Communities Using Graph AlgorithmsPredicting Influence and Communities Using Graph Algorithms
Predicting Influence and Communities Using Graph AlgorithmsDatabricks
 
Leveraging Generative AI to Accelerate Graph Innovation for National Security...
Leveraging Generative AI to Accelerate Graph Innovation for National Security...Leveraging Generative AI to Accelerate Graph Innovation for National Security...
Leveraging Generative AI to Accelerate Graph Innovation for National Security...Neo4j
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender SystemsYves Raimond
 
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...Neo4j
 
Introduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AIIntroduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AISemantic Web Company
 
Graphs for Genealogists
Graphs for GenealogistsGraphs for Genealogists
Graphs for GenealogistsNeo4j
 

What's hot (20)

Graph Gurus Episode 11: Accumulators for Complex Graph Analytics
Graph Gurus Episode 11: Accumulators for Complex Graph AnalyticsGraph Gurus Episode 11: Accumulators for Complex Graph Analytics
Graph Gurus Episode 11: Accumulators for Complex Graph Analytics
 
ETL Made Easy with Azure Data Factory and Azure Databricks
ETL Made Easy with Azure Data Factory and Azure DatabricksETL Made Easy with Azure Data Factory and Azure Databricks
ETL Made Easy with Azure Data Factory and Azure Databricks
 
Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28
 
Game balancing
Game balancingGame balancing
Game balancing
 
Graph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph DatabaseGraph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph Database
 
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...
Knowledge Graphs and Graph Data Science: More Context, Better Predictions (Ne...
 
Gremlin's Anatomy
Gremlin's AnatomyGremlin's Anatomy
Gremlin's Anatomy
 
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
 
How Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and BeyondHow Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and Beyond
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j Graph
 
Neanex - Semantic Construction with Graphs
Neanex - Semantic Construction with GraphsNeanex - Semantic Construction with Graphs
Neanex - Semantic Construction with Graphs
 
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4jTransforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
 
Graph based real-time inventory and topology for network automation - webinar...
Graph based real-time inventory and topology for network automation - webinar...Graph based real-time inventory and topology for network automation - webinar...
Graph based real-time inventory and topology for network automation - webinar...
 
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...
Using Graph Algorithms For Advanced Analytics - Part 4 Similarity 30 graph al...
 
Predicting Influence and Communities Using Graph Algorithms
Predicting Influence and Communities Using Graph AlgorithmsPredicting Influence and Communities Using Graph Algorithms
Predicting Influence and Communities Using Graph Algorithms
 
Leveraging Generative AI to Accelerate Graph Innovation for National Security...
Leveraging Generative AI to Accelerate Graph Innovation for National Security...Leveraging Generative AI to Accelerate Graph Innovation for National Security...
Leveraging Generative AI to Accelerate Graph Innovation for National Security...
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...
Knowledge Graphs & Graph Data Science, More Context, Better Predictions - Neo...
 
Introduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AIIntroduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AI
 
Graphs for Genealogists
Graphs for GenealogistsGraphs for Genealogists
Graphs for Genealogists
 

Similar to Graph Gurus Episode 2: Building a Movie Recommendation Engine

Movie Recommendation System - MovieLens Dataset
Movie Recommendation System - MovieLens DatasetMovie Recommendation System - MovieLens Dataset
Movie Recommendation System - MovieLens DatasetJagruti Joshi
 
Software Suite for Movie Market Analysis
Software Suite for Movie Market AnalysisSoftware Suite for Movie Market Analysis
Software Suite for Movie Market Analysisdariospin93
 
Regression Model for movies
Regression Model for moviesRegression Model for movies
Regression Model for moviesMohit Rajput
 
Netflix recommendation systems
Netflix recommendation systemsNetflix recommendation systems
Netflix recommendation systemsMina Tafreshi
 
Project Management IMDB
Project Management IMDBProject Management IMDB
Project Management IMDBhaktansen
 
Recommendation Engine with In-Database Machine Learning
Recommendation Engine with In-Database Machine LearningRecommendation Engine with In-Database Machine Learning
Recommendation Engine with In-Database Machine LearningTigerGraph
 
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous DrivingKiho Suh
 
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...TigerGraph
 
RecSys Challenge 2014, SemWexMFF group
RecSys Challenge 2014, SemWexMFF groupRecSys Challenge 2014, SemWexMFF group
RecSys Challenge 2014, SemWexMFF groupLadislav Peska
 
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...GameCamp
 
The Future of Television - AWS Summit Sydney 2018
The Future of Television - AWS Summit Sydney 2018The Future of Television - AWS Summit Sydney 2018
The Future of Television - AWS Summit Sydney 2018Amazon Web Services
 
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...Hannah Flynn
 
Animation Opportunity 2009
Animation Opportunity 2009Animation Opportunity 2009
Animation Opportunity 2009Lance Young
 
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...Shelley Reece
 
Real-world News Recommender Systems
Real-world News Recommender SystemsReal-world News Recommender Systems
Real-world News Recommender Systemskib_83
 
End-to-end machine learning project in Arabic
End-to-end machine learning project in ArabicEnd-to-end machine learning project in Arabic
End-to-end machine learning project in ArabicAMR koura
 
Mastering Multiplayer Stage3d and AIR game development for mobile devices
Mastering Multiplayer Stage3d and AIR game development for mobile devicesMastering Multiplayer Stage3d and AIR game development for mobile devices
Mastering Multiplayer Stage3d and AIR game development for mobile devicesJean-Philippe Doiron
 
R markup code to create Regression Model
R markup code to create Regression ModelR markup code to create Regression Model
R markup code to create Regression ModelMohit Rajput
 

Similar to Graph Gurus Episode 2: Building a Movie Recommendation Engine (20)

Movie Recommendation System - MovieLens Dataset
Movie Recommendation System - MovieLens DatasetMovie Recommendation System - MovieLens Dataset
Movie Recommendation System - MovieLens Dataset
 
Software Suite for Movie Market Analysis
Software Suite for Movie Market AnalysisSoftware Suite for Movie Market Analysis
Software Suite for Movie Market Analysis
 
Regression Model for movies
Regression Model for moviesRegression Model for movies
Regression Model for movies
 
Netflix recommendation systems
Netflix recommendation systemsNetflix recommendation systems
Netflix recommendation systems
 
Project Management IMDB
Project Management IMDBProject Management IMDB
Project Management IMDB
 
Gashte Police (Police Patrol)
Gashte Police (Police Patrol)Gashte Police (Police Patrol)
Gashte Police (Police Patrol)
 
Recommendation Engine with In-Database Machine Learning
Recommendation Engine with In-Database Machine LearningRecommendation Engine with In-Database Machine Learning
Recommendation Engine with In-Database Machine Learning
 
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving
[한국어] Safe Multi-Agent Reinforcement Learning for Autonomous Driving
 
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...
Graph Gurus Episode 28: In-Database Machine Learning Solution for Real-Time R...
 
RecSys Challenge 2014, SemWexMFF group
RecSys Challenge 2014, SemWexMFF groupRecSys Challenge 2014, SemWexMFF group
RecSys Challenge 2014, SemWexMFF group
 
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...
Game monetization and promotion in Asia (with focus on Indonesia, Japan, Sout...
 
The Future of Television - AWS Summit Sydney 2018
The Future of Television - AWS Summit Sydney 2018The Future of Television - AWS Summit Sydney 2018
The Future of Television - AWS Summit Sydney 2018
 
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...
Stop Guessing, Start Knowing: Interpreting your Qualitative and Quantitative ...
 
Animation Opportunity 2009
Animation Opportunity 2009Animation Opportunity 2009
Animation Opportunity 2009
 
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...
Building Better Products: Mixing Qualitative & Quantitative Data with Storybo...
 
Raccomender engines
Raccomender enginesRaccomender engines
Raccomender engines
 
Real-world News Recommender Systems
Real-world News Recommender SystemsReal-world News Recommender Systems
Real-world News Recommender Systems
 
End-to-end machine learning project in Arabic
End-to-end machine learning project in ArabicEnd-to-end machine learning project in Arabic
End-to-end machine learning project in Arabic
 
Mastering Multiplayer Stage3d and AIR game development for mobile devices
Mastering Multiplayer Stage3d and AIR game development for mobile devicesMastering Multiplayer Stage3d and AIR game development for mobile devices
Mastering Multiplayer Stage3d and AIR game development for mobile devices
 
R markup code to create Regression Model
R markup code to create Regression ModelR markup code to create Regression Model
R markup code to create Regression Model
 

More from TigerGraph

MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATION
MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATIONMAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATION
MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATIONTigerGraph
 
Better Together: How Graph database enables easy data integration with Spark ...
Better Together: How Graph database enables easy data integration with Spark ...Better Together: How Graph database enables easy data integration with Spark ...
Better Together: How Graph database enables easy data integration with Spark ...TigerGraph
 
Building an accurate understanding of consumers based on real-world signals
Building an accurate understanding of consumers based on real-world signalsBuilding an accurate understanding of consumers based on real-world signals
Building an accurate understanding of consumers based on real-world signalsTigerGraph
 
Care Intervention Assistant - Omaha Clinical Data Information System
Care Intervention Assistant - Omaha Clinical Data Information SystemCare Intervention Assistant - Omaha Clinical Data Information System
Care Intervention Assistant - Omaha Clinical Data Information SystemTigerGraph
 
Correspondent Banking Networks
Correspondent Banking NetworksCorrespondent Banking Networks
Correspondent Banking NetworksTigerGraph
 
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...TigerGraph
 
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...TigerGraph
 
Fraud Detection and Compliance with Graph Learning
Fraud Detection and Compliance with Graph LearningFraud Detection and Compliance with Graph Learning
Fraud Detection and Compliance with Graph LearningTigerGraph
 
Fraudulent credit card cash-out detection On Graphs
Fraudulent credit card cash-out detection On GraphsFraudulent credit card cash-out detection On Graphs
Fraudulent credit card cash-out detection On GraphsTigerGraph
 
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraph
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraphFROM DATAFRAMES TO GRAPH Data Science with pyTigerGraph
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraphTigerGraph
 
Customer Experience Management
Customer Experience ManagementCustomer Experience Management
Customer Experience ManagementTigerGraph
 
Graph+AI for Fin. Services
Graph+AI for Fin. ServicesGraph+AI for Fin. Services
Graph+AI for Fin. ServicesTigerGraph
 
Davraz - A graph visualization and exploration software.
Davraz - A graph visualization and exploration software.Davraz - A graph visualization and exploration software.
Davraz - A graph visualization and exploration software.TigerGraph
 
Plume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis LibraryPlume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis LibraryTigerGraph
 
GRAPHS FOR THE FUTURE ENERGY SYSTEMS
GRAPHS FOR THE FUTURE ENERGY SYSTEMSGRAPHS FOR THE FUTURE ENERGY SYSTEMS
GRAPHS FOR THE FUTURE ENERGY SYSTEMSTigerGraph
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...TigerGraph
 
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...TigerGraph
 
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUI
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUIMachine Learning Feature Design with TigerGraph 3.0 No-Code GUI
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUITigerGraph
 
Supply Chain and Logistics Management with Graph & AI
Supply Chain and Logistics Management with Graph & AISupply Chain and Logistics Management with Graph & AI
Supply Chain and Logistics Management with Graph & AITigerGraph
 

More from TigerGraph (20)

MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATION
MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATIONMAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATION
MAXIMIZING THE VALUE OF SCIENTIFIC INFORMATION TO ACCELERATE INNOVATION
 
Better Together: How Graph database enables easy data integration with Spark ...
Better Together: How Graph database enables easy data integration with Spark ...Better Together: How Graph database enables easy data integration with Spark ...
Better Together: How Graph database enables easy data integration with Spark ...
 
Building an accurate understanding of consumers based on real-world signals
Building an accurate understanding of consumers based on real-world signalsBuilding an accurate understanding of consumers based on real-world signals
Building an accurate understanding of consumers based on real-world signals
 
Care Intervention Assistant - Omaha Clinical Data Information System
Care Intervention Assistant - Omaha Clinical Data Information SystemCare Intervention Assistant - Omaha Clinical Data Information System
Care Intervention Assistant - Omaha Clinical Data Information System
 
Correspondent Banking Networks
Correspondent Banking NetworksCorrespondent Banking Networks
Correspondent Banking Networks
 
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...
Delivering Large Scale Real-time Graph Analytics with Dell Infrastructure and...
 
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...
Deploying an End-to-End TigerGraph Enterprise Architecture using Kafka, Maria...
 
Fraud Detection and Compliance with Graph Learning
Fraud Detection and Compliance with Graph LearningFraud Detection and Compliance with Graph Learning
Fraud Detection and Compliance with Graph Learning
 
Fraudulent credit card cash-out detection On Graphs
Fraudulent credit card cash-out detection On GraphsFraudulent credit card cash-out detection On Graphs
Fraudulent credit card cash-out detection On Graphs
 
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraph
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraphFROM DATAFRAMES TO GRAPH Data Science with pyTigerGraph
FROM DATAFRAMES TO GRAPH Data Science with pyTigerGraph
 
Customer Experience Management
Customer Experience ManagementCustomer Experience Management
Customer Experience Management
 
Graph+AI for Fin. Services
Graph+AI for Fin. ServicesGraph+AI for Fin. Services
Graph+AI for Fin. Services
 
Davraz - A graph visualization and exploration software.
Davraz - A graph visualization and exploration software.Davraz - A graph visualization and exploration software.
Davraz - A graph visualization and exploration software.
 
Plume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis LibraryPlume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis Library
 
TigerGraph.js
TigerGraph.jsTigerGraph.js
TigerGraph.js
 
GRAPHS FOR THE FUTURE ENERGY SYSTEMS
GRAPHS FOR THE FUTURE ENERGY SYSTEMSGRAPHS FOR THE FUTURE ENERGY SYSTEMS
GRAPHS FOR THE FUTURE ENERGY SYSTEMS
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
 
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
 
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUI
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUIMachine Learning Feature Design with TigerGraph 3.0 No-Code GUI
Machine Learning Feature Design with TigerGraph 3.0 No-Code GUI
 
Supply Chain and Logistics Management with Graph & AI
Supply Chain and Logistics Management with Graph & AISupply Chain and Logistics Management with Graph & AI
Supply Chain and Logistics Management with Graph & AI
 

Recently uploaded

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Graph Gurus Episode 2: Building a Movie Recommendation Engine

  • 1. Graph Gurus Episode 2 Building the Next Generation Recommendation Engine with a Graph Database, using TigerGraph’s GraphStudio visual SDK
  • 2. © 2018 TigerGraph. All Rights Reserved Welcome ● Attendees are muted but you can talk to us via Chat in Zoom ● We will have 10 min for Q&A at the end ● Send questions at any time using the Q&A tab in the Zoom menu ● The webinar will be recorded ● A link to the presentation and reproducible steps will be emailed 2 Developer Edition Download https://www.tigergraph.com/developer/
  • 3. © 2018 TigerGraph. All Rights Reserved Today’s Moderator ● BS in Electrical Engineering and Computer Science from UC Berkeley ● MS in Electrical Engineering from Stanford University ● PhD in Computer Science from Kent State University focused on graph data mining ● 15+ years in tech industry 3 Victor Lee, Director of Product Management
  • 4. © 2018 TigerGraph. All Rights Reserved Today’s Guru ● BS in Computer Science from Fudan University, China ● Master in Computer Science from Cornell University ● With TigerGraph for over 3 years ● Co-author of GSQL query language ● Leading the design and development of GraphStudio 4 Renchu Song, Engineering Manager
  • 5. © 2018 TigerGraph. All Rights Reserved 5 Developer Edition Download https://www.tigergraph.com/developer/ Building a movie recommendation engine 1. Example data set 2. Defining movie recommendation graph schema 3. Defining data mapping 4. Loading data 5. Implementing movie recommendation algorithm 6. Executing query through RESTFul endpoint
  • 6. © 2018 TigerGraph. All Rights Reserved 6 Developer Edition Download https://www.tigergraph.com/developer/ 1. Example Data Set - MovieLens 20M • Size: 841M (after decompression) • 20 million ratings applied to 27,000 movies by 138,000 real users. • Download: https://grouplens.org/datasets/movielens/20m/
  • 7. © 2018 TigerGraph. All Rights Reserved 7 Data Format - CSV movieId,title,genres 1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy 2,Jumanji (1995),Adventure|Children|Fantasy 3,Grumpier Old Men (1995),Comedy|Romance 4,Waiting to Exhale (1995),Comedy|Drama|Romance 5,Father of the Bride Part II (1995),Comedy 6,Heat (1995),Action|Crime|Thriller 7,Sabrina (1995),Comedy|Romance 8,Tom and Huck (1995),Adventure|Children 9,Sudden Death (1995),Action 10,GoldenEye (1995),Action|Adventure|Thriller 11,"American President, The (1995)",Comedy|Drama|Romance ... userId,movieId,rating,timestamp 1,2,3.5,1112486027 1,29,3.5,1112484676 1,32,3.5,1112484819 1,47,3.5,1112484727 1,50,3.5,1112484580 1,112,3.5,1094785740 1,151,4.0,1094785734 1,223,4.0,1112485573 1,253,4.0,1112484940 1,260,4.0,1112484826 1,293,4.0,1112484703 ... ratings.csv (20000264 rows)movies.csv (27278 rows)
  • 8. © 2018 TigerGraph. All Rights Reserved 8 2. Defining Movie Recommendation Graph Schema 2 vertex types: person, movie 1 edge type: rate
  • 9. © 2018 TigerGraph. All Rights Reserved 9 3. Defining Data Mapping movies.csvratings.csv person(id) movie(id, title, genres) rate(rating, rated_at)
  • 10. © 2018 TigerGraph. All Rights Reserved 10 4. Loading Data • Loading speed depends on machine configuration • Here it takes about 2 minutes.
  • 11. © 2018 TigerGraph. All Rights Reserved 11 5. Implementing Movie Recommendation Algorithm Collaborative Filtering “People who liked items which you like also like THESE OTHER ITEMS.” I liked Wonder Woman And Lady Bird Group A also liked Wonder Woman and Lady Bird … and The Shape of Water.
  • 12. © 2018 TigerGraph. All Rights Reserved 12 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. 5. Implementing Movie Recommendation Algorithm
  • 13. © 2018 TigerGraph. All Rights Reserved 13 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. p …... rate rate rate PRatedMovies PSet 5. Implementing Movie Recommendation Algorithm
  • 14. © 2018 TigerGraph. All Rights Reserved 14 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. p …... rate rate rate PRatedMovies PSet …... PeopleRatedSameMovies rate rate rate rate 5. Implementing Movie Recommendation Algorithm
  • 15. © 2018 TigerGraph. All Rights Reserved 15 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. p …... rate rate rate PRatedMovies PSet …... PeopleRatedSameMovies rate rate rate rate 5. Implementing Movie Recommendation Algorithm
  • 16. © 2018 TigerGraph. All Rights Reserved 16 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. p …... rate rate rate PRatedMovies PSet …... PeopleRatedSameMovies rate rate rate rate …... rate rate rate rate 5. Implementing Movie Recommendation Algorithm
  • 17. © 2018 TigerGraph. All Rights Reserved 17 Input: A person p, two integer parameters k1 and k2 Algorithm steps: 1. Find all movies p has rated; 2. Find all persons rated same movies as p; 3. Based on the movie ratings, find the k1 persons that have most similar tastes with p; 4. Find all movies these k1 persons rated that p hasn’t rated yet; 5. Recommend the top k2 movies with highest average rating by the k1 persons; Output: At most k2 movies to be recommended to person p. p …... rate rate rate PRatedMovies PSet …... PeopleRatedSameMovies rate rate rate rate …... rate rate rate rate RecommendedMovies 5. Implementing Movie Recommendation Algorithm
  • 18. © 2018 TigerGraph. All Rights Reserved 18 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } @avgRating = 0 AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 }
  • 19. © 2018 TigerGraph. All Rights Reserved 19 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } @avgRating = 0 AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 }
  • 20. © 2018 TigerGraph. All Rights Reserved 20 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } @avgRating = 0 AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 }
  • 21. © 2018 TigerGraph. All Rights Reserved 21 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } @avgRating = 0 AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 } r3 { rating = 0.5 }
  • 22. © 2018 TigerGraph. All Rights Reserved 22 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } @avgRating = 2.5 AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = avg(4.5 + 5.0) = 4.75 @avgRating = 4.5 @avgRating = 4.0 @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 }
  • 23. © 2018 TigerGraph. All Rights Reserved 23 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 } @avgRating = 2.5 + 1 = 3.5 @avgRating = 4.75 + 1 = 5.75 @avgRating = 4.5 + 1 = 5.5 @avgRating = 4.0 + 1 = 5.0
  • 24. © 2018 TigerGraph. All Rights Reserved 24 GSQL Edge Block And Accumulator Learn more at GSQL webinar: https://www.youtube.com/watch?v=EslAkGAEbFs Person:s movie:mrate:r r1{ rating = 2.5 } r2 { rating = 4.5 } r3 { rating = 0.5 } r4 { rating = 5.0 } r6 { rating = 5.0 } r7 { rating = 4.0 } AvgAccum<double> @avgRating; ... // People = { Tom, Emily, Dan } ... AvgMovieRating = SELECT m FROM People:s -(rate:r)-> movie:m WHERE r.rating >= 1.0 ACCUM m.@avgRating += r.rating POST-ACCUM m.@avgRating += 1 ORDER BY m.@avgRating DESC LIMIT 2; Tom Emily Dan @avgRating = 0 @avgRating = 0 @avgRating = 0 Dunkirk The Matrix Zootopia Star War r5 { rating = 4.0 } @avgRating = 3.5 @avgRating = 5.75 @avgRating = 5.5 @avgRating = 5.0
  • 25. © 2018 TigerGraph. All Rights Reserved 25 Step 1. Find all movies p has rated; p …... rate { rating = 3.5 } rate { rating = 5.0 } rate { rating = 3.0 } PRatedMovies PSet { @rated = true, @ratingByP = 3.5 } { @rated = true, @ratingByP = 5.0 } { @rated = true, @ratingByP = 3.0 } 5. Implementing Movie Recommendation Algorithm
  • 26. © 2018 TigerGraph. All Rights Reserved 26 Step 2. Find all persons rated same movies as p …... …... PRatedMovies PeopleRatedSameMovies @ratingByP = 3.5 @ratingByP = 5.0 @ratingByP = 3.0 rate rate rate rate rate rate 5. Implementing Movie Recommendation Algorithm
  • 27. © 2018 TigerGraph. All Rights Reserved 27 Step 3. Find the k1 persons that have most similar tastes with p. A = [3.5, 3.0] B = [0.5, 5.0] @lengthASqr = 3.5 * 3.5 + 3.0 * 3.0 = 21.25 @lengthBSqr = 0.5 * 0.5 + 5.0 * 5.0 = 25.25 @dotProductAB = 3.5 * 0.5 + 3.0 * 5.0 = 16.75 @cosineSimilarity = 16.75 / sqrt(21.25) / sqrt(25.25) = 0.72311 5. Implementing Movie Recommendation Algorithm
  • 28. © 2018 TigerGraph. All Rights Reserved 28 Step 3. Find the k1 persons that have most similar tastes with p. …... PRatedMovies PeopleRatedSameMovies @ratingByP = 3.5 @ratingByP = 5.0 @ratingByP = 3.0 @cosineSimilarity = 1 @lengthASqr = 3.5 * 3.5 + 3.0 * 3.0 = 21.25 @lengthBSqr = 0.5 * 0.5 + 5.0 * 5.0 = 25.25 @dotProductAB = 3.5 * 0.5 + 3.0 * 5.0 = 16.75 @cosineSimilarity = 16.75 / sqrt(21.25) / sqrt(25.25) = 0.72311 @cosineSimilarity = 0.99753 …... rating = 3.5 rating = 5.0 rating = 0.5 rating = 5.0 rating = 5.0 rating = 3.5 5. Implementing Movie Recommendation Algorithm
  • 29. © 2018 TigerGraph. All Rights Reserved 29 Step 3. Find the k1 persons that have most similar tastes with p. …... PRatedMovies PeopleRatedSameMovies @cosineSimilarity = 1 @cosineSimilarity = 0.99753 …... @cosineSimilarity = 0.72311 5. Implementing Movie Recommendation Algorithm
  • 30. © 2018 TigerGraph. All Rights Reserved 30 Step 4. Find all movies these k1 persons rated that p hasn’t rated yet. PeopleRatedSameMovies …... …... rate RecommendedMovies rate rate rate rate @rated = false @rated = false @rated = false 5. Implementing Movie Recommendation Algorithm
  • 31. © 2018 TigerGraph. All Rights Reserved 31 PeopleRatedSameMovies …... …... rating = 2.5 RecommendedMovies rating = 5.0 rating = 4.5 rating = 4.5 rating = 1.0 @recommendScore = 1.75 @recommendScore = 4.75 @recommendScore = 4.5 Step 5. Recommend the top k2 movies with highest average rating by k1 persons. 5. Implementing Movie Recommendation Algorithm
  • 32. © 2018 TigerGraph. All Rights Reserved 32 Step 5. Recommend the top k2 movies with highest average rating by k1 persons. PeopleRatedSameMovies …... …... rating = 2.5 RecommendedMovies rating = 5.0 rating = 4.5 rating = 4.5 rating = 1.0 @recommendScore = 1.75 @recommendScore = 4.75 @recommendScore = 4.5 5. Implementing Movie Recommendation Algorithm
  • 33. © 2018 TigerGraph. All Rights Reserved 33 curl -X GET 'http://<MACHINE-IP>:9000/query/MyGraph/RecommendMovies?p=238&k1=50&k2=20' | python -m json.tool 6. Executing query through RESTFul endpoint
  • 34. © 2018 TigerGraph. All Rights Reserved 34 Other Recommendation Algorithms Another example: https://doc.tigergraph.com/GSQL-Demo-Examples.html ● Content-based ○ Considers the genres of the movies Other approaches and formulas ● Profile the users and focus on similar users ● Other scoring systems Production systems using TigerGraph - Wish.com delivering real-time cross-sell and up-sell recommendations to over 300 million users and driving billions in annual revenue Person Movie Genre
  • 35. Q&A Please send your questions via the Q&A menu in Zoom 35
  • 36. © 2018 TigerGraph. All Rights Reserved Episode 3: Sept 12 Detecting Fraud and Money Laundering in Real-Time with a Graph DB https://info.tigergraph.com/graph-gurus-3 36 REGISTER FOR MORE WEBINARS AT https://www.tigergraph.com/ webinars-and-events/
  • 37. © 2018 TigerGraph. All Rights Reserved Additional Resources 37 Compare the Developer Edition and Enterprise Free Trial https://www.tigergraph.com/download/ Guru Scripts https://github.com/tigergraph/ecosys/tree/master/guru_scripts Join our Developer Forum https://groups.google.com/a/opengsql.org/forum/#!forum/gsql-users Take the Developer Survey https://www.tigergraph.com/developer-edition-feedback-survey/ @TigerGraphDB youtube.com/tigergraph facebook.com/TigerGraphDB linkedin.com/company/TigerGraph