ocbe-uio / BayesMallows

R-package for Bayesian preference learning with the Mallows rank model.
https://ocbe-uio.github.io/BayesMallows/
GNU General Public License v3.0
21 stars 9 forks source link

Swap proposal for latent and modal rankings #368

Closed osorensen closed 6 months ago

osorensen commented 9 months ago

Would be nice to add this as a potential proposal distribution for the case of click data. However, it might be complicated, as I don't think our current data structures are set up to handle click data in the way they are defined here.

image
osorensen commented 8 months ago

How things are done now

Proposing modal ranking

Leap-and-shift is always used.

Proposing latent ranks with pairwise preference data

The swap proposal is used when we have an error model and otherwise the modified leap-and-shift proposal from the JMLR paper is used.

https://github.com/ocbe-uio/BayesMallows/blob/8850531c2bb231bd032b5909d8e64cdd00c9d654/src/augmentation_class.cpp#L43-L51

Proposing latent ranks with missing ranks

Proposals are either sampled uniformly or sampled with the pseudolikelihood proposal. The uniform sampling is actually just a special case of the modified leap-and-shift proposal for pairwise preferences introduced in the JMLR paper, since an unranked item neither has any derived pairwise preference, and thus the modified leap-and-shift reduces to uniform sampling on the set of allowable items.

https://github.com/ocbe-uio/BayesMallows/blob/8850531c2bb231bd032b5909d8e64cdd00c9d654/src/missing_data_functions.cpp#L54-L60

How things should be done

Proposing modal ranking

Both swap and leap-and-shift should be available options.

Proposing latent ranks with any kind of data

Modified leap-and-shift, swap, and pseudolikelihood should all be available.