Live data from Hacker News

Building a Music Recommender with Deep Learning

mattmurray.net

11–20 of 74 posts

Re: Building a Music Recommender with Deep Learning

#12
Warning: this comment has little to do with the article, beyond being a rant on the approach taken by all recommendation engines I've seen.

This an interesting approach, but the objective is similar to most recommendation engines: "Find me something similar to something I like". Sometimes that's a good requirement (e.g. when trying to queue up the next song in a playlist, it's good to have some similarity to the song you're currently listening to). However, when trying to discover new music it's generally a bad approach; since (depending how the requirement is tackled) you'll get recommendations that tend towards some median; i.e.:

  - Other songs by the same artist
  - Songs by artists who have collaborated with the current artist
  - Popular songs (i.e. if almost everyone has a Beetles album in their playlist, getting "people who bought this also bought" recommendations for anything would list Beetles, since technically that's true; it's just uninteresting.
  - Songs in the same genre
  - Songs with a similar sound / structure
i.e. it tends to list things which you're likely to be aware of anyway. Also this means you'll get lots of songs with little variety between them; making your playlists monotonous.

What I'd be really interested in seeing was an engine which finds things on the peripheral; i.e. figures out the things that are likely to appeal to you because of the more unique things you're interested in; or the popular things that you dislike. That way you're likely to get a more eclectic mix of suggestions, and broaden your musical awareness. This would likely produce a lot more false positives initially, as it's expanding your taste range rather than narrowing in on some "ideal" average, so may stray into unknowns; but once you've heard and rated something in this new area, that data can quickly feedback into the algorithm and thus you learn of things you'd previously never have discovered.

Re: Building a Music Recommender with Deep Learning

#13

Warning: this comment has little to do with the article, beyond being a rant on the approach taken by all recommendation engines I've seen. This an interesting approach, but the objective is similar to most recommendation engines: "Find me something similar to something I like". Sometimes that's a good requirement (e.g. when trying to queue up the next song in a playlist, it's good to have some similarity to the song…

I totally agree with you. Sometimes you love a song from the first listen, it bites you even if came from an artist that you don't know. My dream is a suggestion engine that "examine" the melody, the harmony, the frequencies that make the song and finds songs that are similar based on that parameters. Probably a signal analysis could help in finding why you like that songs.

Re: Building a Music Recommender with Deep Learning

#14

Warning: this comment has little to do with the article, beyond being a rant on the approach taken by all recommendation engines I've seen. This an interesting approach, but the objective is similar to most recommendation engines: "Find me something similar to something I like". Sometimes that's a good requirement (e.g. when trying to queue up the next song in a playlist, it's good to have some similarity to the song…

What you complained was exactly what I would complain about Spotify's suggestions some time ago.

But as of, 3-6 months ago those daily mixes started putting some really interesting new songs that I wouldn't find otherwise. Sometimes it seems to go back to that "safe zone" but it's been such a much better experience I have been telling all my friends to try it.

I really would like to know more about their process to improve the recommendation system.

Re: Building a Music Recommender with Deep Learning

#15

Warning: this comment has little to do with the article, beyond being a rant on the approach taken by all recommendation engines I've seen. This an interesting approach, but the objective is similar to most recommendation engines: "Find me something similar to something I like". Sometimes that's a good requirement (e.g. when trying to queue up the next song in a playlist, it's good to have some similarity to the song…

What could also help in this case is "collaborative filtering", [1].

[1] https://en.wikipedia.org/wiki/Collaborative_filtering

Re: Building a Music Recommender with Deep Learning

#16

This is interesting, but fairly easy to confuse. Esp. would be interesting to see what results come up when you use modified "artistic" spectographs like that of Windowlicker by Aphex Twin [1]. One thing I've learned from years of having worked with audio and images is that image representations of audio are horrible representations of it (other than for temporal changes). The results are good though! Good work! :D […

> ...image representations of audio are horrible representations of it (other than for temporal changes).

Yes, and thus the reason why the classifier was so good at recognizing trance...it's one of the few genres that locks in at around 144bpm.

Re: Building a Music Recommender with Deep Learning

#17

Tangential: has anyone found anything that doesn't completely suck for recommending books? Goodread's recommendations are terrible.

Amazon tends to recommend things I like and the majority of the purchases have been because of their recommendations (good job Amazon, your software is doing it's job, raising sales). I think books and music are different though. Books have well defined categories. If I buy a pop-psych book, say "Blink", and then I am recommended "Peak: Secrets from the New Science of Expertise" it's pretty much going to be very likely I buy that too if I am interested in that subject.

If however I want recommendations for new Metal music, and my previous selection was Metallica then you play me some Megadeth, I am going to hate it and not be interested in it at all!

Re: Building a Music Recommender with Deep Learning

#18
In my opinion, the results are not quite exciting as they might seem like at the first glance. The hip-hop and minimal house classification perform almost randomly (the random classifier would have accuracy of 50%). The claim of music genre subjectivity is not fully appropriate for the categories used in this work: the presented genres are quite distinct, and they have objective differences. Knowing only BMP and rhythm structure of the tracks would be sufficient to classify most of the mentioned genres. Also, the article lacks of critical analysis of the results. The network may not have learned to analyze structural properties of the music; if this is true, than what is it classifying exactly? An averaged spectral envelope or spectral distribution? In this case the network will fail if you feed a filtered music piece into it. There is a nice paper on issues like these called “A Simple Method to Determine if a Music Information Retrieval System is a Horse”, you may want to check it out: https://www.researchgate.net/publication/265645782

I understand this is an educational project, but nevertheless it's published, hence open for critics ;)

Edit: small style corrections.

Re: Building a Music Recommender with Deep Learning

#19
Why trying to do it via A.I.?

Why not checking which are the top 3 most played songs by other users who are the 1000 users who have the most similarity with the current user, and then recommend the current user the most played songs from the 1000 similar users that the current user has not listened to yet.

As far as I can see this would be superior to any existing A.I. recommendation algorithm.

Re: Building a Music Recommender with Deep Learning

#20
Very cool! One minor nitpick -- the author mentions that this is 'completely unsupervised'. It's true that the author didn't need to manually classify the data, but someone did.

So, I believe that this is actually supervised learning, as the author is training a classifier on preexisting labels (the genres).

I believe that unsupervised learning would not make use of a target variable at all. If the network architecture terminated at the fully connected layer, and then propagated that layer backwards to reconstruct the input (something like Contrastive Divergence), that would be an unsupervised method.

Post reply on HN