1

I am new user on Neo4J.. Just one week of reading.

I am looking into using NEO4J for creating recommendations.

We have product catalog and on product details page we would like to show similar products based on features of different products, cumulative rating, price range.

These products as such don't have relationship with each other except that they share common features.

For example Product : iphone Feature: camera, 4g etc

product: Samsung Note Feature: camera, 4g etc

Any thoughts if Neo4J is correct choice for this type of data? We want list of similar products based on feature set, price rang, rating for each prodct

And how wold data model will look?

4

3 回答 3

4

You might take a look at http://www.reco4j.org/, a recommondation engine framework working on top of Neo4j.

于 2013-03-30T14:47:32.077 回答
2

I'd suggest looking at a site like Amazon.com (or similar) and see how they organize their SKU. If you open up any item on Amazon you will "facets" (or ways to categorize items) like:

  • Department
  • Sub-Category
  • Brand
  • User Rating
  • Price Range
  • Features (as keywords)

You then have to determine whether each of these facets is better modeled as a hierarchy or as a property. Department and Sub-Category look like better candidates for a hierarchy, whereas Brand and Features look like better candidates for properties.

Department and Sub-Category would look like trees, and the leaves of the tree would be all your SKUs.

Then your "similarity" function could be as easy as if a "product falls within the same Department/Sub-Category and it matches at least 50% of the features".

Hope this helps, this is just my initial thoughts.

于 2013-03-30T15:04:02.590 回答
1

There are several options:

  • you can do recommendations by finding similar users (via their actions/purchase history/ratings) and recommend things that those similar users have bought, see: http://docs.neo4j.org/chunked/milestone/cypher-cookbook-similar-favorites.html
  • you can simple list other products that are in the same category and have similar attributes (it is good if you can pull out attributes as nodes instead of properties so it is easier to match them)
  • you can list products that would be useful accessories for already bought products (it doesn't make sense to suggest a camera to someone who just bought a camera, rather accessories for what he bought)
  • if you have no initial purchase data you can just list products with high rankings in similar demographics (gender, age, etc)
于 2013-03-30T16:07:45.560 回答