Here are the slides from my presentation last week. I talked about (scientific) recommender systems in general, the three categories they can be classified into (content-based, collaborative, hybrid) and I showed some examples of algorithms and applications (TF-IDF, Apache Mahout, SciPlore) where such recommender systems are used.
Tag Archives: recommender systems
Today, I want to introduce my ideas for recommenders for my prototype to you. Basically, I want to create a simple web application with JSP which provides different recommenders and corresponding visualizations based on the given mysql dump. Following is a list of the recommenders that I am thinking of with a few thoughts on the implementation and sketches for possible visualizations.
1.) recommend papers based on citations as boolean preferences between papers (collaborative filtering)
implementation with mahout: Create a datamodel based on boolean preferences (as in an association exist or does not) and then run the recommender with different similarity metrics contained in mahout (that can work with boolean preferences), evaluate and compare them.
2.) recommend papers based on cocitation
implementation: If I understand the contents of the co_citation view correctly (count of the cocitations between two papers), this would simply be a maximum search with the ID of the input paper as one of the IDs in the view.
3.) recommend papers based on bibliographic coupling
implementation: Again, if I understand the contents of the bib_coupling view correctly (count of the bibliographic couplings between two papers), this would simply be a maximum search with the ID of the input paper as one of the IDs in the view.
(A denotes the recommendation, # the number of bibliographic couplings between the input paper and A)
4.) recommend papers based on common keywords
implementation with mahout: Create an item-based recommender and create an ItemSimilarity class which computes the similarity between two papers based on their shared keywords.
5.) recommend people based on co-authorship (collaborative filtering)
implementation with mahout: Co-authorship as preferences between authors (so people who have often written together have a high preference for each other), user-based recommender to find similar people
6.) recommend people based on event participation
implementation with mahout: Again co-authorship as preferences between authors, item-based recommender (create an ItemSimilarity class which computes the similarity between two authors based on their common event participations), recommendations should then be something like authors who often participated in the same events as the input author and/or his co-authors but never wrote a paper together with the input author
In my seminar topic I have to deal with the problem of how to recommend scientific literature that might be intersting to a specific user.
You probably all already encountered recommender systems in other domains and contexts (e.g. on amazon: “Customers Who Bought This Item Also Bought”).
Basically, recommender systems can be classified into three categories:
- content-based (items are recommended that are similar to items the user preferred before)
- collaborative (items are recommended that other users with similar tastes/preferences liked)
- hybrid approaches (combination of content-based and collaborative methods)
In my presentation and article I will take a closer look at these categories and corresponding recommender systems, their advantages and disadvantages and I will introduce some algorithms which are used to calculate which items will be recommended.