Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To apply ItemKNN to ranking problem. #147

Closed
statusrank opened this issue Mar 5, 2019 · 4 comments
Closed

To apply ItemKNN to ranking problem. #147

statusrank opened this issue Mar 5, 2019 · 4 comments

Comments

@statusrank
Copy link

Excuse me,
I run the main.py,and select the ItemKNN model.In my experiment,i want to apply itemKNN to ranking problem,but the output i see is a rating problem.what should i do ?

@Coder-Yu
Copy link
Owner

Coder-Yu commented Mar 5, 2019

Using Memory based algorithms to rank items is extremely time-consuming. So ranking for all items in ItemKNN is not available in RecQ. If you really need to use ItemKNN or UserKNN to rank all items, You can rewrite the function of predictForRanking in ItemKNN.py and use a loop to predict each score and return a vector. However, this is not recommended. You can find it difficult to use matrix computation to accelerate this process as you have to find neighborhood for every user or item and aggregate the corresponding scores. So I recommend you to use the model based algorithms such as PMF, SVD, BPR to solve a ranking problem. BTW, the ranking algorithms which are collected in the directory of 'ranking' under the directory named 'algorithm' perform much better than the rating based algorithms. Actually, I believe it may take some time to figure out the differences between the rating and model based algorithms. If you are a noob in this area, firstly you should read some papers or books. With the full understanding of the theory of recommender systems, you can make RecQ a useful and powerful tool. Of course, reading the README.MD is a must before you run this project. (^▽^)

@statusrank
Copy link
Author

Thanks for your reply in details.Yes,i am a noob in RS ,so most of my questions are about dataset and parameters . Now i want to use the WRMF in my ranking problems.I am confusing if I apply wrmf on a new dataset such as movielens-100k,do I need to tuning these hyperparameters such as number of factors or number of iterations?Or do all of models tune to the best on these dataset we provided including Ciao,Epinions etc.

@Coder-Yu
Copy link
Owner

Coder-Yu commented Mar 6, 2019

Of course tuning is necessary. Generally, a larger dimension (e.g. 50) may result in better performance. I suggest you to try different values for hyperparameters. BTW, despite the remarkable performance of WRMF. it is not suitable for large dataset since the vector-wise ALS is time-consuming. MovieLens-100k is ok, but conducting with Epinions could be tormenting as it has a large number of users and items which result in a large matrix to be updated. BPR is a better choice.

@statusrank
Copy link
Author

Of course tuning is necessary. Generally, a larger dimension (e.g. 50) may result in better performance. I suggest you to try different values for hyperparameters. BTW, despite the remarkable performance of WRMF. it is not suitable for large dataset since the vector-wise ALS is time-consuming. MovieLens-100k is ok, but conducting with Epinions could be tormenting as it has a large number of users and items which result in a large matrix to be updated. BPR is a better choice.

Thanks.I think I will reproduce both of them for helping me understand the process,and your replies help me a lot ,too.Thanks again for sharing.

@Coder-Yu Coder-Yu closed this as completed Mar 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants