I'm working on an experiment which is essentially a content recommendation service.

I have a set of content items in the form of articles, tweets, blog posts etc which have had a set of tags associated with them based on their contents.

I also have a set of user profiles with information on the users personality, interests, dislikes, activities etc.

Each user profile then has a column for liked and disliked tags to show which content items they would enjoy reading.

I would like to be able build a service that when passed a new user profile, returns a set of tags (generated from similar existing user profiles) that can be used to find content items that the new user would enjoy reading.

This is my first experiment with machine learning so I was wondering if someone could give me some advice on how to achieve this, or an approach to get started.

Many thanks in advanced! Harry

  • $\begingroup$ Try to implement your own low-rank matrix factorizer (read about how it relates to recommender systems), then read about "maximum inner product search" (for recommending once you have the model). The best way to learn is to do, so I advise you not to rely on libraries (except for basic linear algebra). Good luck and welcome to the site. $\endgroup$
    – Emre
    Commented May 4, 2017 at 19:01

1 Answer 1


Look into collaborative filtering and content based filtering.
Essentially, build a user-space - using their personality, etc features. build an item space in a similar manner- using their tags, what not.
Decide on a metric for each space, so you can compare how much each item is similar to each other(same for users).
Then look at each user preferences and say, this user is similar to that user who liked this item who is close-like to that item.
If user A liked item 1 and user B is similar to user A then its probable he will like item 1 as well.

This is a simple enough example


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.