Collaborative Filtering with "non ratable" data

Hello everyone,

I have a question.

The example given to us in this section is essentially movie ratings by users, where it’s easy to perform collaborative filtering with the rating metric.

But what kind of metric/parameter would we use when we don’t have an outright metric like rating that denotes clearly how much a user likes the content? For example, Twitter recommends tweets that other users you follow have liked. How would twitter know if you would like those same posts? What are the possible fields they could use in the data that they gather?

Or is this a use case where content-based filtering comes in? And if so, how would it work in this case (with respect to recommending tweets from users you follow)?

Or perhaps even a hybrid system would be used?

I really hope this question makes sense :sweat_smile:

1 Like

Hello Ogheneochuko @deltannboi!

I think in practice we always consider a hybrid system to make the most of any data we have.

For the collaborative part, according to this twitter’s blog post:

The content we recommend to you is informed by actions you take on Twitter, also known as signals.
Signals can include things like interests you’ve told us about, Topics you follow, Tweets you engage with, and even Tweets people in your network like. Based on these signals and more, we’ll show you content we think you’ll be interested in.

These signals definitely offers the rating-like engagement data except that they are all rather “positive” signals. Therefore, I think Twitter has the following to include some “negative” signals:

This includes a new design with an “X” on Tweets making it simple to remove them from your Home timeline and share your feedback with us.

More signals that speaks about the negative part can be formed depending on how much details Twitter tracks us, for example, a tweet’s read time: you did start reading this 10-second post, but only have read it for 1 second.

Of course your question doesn’t necessarily concern about Twitter, and we can only guess how Twitter does it anyway, but I think the points are,

  1. any interactions (any mouse clicks, any typing, screen dragging, the time you have spent, …) we have on a platform can become a “signal”

  2. for collaborative filtering alone, each “signal” provides the degree of how we believe you would like it. You followed it, then we assume you like it.

  3. Recommendations are made without knowing actually you like them or not, but we can collect some implicit and some expicit feedbacks from you. Twitter’s “X” feature is obviously an explicit feedback, “signals” by you on recommended tweets can be other explicit feedback or implicit feedback. Given these feedbacks, the question is how we are going to integrate these feedbacks, or better, how we are going to integrate all information to build the recommendation system. We can either guess how Twitter would do it, or we can start to be innovative and propose some hypothesis.

What do you think? What catches your attention the most? Or how would you think we can do it?


Hello Raymond @rmwkwok!

Thanks for your reply.

I think you’re right, a hybrid system would be the best way to utilize all the data at hand.

I also think leaning towards content-based filtering would be more effective for a platform like Twitter, but at that point, we’d be moving towards NLP to understand the context of tweets. But I think this would allow for better recommendations based on the tweet content in relation to the signals the user has set up (following topics and identifying interests).

From my own personal experience with the platform, I don’t think collaborative filtering works all too well. The majority of the tweets recommended to me based on people I follow don’t really interest me all that much. I think this may be because of the diverse set of opinions and beliefs that we all have, therefore, following someone may not mean I agree with everything they believe and would only like to be recommended tweets based on what I like.

But I guess we can always send negative signals to tell the algorithm when that happens. However, the user may not always take the time out to do it so a more user-facing action like a downvote or dislike button (which they tested recently) would be more effective.

What do you think about leaning more into content-based filtering here?

Hello @deltannboi,

Agree with you that NLP can be leveraged to understand the context or the topic of the tweets we liked, because this is an usable pivot the system can use to tell whether other candidate tweet is similar to what we had liked. I would imagine each tweet is tagged with some labels once it is published, and labels are compared.

Also, recommendation precision is a big issue. To be honest, even photos I liked to see yesterday may not be photos I want to see today, not to mention that the account I followed doesn’t always tweets things interesting to me because afterall clicking “Follow” is just a moment that doesn’t actually speak why I decided to follow (maybe not because of that accounts’ tweets). I always think it’s necessary to allow for expressing explicity disagreement to recommended content such as by a dislike button, but the challenge that comes after is how to distill the content that resonates with us from the content that we liked/followed subtracted by the content we disliked.

Content-based uses labels we explicitly or implicitly provided. It is as helpful as how those labels accurately represents what we want to see on Twitter. However, I am afraid that not all useful labels are available for users to choose; and not all users choose only useful labels.

I think the challenge remains in distilling resonating content, and perhaps establishing user-level context-based profiles based on iterations of recommendations and (explicit / implicit) feedbacks.


Hello @rmwkwok,

I see what you mean and I definitely agree with you, distilling content might be a significant challenge, and recommendation precision will almost always be a big issue.

I am definitely going to do some research into this. This has been an interesting conversation and I think it may have sparked my interest in recommender systems.

Thank you very much.


Sure Ochuko!

I am preoccupied with something else, otherwise I would be delighted to talk more about this topic with you. There is something with recommendation that I want to do. If you don’t mind, please share anything intriguing you discover while conducting your investigation with me here or on DM. Maybe we can create something.