Recommendation System for Songs

– Recommendation systems employ various filtering techniques. The most renowned

include content-based, item-based, or user-based approaches. Let’s review some

traditional techniques applied to song recommendations using those approaches.

– The content-based one identifies songs that share similarities with those already liked by

the client, relying on a set of selected features.

– In this technique, a predefined set of features is employed to establish an

“objective” similarity metric between songs. However, our goal is to conduct a

more subjective analysis, adapted to each client.

– The user-based one aims to discover similarities between users based on their liked or

disliked songs, subsequently recommending songs from users who exhibit the highest

similarity.

– Unlike content-based, this approach adapts directly to each client, evaluating the

similarity metric between the client and other users.

– The recommendation’s accuracy may be impacted by the lack of control we have

on the songs we decide to pool from our selected set of close users

– The item-based one detects similarity between songs based on how frequently liked or

disliked together by a specific group of users, suggesting songs similar to the ones

appreciated by the client.

– This approach can also be adaptive if we consider our set of users as a

hyperparameter to be fine-tuned.

– The recommendation’s accuracy depends on the user group of user upon which

we base our analysis

– For the latter two techniques, the similarity analysis is computed out of a user-item

matrix that reflects the preferences of those users, generally expressed by likes and

dislikes, or rating.

– We then compare the vectors of this matrix to extract similarity values between users

and songs , that we will use to predict the rating or liking of songs that our client hasn’t

listened to yet.

– For this purpose we often use basic vector similarity metrics like pearson distance,

euclidean distance or sin/cosin similarity.

– For those different similarity metrics we need vectors that reflects the preferences of the

users. Which means we need to have a minima, a sense of what songs our user prefer

over the others. This can be expressed as a grade rating or as a binary liked/disliked

rating.

– Unfortunately in our case, we only know when a song was liked, but not when disliked,

or even ignored (which could have been a good alternative to “dislike”).

– This partial feedback is gonna lead to an incomplete similarity analysis.

– To get around this issue we need to define new similarity metrics and use them to

develop our own user based and item based techniques.

– We will even try to combine those two approaches into a unified model in order to reduce

the impact of both of their flaws.

– Additionally, we will incorporate feedback analysis to enhance our recommendations

continually, based on client feedback (including likes and dislikes from previous

suggestion batches).