Collaborative Filtering (CF)-based Recommendation System
(Redirected from Collaborative Filtering-based Recommender System)
Jump to navigation
Jump to search
A Collaborative Filtering (CF)-based Recommendation System is a model-based recommendation system that implements a collaborative filtering algorithm to solve a collaborative filtering task.
- Context:
- It can range from being a Model-based Collaborative Filtering Algorithm to being an Instance-based Collaborative Filtering Algorithm.
- It can be based on a Collaborative Filtering Framework.
- …
- Example(s):
- Movie Catalog Collaborative Filtering System, possibly one used to solve a Netflix Prize.
- one based on org.apache.spark.mllib.recommendation[1]
- …
- Counter-Example(s):
- See: User-Item Interaction Data.
References
2016
- http://blog.knoldus.com/2016/07/01/build-your-personalized-movie-recommender-with-scala-and-spark/
- QUOTE: Spark MLlib uses Alternate Least Squares (ALS) to build recommendation model.
import org.apache.spark.mllib.recommendation.ALS import org.apache.spark.mllib.recommendation.Rating
val data = sc.textFile("your_dir/ratings.dat") val ratings = data.map(_.split("::") match { case Array(user, item, rate, timestamp) => Rating(user.toInt, item.toInt, rate.toDouble) }) val movies = movieRecommendationHelper.getMovieRDD.map( _.split("::")) .map { case Array(movieId,movieName,genre) ⇒ (movieId.toInt ,movieName) } val myRatingsRDD = movieRecommendationHelper.topTenMovies //gets 10 popular movies. See <a href="https://github.com/akashsethi24/Machine-Learning/blob/master/src/main/scala/movie/RecommendMovie.scala">Code</a> for for details val training = ratings.filter { case Rating(userId, movieId, rating) ⇒ (userId * movieId) % 10 <= 3 }.persist val test = ratings.filter { case Rating(userId, movieId, rating) ⇒ (userId * movieId) % 10 > 3}.persist
1992
- (Goldberg et al., 1992) ⇒ David Goldberg, David Nichols, Brian M. Oki, and Douglas Terry. (1992). “Using Collaborative Filtering to Weave An Information Tapestry.” In: Communications of the ACM Journal, 35(12). doi:10.1145/138859.138867
- QUOTE: The Tapestry experimental mail system developed at the Xerox Palo Alto Research Center is predicated on the belief that information filtering can be more effective when humans are involved in the filtering process. Tapestry was designed to support both content-based filtering and collaborative filtering, which entails people collaborating to help each other perform filtering by recording their reactions to documents they read.