Skip to content

Joint Optimization of Cascade Ranking Models (WSDM 19)

License

Notifications You must be signed in to change notification settings

rmit-ir/joint-cascade-ranking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Joint Optimization of Cascade Ranking Models

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

Reproduce Instructions

  1. Make sure you have installed the dependencies:

    • g++ or clang++
    • cmake 2.8+
    • Python 3.3+
    • MSLR-WEB10K
    • Yahoo LTR Set 1
  2. Clone the repo:

    $ git clone https://github.com/rmit-ir/joint-cascade-ranking
    $ cd joint-cascade-ranking
    $ git submodule update --init --recursive
  3. 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
  4. 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
  5. Run baselines

    Yahoo:

    $ ./exp/yahoo/baseline-gbrt.sh
    $ ./exp/yahoo/baseline-cegb.sh

    MSLR:

    $ ./exp/mslr/baseline-gbrt.sh
    $ ./exp/mslr/baseline-cegb.sh
  6. Run joint cascade

    $ ./exp/yahoo/reproduce.sh
    $ ./exp/mslr/reproduce.sh