koreyou / listnet_chainer

a Chainer implementation of "Learning to rank: from pairwise approach to listwise approach" by Cao et al..
Creative Commons Zero v1.0 Universal
25 stars 7 forks source link

Chainer Implementation of ListNet

Introduction

ListNet ranking model. This is a Chainer implementation of "Learning to rank: from pairwise approach to listwise approach" by Cao et al..

Code explanation is given at http://qiita.com/koreyou/items/a69750696fd0b9d88608 (Japanese).

How to run

Prerequisite

This code only supports python 2. I have only tested this code on python 2.7.12 to be more specific.

pip install -r requirements.py
export PYTHONPATH="`pwd`:$PYTHONPTH"

Download LETOR dataset from: http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar . Unrar data into "build" directory such that directory is organized build/MQ2007.

Running the code

python bin/train.py

Experiment

I have run MQ2007 on LETOR 4.0. I have only tested it on Fold 1.

Result

Here is the performance metrics in mean average precision (MAP).

TRAIN: 0.4693
DEV:   0.4767
TEST:  0.4877

This is the official result on the same dataset.

TRAIN: 0.4526
DEV:   0.4790
TEST:  0.4884