Finding Similar Music Using Matrix Factorization
benfrederickson.com
benfrederickson.com
Because the above method doesn't work, I have done correlations between different artists I like and the music recommended for that artist. (Example Arists A: Similar B C D; Artists E: Similar C D, then it would recommend C=4 point, D=4 points, B=2 point)
This method sort of works, but it mainly yields music I find 'acceptable' not music I find good.
Music should IMO be recommended using genre/tags(artists, year, ...) as well as:
(rather long list:) tempo, complexity of the music, instruments, amount of instruments, how monotone or varied to music is, then there is music that uses notes to keep you in short suspense and others in long suspense, general sound of the music (rock would be 'rough' while violin would generally be 'smooth'), music patterns, music pattern genre, ...
And then you need to train a small neural net per person to figure out witch of all these features is important to the person you are recommending music to.
(Edit: added to list of features to look for in music)
There is a lot of great music I don't listen to because it comes with the performers problems, complaints, and political beliefs attached.
Some people don't care but for those of us who do it would be great if there was a filter for spoken words.
I assume it uses some combination of social data (e.g. music listened to by people who listen to similar artists as you) and the intelligent classification ability they purchased when acquiring Echo Nest. There was quite a good write up about it - I think it was one of these two: http://www.theverge.com/2015/9/30/9416579/spotify-discover-w... or http://qz.com/571007/the-magic-that-makes-spotifys-discover-...
I just wish it would save my previous weeks' playlists as sometimes I forget to listen to them and then they're gone!
[It would have been even better if that had been expanded to album/song level. As the sibling comment suggests, categorising by subject matter would be very useful for a not-insignificant number of people as well.]
http://thesis.flyingpudding.com/
http://erikbern.com/2015/09/22/presentations-about-spotify-m...
http://erikbern.com/2015/09/24/nearest-neighbor-methods-vect...
http://www.wired.com/underwire/2013/08/qq_netflix-algorithm/
http://www.slideshare.net/erikbern/collaborative-filtering-a...
http://benanne.github.io/2014/08/05/spotify-cnns.html https://news.ycombinator.com/item?id=8137264
http://www.playdar.org/ https://github.com/RJ/playdar-core http://news.ycombinator.com/item?id=3876724
https://github.com/bmcfee/librosa
http://forever.fm/ http://blog.petersobot.com/introducing-forever-fm
http://musicmachinery.com/2011/05/14/how-good-is-googles-ins...
http://musicmachinery.com/2012/11/12/the-infinite-jukebox/
Btw., as I am developing my own music player, my main important feature/goal is a kind of automatic DJ which automatically selects music and I also especially had a discover mode in mind. However, that main feature did not evolve that much so far because there were so much other things to implement first. For now, it only supports access to files in your file system, and it looks on tags and artist and adds quite some randomness to it.
https://github.com/albertz/music-player/blob/master/WhatIsAM...
In general, methods like this require an epic amount of data to work well for consumers. The Netflix Prize made a dataset with 110 million ratings available, and that was barely enough to make impressive predictions. The issue here isn't the statistical model being used, but the paucity of training data. If you trained this or any other model on one billion rated songs, the quality of the recommendations could blow your mind. They would however still skew toward the average musical tastes.
And the skew toward the average musical taste is exactly my issue. Finding music is more like playing bingo to me.
Disclaimer: I haven't used any note-wordy NN yet, so this might still required a ton of input. But if the NN could start recognizing thinks like for example: likes piano with male singer, but a penalty when it includes a violin in these genres (stupid example) it would IMO be an improvement.
I don't think that has turned out to be the case. Most people's listening habits follow genre, and just don't have that much latent structure to extract.
For example if I like 'dark' music I might as well like a song from a techno artist and a classical orchestra.
But this can be very complex. What some people find aggressive music others find a little too soft.
EDIT: by the way: because of the above I also think a recommendation for a song is better than for a band.
For instance, I added "Going Through Changes" by "Army of Me", and its recommendations included songs from bands I'd never heard of and actually enjoyed, like Radford, Red (a Christian band, one, as an atheist, I wouldn't ever have browsed on my own, but ended up really enjoying), Maxeen, Black Lab, and Brand New. Each had "genes" that made their algorithm align them with the seed song.
I don't use it much right now - I find myself in a cycle of discovery and then stubborn re-listening of the same four or five albums - but I expect I'll go back to it the next time I'm back in that exploratory mood.
Is there an algorithm that suggests music based on the degrees of connectedness to the individuals who made the music? I discovered Kanye West long, long before he made it big because he did a guest track on a label-produced mixtape. I said "man this shit is dope" and tried to track him down, but was only able to find other guest tracks on like a Mos Def album and a Common album (this was in like 1998, 5 years before he released a solo album).
I really miss that way of finding music, because it introduced me to a lot of artists who were similar enough I would like them, but different enough that genres started to morph into one another. A good example there would be Nine Inch Nails vs. How To Destroy Angels - Trent Reznor is behind both of them, but HTDA has a much more haunting, ambient sound compared to the sharp edges and distorted beats of NIN.
[1] Yu, X., Ren, X., Sun Y., Gu, Q., Sturt, B., Khandelwal, U., Norick, B., Han, J. (2014) Personalized entity recommendation: A heterogeneous information network approach. in J Proc. 2014 ACM Int. Conf. on Web Search and Data Mining (WSDM’14)
[1] http://www.cs.columbia.edu/~blei/seminar/2016_discrete_data/...
It has been learning on it's own for years now and works pretty well for me.