As Google explains, there are systems that are capable of processing speech and produce multiple hypothesized output with different score assigned to each output. If we consider an example of speech recognition system, the engine would always want to provide a single output for a given input, which means that a hypothesized output with highest score will be selected. This may not be the optimum output depending upon a situation but, in absence of ‘second opinion’ there is no way to find out.

This is where the reranking technique may be used in conjunction with a model that offers several scored hypothesized outputs thereby reordering the scored outputs based on information not available to the original model. Taking the same example of speech recognition system, the reranking system, going a step beyond the standard system, will reorder all the possible scored outputs based on the context in which the audio was generated thus giving a more optimized match / output.

“The goal is that by employing a second model after the fact, one can make use of additional information not available to the original model, and produce better overall results”, notes Dan Bikel and Keith Hall, research scientists at Google in a blog post

The core of the system has been implemented in C++ and comes with powerful run-time configuration system thereby facilitating easier experimentation. “ReFr leverages the parallel processing power of Hadoop to train and use large-scale reranking models in a distributed computing environment”, notes Google.

ReFr can be downloaded from here.