I noticed recently that the new discover weekly songs tend to sync perfectly with my walking speed. I wonder if I subconsciously leaked some bias into my training sample. BPM has to be one of the factors they are matching against.
Here is a blog post that describes one of their machine learning models using neural networks. http://benanne.github.io/2014/08/05/spotify-cnns.html