Elasticsearch Learning to Rank v 1.0 RC 1 released


(Doug Turnbull) #1

We're getting close to fully releasing version 1.0 of the Elasticsearch Learning to Rank plugin. Today our first release candidate for 1.0 is out (for ES 5.6.2)! We need community testing and feedback to help make it bulletproof. Please download it and try it out!

What is Learning to Rank? It applies machine learning to relevance ranking. This plugin is currently serving search results on Wikipedia and Snagajob. It's been codeveloped between OpenSource Connections, Wikimedia Foundation, and Snagajob Engineering. Enjoy!

Github: https://github.com/o19s/elasticsearch-learning-to-rank
Docs: http://elasticsearch-learning-to-rank.readthedocs.io/en/latest/index.html

Feedback very much needed and welcome!


(Doug Turnbull) #2

Blog post by our colleagues at Wikimedia Foundation the plugin

https://blog.wikimedia.org/2017/10/17/elasticsearch-learning-to-rank-plugin/

Enjoy!
-Doug


(Dai Tran Quang) #3

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:

  1. 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?

  2. I’ve seen that xgboost also support “pairwise” learning to rank. So I wonder if I could integrate this model with ElasticSearch LTR plugin?