Metric Learning to Rank

This page contains the source code for the implementation of the Metric Learning to Rank (MLR) algorithm as described in the paper cited below. The algorithm is an extension of Structural SVM which learns a linear transformation of a feature space to optimize ranking loss functions. (Note: the algorithm is based on SVMstruct, but the implementations are independent.)

If you have any questions or comments, feel free to email the author at bmcfee@cs.ucsd.edu, or post to the ICML discussion forum for the paper.

Code

MLR requires MATLAB version R2007a or newer. Installation instructions are provided in the README. MLR is distributed under the GNU GPL license.

eHarmony data

This data set was provided by eHarmony, Inc. The data consists of pairs of individuals, which either matched (positive example) or did not (negative example). The data is partitioned into two subsets corresponding to two equal-length segments of time. The data is stored in CSV files, organized as follows.
  • EH-*-data.csv.gz: each row describes an individual. The first column is an identification number for that individual, and all subsequent columns contain the (numeric) feature values.
  • EH-*-labels.csv.gz: each row describes a pairwise interaction. The first column indicates whether the interaction is positive (1) or negative (0). The second and third columns contain identification numbers for the corresponding individuals.
Please refer to the paper below for more details about this data set.
Download

References

If you use either the code or the eHarmony data, please cite the following paper:

McFee, B. and Lanckriet, G.R.G. Metric Learning to Rank. Twenty-seventh International Conference on Machine Learning (ICML), 2010. [bib]

... back