Andrew Ingram
Andrew Ingram

Reputation: 5230

Collaborative Filtering: Ways to determine implicit scores for products for each user?

Having implemented an algorithm to recommend products with some success, I'm now looking at ways to calculate the initial input data for this algorithm.

My objective is to calculate a score for each product that a user has some sort of history with.

The data I am currently collecting:

All of this data is timestamped.

What I'm looking for

There are a couple of things I'm looking for suggestions on, and ideally this question should be treated more for discussion rather than aiming for a single 'right' answer.

What I'm NOT looking for

Just to avoid this question being derailed with the wrong kind of answers, here is what I'm doing once I have this data for each user:

Basically, I'm not looking for ideas on what to do once I have the input data (I may need further help with that later, but it's not the point of this question), just for ideas on how to generate this input data in the first place

Upvotes: 6

Views: 722

Answers (2)

isomorphismes
isomorphismes

Reputation: 8403

Here's a haymaker of a response:

  • time spent looking at a product
  • semantic interpretation of comments left about the product
  • make a discussion page about a product, brand, or product category and semantically interpret the comments
  • if they Shared a product page (email, del.icio.us, etc.)
  • browser (mobile might make them spend less time on the page vis-à-vis laptop while indicating great interest) and connection speed (affects amt. of time spent on the page)
  • facebook profile similarity
  • heatmap data (e.g. à la kissmetrics)

What kind of products are you selling? That might help us answer you better. (Since this is an old question, I am addressing both @Andrew Ingram and anyone else who has the same question and found this thread through search.)

Upvotes: 2

nont
nont

Reputation: 9519

  1. You can allow users to explicitly state their preferences, the way netflix allows users to assign stars.
  2. You can assign a positive numeric value for all the stuff they bought, since you say you do have their purchase history. Assign zero for stuff they didn't buy
  3. You could do some sort of weighted value for stuff they bought, adjusted for what's popular. (if nearly everybody bought a product, it doesn't tell you much about a person that they also bought it) See "term frequency–inverse document frequency"
  4. You could also assign some lesser numeric value for items that users looked at but did not buy.

Upvotes: 1

Related Questions