I'm trying to create a content based recommender system. The system accuracy is quite enough when finding similar items but it's not as good as when recommending items to a specific user.
I use categories, publisher and manufacturers to find similarities between books. I've converted these features to vectors. With the help of cosine similarity, I've found similarity scores between books.
I thought that, if I want to recommend books to user according to its taste, I should convert user to a vector that is combination vector of books that user has liked or bought. The problem occurred here. If one of book that user has liked/bought have more features than the other books, then all recommended books are similar to more featured book. I don't know how to solve this problem.
Is my way to recommend personalized products correct? If it's what can I do to avoid this problem?