Machine learning algorithm for ranking
-
16-10-2019 - |
Question
I am working on a ranking question, recommending k out of m items to the users. The evaluation metric is average precision at K.
Both R and Python have xgboost can be used for pairwise comparison and can be adapted for ranking problems.
Are there other algorithms or approaches that can be applied to ranking problems?
Solution
Your problem sounds like the classical top-N personal recommendation to me. There're lots of possibilities in the literature, for example:
- User-based collaborative filtering
- Content-based collaborative filtering
- Matrix factorisation
You'll need to read the literature and figure out which one is better for you.
OTHER TIPS
I think you should get started with "learning to rank" , there are three solutions to deal with ranking problem .
- point-wise , learning the score for relevance between each item within list and specific user is your target . This can be accomplished as recommendation do .
- pair-wise , learning the "relations" between items within list , which respectively are beat loss or even , is your goal .
- list-wise , learning the "effectiveness" of specific ranking list for items is your object .
I think you are looking for Item Rank. It's a very simple algorithm which is used for ranking and cover your needs.
Apache Mahout is an open-source library that provides a good recommendation engine. I've used it on two projects successfully.