Inspiration

There are a few existing music recommendation systems people have built along the years; what inspired me to create Muse was the lack of good meaning-aware lyrics-based song analysis, which is the main driver of the Muse recommendation system, and is what I believe adds the core value and is what differentiates Muse from other apps: muse recommends songs based on the meaning of their lyrics.

How it works

Muse uses some standard and modified NLP procedures to characterize similarity of song lyrics, for which I had to bust out some vector space analysis and a common measure of angular similarity between n-dimensional vectors, http://en.wikipedia.org/wiki/Cosine_similarity, where n is the number of words in a song's lyrics, and the elements of the vectors are their respective term frequency/inverse document frequency scores, which tell us how important each of these words are to the song's meaning as a whole.

Challenges I ran into

The biggest challenge and the gem that makes Muse unique: Song meanings are hardly ever literal! Sure you can do some fancy math to see which words characterize songs in relation to eachother, but what makes the words alone not-the-best indicator for song meaning is that a lot of the time songs are metaphorical, sarcastic, and have lots of implicit imagery.

I use the genius.com api, which is based on a crowd-built wiki style annotation community for songs, meaning you give it any lines of a popular song, and get in return the actual directly explained meaning in plain terms. This is invaluable for the app, and is why I believe I am able to apply the stats methods with so much reliability and confidence that what the process returns is actually relevant---because it's based on meaning, not just words.

Accomplishments that I'm proud of

I am really proud of the way the app uses the semantic meaning of the lyrics, rather than just the text itself. I really believe these kinds of systems are important for automated text-analysis...plain stats can only take us so far. I am also proud that I got it all working (for the most part) in the short amount time at SB Hacks.

What I learned

I learned about some NLP methods I hadn't previously been able to implement, I learned about music streaming, secure authentication, and more about the kinds of apps I enjoy building.

What's next for Muse

I'd like to be able to release an app based on Muse's algorithms in the future, and that will take some major scalability modifications. I used a set of 1000 popular songs, and I know how many more thousands are out there...with many coming out every day. Building a distributed/parallel implementation of the algorithms will a crucial next step for Muse.

Share this project:

Updates