I don't know learning to rank models that well so I will not touch on those, however you could also treat this as a multi-class problem.
If you are using
sklearn then you can use a one-vs-rest strategy where you train one classifier for each "label" which in this case would be 10 classifiers, one for each rank. Every sample is then evaluated against each classifier and is assigned the label that gets the highest probability.
The big advantage for you is that since there is one and only one classifier per label you will be able to inspect coefficients or feature importances to figure out which features are most important at each rank.
While a learning to rank approach might give you better accuracy this will at least give you a starting point which is quick to set up and which results in easily interpretable models.