Skip to content

rmit-ir/joint-cascade-ranking

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
exp
 
 
ext
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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