Google’s AI department has developed a scalable library on the basis of TensorFlow which should help to teach systems to rank list items. TF-Ranking is now openly available on GitHub, to give those a go at learning-to-rank techniques, whose overly large datasets would normally prevent them from doing so.
Learning to rank is a form of machine learning which is often used in areas such as automatic translation or recommender systems. Algorithms in this context try minimising a loss function over a list of items with the goal of finding their most useful order for a given task. Google’s new library was especially developed with the use of those techniques at scale – which in their case means with large datasets – in mind.
It includes commonly used loss functions and ranking metrics such as pointwise, pairwise, and listwise losses, as well as mean reciprocal rank and normalised discounted cumulative gain respectively. Other components include functions that let multiple items be scored jointly, a LambdaLoss implementation and unbiased learning-to-rank.
LambdaLoss is meant for direct ranking metric optimisation and lets users design and optimise metric-driven loss functions via an iterative statistics procedure that finds most likely parameter estimates. Unbiased learning-to-rank is an approach to generate unbiased models from biased feedback data by re-weighting training instances (datasets).
Flexible APIs in TF-Ranking should let researchers develop and add customised scoring and loss functions as well as additionally needed metrics. In case only sparse features are available, the library also offers embeddings to convert them to dense representations. Since the library is based on TensorFlow, Tensorboard can be used to visualise ranking metrics and pick the best model, while TensorFlow Serving helps with its deployment.