# Result Dithering? Why randomly shuffle results?

Most of us want to build a recommendation engine as accurate as possible, however, an experienced chief data scientist believes a practical machine learning algorithm should randomly shuffle the results, therefore non-optimal results. This is known as "Results Dithering". Slide 15 at:

http://cikm2013.org/slides/ted.pptx

While I understand how to do it (adding a small fixed Gaussian noise), but why would we do it to make the performance worse.

• For those of us without powerpoint, or not willing to download and process a large file to get a little more context, could you paraphrase the description in the slide (I am assuming it is not much text) - specifically what context and rationale is given. The fact that you are calling this shuffling implies only certain type of algorithm (e.g. ranking). Context is important: It might be quite sensible approach in a recommendation engine for instance. Nov 26, 2015 at 11:37
• I don't know a good theory-driven answer, but the assertion may in part be due to measuring real-world performance of the engine (e.g. customer purchases or clicks based on recommendations). In other words, the shuffling has some useful effect of making up for errors in the model, even as simple as showing the user/customer a wider range of things to click on over time. Nov 26, 2015 at 11:45
• @NeilSlater You might want to add it as an answer! Nov 26, 2015 at 11:46
• It's just a guess, I have only ever written one recommendation engine in Andrew Ng's course, so I'd prefer to leave an actual answer to someone with more experience. Nov 26, 2015 at 11:47
• I would imagine that dithering acts as a cross between simulated annealing and stochastic resonance. In simulated annealing the noise is added to make sure the global optimal is reached, not just a local one. In stochastic resonance the noise couples to a weak nonlinear phenomena - it is how the orbit of Jupiter can influence climate on earth. Nov 29, 2015 at 13:52

This is not an answer but rather a comment. I would need 50 reputation to comment.

I think in its nature, a recommendation problem is a greedy algorithm to a search/optimization problem. However, the process is biased and local. The users see and react to what they can see, and the algorithm will only reinforce it. Dithering is a way to break up the bias and make the search more global.

What I have been doing is a bit different than dithering, but similar idea. Instead of ranking, I converted the matching score to log linear probability, and "sort" the item/person by probability. An example is, P(a)=0.2, P(b)=0.8, then b has 80% of chance on top, while a has 20% of chance on top.

Like to hear how others hear about it too.