Implementation of the cascade models used in the paper Joint Optimization of Cascade Ranking Models, WSDM 19.
L. Gallagher and R-C. Chen and R. Blanco and J. S. Culpepper. 2019. Joint Optimization of Cascade Ranking Models. In Proc. WSDM. 15-23. DOI: https://doi.org/10.1145/3289600.3290986
-
Make sure you have installed the dependencies:
- g++ or clang++
- cmake 2.8+
- Python 3.3+
- MSLR-WEB10K
- Yahoo LTR Set 1
-
Clone the repo:
$ git clone https://github.com/rmit-ir/joint-cascade-ranking $ cd joint-cascade-ranking $ git submodule update --init --recursive
-
Build/Install Dependencies
Build CEGB (note CEGB was added to LightGBM core after the publication of this work):
$ cd ext/cegb $ mkdir build $ cd build $ cmake .. $ make $ cd ../../..
Build evaluation tools:
$ make -C eval
Install Python dependencies:
$ pip install -r requirements.txt $ pip install -e ext/cegb/python-package
-
Configure Datasets
Create a
local.mk
file with the path to MSLR and Yahoo datasets:$ >local.mk $ echo "YAHOO_PATH=/path/to/yahoo" >> local.mk $ echo "MSLR_PATH=/path/to/mslr" >> local.mk
Link to datasets and create qrels:
$ make -C exp/yahoo $ make -C exp/mslr
-
Run baselines
Yahoo:
$ ./exp/yahoo/baseline-gbrt.sh $ ./exp/yahoo/baseline-cegb.sh
MSLR:
$ ./exp/mslr/baseline-gbrt.sh $ ./exp/mslr/baseline-cegb.sh
-
Run joint cascade
$ ./exp/yahoo/reproduce.sh $ ./exp/mslr/reproduce.sh