Let's say we have an object model called Books.

We recommend different 'book' to our users. How do we integrate their feedback into the recommendation loop?

For example if one user 'likes' a certain book and 'dislike' another book, how do we integrate this new data into the recommendation loop?

The user action could mildly influence similar user, but we're not so interested in that aspect. We're much more interested in making sure that we learn from every data point we have from this user.

In my relational-db head, that means that every book has a different reputation calculated from each user.

Is there a simpler way to do this ?

asked May 24 '11 at 23:00

philgo20's gravatar image

philgo20
0223


2 Answers:

Start with the responses here: Content Recommendation. The key idea is that you measure the likelihood a user will like an object based on the data available to you. That likelihood increases when the user likes similar objects or similar users like that object, and decreases when the opposite happens.

answered May 25 '11 at 01:20

Robert%20Layton's gravatar image

Robert Layton
1625122637

there are many ways to accomplish what you want to do. on the "simple" side of things, there are two ways of doing this that you should know.

the first is collaborative filtering. in a general sense: 1) you have users who give partial feedback (i.e. they only rate some books), 2) you define a similarity metric between users, and 3) to rate a book for a user who has not given feedback for it, you take a weighted sum of other users feedback, where the weights are proportional to the similarity between users. there are many modifications/versions of this technique, but it is a good starting place.

the second is adaptive filtering. the idea with adaptive filtering is to find a classifier for every user that says whether or not someone will like a book. this can be done through SVM, logistic regression, DTs, etc. you take examples that the user rated as positive as one class and negative as the other. this technique often has the problem that it is expensive (you need a model for every user) and that it is sparse (users typically don't rate that many books, if any).

if you want to see an example of the state of the art, check this out.

answered May 26 '11 at 11:13

Travis%20Wolfe's gravatar image

Travis Wolfe
235119

Your answer
toggle preview

powered by OSQA

User submitted content is under Creative Commons: Attribution - Share Alike; Other things copyright (C) 2010, MetaOptimize LLC.