Collaborative Filtering: A Tutorial William W. Cohen Machine Learning Dept Carnegie Mellon University

advertisement
Collaborative Filtering: A Tutorial
(abridged version of tutorial from my Web page, given at Dimacs W/S in 2003?)
William W. Cohen
Machine Learning Dept
Carnegie Mellon University
Everyday Examples of Collaborative
Filtering...
Rate it?
The Dark Star's crew is on a 20-year mission ..but unlike Star Trek... the nerves
of this crew are ... frayed to the point of psychosis. Their captain has been killed
by a radiation leak that also destroyed their toilet paper. "Don't give me any of
that 'Intelligent Life' stuff," says Commander Doolittle when presented with the
possibility of alien life. "Find me something I can blow up.“...
Everyday Examples of Collaborative
Filtering...
Everyday Examples of Collaborative
Filtering...
Google’s PageRank
web site
xxx
web site
xxx
web site
xxx
web site a b c
defg
web
Inlinks are “good”
(recommendations)
Inlinks from a
“good” site are
better than inlinks
from a “bad” site
site
web site yyyy
web site a b c
defg
web site yyyy
pdq pdq ..
but inlinks from
sites with many
outlinks are not as
“good”...
“Good” and “bad”
are relative.
Google’s PageRank
web site
xxx
web site
xxx
Imagine a “pagehopper”
that always either
• follows a random link, or
web site a b c
defg
• jumps to random page
web
site
web site yyyy
web site a b c
defg
web site yyyy
pdq pdq ..
Google’s PageRank
(Brin & Page, http://www-db.stanford.edu/~backrub/google.html)
web site
xxx
web site
xxx
Imagine a “pagehopper”
that always either
• follows a random link, or
web site a b c
defg
• jumps to random page
web
site
web site yyyy
web site a b c
defg
web site yyyy
pdq pdq ..
PageRank ranks pages by
the amount of time the
pagehopper spends on a
page:
• or, if there were many
pagehoppers, PageRank is
the expected “crowd size”
Everyday Examples of Collaborative
Filtering...
•
•
•
•
•
•
•
•
•
Bestseller lists
Top 40 music lists
The “recent returns” shelf at the library
Unmarked but well-used paths thru the woods
The printer room at work
Many weblogs
“Read any good books lately?”
....
Common insight: personal tastes are correlated:
– If Alice and Bob both like X and Alice likes Y then Bob
is more likely to like Y
– especially (perhaps) if Bob knows Alice
Outline
• Non-systematic survey of some CF systems
–
–
–
–
CF as basis for a virtual community
memory-based recommendation algorithms
visualizing user-user via item distances
CF versus content filtering
• Algorithms for CF
• CF with different inputs
– true ratings
– assumed/implicit ratings
• Conclusions/Summary
BellCore’s MovieRecommender
• Recommending And Evaluating Choices In A Virtual
Community Of Use. Will Hill, Larry Stead, Mark
Rosenstein and George Furnas, Bellcore; CHI 1995
By virtual community we mean "a group of people
who share characteristics and interact in essence or
effect only". In other words, people in a Virtual
Community influence each other as though they
interacted but they do not interact. Thus we ask: "Is
it possible to arrange for people to share some of the
personalized informational benefits of community
involvement without the associated communications
costs?"
?
?
MovieRecommender Goals
Recommendations should:
• simultaneously ease and encourage rather than replace
social processes....should make it easy to participate while
leaving in hooks for people to pursue more personal
relationships if they wish.
• be for sets of people not just individuals...multi-person
recommending is often important, for example, when two
or more people want to choose a video to watch together.
• be from people not a black box machine or so-called
"agent".
• tell how much confidence to place in them, in other
words they should include indications of how accurate they
are.
BellCore’s MovieRecommender
• Participants sent email to videos@bellcore.com
• System replied with a list of 500 movies to rate on
a 1-10 scale (250 random, 250 popular)
– Only subset need to be rated
• New participant P sends in rated movies via email
• System compares ratings for P to ratings of (a
random sample of) previous users
• Most similar users are used to predict scores for
unrated movies (more later)
• System returns recommendations in an email
message.
Suggested Videos for: John A. Jamus.
Your must-see list with predicted ratings:
•7.0 "Alien (1979)"
•6.5 "Blade Runner"
•6.2 "Close Encounters Of The Third Kind (1977)"
Your video categories with average ratings:
•6.7 "Action/Adventure"
•6.5 "Science Fiction/Fantasy"
•6.3 "Children/Family"
•6.0 "Mystery/Suspense"
•5.9 "Comedy"
•5.8 "Drama"
The viewing patterns of 243 viewers were consulted. Patterns of 7 viewers were found to be most similar.
Correlation with target viewer:
•0.59 viewer-130 (unlisted@merl.com)
•0.55 bullert,jane r (bullert@cc.bellcore.com)
•0.51 jan_arst (jan_arst@khdld.decnet.philips.nl)
•0.46 Ken Cross (moose@denali.EE.CORNELL.EDU)
•0.42 rskt (rskt@cc.bellcore.com)
•0.41 kkgg (kkgg@Athena.MIT.EDU)
•0.41 bnn (bnn@cc.bellcore.com)
By category, their joint ratings recommend:
•Action/Adventure:
•"Excalibur" 8.0, 4 viewers
•"Apocalypse Now" 7.2, 4 viewers
Mystery/Suspense:
•"Silence Of The Lambs, The" 9.3, 3
viewers
Comedy:
•"National Lampoon's Animal House" 7.5,
4 viewers
•"Driving Miss Daisy" 7.5, 4 viewers
•"Hannah and Her Sisters" 8.0, 3 viewers
Drama:
•"It's A Wonderful Life" 8.0, 5 viewers
•"Dead Poets Society" 7.0, 5 viewers
•"Rain Man" 7.5, 4 viewers
•"Platoon" 8.3, 3 viewers
•Science Fiction/Fantasy:
•"Total Recall" 7.2, 5 viewers
•Children/Family:
•"Wizard Of Oz, The" 8.5, 4 viewers
•"Mary Poppins" 7.7, 3 viewers
Correlation of predicted ratings with your actual
ratings is: 0.64 This number measures ability to
evaluate movies accurately for you. 0.15 means
low ability. 0.85 means very good ability. 0.50
means fair ability.
BellCore’s MovieRecommender
• Evaluation:
– Withhold 10% of the ratings of each user to use
as a test set
– Measure correlation between predicted ratings
and actual ratings for test-set movie/user pairs
BellCore’s MovieRecommender
• Participants sent email to videos@bellcore.com
• System replied with a list of 500 movies to rate
New participant P sends in rated movies via email
• System compares ratings for P to ratings of (a
random sample of) previous users
• Most similar users are used to predict scores for
unrated movies
– Empirical Analysis of Predictive Algorithms for
Collaborative Filtering Breese, Heckerman, Kadie,
UAI98
• System returns recommendations in an email
message.
Algorithms for Collaborative Filtering 1:
Memory-Based Algorithms (Breese et al, UAI98)
• vi,j= vote of user i on item j
• Ii = items for which user i has voted
• Mean vote for i is
• Predicted vote for “active user” a is weighted sum
normalizer
weights of n similar users
Algorithms for Collaborative Filtering 1:
Memory-Based Algorithms (Breese et al, UAI98)
• K-nearest neighbor
1 if i  neighbors( a)
w(a, i )  
else
0
• Pearson correlation coefficient (Resnick ’94,
Grouplens):
• Cosine distance (from IR)
Algorithms for Collaborative Filtering 1:
Memory-Based Algorithms (Breese et al, UAI98)
• Cosine with “inverse user frequency” fi = log(n/nj), where
n is number of users, nj is number of users voting for item j
Algorithms for Collaborative Filtering 1:
Memory-Based Algorithms (Breese et al, UAI98)
• Evaluation:
– split users into train/test sets
– for each user a in the test set:
• split a’s votes into observed (I) and to-predict (P)
• measure average absolute deviation between predicted
and actual votes in P
• predict votes in P, and form a ranked list
• assume (a) utility of k-th item in list is max(va,j-d,0),
where d is a “default vote” (b) probability of reaching
rank k drops exponentially in k. Score a list by its
expected utility Ra
– average Ra over all test users
soccer score
Algorithms for Collaborative Filtering 1:
Memory-Based Algorithms (Breese et al, UAI98)
Why are
these
numbers
worse?
golf score
Outline
• Non-systematic survey of some CF systems
– CF as basis for a virtual community
– memory-based recommendation algorithms
– CF versus content filtering
• Algorithms for CF
• CF with different inputs
– true ratings
– assumed/implicit ratings
LIBRA Book Recommender
Content-Based Book Recommending Using Learning
for Text Categorization. Raymond J. Mooney,
Loriene Roy, Univ Texas/Austin; DL-2000
[CF] assumes that a given user’s tastes are generally the same
as another user ... Items that have not been rated by a
sufficient number of users cannot be effectively
recommended. Unfortunately, statistics on library use indicate
that most books are utilized by very few patrons. ... [CF]
approaches ... recommend popular titles, perpetuating
homogeneity.... this approach raises concerns about privacy
and access to proprietary customer data.
LIBRA Book Recommender
• Database of textual descriptions + meta-information
about books (from Amazon.com’s website)
– title, authors, synopses, published reviews, customer
comments, related authors, related titles, and subject
terms.
• Users provides 1-10 rating for training books
• System learns a model of the user
– Naive Bayes classifier predicts Prob(user rating>5|book)
• System explains ratings in terms of “informative
features” and explains features in terms of examples
LIBRA Book Recommender
....
LIBRA Book Recommender
Key differences from MovieRecommender:
• vs collaborative filtering, recommendation is based on
properties of the item being recommended, not tastes of other
users
• vs memory-based
techniques, LIBRA
builds an explicit model
of the user’s tastes
(expressed as weights for
different words)
....
LIBRA Book Recommender
LIBRA-NR = no related author/title features
Collaborative + Content Filtering
As Classification (Basu, Hirsh, Cohen, AAAI98)
Classification task: map (user,movie) pair into {likes,dislikes}
Training data: known likes/dislikes
Test data: active users
Features: any properties
of user/movie pair
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
0
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
Examples: genre(U,M), age(U,M), income(U,M),...
• genre(Carol,Matrix) = action
• income(Kumar,Hidalgo) = 22k/year
Features: any properties
of user/movie pair (U,M)
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
0
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
Examples: usersWhoLikedMovie(U,M):
• usersWhoLikedMovie(Carol,Hidalgo) = {Joe,...,Kumar}
• usersWhoLikedMovie(Ua, Matrix) = {Joe,...}
Features: any properties
of user/movie pair (U,M)
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
0
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
Examples: moviesLikedByUser(M,U):
• moviesLikedByUser(*,Joe) = {Airplane,Matrix,...,Hidalgo}
• actionMoviesLikedByUser(*,Joe)={Matrix,Hidalgo}
Features: any properties
of user/movie pair (U,M)
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
0
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
genre={romance}, age=48, sex=male, income=81k,
usersWhoLikedMovie={Carol}, moviesLikedByUser={Matrix,Airplane}, ...
Features: any properties
of user/movie pair (U,M)
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
1
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
genre={romance}, age=48, sex=male, income=81k,
usersWhoLikedMovie={Carol}, moviesLikedByUser={Matrix,Airplane}, ...
genre={action}, age=48, sex=male, income=81k, usersWhoLikedMovie =
{Joe,Kumar}, moviesLikedByUser={Matrix,Airplane},...
Airplane
Matrix
Room with
a View
...
Hidalgo
comedy
action
romance
...
action
Joe
27,M,70k
1
Carol
53,F,20k
1
Kumar
25,M,22k
1
Ua
48,M,81k
1
1
0
1
1
0
0
0
1
1
?
...
?
?
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
genre={romance}, age=48, sex=male, income=81k,
usersWhoLikedMovie={Carol}, moviesLikedByUser={Matrix,Airplane}, ...
genre={action}, age=48, sex=male, income=81k, usersWhoLikedMovie =
{Joe,Kumar}, moviesLikedByUser={Matrix,Airplane},...
• Classification learning algorithm: rule learning (RIPPER)
• If NakedGun33/13 moviesLikedByUser and Joe 
usersWhoLikedMovie and genre=comedy then predict
likes(U,M)
• If age>12 and age<17 and HolyGrail  moviesLikedByUser
and director=MelBrooks then predict likes(U,M)
• If Ishtar  moviesLikedByUser then predict likes(U,M)
Collaborative + Content Filtering
As Classification (Basu et al, AAAI98)
• Classification learning algorithm: rule learning (RIPPER)
• If NakedGun33/13 moviesLikedByUser and Joe 
usersWhoLikedMovie and genre=comedy then predict
likes(U,M)
• If age>12 and age<17 and HolyGrail  moviesLikedByUser
and director=MelBrooks then predict likes(U,M)
• If Ishtar  moviesLikedByUser then predict likes(U,M)
• Important difference from memory-based approaches:
• again, Ripper builds an explicit model—of how user’s tastes
relate items, and to the tastes of other users
Basu et al 98 - results
• Evaluation:
– Predict liked(U,M)=“M in top quartile of U’s ranking”
from features, evaluate recall and precision
– Features:
• Collaborative: UsersWhoLikedMovie,
UsersWhoDislikedMovie, MoviesLikedByUser
• Content: Actors, Directors, Genre, MPAA rating, ...
• Hybrid: ComediesLikedByUser, DramasLikedByUser,
UsersWhoLikedFewDramas, ...
• Results: at same level of recall (about 33%)
– Ripper with collaborative features only is worse than
the original MovieRecommender (by about 5 pts
precision – 73 vs 78)
– Ripper with hybrid features is better than
MovieRecommender (by about 5 pts precision)
Outline
• Non-systematic survey of some CF systems
–
–
–
–
–
–
CF as basis for a virtual community
memory-based recommendation algorithms
visualizing user-user via item distances
CF versus content filtering
Combining CF and content filtering
CF as matching content and user
• Algorithms for CF
– Probabilistic model-based CF
• CF with different inputs
– true ratings
– assumed/implicit ratings
CF as density estimation
(Breese et al, UAI98)
• Estimate Pr(Rij=k) for each user i, movie j, and rating k
• Use all available data to build model for this estimator
Rij
Airplane
Matrix
Room with
a View
...
Hidalgo
Joe
9
7
2
...
7
Carol
8
?
9
...
?
...
...
...
...
...
...
Kumar
9
3
?
...
6
CF as density estimation
(Breese et al, UAI98)
• Estimate Pr(Rij=k) for each user i, movie j, and rating k
• Use all available data to build model for this estimator
• A simple example:
 movies j , Pr( Rij  k ) 
# (users i : Rij  k )
# (users i rating j )
Leads to this expected value for unknown Rij :
E[ Rij ]   k  Pr( Rij  k )  average rating of movie j
k
CF as density estimation
(Breese et al, UAI98)
• Estimate Pr(Rij=k) for each user i, movie j, and rating k
• Use all available data to build model for this estimator
• More complex example:
• Group users into M “clusters”: c(1), ..., c(M)
• For movie j,
estimate by counts
Pr( Rij  k | i )   Pr(Rij  k | i  c(m)) Pr(i  c(m))
m
E[ Rij ]   Pr(i  c(m))  (average rating of j in c(m))
m
CF as density estimation: BC
(Breese et al, UAI98)
• Group users into clusters using Expectation-Maximization:
• Randomly initialize Pr(Rm,j=k) for each m
(i.e., initialize the clusters differently somehow)
• E-Step: Estimate Pr(user i in cluster m) for each i,m
• M-Step: Find maximum likelihood (ML) estimator for Rij
within each cluster m
• Use ratio of #(users i in cluster m with rating Rij=k) to
#(user i in cluster m ), weighted by Pr(i in m) from Estep
• Repeat E-step, M-step until convergence
CF as density estimation: BN
(Breese et al, UAI98)
• BC assumes movie ratings within a cluster are independent.
• Bayes Network approach allows dependencies between
ratings, but does not cluster. (Networks are constructed using
greedy search.)
MIB
ID4
10kBC
Jumper
Juno
soccer score
Algorithms for Collaborative Filtering 2:
Memory-Based Algorithms (Breese et al, UAI98)
golf score
Datasets are different...
fewer items to
recommend
fewer votes/user
soccer score
soccer score
Results on MS Web & Nielson’s
Outline
• Non-systematic survey of some CF systems
–
–
–
–
–
–
CF as basis for a virtual community
memory-based recommendation algorithms
visualizing user-user via item distances
CF versus content filtering
Combining CF and content filtering
CF as matching content and user
• Algorithms for CF
– Probabilistic model-based CF
– Probabilistic memory-based CF?
• CF with different inputs
– true ratings
– assumed/implicit ratings
Personality Diagnosis
(Pennock et al, UAI 2000)
• Collaborative Filtering by Personality Diagnosis: A Hybrid Memoryand Model-Based Approach, Pennock, Horvitz, Lawrence & Giles,
UAI 2000
• Basic ideas:
– assume Gaussian noise applied to all ratings
– treat each user as a separate cluster m
– Pr(user a in cluster i) = w(a,i)
1 ( Raj  Rmj ) / 2 2
  Pr( Raj | Rij )   e
j
j Z
Personality Diagnosis
(Pennock et al, UAI 2000)
• Evaluation (EachMovie, following Breese et al):
Outline
• Non-systematic survey of some CF systems
–
–
–
–
–
–
CF as basis for a virtual community
memory-based recommendation algorithms
visualizing user-user via item distances
CF versus content filtering
Combining CF and content filtering
CF as matching content and user
• Algorithms for CF
– Probabilistic model-based CF
– Probabilistic memory-based CF
• CF with different inputs
– true ratings
– assumed/implicit ratings
– ratings inferred from Web pages
Another key
observation: rated
movies tend to
have positive
ratings:
i.e., people rate
what they watch,
and watch what
they like
Question: Can observation replace explicit rating?
CF with pseudo-users
• Web-Collaborative Filtering: Recommending Music by
Crawling The Web, Cohen and Fan, WWW-2000
• Goal: community filtering without a community
– Approximate community with information
automatically extracted from web pages.
• Outline:
– problem & baseline CF system
– creating “pseudo-users” from web pages
– CF results with “pseudo-users”
Outline
• Non-systematic survey of some CF systems
–
–
–
–
CF as basis for a virtual community
memory-based recommendation algorithms
visualizing user-user via item distances
CF versus content filtering
• Algorithms for CF
• CF with different inputs
– true ratings
– assumed/implicit ratings
• Conclusions/Summary
model-based
Summary
BN
RIPPER
RankBoost
(k rounds)
PD
CR
VSIM k-NN
MovieRecommender
collaborative/social
LIBRA
LIBRA-NR
RankBoost
(many rounds)
BC
memory-based
RIPPER +
hybrid
features
music rec.
with web pages
(XDB)
music rec.
with web pages
(k-NN)
paper rec.
as matching
content-based
Final Comments
• CF is one of a handful of learning-related tools that have
had broadly visible impact:
– Google, TIVO, Amazon, personal radio stations, ...
• Critical tool for finding “consensus information” present in
a large community (or large corpus of web pages, or large
DB of purchase records, ....)
– Similar in some respects to Q/A with corpora
• Science is relatively-well established
– in certain narrow directions, on a few datasets
• Set of applications still being expanded
• Some resources:
– http://www.sims.berkeley.edu/resources/collab/
– http://www.cs.umn.edu/Research/GroupLens/
– http://www.cis.upenn.edu/~ungar/CF/
Download