Item-Item recommender system - collaborative-filtering

I wanted to create a recommendation system that recommends to item A a list of items (Item B, Item C ... ) based on a semantic similarity score .
I don't have a users profile and I don't have a rating matrix and I the both recommender system approaches(content-based ans collaborative filtering) are suitable for my system,
Do you have any papers or suggested algorithms that I should use?

Related

"Who Bought This Item Also Bought" type of recommendation with matrix factorization

I know that it is possible to do "Who Bought This Item Also Bought" type of recommendation using item-based collaborative filtering. My question is how we can do this using matrix factorization (MF). One possible solution might be to learn item features with MF and then calculate the similarities of items based on these features. But this is not "pure MF", I mean, in the end I still need to calculate the similarities between all pairs of item features which takes $O(n^2)$ time. Any idea?
Thanks
This is not the answer to your question instead another question for you. You mentioned "it is possible to do "Who Bought This Item Also Bought" type of recommendation using item-based collaborative filtering", can you recommend me some source links?

Results of test statistics evaluation of Recommender Systems given data

I was wondering if there is a source, where given some train data and test data, the test statistics of evaluation of Recommender Systems are also provided. For example, given two files train.dat and test.dat, where the data have already been split into a training and a test set which contain user_id, item_id and ratings (just like in grouplens dataset) and in the end some answer for precision or recall or map#k test is provided for the performance of a nonpersonalized recommender system (like the top rated items-most viewed) or any other recommender system.
Thank you in advance,
Regards,
Marios
The fastest way to find out how known recommenders performance on the new dataset is to grab existing implementation and run it. If You have prepared split - it's OK, but make sure that splitting strategy is adequate what You are trying to measure.
Helpful project for evaluation:
- librec
- project Rival
- MediaLens
And make sure, the right measure is used for the right purpose. In the question the rating prediction example is given and then the ranking evaluation measures are listed.

Recommendation Algorithm for suggesting job to workers(Crowdsourcing platform)

I have crawled MTurk website. and I have 260 Hits as a dataset and from this dataset particular number of users has selected Hits and assigned ratings to each selected Hits. now I want to give recommendation to these users on basis of their selection. How it is possible ? Can anyone recommend me any recommendation algorithm ?
It sounds that You should go for the one of the Collaborative Filtering (CF) algorithm as users have explicit feedback in a form of ratings. First, I would suggest implementing a simple item/user-based k-Nearest Neighbours algorithm. If the results do not satisfy You and maybe Your data is very sparse - probably matrix factorization techniques should do the trick. A good recently survey which I read was [1] - it presents the different methods on different data settings.
If You fill fill comfortable with this and You realize that what You need is actually ranked list of Top-N predictions than ratings, I would suggest reading about e.g. Bayesian Personalized Ranking[2].
And the best part is - those algorithms are really well known and most of them are available for almost every programming language, e.g. python -> https://github.com/Mendeley/mrec/
[1] J. Lee, M. Sun, and G. Lebanon, “A Comparative Study of Collaborative Filtering Algorithms,” ArXiv, pp. 1–27, 2012.
[2] S. Rendle, C. Freudenthaler, Z. Gantner, and L. Schmidt-thieme, “BPR : Bayesian Personalized Ranking from Implicit Feedback,” in Proceedings of the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence, 2009, vol. cs.LG, pp. 452–461.

Matrix factorization based recommendation for like/dislike/unknown data

Most literature focus on either explicit rating data or implicit (like/unknown) data. Are there any good publications to handle like/dislike/unknown data? That is, in the data matrix there are three values, and I'd like to recommend from unknown entries.
And are there any good open source implementations on this?
Thanks.
With like and dislike, you already have explicit rating data. You can use standard collaborative filtering with user and item normalization. You can also check out OrdRec: An Ordinal Model for Predicting Personalized Item Rating Distributions, which just takes an ordinal ranking of item ratings. That is, you can say that Like is better than Dislike, and let the algorithm figure out the best ranking-to-rating mapping before doing standard item-item collaborative filtering. Download LensKit and use the included OrdRec algorithm.

How to generate recommendation with matrix factorization

I've read some papers of Matrix Factorization(Latent Factor Model) in Recommendation System,and I can implement the algorithm.I can get the similar RMSE result like the paper said on the MovieLens dataset.
However I find out that,if I try to generate a top-K(e.g K=10) recommended movies list for every user by rank the predicted rating,it seems that the movies that are thought to be rated high point of all users are the same.
Is that just what it works or I've got something wrong?
This is a known problem in recommendation.
It is sometimes called "Harry Potter" effect - (almost) everybody likes Harry Potter.
So most automated procedures will find out which items are generally popular, and recommend those to the users.
You can either filter out very popular items, or multiply the predicted rating by a factor that is lower the more globally popular an item is.