Need advice on collaborative filtering

Im making a collaborative filtering Telegram bot - it recommends posts from a large span of channels. User can react to a post by pressing one of reaction buttons:
:smiley: :smiling_face_with_three_hearts: :face_with_monocle: :poop:

This is different from movies recommendations, since its not regression problem, but classification (at first glance at least). These reactions mean different things, and i think they cannot be treated as different values on one a rating scale 1-4 for example.


I’ve studied the Lesson 8 - Collaborative filtering and tried to treat this problem of movie recommendations as classification. The results were predictably worse.

So i guess my question is:
In my case with Telegram recommendations, is it worth it to treat it like a regression problem and not to worry that different emojis carry their own meaning? Will it improve the end result?

Or maybe it will be better just to change the way users rate posts and have 1-2-3 whatever stars like on MovieLens and have a straightforward regression?

When you say classification? What are you trying to classify? Because there are many ways in which you can implement a collaborative filtering based on the type of interactions.

For example if you are trying to predict ratings, then you are using explicit feedback. The more common case, is that you will have positive implicit feedback, that means that you only have interacted Items, but you don’t know (and probably will need to asume) if the user liked or not that item. In these cases you want to predict the probability a user will interact with a specific group of item, and rank them from the most likely to be interacted to the least likely.

Here you can use loss functions like Bayesian Personalized Ranking, WARP, and so on, which are similar to the losses used to train siamese neural network. where you basically try to minimize the distance between a user and item embeddings that have interactions, and maximize the distance between the items that weren’t interacted (negative samples).