Crunching the Math On iTunes
markmcb writes "OmniNerd has posted an interesting article about the statistical math behind iTunes. The author makes some interesting observations concerning the same song playing twice in a row during party shuffle play, the impact that star ratings have on playback, and comparisons with plain old random play (star ratings not considered)." From the article: "To test the option's preference for 5-stars, I created a short playlist of six songs: one from each different star rating and a song left un-rated. The songs were from the same genre and artist and were changed to be only one second in duration. After resetting the play count to zero, I hit play and left my desk for the weekend. To satisfy a little more curiosity, I ran the same songs once more on a different weekend without selecting the option to play higher rated songs more often. Monday morning the play counts were as shown in Table 1."
I think his point was that with a random order, it is possible for the same song to play twice in row. Not likely, but possible. He then goes on to say that people sometimes try to find patterns where there are none...which is correct. iTunes just happened to play the same song twice randomly.
Don't take life so seriously. No one makes it out alive.
From their results, I'd venture a guess as to the underlying algorithm:
Each song is given a number of points equal to (rating + 1). Then the probability of the song being played is (song rating)/(total points).
Or, to put more succinctly:
prob(song) = (rating)/(n + sum(i=1..n)(rating(i)))That yields probabilities in the given test case of:
5 star - .285 .238 .190 .143 .095 .048
4 star -
3 star -
2 star -
1 star -
0 star -
Which is reasonably close to what the author found. Heck, if I were implementing that feature, it's what I'd try first...
A way to calculate the odds that 2% will be played in the next 50 songs doesn't work 50* (2/100) = 100% as the author does, and neither 25*(2*100) = 50% is correct.
The correct calculations are: 1-(98/100)^50 = 63% and 1-(98/100)^25 = 39%.
This way you calculate the odds a song will be played at least once in the next 50 or 25 songs.
If you want to calculate the odds the song will be played exactly once in the next 50 or 25 songs:
50 * (2/100) * ((98/100)^49) = 37% or 25 * (2/100) * ((98/100)^24) = 31%.
I guess that's all..
For those too lazy to go read for themselves...
"Many claim to still see patterns as iTunes rambles through their music collection, but the majority of these patterns are simply multiple songs from the same artist. Think of it this way: If you have 2000 songs and 40 of them are from the same artist, there is always a 2% chance of hearing them next with random play. So right after one of their songs finishes, odds almost guarantee they will be played again within the next 50 songs and show a 50% chance they will play again within the next 25 songs. It's simply the mind's tendency to find a pattern that makes you think iTunes has a preference."