Currently, I’m using your plugin Learning to rank in order to improve our customer’s search experience.
According to your documents, Learning to rank (LTR) plugin is currently supporting 2 algorithms, which is Ranklib(in Java) and Xgboost(in Python). I’ve found that your plugin is very great and it helps improve our search engine.
However, I have a few concern regarded with the way ElasticSearch use LTR plugin to rescore the final model:
I’ve tried to use pointwise approach to solve Learning to rank problem, which use xgboost as a learning algorithm and “binary:logistic” as a learning objective. According to this, every final data point that we’re trying to rerank will get a score as probability output by xgboost model, this score lies somewhere between 0 and 1.
However, when inspecting the xgboost’s score in production, I’ve found that many of them have their score out of the range that was expected above; some of them even get negative score (-6.29 for instance).
We would like to know more why is this happening?
I’ve seen that xgboost also support “pairwise” learning to rank. So I wonder if I could integrate this model with ElasticSearch LTR plugin?