2lu: movie recommendations for two!
DESCRIPTION
TRANSCRIPT
Allen Sussman
Find movies for two
Can we find a movie we’ll both actually like?
Each person enters movies they like and 2lu finds movies they’ll both like
Each person enters movies they like and 2lu finds movies they’ll both like
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Ratings Table from Algorithm: Collaborative Filtering
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity MatrixAlgorithm: Collaborative Filtering
Ratings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Algorithm: Collaborative FilteringRatings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Algorithm: Collaborative Filtering
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Ratings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue1
0.20.30.40.5
Babe0.40.20.21
0.5
f( , )=
Algorithm: Collaborative Filtering
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Ratings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue1
0.20.30.40.5
Babe0.40.20.21
0.5
f( , )=
Algorithm: Collaborative Filtering
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue 0.6Kids 0.2Jaws 0.225Babe 0.6Big 0.5
Ratings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue1
0.20.30.40.5
Babe0.40.20.21
0.5
f( , )=
Algorithm: Collaborative Filtering
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue 0.6Kids 0.2Jaws 0.225Babe 0.6Big 0.5
Largest number is for the movie Big. Users should watch it!
Ratings Table from
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue1
0.20.30.40.5
Babe0.40.20.21
0.5
f( , )=
Algorithm: Collaborative Filtering
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue 0.6Kids 0.2Jaws 0.225Babe 0.6Big 0.5
Largest number is for the movie Big. Users should watch it!
Cross-validation: 90% of recommendations were given a rating of 3 or above by both users
Ratings Table from
Allen Sussman, Ph.D.
GoR(movie)=mean(s1,s2) - 0.25diff(s1,s2)
Similarity of movie to user 1
movie
Similarity of movie to user 2
movie
Goodness-of-recommendation (GoR) function
If average similarity to the input movies is high, that’s good!
If movie is very similar to user 1 movie but not
user 2 movie (or vice versa), that’s
bad!
0.60.2
0.2250.60.5
Movies->Clue Kids Jaws Babe Big
1 5 3 4 5 None2 None 5 1 5 None3 3 None 1 4 34 1 5 1 4 35 2 4 1 4 5
Users->
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Movies Similarity Matrix
Say User 1 likes Clue User 2 likes Babe
Clue Kids Jaws Babe BigClue 1 0.2 0.3 0.4 0.5Kids 0.2 1 0.3 0.2 0.3Jaws 0.3 0.3 1 0.2 0.3Babe 0.4 0.2 0.2 1 0.5Big 0.5 0.3 0.3 0.5 1
Clue1
0.20.30.40.5
Babe0.40.20.21
0.5
f( , )= 0.60.2
0.2250.60.5
Largest number is for the movie Big. Users should watch it!f(s1,s2)=mean(s1,s2)-α*diff(s1,s2)
f(s1,1,s1,2,…,s2,1,s2,2,…) = mean(s1,1,s1,2,…,s2,1,s2,2,…)- α*std(s1,1,s1,2,…,s2,1,s2,2,…)-β*diff(mean(s1,1,s1,2,…),mean(s2,1,s2,2,…))
For multiple input movies,
Ratings TableAlgorithm
Training Set
Test Set
Users->
Movies->Ratings Table
Cross-ValidationMovies Similarity Matrix
Test Set Features Ground Truth
Consider two users in test set
User 1 User 2
Use algorithm and similarity matrix on
Clue Kids Jaws Babe Big1 4 3 1 5 22 4 5 1 5 2
Ground Truth
Clue Kids Jaws Babe Big
Y Y Y
My Recommendations
Ground TruthFeatures
to predict then compare predictions and truth