Lemur Project - 2016-07-26

It seems sparse data representations were added to RankLib as an afterthought, and only for a particular ranking algorithm (I forget which one).

As you noted, the sparse representation largely didn't even actually work.

I'd have to look more closely at the normalization code (I think all types of normalization would have issues), but I don't think it's a problem to normalize across all rank lists for a specific query.

The problem is how to handle missing features within a sparse data set.

Some people just treat the feature value as 0, which doesn't seem right. One could also just skip it and end up with feature min/max/average values that go across varying sample sizes, which also might not be a good thing.

In general, I'd favor normalization simply ignoring missing values from a sparse data point.

It might also be nice to allow the user to specify what a default value should be for each specific feature value (a default value for all features seems the wrong way to go).

I'd appreciate any further thoughts on how sparse data points are supposed to treat missing feature values.