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?

Was it helpful?

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 .

  1. 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 .
  2. pair-wise , learning the "relations" between items within list , which respectively are beat loss or even , is your goal .
  3. list-wise , learning the "effectiveness" of specific ranking list for items is your object .

Are you trying to recommend a list of ranked items to a user?

Take a look at collaborative filtering which is one of the most commonly used technique for recommender systems.

For python, Pyspark is something you can look at. This link contains some example how to implement it.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with datascience.stackexchange
scroll top