Evovest/EvoTrees.jl

Feature Request: Learning to Rank (LTR)

WZimmerman83 opened this issue · 2 comments

Is there any chance you can add something similar to lightgbm.LGBMRanker()? There doesn't seem to be any way of doing this easily in Julia without having to use PyCall and CatBoost...

https://en.wikipedia.org/wiki/Learning_to_rank

It's a learning method I'd have interest to see implemented, though not having a short term plan to it.
Is there a specific ranking method that has been of interest to you, did you experience better results from some algos?

Following work for this tutorial on ranking: https://evovest.github.io/EvoTrees.jl/dev/tutorials/ranking-LTRC/,
as well as considering the reference material from CatBoost ranking benchmarks: https://github.com/catboost/benchmarks/blob/master/ranking/Readme.md#4-results,
my current take would be that adding a support for ranking specific loss functions wouldn't add any value compared to the regrgession based methods discussed in the above tutorial.

If there are benefits of ranking specific loss functions, please let me know. Otherwise, I'm tilting towards not putting ranking tasks in scope, and rather refer to regression tasks.